tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

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) */