Mercurial > dovecot > original-hg > dovecot-1.2
changeset 7090:c8878d66c4a1 HEAD
Added functions for building an "environment array". It can be passed later
to execve().
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 02 Jan 2008 01:35:21 +0200 |
parents | 10d49a20b04e |
children | 59ac3628b8d8 |
files | src/lib/env-util.c src/lib/env-util.h |
diffstat | 2 files changed, 31 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib/env-util.c Wed Jan 02 00:03:41 2008 +0200 +++ b/src/lib/env-util.c Wed Jan 02 01:35:21 2008 +0200 @@ -1,6 +1,7 @@ /* Copyright (c) 2002-2008 Dovecot authors, see the included COPYING file */ #include "lib.h" +#include "array.h" #include "env-util.h" #include <stdlib.h> @@ -26,3 +27,25 @@ if (pool != NULL) pool_unref(&pool); } + +void envarr_add(ARRAY_TYPE(const_string) *arr, + const char *key, const char *value) +{ + const char *str = t_strconcat(key, "=", value, NULL); + + array_append(arr, &str, 1); +} + +void envarr_addi(ARRAY_TYPE(const_string) *arr, const char *key, + unsigned int value) +{ + char str[MAX_INT_STRLEN]; + + i_snprintf(str, sizeof(str), "%u", value); + envarr_add(arr, key, str); +} + +void envarr_addb(ARRAY_TYPE(const_string) *arr, const char *key) +{ + envarr_add(arr, key, "1"); +}
--- a/src/lib/env-util.h Wed Jan 02 00:03:41 2008 +0200 +++ b/src/lib/env-util.h Wed Jan 02 01:35:21 2008 +0200 @@ -7,4 +7,12 @@ /* Clear all environment variables. */ void env_clean(void); +/* Append a string containing key=value to the array */ +void envarr_add(ARRAY_TYPE(const_string) *arr, + const char *key, const char *value); +void envarr_addi(ARRAY_TYPE(const_string) *arr, const char *key, + unsigned int value); +/* Append a string containing key=1 to the array */ +void envarr_addb(ARRAY_TYPE(const_string) *arr, const char *key); + #endif