Loading src/common/util.c +21 −0 Original line number Diff line number Diff line Loading @@ -1453,6 +1453,27 @@ try_next_line: return 1; } /** Expand any homedir prefix on 'filename'; return a newly allocated * string. */ char *expand_filename(const char *filename) { tor_assert(filename); if (!strncmp(filename,"~/",2)) { const char *home = getenv("HOME"); char *result; if (!home) { log_fn(LOG_ERR, "Couldn't find $HOME environment variable while expanding %s", filename); return NULL; } /* minus two characters for ~/, plus one for /, plus one for NUL. */ result = tor_malloc(strlen(home)+strlen(filename)+16); sprintf(result,"%s/%s",home,filename+2); return result; } else { return tor_strdup(filename); } } /** Return true iff <b>ip</b> (in host order) is an IP reserved to localhost, * or reserved for local networks by RFC 1918. */ Loading src/common/util.h +1 −0 Original line number Diff line number Diff line Loading @@ -217,6 +217,7 @@ int check_private_dir(const char *dirname, int create); int write_str_to_file(const char *fname, const char *str); char *read_file_to_str(const char *filename); int parse_line_from_file(char *line, int maxlen, FILE *f, char **key_out, char **value_out); char *expand_filename(const char *filename); int spawn_func(int (*func)(void *), void *data); void spawn_exit(); Loading Loading
src/common/util.c +21 −0 Original line number Diff line number Diff line Loading @@ -1453,6 +1453,27 @@ try_next_line: return 1; } /** Expand any homedir prefix on 'filename'; return a newly allocated * string. */ char *expand_filename(const char *filename) { tor_assert(filename); if (!strncmp(filename,"~/",2)) { const char *home = getenv("HOME"); char *result; if (!home) { log_fn(LOG_ERR, "Couldn't find $HOME environment variable while expanding %s", filename); return NULL; } /* minus two characters for ~/, plus one for /, plus one for NUL. */ result = tor_malloc(strlen(home)+strlen(filename)+16); sprintf(result,"%s/%s",home,filename+2); return result; } else { return tor_strdup(filename); } } /** Return true iff <b>ip</b> (in host order) is an IP reserved to localhost, * or reserved for local networks by RFC 1918. */ Loading
src/common/util.h +1 −0 Original line number Diff line number Diff line Loading @@ -217,6 +217,7 @@ int check_private_dir(const char *dirname, int create); int write_str_to_file(const char *fname, const char *str); char *read_file_to_str(const char *filename); int parse_line_from_file(char *line, int maxlen, FILE *f, char **key_out, char **value_out); char *expand_filename(const char *filename); int spawn_func(int (*func)(void *), void *data); void spawn_exit(); Loading