]> git.ipfire.org Git - thirdparty/dhcpcd.git/commitdiff
Don't use a magic number for print_string flags.
authorRoy Marples <roy@marples.name>
Mon, 29 Sep 2014 09:03:12 +0000 (09:03 +0000)
committerRoy Marples <roy@marples.name>
Mon, 29 Sep 2014 09:03:12 +0000 (09:03 +0000)
Export if_ssid= for non carrier reasons.

dhcp-common.c
dhcp-common.h
dhcp.c
ipv6nd.c
script.c

index e9acea0befd722ab0527961b8d38516e5ae3d7c8..3e356c9dc353c25dd0a2f07185cbb5e598fa45ba 100644 (file)
@@ -330,7 +330,7 @@ print_string(char *s, size_t len, int flags, const uint8_t *data, size_t dl)
                        if (p == e)
                                break;
                }
-               if (flags)
+               if (flags & PS_SHELL)
                        ve = svis(v, c, VIS_CSTYLE | VIS_OCTAL,
                            data <= e ? *data : 0, ESCAPE_CHARS ESCAPE_EXTRA);
                else
@@ -431,7 +431,7 @@ print_option(char *s, size_t len, int type, const uint8_t *data, size_t dl,
                if (tmp == NULL)
                        return -1;
                decode_rfc3397(tmp, l, data, dl);
-               sl = print_string(s, len, 1, (uint8_t *)tmp, l - 1);
+               sl = print_string(s, len, PS_SHELL, (uint8_t *)tmp, l - 1);
                free(tmp);
                return sl;
        }
@@ -441,7 +441,7 @@ print_option(char *s, size_t len, int type, const uint8_t *data, size_t dl,
                if ((tmp = decode_rfc3361(data, dl)) == NULL)
                        return -1;
                l = strlen(tmp);
-               sl = print_string(s, len, 1, (uint8_t *)tmp, l);
+               sl = print_string(s, len, PS_SHELL, (uint8_t *)tmp, l);
                free(tmp);
                return sl;
        }
@@ -457,7 +457,7 @@ print_option(char *s, size_t len, int type, const uint8_t *data, size_t dl,
                /* Some DHCP servers return NULL strings */
                if (*data == '\0')
                        return 0;
-               return print_string(s, len, 1, data, dl);
+               return print_string(s, len, PS_SHELL, data, dl);
        }
 
        if (type & FLAG) {
index 4b0e0febd29c265e3a22398d929f1786ff4ccd7f..a2ac7f0da0bb146b5a312272d14ccdd5ad29f54d 100644 (file)
@@ -62,6 +62,9 @@
 #define INDEX          (1 << 19)
 #define OPTION         (1 << 20)
 
+/* Print string flags */
+#define PS_SHELL       (1 << 0)
+
 struct dhcp_opt {
        uint32_t option; /* Also used for IANA Enterpise Number */
        int type;
diff --git a/dhcp.c b/dhcp.c
index a124289d752a82558f5b4247cd2994b387b5ae07..00fd2c3cb50d73d7e879e2eb83e356a9959d121c 100644 (file)
--- a/dhcp.c
+++ b/dhcp.c
@@ -1269,12 +1269,12 @@ dhcp_env(char **env, const char *prefix, const struct dhcp_message *dhcp,
        }
 
        if (*dhcp->bootfile && !(overl & 1)) {
-               print_string(safe, sizeof(safe), 1,
+               print_string(safe, sizeof(safe), PS_SHELL,
                    dhcp->bootfile, sizeof(dhcp->bootfile));
                setvar(&ep, prefix, "filename", safe);
        }
        if (*dhcp->servername && !(overl & 2)) {
-               print_string(safe, sizeof(safe), 1,
+               print_string(safe, sizeof(safe), PS_SHELL,
                    dhcp->servername, sizeof(dhcp->servername));
                setvar(&ep, prefix, "server_name", safe);
        }
index fbe85275f6284f42bcc57148f7d539edd556ca14..57f9b1d4786d1608367426a10b4e96ae25477c6f 100644 (file)
--- a/ipv6nd.c
+++ b/ipv6nd.c
@@ -1010,11 +1010,11 @@ ipv6nd_handlera(struct ipv6_ctx *ctx, struct interface *ifp,
                                if (tmp) {
                                        decode_rfc3397(tmp, l, op, n);
                                        l -= 1;
-                                       n = (size_t)print_string(NULL, 0, 1,
-                                           (const uint8_t *)tmp, l);
+                                       n = (size_t)print_string(NULL, 0,
+                                           PS_SHELL, (const uint8_t *)tmp, l);
                                        opt = malloc(n);
                                        if (opt)
-                                               print_string(opt, n, 1,
+                                               print_string(opt, n, PS_SHELL,
                                                    (const uint8_t *)tmp, l);
                                        else
                                                syslog(LOG_ERR, "%s: %m",
index 42ffd92cccebfa44c2cde42079e510e3a8f52747..f5637e44e126deafb58a44a6a5110b9bc1dc3a1f 100644 (file)
--- a/script.c
+++ b/script.c
@@ -375,27 +375,26 @@ make_env(const struct interface *ifp, const char *reason, char ***argv)
        }
        if (ifp->wireless) {
                const char *pfx;
+               size_t pfx_len;
+               ssize_t psl;
 
                if (strcmp(reason, "CARRIER") == 0)
                        pfx = "new_ssid=";
                else if (strcmp(reason, "NOCARRIER") == 0)
                        pfx = "old_ssid=";
-               else    
-                       pfx = NULL;
-               if (pfx) {
-                       size_t pfx_len;
-                       ssize_t psl;
-
-                       pfx_len = strlen(pfx);
-                       psl = print_string(NULL, 0, 1,
+               else
+                       pfx = "if_ssid=";
+
+               pfx_len = strlen(pfx);
+               psl = print_string(NULL, 0, PS_SHELL,
+                   (const uint8_t *)ifp->ssid, ifp->ssid_len);
+               if (psl != -1) {
+                       EMALLOC(elen, pfx_len + (size_t)psl + 1);
+                       memcpy(env[elen], pfx, pfx_len);
+                       print_string(env[elen] + pfx_len, (size_t)psl,
+                           PS_SHELL,
                            (const uint8_t *)ifp->ssid, ifp->ssid_len);
-                       if (psl != -1) {
-                               EMALLOC(elen, pfx_len + (size_t)psl + 1);
-                               memcpy(env[elen], pfx, pfx_len);
-                               print_string(env[elen] + pfx_len, (size_t)psl, 1,
-                                   (const uint8_t *)ifp->ssid, ifp->ssid_len);
-                               elen++;
-                       }
+                       elen++;
                }
        }
 #ifdef INET