]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Switch over to tor_strtok_r instead of strtok_r.
authorMike Perry <mikeperry-git@fscked.org>
Mon, 10 Aug 2009 01:42:29 +0000 (18:42 -0700)
committerMike Perry <mikeperry-git@fscked.org>
Mon, 10 Aug 2009 01:42:29 +0000 (18:42 -0700)
src/common/compat.h
src/or/dirserv.c
src/or/eventdns.c

index 3d429486e8b7f45acbb907dfb69d61bac18a5e73..edd09d868390eca852d5d8e6178c1234d6dabe68 100644 (file)
@@ -269,9 +269,9 @@ extern const char TOR_TOLOWER_TABLE[];
 
 char *tor_strtok_r_impl(char *str, const char *sep, char **lasts);
 #ifdef HAVE_STRTOK_R
-#define tor_strok_r(str, sep, lasts) strtok_r(str, sep, lasts)
+#define tor_strtok_r(str, sep, lasts) strtok_r(str, sep, lasts)
 #else
-#define tor_strok_r(str, sep, lasts) tor_strtok_r_impl(str, sep, lasts)
+#define tor_strtok_r(str, sep, lasts) tor_strtok_r_impl(str, sep, lasts)
 #endif
 
 #ifdef MS_WINDOWS
index 32ddcd0b0a7648b6dbc2f055a71a01b387f76f75..3b7b2ff4bc7f6867147a32953bf78644be2cecc6 100644 (file)
@@ -2224,22 +2224,6 @@ router_clear_status_flags(routerinfo_t *router)
     router->is_bad_exit = router->is_bad_directory = 0;
 }
 
-#ifndef HAVE_STRTOK_R
-/*
- * XXX-MP: If a system lacks strtok_r and we use a non-reentrant strtok,
- * we may introduce odd bugs if we call a codepath that also uses strtok
- * and resets its internal state. Do we want to abandon use of strtok
- * entirely for this reason? Roger mentioned smartlist_split and
- * eat_whitespace() as alternatives.
- */
-static char *
-strtok_r(char *s, const char *delim, char **state)
-{
-  (void)state;
-  return strtok(s, delim);
-}
-#endif
-
 /**
  * Helper function to parse out a line in the measured bandwidth file
  * into a measured_bw_line_t output structure. Returns -1 on failure
@@ -2253,7 +2237,7 @@ measured_bw_line_parse(measured_bw_line_t *out, const char *orig_line)
   int got_bw = 0;
   int got_node_id = 0;
   char *strtok_state; /* lame sauce d'jour */
-  cp = strtok_r(cp, " \t", &strtok_state);
+  cp = tor_strtok_r(cp, " \t", &strtok_state);
 
   if (!cp) {
     log_warn(LD_DIRSERV, "Invalid line in bandwidth file: %s",
@@ -2308,7 +2292,7 @@ measured_bw_line_parse(measured_bw_line_t *out, const char *orig_line)
       strncpy(out->node_hex, cp, sizeof(out->node_hex));
       got_node_id=1;
     }
-  } while ((cp = strtok_r(NULL, " \t", &strtok_state)));
+  } while ((cp = tor_strtok_r(NULL, " \t", &strtok_state)));
 
   if (got_bw && got_node_id) {
     tor_free(line);
index 9578b24cae084d2237c7f8bd33c5dc8e49984d99..b413b6ae97737874fab1356e81c6835f7915567c 100644 (file)
@@ -2889,14 +2889,6 @@ evdns_resolv_set_defaults(int flags) {
        if (flags & DNS_OPTION_NAMESERVERS) evdns_nameserver_ip_add("127.0.0.1");
 }
 
-#ifndef HAVE_STRTOK_R
-static char *
-strtok_r(char *s, const char *delim, char **state) {
-       (void)state;
-       return strtok(s, delim);
-}
-#endif
-
 /* helper version of atoi which returns -1 on error */
 static int
 strtoint(const char *const str) {
@@ -2973,9 +2965,9 @@ static void
 resolv_conf_parse_line(char *const start, int flags) {
        char *strtok_state;
        static const char *const delims = " \t";
-#define NEXT_TOKEN strtok_r(NULL, delims, &strtok_state)
+#define NEXT_TOKEN tor_strtok_r(NULL, delims, &strtok_state)
 
-       char *const first_token = strtok_r(start, delims, &strtok_state);
+       char *const first_token = tor_strtok_r(start, delims, &strtok_state);
        if (!first_token) return;
 
        if (!strcmp(first_token, "nameserver") && (flags & DNS_OPTION_NAMESERVERS)) {