// initialize alarms, instances and log regexps void uwsgi_alarms_init() { // first of all, create instance of alarms struct uwsgi_string_list *usl = uwsgi.alarm_list; while(usl) { char *line = uwsgi_str(usl->value); char *space = strchr(line, ' '); if (!space) { uwsgi_log("invalid alarm syntax: %s\n", usl->value); exit(1); } *space = 0; char *plugin = space+1; char *colon = strchr(plugin, ':'); if (!colon) { uwsgi_log("invalid alarm syntax: %s\n", usl->value); exit(1); } *colon = 0; char *arg = colon+1; // here the alarm is mapped to a name and initialized if (uwsgi_alarm_add(line, plugin, arg)) { uwsgi_log("invalid alarm: %s\n", usl->value); exit(1); } usl = usl->next; } // then map log-alarm usl = uwsgi.alarm_logs_list; while(usl) { char *line = uwsgi_str(usl->value); char *space = strchr(line, ' '); if (!space) { uwsgi_log("invalid log-alarm syntax: %s\n", usl->value); exit(1); } *space = 0; char *regexp = space+1; // here the log-alarm is created if (uwsgi_alarm_log_add(line, regexp)) { uwsgi_log("invalid log-alarm: %s\n", usl->value); exit(1); } usl = usl->next; } }
// initialize alarms, instances and log regexps void uwsgi_alarms_init() { if (!uwsgi.master_process) return; // first of all, create instance of alarms struct uwsgi_string_list *usl = uwsgi.alarm_list; while (usl) { char *line = uwsgi_str(usl->value); char *space = strchr(line, ' '); if (!space) { uwsgi_log("invalid alarm syntax: %s\n", usl->value); exit(1); } *space = 0; char *plugin = space + 1; char *colon = strchr(plugin, ':'); if (!colon) { uwsgi_log("invalid alarm syntax: %s\n", usl->value); exit(1); } *colon = 0; char *arg = colon + 1; // here the alarm is mapped to a name and initialized if (uwsgi_alarm_add(line, plugin, arg)) { uwsgi_log("invalid alarm: %s\n", usl->value); exit(1); } usl = usl->next; } if (!uwsgi.alarm_instances) return; // map alarm file descriptors usl = uwsgi.alarm_fd_list; while(usl) { char *space0 = strchr(usl->value, ' '); if (!space0) { uwsgi_log("invalid alarm-fd syntax: %s\n", usl->value); exit(1); } *space0 = 0; size_t buf_len = 1; char *space1 = strchr(space0+1, ' '); if (!space1) { uwsgi_log("invalid alarm-fd syntax: %s\n", usl->value); exit(1); } char *colon = strchr(space0+1, ':'); if (colon) { buf_len = strtoul(colon+1, NULL, 10); *colon = 0; } int fd = atoi(space0+1); uwsgi_add_alarm_fd(fd, usl->value, buf_len, space1+1, strlen(space1+1)); *space0 = ' '; *space1 = ' '; if (colon) { *colon = ':'; } usl = usl->next; } #ifdef UWSGI_PCRE // then map log-alarm usl = uwsgi.alarm_logs_list; while (usl) { char *line = uwsgi_str(usl->value); char *space = strchr(line, ' '); if (!space) { uwsgi_log("invalid log-alarm syntax: %s\n", usl->value); exit(1); } *space = 0; char *regexp = space + 1; // here the log-alarm is created if (uwsgi_alarm_log_add(line, regexp, usl->custom)) { uwsgi_log("invalid log-alarm: %s\n", usl->value); exit(1); } usl = usl->next; } #endif }