# HG changeset patch
# User Eric Hopper <hop...@omnifarious.org>
# Date 1240605604 25200
# Node ID 8ca16c106804698455d97b9d40ba78ed97753907
# Parent  97768cd771be8ea7a4db8bd46998030dcd8c6650
Add check of single EVENT_DISABLED environment variable to avoid multiplying 
environmnet variables.

diff -r 97768cd771be8ea7a4db8bd46998030dcd8c6650 -r 
8ca16c106804698455d97b9d40ba78ed97753907 event.c
--- a/event.c   Fri Apr 24 13:38:37 2009 -0700
+++ b/event.c   Fri Apr 24 13:40:04 2009 -0700
@@ -225,7 +225,27 @@
        evutil_snprintf(environment, sizeof(environment), "EVENT_NO%s", name);
        for (i = 8; environment[i] != '\0'; ++i)
                environment[i] = toupper(environment[i]);
-       return (getenv(environment) != NULL);
+       if (getenv(environment) != NULL) {
+        return 1;
+    } else {
+        const char * const disabledenv = getenv("EVENT_DISABLE");
+        if (disabledenv != NULL) {
+            const int namelen = strlen(name);
+            const char *ptr = strstr(disabledenv, name);
+            while (ptr != NULL) {
+                if (((ptr == disabledenv) || (*(ptr - 1) == ',')) &&
+                    ((*(ptr + namelen) == '\0') || (*(ptr + namelen) == ',')))
+                {
+                    return 1;
+                } else if (*ptr == '\0') {
+                    return 0;
+                } else {
+                    ptr = strstr(ptr + 1, name);
+                }
+            }
+        }
+        return 0;
+    }
 }
 
 enum event_method_feature

Attachment: pgpDxUgjyTrev.pgp
Description: PGP signature

_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users

Reply via email to