Export if_ssid= for non carrier reasons.
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
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;
}
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;
}
/* 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) {
#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;
}
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);
}
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",
}
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