From 5846ccf08ee46425c4406a8b34c4e0f44cf83148 Mon Sep 17 00:00:00 2001 From: "box@home root" Date: Mon, 30 Mar 2015 02:10:30 +0300 Subject: [PATCH] code cleanup --- src/plugins.d/apps_plugin.c | 113 ++++++++++++++++++++---------------- src/procfile.c | 4 +- 2 files changed, 64 insertions(+), 53 deletions(-) diff --git a/src/plugins.d/apps_plugin.c b/src/plugins.d/apps_plugin.c index 46f8ed75..02c974ed 100755 --- a/src/plugins.d/apps_plugin.c +++ b/src/plugins.d/apps_plugin.c @@ -619,60 +619,71 @@ int read_proc_pid_stat(struct pid_stat *p) { file_counter++; - int len = strlen(procfile_lineword(ff, 0, 1)); - if(len < 2) { - error("apps.plugin: File %s states too small command name '%s'. Ignoring file.", filename, procfile_lineword(ff, 0, 1)); - procfile_close(ff); - return 1; - } + p->comm[0] = '\0'; + p->comm[MAX_COMPARE_NAME] = '\0'; + size_t blen = 0; + + char *s = procfile_lineword(ff, 0, 1); + if(*s == '(') s++; + size_t len = strlen(s); + unsigned int i = 0; + while(len && s[len - 1] != ')') { + if(blen < MAX_COMPARE_NAME) { + strncpy(&p->comm[blen], s, MAX_COMPARE_NAME - blen); + blen = strlen(p->comm); + } - len -= 2; // remove () - if(len > MAX_COMPARE_NAME) len = MAX_COMPARE_NAME; - strncpy(p->comm, &(procfile_lineword(ff, 0, 1))[1], len); + i++; + s = procfile_lineword(ff, 0, 1+i); + len = strlen(s); + } + if(len && s[len - 1] == ')') s[len - 1] = '\0'; + if(blen < MAX_COMPARE_NAME) + strncpy(&p->comm[blen], s, MAX_COMPARE_NAME - blen); - // p->pid = atol(procfile_lineword(ff, 0, 0)); + // p->pid = atol(procfile_lineword(ff, 0, 0+i)); // comm is at 1 - // p->state = *(procfile_lineword(ff, 0, 2)); - p->ppid = atol(procfile_lineword(ff, 0, 3)); - // p->pgrp = atol(procfile_lineword(ff, 0, 4)); - // p->session = atol(procfile_lineword(ff, 0, 5)); - // p->tty_nr = atol(procfile_lineword(ff, 0, 6)); - // p->tpgid = atol(procfile_lineword(ff, 0, 7)); - // p->flags = strtoull(procfile_lineword(ff, 0, 8), NULL, 10); - p->minflt = strtoull(procfile_lineword(ff, 0, 9), NULL, 10); - p->cminflt = strtoull(procfile_lineword(ff, 0, 10), NULL, 10); - p->majflt = strtoull(procfile_lineword(ff, 0, 11), NULL, 10); - p->cmajflt = strtoull(procfile_lineword(ff, 0, 12), NULL, 10); - p->utime = strtoull(procfile_lineword(ff, 0, 13), NULL, 10); - p->stime = strtoull(procfile_lineword(ff, 0, 14), NULL, 10); - p->cutime = strtoull(procfile_lineword(ff, 0, 15), NULL, 10); - p->cstime = strtoull(procfile_lineword(ff, 0, 16), NULL, 10); - // p->priority = strtoull(procfile_lineword(ff, 0, 17), NULL, 10); - // p->nice = strtoull(procfile_lineword(ff, 0, 18), NULL, 10); - p->num_threads = atol(procfile_lineword(ff, 0, 19)); - // p->itrealvalue = strtoull(procfile_lineword(ff, 0, 20), NULL, 10); - // p->starttime = strtoull(procfile_lineword(ff, 0, 21), NULL, 10); - // p->vsize = strtoull(procfile_lineword(ff, 0, 22), NULL, 10); - p->rss = strtoull(procfile_lineword(ff, 0, 23), NULL, 10); - // p->rsslim = strtoull(procfile_lineword(ff, 0, 24), NULL, 10); - // p->starcode = strtoull(procfile_lineword(ff, 0, 25), NULL, 10); - // p->endcode = strtoull(procfile_lineword(ff, 0, 26), NULL, 10); - // p->startstack = strtoull(procfile_lineword(ff, 0, 27), NULL, 10); - // p->kstkesp = strtoull(procfile_lineword(ff, 0, 28), NULL, 10); - // p->kstkeip = strtoull(procfile_lineword(ff, 0, 29), NULL, 10); - // p->signal = strtoull(procfile_lineword(ff, 0, 30), NULL, 10); - // p->blocked = strtoull(procfile_lineword(ff, 0, 31), NULL, 10); - // p->sigignore = strtoull(procfile_lineword(ff, 0, 32), NULL, 10); - // p->sigcatch = strtoull(procfile_lineword(ff, 0, 33), NULL, 10); - // p->wchan = strtoull(procfile_lineword(ff, 0, 34), NULL, 10); - // p->nswap = strtoull(procfile_lineword(ff, 0, 35), NULL, 10); - // p->cnswap = strtoull(procfile_lineword(ff, 0, 36), NULL, 10); - // p->exit_signal = atol(procfile_lineword(ff, 0, 37)); - // p->processor = atol(procfile_lineword(ff, 0, 38)); - // p->rt_priority = strtoul(procfile_lineword(ff, 0, 39), NULL, 10); - // p->policy = strtoul(procfile_lineword(ff, 0, 40), NULL, 10); - // p->delayacct_blkio_ticks = strtoull(procfile_lineword(ff, 0, 41), NULL, 10); - // p->guest_time = strtoull(procfile_lineword(ff, 0, 42), NULL, 10); + // p->state = *(procfile_lineword(ff, 0, 2+i)); + p->ppid = atol(procfile_lineword(ff, 0, 3+i)); + // p->pgrp = atol(procfile_lineword(ff, 0, 4+i)); + // p->session = atol(procfile_lineword(ff, 0, 5+i)); + // p->tty_nr = atol(procfile_lineword(ff, 0, 6+i)); + // p->tpgid = atol(procfile_lineword(ff, 0, 7+i)); + // p->flags = strtoull(procfile_lineword(ff, 0, 8+i), NULL, 10); + p->minflt = strtoull(procfile_lineword(ff, 0, 9+i), NULL, 10); + p->cminflt = strtoull(procfile_lineword(ff, 0, 10+i), NULL, 10); + p->majflt = strtoull(procfile_lineword(ff, 0, 11+i), NULL, 10); + p->cmajflt = strtoull(procfile_lineword(ff, 0, 12+i), NULL, 10); + p->utime = strtoull(procfile_lineword(ff, 0, 13+i), NULL, 10); + p->stime = strtoull(procfile_lineword(ff, 0, 14+i), NULL, 10); + p->cutime = strtoull(procfile_lineword(ff, 0, 15+i), NULL, 10); + p->cstime = strtoull(procfile_lineword(ff, 0, 16+i), NULL, 10); + // p->priority = strtoull(procfile_lineword(ff, 0, 17+i), NULL, 10); + // p->nice = strtoull(procfile_lineword(ff, 0, 18+i), NULL, 10); + p->num_threads = atol(procfile_lineword(ff, 0, 19+i)); + // p->itrealvalue = strtoull(procfile_lineword(ff, 0, 20+i), NULL, 10); + // p->starttime = strtoull(procfile_lineword(ff, 0, 21+i), NULL, 10); + // p->vsize = strtoull(procfile_lineword(ff, 0, 22+i), NULL, 10); + p->rss = strtoull(procfile_lineword(ff, 0, 23+i), NULL, 10); + // p->rsslim = strtoull(procfile_lineword(ff, 0, 24+i), NULL, 10); + // p->starcode = strtoull(procfile_lineword(ff, 0, 25+i), NULL, 10); + // p->endcode = strtoull(procfile_lineword(ff, 0, 26+i), NULL, 10); + // p->startstack = strtoull(procfile_lineword(ff, 0, 27+i), NULL, 10); + // p->kstkesp = strtoull(procfile_lineword(ff, 0, 28+i), NULL, 10); + // p->kstkeip = strtoull(procfile_lineword(ff, 0, 29+i), NULL, 10); + // p->signal = strtoull(procfile_lineword(ff, 0, 30+i), NULL, 10); + // p->blocked = strtoull(procfile_lineword(ff, 0, 31+i), NULL, 10); + // p->sigignore = strtoull(procfile_lineword(ff, 0, 32+i), NULL, 10); + // p->sigcatch = strtoull(procfile_lineword(ff, 0, 33+i), NULL, 10); + // p->wchan = strtoull(procfile_lineword(ff, 0, 34+i), NULL, 10); + // p->nswap = strtoull(procfile_lineword(ff, 0, 35+i), NULL, 10); + // p->cnswap = strtoull(procfile_lineword(ff, 0, 36+i), NULL, 10); + // p->exit_signal = atol(procfile_lineword(ff, 0, 37+i)); + // p->processor = atol(procfile_lineword(ff, 0, 38+i)); + // p->rt_priority = strtoul(procfile_lineword(ff, 0, 39+i), NULL, 10); + // p->policy = strtoul(procfile_lineword(ff, 0, 40+i), NULL, 10); + // p->delayacct_blkio_ticks = strtoull(procfile_lineword(ff, 0, 41+i), NULL, 10); + // p->guest_time = strtoull(procfile_lineword(ff, 0, 42+i), NULL, 10); // p->cguest_time = strtoull(procfile_lineword(ff, 0, 43), NULL, 10); if(debug || (p->target && p->target->debug)) fprintf(stderr, "apps.plugin: VALUES: %s utime=%llu, stime=%llu, cutime=%llu, cstime=%llu, minflt=%llu, majflt=%llu, cminflt=%llu, cmajflt=%llu, threads=%d\n", p->comm, p->utime, p->stime, p->cutime, p->cstime, p->minflt, p->majflt, p->cminflt, p->cmajflt, p->num_threads); diff --git a/src/procfile.c b/src/procfile.c index aed26f9c..ea18cb20 100755 --- a/src/procfile.c +++ b/src/procfile.c @@ -131,7 +131,7 @@ void pflines_free(pflines *fl) { #define PF_CHAR_IS_WORD 2 void procfile_close(procfile *ff) { - debug(D_PROCFILE, PF_PREFIX ": Closing file '%s'. Reason: %s", ff->filename, strerror(errno)); + debug(D_PROCFILE, PF_PREFIX ": Closing file '%s'", ff->filename); if(ff->lines) pflines_free(ff->lines); if(ff->words) pfwords_free(ff->words); @@ -181,7 +181,7 @@ procfile *procfile_parser(procfile *ff) { ff->lines->lines[l].words++; w++; - debug(D_PROCFILE, PF_PREFIX ": ended line %d with %d words", l, ff->lines->lines[l].words); + // debug(D_PROCFILE, PF_PREFIX ": ended line %d with %d words", l, ff->lines->lines[l].words); ff->lines = pflines_add(ff->lines, w); if(!ff->lines) goto cleanup; -- 2.39.2