/[monit]/monit/p.y
ViewVC logotype

Diff of /monit/p.y

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.132 by hauk, Wed Sep 24 02:19:49 2003 UTC revision 1.133 by martinp, Thu Sep 25 15:22:10 2003 UTC
# Line 87  Line 87 
87  #include <syslog.h>  #include <syslog.h>
88  #endif  #endif
89    
90    #ifdef HAVE_NETINET_IP_ICMP_H
91    #include <netinet/ip_icmp.h>
92    #endif
93    
94  #include "net.h"  #include "net.h"
95  #include "monitor.h"  #include "monitor.h"
96  #include "protocol.h"  #include "protocol.h"
# Line 171  Line 175 
175      int  action;      int  action;
176    };    };
177    
178      struct IcmpSet {
179        int  type;
180        int  timeout;
181        int  action;
182      };
183    
184    /* yacc interface */    /* yacc interface */
185    void  yyerror(const char *);    void  yyerror(const char *);
186    
# Line 201  Line 211 
211    static struct UidSet uidset= {0, ACTION_ALERT};    static struct UidSet uidset= {0, ACTION_ALERT};
212    static struct GidSet gidset= {0, ACTION_ALERT};    static struct GidSet gidset= {0, ACTION_ALERT};
213    static struct DeviceSet deviceset= {0, OPERATOR_EQUAL, -1, -1, ACTION_ALERT};    static struct DeviceSet deviceset= {0, OPERATOR_EQUAL, -1, -1, ACTION_ALERT};
214      static struct IcmpSet icmpset= {ICMP_ECHO, NET_TIMEOUT, ACTION_ALERT};
215    
216    /* Private prototypes */    /* Private prototypes */
217    static void  initialize();    static void  initialize();
# Line 214  Line 225 
225    static void  addtimestamp(struct TimestampSet *);    static void  addtimestamp(struct TimestampSet *);
226    static void  addsize(struct SizeSet *);    static void  addsize(struct SizeSet *);
227    static void  adddevice(struct DeviceSet *);    static void  adddevice(struct DeviceSet *);
228      static void  addicmp(struct IcmpSet *);
229    static void *addprotocol(int);    static void *addprotocol(int);
230    static void  addcommand(int);    static void  addcommand(int);
231    static void  addargument(char *);    static void  addargument(char *);
# Line 241  Line 253 
253    static void  reset_uidset();    static void  reset_uidset();
254    static void  reset_gidset();    static void  reset_gidset();
255    static void  reset_deviceset();    static void  reset_deviceset();
256      static void  reset_icmpset();
257    static void  check_name(char *);    static void  check_name(char *);
258    static void  check_timeout(int, int);    static void  check_timeout(int, int);
259    static void  check_every(int);    static void  check_every(int);
# Line 265  Line 278 
278  %token IF THEN ELSE FAILED CYCLE  %token IF THEN ELSE FAILED CYCLE
279  %token SET LOGFILE FACILITY DAEMON SYSLOG MAILSERVER HTTPD ALLOW ADDRESS INIT  %token SET LOGFILE FACILITY DAEMON SYSLOG MAILSERVER HTTPD ALLOW ADDRESS INIT
280  %token PEMFILE ENABLE DISABLE HTTPDSSL CLIENTPEMFILE ALLOWSELFCERTIFICATION  %token PEMFILE ENABLE DISABLE HTTPDSSL CLIENTPEMFILE ALLOWSELFCERTIFICATION
281  %token STATEFILE  %token STATEFILE
282  %token CHECK PIDFILE START STOP PATHTOK  %token CHECK PIDFILE START STOP PATHTOK
283  %token HOST PORT TYPE UDP TCP TCPSSL PROTOCOL CONNECTION  %token HOST PORT TYPE UDP TCP TCPSSL PROTOCOL CONNECTION
284  %token ALERT MAILFORMAT UNIXSOCKET  %token ALERT MAILFORMAT UNIXSOCKET
285  %token TIMEOUT RESTART CHECKSUM EXPECT EVERY  %token TIMEOUT RESTART CHECKSUM EXPECT EVERY
286  %token DEFAULT HTTP FTP SMTP POP IMAP NNTP SSH DWP LDAP2 LDAP3 RDATE RSYNC  %token DEFAULT HTTP FTP SMTP POP IMAP NNTP SSH DWP LDAP2 LDAP3 RDATE RSYNC
# Line 285  Line 298 
298  %token SSLAUTO SSLV2 SSLV3 TLSV1 CERTMD5  %token SSLAUTO SSLV2 SSLV3 TLSV1 CERTMD5
299  %token BYTE KILOBYTE MEGABYTE GIGABYTE  %token BYTE KILOBYTE MEGABYTE GIGABYTE
300  %token INODE SPACE PERMISSION SIZE  %token INODE SPACE PERMISSION SIZE
301  %token EXEC UNMONITOR  %token EXEC UNMONITOR ICMP ICMPECHO
302    
303  %left GREATER LESS EQUAL NOTEQUAL  %left GREATER LESS EQUAL NOTEQUAL
304    
# Line 395  opthostlist     : /* EMPTY */ Line 408  opthostlist     : /* EMPTY */
408  opthost         : start  opthost         : start
409                  | stop                  | stop
410                  | connection                  | connection
411                    | icmp
412                  | timeout                  | timeout
413                  | alert                  | alert
414                  | every                  | every
# Line 625  connectionunix  : IF FAILED unixsocket t Line 639  connectionunix  : IF FAILED unixsocket t
639                    }                    }
640                  ;                  ;
641    
642    icmp            : IF FAILED ICMP icmptype nettimeout THEN action {
643                       icmpset.type= $<number>4;
644                       icmpset.timeout= $<number>5;
645                       icmpset.action= $<number>7;
646                       addicmp(&icmpset);
647                      }
648                    ;
649    
650  host            : /* EMPTY */ {  host            : /* EMPTY */ {
651                      if(current->type == TYPE_REMOTE)                      if(current->type == TYPE_REMOTE)
652                        portset.hostname= xstrdup(current->path);                        portset.hostname= xstrdup(current->path);
# Line 1000  gid             : IF FAILED GID STRING T Line 1022  gid             : IF FAILED GID STRING T
1022                    }                    }
1023                  ;                  ;
1024    
1025    icmptype        : TYPE ICMPECHO { $<number>$= ICMP_ECHO; }
1026                    ;
1027    
1028  %%  %%
1029    
1030    
# Line 1557  static void adddevice(struct DeviceSet * Line 1582  static void adddevice(struct DeviceSet *
1582    dev->limit_percent= ds->limit_percent;    dev->limit_percent= ds->limit_percent;
1583    dev->action= ds->action;    dev->action= ds->action;
1584    
1585      if((dev->action == ACTION_EXEC) && command) {
1586        dev->exec= command;
1587        command= NULL;
1588      }
1589    
1590    dev->next= current->devicelist;    dev->next= current->devicelist;
1591    current->devicelist= dev;    current->devicelist= dev;
1592    
# Line 1566  static void adddevice(struct DeviceSet * Line 1596  static void adddevice(struct DeviceSet *
1596    
1597    
1598  /*  /*
1599     * Add a new icmp object to the current service's icmp list
1600     */
1601    static void addicmp(struct IcmpSet *is) {
1602    
1603      Icmp_T icmp;
1604    
1605      ASSERT(is);
1606      
1607      NEW(icmp);
1608      icmp->type= is->type;
1609      icmp->timeout= is->timeout;
1610      icmp->action= is->action;
1611    
1612      if((icmp->action == ACTION_EXEC) && command) {
1613        icmp->exec= command;
1614        command= NULL;
1615      }
1616    
1617      icmp->next= current->icmplist;
1618      current->icmplist= icmp;
1619    
1620      reset_icmpset();
1621    
1622    }
1623    
1624    
1625    /*
1626   * Adds runtime device info to current service   * Adds runtime device info to current service
1627   */   */
1628  static void createdevinfo() {  static void createdevinfo() {
# Line 2072  static void reset_deviceset() { Line 2129  static void reset_deviceset() {
2129    
2130  }  }
2131    
2132    
2133    /*
2134     * Reset the ICMP set to default values
2135     */
2136    static void reset_icmpset() {
2137    
2138      icmpset.type= ICMP_ECHO;
2139      icmpset.timeout= NET_TIMEOUT;
2140      icmpset.action= ACTION_ALERT;
2141    
2142    }
2143    
2144    
2145  /* ---------------------------------------------------------------- Checkers */  /* ---------------------------------------------------------------- Checkers */
2146    

Legend:
Removed from v.1.132  
changed lines
  Added in v.1.133

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26