97 |
char *pathname; |
char *pathname; |
98 |
char *certmd5; |
char *certmd5; |
99 |
Protocol_T protocol; |
Protocol_T protocol; |
100 |
|
int action; |
101 |
|
int timeout; |
102 |
}; |
}; |
103 |
|
|
104 |
struct ResourceSet { |
struct ResourceSet { |
152 |
static Service_T depend_list= NULL; |
static Service_T depend_list= NULL; |
153 |
static struct IHavePrecedence ihp= {FALSE, FALSE, FALSE}; |
static struct IHavePrecedence ihp= {FALSE, FALSE, FALSE}; |
154 |
static struct PortSet portset= {-1, NULL, 0, SOCK_STREAM, AF_INET, FALSE, |
static struct PortSet portset= {-1, NULL, 0, SOCK_STREAM, AF_INET, FALSE, |
155 |
SSL_VERSION_AUTO, NULL, NULL, NULL, NULL}; |
SSL_VERSION_AUTO, NULL, NULL, NULL, NULL, ACTION_ALERT, NET_TIMEOUT}; |
156 |
static struct ResourceSet resourceset= {0, 0, OPERATOR_EQUAL, 1, |
static struct ResourceSet resourceset= {0, 0, OPERATOR_EQUAL, 1, |
157 |
ACTION_ALERT}; |
ACTION_ALERT}; |
158 |
static struct TimestampSet timestampset= {NULL, OPERATOR_EQUAL, 0, 0, |
static struct TimestampSet timestampset= {NULL, OPERATOR_EQUAL, 0, 0, |
210 |
char *string; |
char *string; |
211 |
} |
} |
212 |
|
|
213 |
%token SET LOGFILE DAEMON SYSLOG MAILSERVER HTTPD ALLOW ADDRESS INIT |
%token SET LOGFILE FACILITY DAEMON SYSLOG MAILSERVER HTTPD ALLOW ADDRESS INIT |
214 |
%token PEMFILE ENABLE DISABLE HTTPDSSL CLIENTPEMFILE ALLOWSELFCERTIFICATION |
%token PEMFILE ENABLE DISABLE HTTPDSSL CLIENTPEMFILE ALLOWSELFCERTIFICATION |
215 |
%token STATEFILE |
%token STATEFILE |
216 |
%token CHECK PIDFILE START STOP PATHTOK |
%token CHECK PIDFILE START STOP PATHTOK |
217 |
%token HOST PORT TYPE UDP TCP TCPSSL PROTOCOL FACILITY |
%token HOST PORT TYPE UDP TCP TCPSSL PROTOCOL CONNECTION |
218 |
%token ALERT MAILFORMAT UNIXSOCKET |
%token ALERT MAILFORMAT UNIXSOCKET |
219 |
%token TIMEOUT RESTART CHECKSUM EXPECT EVERY |
%token TIMEOUT RESTART CHECKSUM EXPECT EVERY |
220 |
%token DEFAULT HTTP FTP SMTP POP IMAP NNTP SSH DWP LDAP2 LDAP3 RDATE |
%token DEFAULT HTTP FTP SMTP POP IMAP NNTP SSH DWP LDAP2 LDAP3 RDATE |
232 |
%token SSLAUTO SSLV2 SSLV3 TLSV1 CERTMD5 |
%token SSLAUTO SSLV2 SSLV3 TLSV1 CERTMD5 |
233 |
%token BYTE KILOBYTE MEGABYTE GIGABYTE |
%token BYTE KILOBYTE MEGABYTE GIGABYTE |
234 |
%token INODE SPACE PERM SIZE |
%token INODE SPACE PERM SIZE |
235 |
%token EXEC |
%token EXEC AFTER |
236 |
|
|
237 |
%left GREATER LESS EQUAL NOTEQUAL |
%left GREATER LESS EQUAL NOTEQUAL |
238 |
|
|
266 |
|
|
267 |
optproc : start |
optproc : start |
268 |
| stop |
| stop |
269 |
| host port type protocol { |
| host port type protocol timeoutafter action { |
270 |
addport(&portset); |
portset.timeout= $<number>5; |
271 |
} |
portset.action= $<number>6; |
272 |
| unixsocket type protocol { |
addport(&portset); |
273 |
|
} |
274 |
|
| unixsocket type protocol timeoutafter action { |
275 |
|
portset.timeout= $<number>5; |
276 |
|
portset.action= $<number>6; |
277 |
addport(&portset); |
addport(&portset); |
278 |
} |
} |
279 |
| timestamp { |
| timestamp { |
618 |
} |
} |
619 |
; |
; |
620 |
|
|
621 |
|
timeoutafter : /* EMPTY */ { |
622 |
|
$<number>$= NET_TIMEOUT; |
623 |
|
} |
624 |
|
| TIMEOUT AFTER NUMBER SECOND { |
625 |
|
$<number>$= $3; |
626 |
|
} |
627 |
|
; |
628 |
|
|
629 |
alert : alertmail '{' eventoptionlist '}' formatlist { |
alert : alertmail '{' eventoptionlist '}' formatlist { |
630 |
addmail($<string>1, &mailset, eventset); |
addmail($<string>1, &mailset, eventset); |
631 |
} |
} |
642 |
| eventoptionlist eventoption |
| eventoptionlist eventoption |
643 |
; |
; |
644 |
|
|
645 |
eventoption : START { eventset |= EVENT_START; } |
eventoption : START { eventset |= EVENT_START; } |
646 |
| STOP { eventset |= EVENT_STOP; } |
| STOP { eventset |= EVENT_STOP; } |
647 |
| RESTART { eventset |= EVENT_RESTART; } |
| RESTART { eventset |= EVENT_RESTART; } |
648 |
| CHECKSUM { eventset |= EVENT_CHECKSUM; } |
| CHECKSUM { eventset |= EVENT_CHECKSUM; } |
649 |
| RESOURCE { eventset |= EVENT_RESOURCE; } |
| RESOURCE { eventset |= EVENT_RESOURCE; } |
650 |
| TIMEOUT { eventset |= EVENT_TIMEOUT; } |
| TIMEOUT { eventset |= EVENT_TIMEOUT; } |
651 |
| TIMESTAMP { eventset |= EVENT_TIMESTAMP; } |
| TIMESTAMP { eventset |= EVENT_TIMESTAMP; } |
652 |
| SIZE { eventset |= EVENT_SIZE; } |
| SIZE { eventset |= EVENT_SIZE; } |
653 |
|
| CONNECTION { eventset |= EVENT_CONNECTION; } |
654 |
; |
; |
655 |
|
|
656 |
formatlist : /* EMPTY */ |
formatlist : /* EMPTY */ |
1132 |
p->type= pp->type; |
p->type= pp->type; |
1133 |
p->socket= pp->socket; |
p->socket= pp->socket; |
1134 |
p->family= pp->family; |
p->family= pp->family; |
1135 |
|
p->action= pp->action; |
1136 |
|
p->timeout= pp->timeout; |
1137 |
p->request= pp->request; |
p->request= pp->request; |
1138 |
p->protocol= pp->protocol; |
p->protocol= pp->protocol; |
1139 |
p->pathname= pp->pathname; |
p->pathname= pp->pathname; |
1144 |
} else if(pp->family == AF_UNIX) { |
} else if(pp->family == AF_UNIX) { |
1145 |
snprintf(address, STRLEN, "UNIX[%s]", pp->pathname); |
snprintf(address, STRLEN, "UNIX[%s]", pp->pathname); |
1146 |
} |
} |
1147 |
|
p->address= xstrdup(address); |
1148 |
|
|
1149 |
if(pp->ssl == TRUE) { |
if(pp->ssl == TRUE) { |
1150 |
if(!have_ssl()) { |
if(!have_ssl()) { |
1151 |
log("%s: The ssl check cannot be activated at line %d, " |
log("%s: The ssl check cannot be activated at line %d, " |
1161 |
p->SSL.version= pp->sslversion; |
p->SSL.version= pp->sslversion; |
1162 |
} |
} |
1163 |
} |
} |
1164 |
|
|
1165 |
p->address= xstrdup(address); |
if((p->action == ACTION_EXEC) && command) { |
1166 |
|
p->exec= command; |
1167 |
|
command= NULL; |
1168 |
|
} |
1169 |
|
|
1170 |
p->next= current->portlist; |
p->next= current->portlist; |
1171 |
current->portlist= p; |
current->portlist= p; |
1264 |
|
|
1265 |
|
|
1266 |
/* |
/* |
1267 |
* Add a new file object to the current service size list |
* Add a new Size object to the current service size list |
1268 |
*/ |
*/ |
1269 |
static void addsize(struct SizeSet *ss) { |
static void addsize(struct SizeSet *ss) { |
1270 |
|
|
1726 |
portset.request= NULL; |
portset.request= NULL; |
1727 |
portset.protocol= NULL; |
portset.protocol= NULL; |
1728 |
portset.pathname= NULL; |
portset.pathname= NULL; |
1729 |
|
portset.action= ACTION_ALERT; |
1730 |
|
portset.timeout= NET_TIMEOUT; |
1731 |
|
|
1732 |
} |
} |
1733 |
|
|