aboutsummaryrefslogtreecommitdiffstats
path: root/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'common.c')
-rw-r--r--common.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/common.c b/common.c
index 0642055..05b547b 100644
--- a/common.c
+++ b/common.c
@@ -1,6 +1,6 @@
/*
* dhcpcd - DHCP client daemon
- * Copyright (c) 2006-2009 Roy Marples <roy@marples.name>
+ * Copyright (c) 2006-2012 Roy Marples <roy@marples.name>
* All rights reserved
* Redistribution and use in source and binary forms, with or without
@@ -200,6 +200,32 @@ get_monotonic(struct timeval *tp)
return gettimeofday(tp, NULL);
}
+ssize_t
+setvar(char ***e, const char *prefix, const char *var, const char *value)
+{
+ size_t len = strlen(var) + strlen(value) + 3;
+
+ if (prefix)
+ len += strlen(prefix) + 1;
+ **e = xmalloc(len);
+ if (prefix)
+ snprintf(**e, len, "%s_%s=%s", prefix, var, value);
+ else
+ snprintf(**e, len, "%s=%s", var, value);
+ (*e)++;
+ return len;
+}
+
+ssize_t
+setvard(char ***e, const char *prefix, const char *var, int value)
+{
+ char buffer[32];
+
+ snprintf(buffer, sizeof(buffer), "%d", value);
+ return setvar(e, prefix, var, buffer);
+}
+
+
time_t
uptime(void)
{