]> arthur.barton.de Git - netdata.git/blobdiff - src/plugins_d.c
replace strcmp() with strsame() and procfile improvements
[netdata.git] / src / plugins_d.c
index d7ea698e3c851ed60f669572046c366fab42fc05..7fe46e46f18feac90a817975cd807334885f401e 100644 (file)
@@ -143,7 +143,7 @@ void *pluginsd_worker_thread(void *arg)
 
             hash = simple_hash(s);
 
-            if(likely(hash == SET_HASH && !strcmp(s, "SET"))) {
+            if(likely(hash == SET_HASH && !strsame(s, "SET"))) {
                 char *dimension = words[1];
                 char *value = words[2];
 
@@ -167,7 +167,7 @@ void *pluginsd_worker_thread(void *arg)
 
                 if(value) rrddim_set(st, dimension, strtoll(value, NULL, 0));
             }
-            else if(likely(hash == BEGIN_HASH && !strcmp(s, "BEGIN"))) {
+            else if(likely(hash == BEGIN_HASH && !strsame(s, "BEGIN"))) {
                 char *id = words[1];
                 char *microseconds_txt = words[2];
 
@@ -188,12 +188,12 @@ void *pluginsd_worker_thread(void *arg)
 
                 if(likely(st->counter_done)) {
                     usec_t microseconds = 0;
-                    if(microseconds_txt && *microseconds_txt) microseconds = strtoull(microseconds_txt, NULL, 10);
+                    if(microseconds_txt && *microseconds_txt) microseconds = str2ull(microseconds_txt);
                     if(microseconds) rrdset_next_usec(st, microseconds);
                     else rrdset_next(st);
                 }
             }
-            else if(likely(hash == END_HASH && !strcmp(s, "END"))) {
+            else if(likely(hash == END_HASH && !strsame(s, "END"))) {
                 if(unlikely(!st)) {
                     error("PLUGINSD: '%s' is requesting an END, without a BEGIN. Disabling it.", cd->fullfilename);
                     cd->enabled = 0;
@@ -208,15 +208,15 @@ void *pluginsd_worker_thread(void *arg)
 
                 count++;
             }
-            else if(likely(hash == FLUSH_HASH && !strcmp(s, "FLUSH"))) {
+            else if(likely(hash == FLUSH_HASH && !strsame(s, "FLUSH"))) {
                 debug(D_PLUGINSD, "PLUGINSD: '%s' is requesting a FLUSH", cd->fullfilename);
                 st = NULL;
             }
-            else if(likely(hash == CHART_HASH && !strcmp(s, "CHART"))) {
+            else if(likely(hash == CHART_HASH && !strsame(s, "CHART"))) {
                 int noname = 0;
                 st = NULL;
 
-                if((words[1]) != NULL && (words[2]) != NULL && strcmp(words[1], words[2]) == 0)
+                if((words[1]) != NULL && (words[2]) != NULL && strsame(words[1], words[2]) == 0)
                     noname = 1;
 
                 char *type = words[1];
@@ -242,10 +242,10 @@ void *pluginsd_worker_thread(void *arg)
                 }
 
                 int priority = 1000;
-                if(likely(priority_s)) priority = atoi(priority_s);
+                if(likely(priority_s)) priority = str2i(priority_s);
 
                 int update_every = cd->update_every;
-                if(likely(update_every_s)) update_every = atoi(update_every_s);
+                if(likely(update_every_s)) update_every = str2i(update_every_s);
                 if(unlikely(!update_every)) update_every = cd->update_every;
 
                 int chart_type = RRDSET_TYPE_LINE;
@@ -272,7 +272,7 @@ void *pluginsd_worker_thread(void *arg)
                 }
                 else debug(D_PLUGINSD, "PLUGINSD: Chart '%s' already exists. Not adding it again.", st->id);
             }
-            else if(likely(hash == DIMENSION_HASH && !strcmp(s, "DIMENSION"))) {
+            else if(likely(hash == DIMENSION_HASH && !strsame(s, "DIMENSION"))) {
                 char *id = words[1];
                 char *name = words[2];
                 char *algorithm = words[3];
@@ -326,21 +326,21 @@ void *pluginsd_worker_thread(void *arg)
                 }
                 else if(unlikely(st->debug)) debug(D_PLUGINSD, "PLUGINSD: dimension %s/%s already exists. Not adding it again.", st->id, id);
             }
-            else if(unlikely(hash == DISABLE_HASH && !strcmp(s, "DISABLE"))) {
+            else if(unlikely(hash == DISABLE_HASH && !strsame(s, "DISABLE"))) {
                 info("PLUGINSD: '%s' called DISABLE. Disabling it.", cd->fullfilename);
                 cd->enabled = 0;
                 killpid(cd->pid, SIGTERM);
                 break;
             }
 #ifdef DETACH_PLUGINS_FROM_NETDATA
-            else if(likely(hash == MYPID_HASH && !strcmp(s, "MYPID"))) {
+            else if(likely(hash == MYPID_HASH && !strsame(s, "MYPID"))) {
                 char *pid_s = words[1];
                 pid_t pid = strtod(pid_s, NULL, 0);
 
                 if(likely(pid)) cd->pid = pid;
                 debug(D_PLUGINSD, "PLUGINSD: %s is on pid %d", cd->id, cd->pid);
             }
-            else if(likely(hash == STOPPING_WAKE_ME_UP_PLEASE_HASH && !strcmp(s, "STOPPING_WAKE_ME_UP_PLEASE"))) {
+            else if(likely(hash == STOPPING_WAKE_ME_UP_PLEASE_HASH && !strsame(s, "STOPPING_WAKE_ME_UP_PLEASE"))) {
                 error("PLUGINSD: '%s' (pid %d) called STOPPING_WAKE_ME_UP_PLEASE.", cd->fullfilename, cd->pid);
 
                 now_realtime_timeval(&now);
@@ -472,11 +472,11 @@ void *pluginsd_main(void *ptr) {
 
             debug(D_PLUGINSD, "PLUGINSD: Examining file '%s'", file->d_name);
 
-            if(unlikely(strcmp(file->d_name, ".") == 0 || strcmp(file->d_name, "..") == 0)) continue;
+            if(unlikely(strsame(file->d_name, ".") == 0 || strsame(file->d_name, "..") == 0)) continue;
 
             int len = (int) strlen(file->d_name);
             if(unlikely(len <= (int)PLUGINSD_FILE_SUFFIX_LEN)) continue;
-            if(unlikely(strcmp(PLUGINSD_FILE_SUFFIX, &file->d_name[len - (int)PLUGINSD_FILE_SUFFIX_LEN]) != 0)) {
+            if(unlikely(strsame(PLUGINSD_FILE_SUFFIX, &file->d_name[len - (int)PLUGINSD_FILE_SUFFIX_LEN]) != 0)) {
                 debug(D_PLUGINSD, "PLUGINSD: File '%s' does not end in '%s'.", file->d_name, PLUGINSD_FILE_SUFFIX);
                 continue;
             }
@@ -492,7 +492,7 @@ void *pluginsd_main(void *ptr) {
 
             // check if it runs already
             for(cd = pluginsd_root ; cd ; cd = cd->next)
-                if(unlikely(strcmp(cd->filename, file->d_name) == 0)) break;
+                if(unlikely(strsame(cd->filename, file->d_name) == 0)) break;
 
             if(likely(cd && !cd->obsolete)) {
                 debug(D_PLUGINSD, "PLUGINSD: plugin '%s' is already running", cd->filename);
@@ -542,7 +542,6 @@ cleanup:
     info("PLUGINS.D thread exiting");
 
     static_thread->enabled = 0;
-    static_thread->thread = NULL;
     pthread_exit(NULL);
     return NULL;
 }