void proc_parse_config(const char *token, char *cptr) { char tmpname[STRMAX]; struct myproc **procp = &procwatch; /* * don't allow two entries with the same name */ copy_nword(cptr, tmpname, sizeof(tmpname)); if (get_proc_by_name(tmpname) != NULL) { config_perror("Already have an entry for this process."); return; } /* * skip past used ones */ while (*procp != NULL) procp = &((*procp)->next); (*procp) = (struct myproc *) calloc(1, sizeof(struct myproc)); if (*procp == NULL) return; /* memory alloc error */ numprocs++; /* * not blank and not a comment */ copy_nword(cptr, (*procp)->name, sizeof((*procp)->name)); cptr = skip_not_white(cptr); if ((cptr = skip_white(cptr))) { (*procp)->max = atoi(cptr); cptr = skip_not_white(cptr); if ((cptr = skip_white(cptr))) (*procp)->min = atoi(cptr); else (*procp)->min = 0; } else { /* Default to asssume that we require at least one * such process to be running, but no upper limit */ (*procp)->max = 0; (*procp)->min = 1; /* This frees "proc <procname> 0 0" to monitor * processes that should _not_ be running. */ } #ifdef NETSNMP_PROCFIXCMD sprintf((*procp)->fixcmd, NETSNMP_PROCFIXCMD, (*procp)->name); #endif DEBUGMSGTL(("ucd-snmp/proc", "Read: %s (%d) (%d)\n", (*procp)->name, (*procp)->max, (*procp)->min)); }
void proc_parse_config(const char *token, char *cptr) { char tmpname[STRMAX]; struct myproc **procp = &procwatch; /* * don't allow two entries with the same name */ copy_nword(cptr, tmpname, sizeof(tmpname)); if (get_proc_by_name(tmpname) != NULL) { config_perror("Already have an entry for this process."); return; } /* * skip past used ones */ while (*procp != NULL) procp = &((*procp)->next); (*procp) = (struct myproc *) calloc(1, sizeof(struct myproc)); if (*procp == NULL) return; /* memory alloc error */ numprocs++; /* * not blank and not a comment */ copy_nword(cptr, (*procp)->name, sizeof((*procp)->name)); cptr = skip_not_white(cptr); if ((cptr = skip_white(cptr))) { (*procp)->max = atoi(cptr); cptr = skip_not_white(cptr); if ((cptr = skip_white(cptr))) (*procp)->min = atoi(cptr); else (*procp)->min = 0; } else { (*procp)->max = 0; (*procp)->min = 0; } #ifdef NETSNMP_PROCFIXCMD sprintf((*procp)->fixcmd, NETSNMP_PROCFIXCMD, (*procp)->name); #endif DEBUGMSGTL(("ucd-snmp/proc", "Read: %s (%d) (%d)\n", (*procp)->name, (*procp)->max, (*procp)->min)); }
void procfix_parse_config(const char *token, char *cptr) { char tmpname[STRMAX]; struct myproc *procp; /* * don't allow two entries with the same name */ cptr = copy_nword(cptr, tmpname, sizeof(tmpname)); if ((procp = get_proc_by_name(tmpname)) == NULL) { config_perror("No proc entry registered for this proc name yet."); return; } if (strlen(cptr) > sizeof(procp->fixcmd)) { config_perror("fix command too long."); return; } strcpy(procp->fixcmd, cptr); }