env.h (1441B)
1 /* Copyright (c) 2003-2004, Roger Dingledine 2 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. 3 * Copyright (c) 2007-2021, The Tor Project, Inc. */ 4 /* See LICENSE for licensing information */ 5 6 /** 7 * \file env.h 8 * \brief Header for env.c 9 **/ 10 11 #ifndef TOR_ENV_H 12 #define TOR_ENV_H 13 14 char **get_environment(void); 15 16 struct smartlist_t; 17 18 int environment_variable_names_equal(const char *s1, const char *s2); 19 20 /* DOCDOC process_environment_t */ 21 typedef struct process_environment_t { 22 /** A pointer to a sorted empty-string-terminated sequence of 23 * NUL-terminated strings of the form "NAME=VALUE". */ 24 char *windows_environment_block; 25 /** A pointer to a NULL-terminated array of pointers to 26 * NUL-terminated strings of the form "NAME=VALUE". */ 27 char **unixoid_environment_block; 28 } process_environment_t; 29 30 process_environment_t *process_environment_make(struct smartlist_t *env_vars); 31 void process_environment_free_(process_environment_t *env); 32 #define process_environment_free(env) \ 33 FREE_AND_NULL(process_environment_t, process_environment_free_, (env)) 34 35 struct smartlist_t *get_current_process_environment_variables(void); 36 37 void set_environment_variable_in_smartlist(struct smartlist_t *env_vars, 38 const char *new_var, 39 void (*free_old)(void*), 40 int free_p); 41 #endif /* !defined(TOR_ENV_H) */