#include "sspingdefs.h" extern service_t *espservices; extern int numservices; extern int restartdaemon; #define MAXDEFSERVICES 8 static service_t defservices[MAXDEFSERVICES] = { {"icmp", "/usr/etc/ping -c 3 -f -i 4 HOST", 1}, {"dns", "nslookup - HOST 0 && !s ) return(INVALIDARGS); i = checkService(s, service); switch(flag) { case ADD: if ( i >= 0 ) { return(SERVICEALREADYEXISTS); } else if ( strstr(cmd, "HOST") == NULL ) { return(INVALIDCOMMAND); } else if ( !addService(&s, service, cmd, numservices+1) ) { return(UNABLETOADDSERVICE); } else { numservices += 1; } break; case UPDATE: if ( i < 0 ) { return(SERVICENOTFOUND); } else if ( strstr(cmd, "HOST") == NULL ) { return(INVALIDCOMMAND); } else { strncpy(s[i].service_name,service,MAXSERNAMELEN); strncpy(s[i].service_cmd,cmd,MAXSERCMDLEN); s[i].flag = 1; } break; default: return(INVALIDOPERATION); } writeServices(SERVICESFILE, s); return(0); }