From Jean-François Wauthy:
[obnox/wireshark/wip.git] / util.c
diff --git a/util.c b/util.c
index 2bf225bc12fca1e1706134cbbb99a7d50adcf0b7..a86b48afd34a7c09c9e971927294b062c37ab812 100644 (file)
--- a/util.c
+++ b/util.c
 
 #include <epan/address.h>
 #include <epan/addr_resolv.h>
-#include <epan/ws_strsplit.h>
+#include <epan/strutil.h>
 
 #include "util.h"
 
-#ifdef NEED_G_ASCII_STRCASECMP_H
-#include "epan/g_ascii_strcasecmp.h"
-#endif
-
 /*
  * Collect command-line arguments as a string consisting of the arguments,
  * separated by spaces.
  */
 char *
-get_args_as_string(int argc, char **argv, int optind)
+get_args_as_string(int argc, char **argv, int optindex)
 {
        int len;
        int i;
@@ -62,8 +58,8 @@ get_args_as_string(int argc, char **argv, int optind)
         * Find out how long the string will be.
         */
        len = 0;
-       for (i = optind; i < argc; i++) {
-               len += strlen(argv[i]);
+       for (i = optindex; i < argc; i++) {
+               len += (int) strlen(argv[i]);
                len++;  /* space, or '\0' if this is the last argument */
        }
 
@@ -76,13 +72,13 @@ get_args_as_string(int argc, char **argv, int optind)
         * Now construct the string.
         */
        argstring[0] = '\0';
-       i = optind;
+       i = optindex;
        for (;;) {
-               strncat(argstring, argv[i], len - strlen(argstring));
+               g_strlcat(argstring, argv[i], len);
                i++;
                if (i == argc)
                        break;
-               strncat(argstring, " ", len - strlen(argstring));
+               g_strlcat(argstring, " ", len);
        }
        return argstring;
 }
@@ -156,27 +152,30 @@ const gchar *get_conn_cfilter(void) {
        if ((env = getenv("SSH_CONNECTION")) != NULL) {
                tokens = g_strsplit(env, " ", 4);
                if (tokens[3]) {
-                       g_string_sprintf(filter_str, "not (tcp port %s and %s host %s "
+                       g_string_printf(filter_str, "not (tcp port %s and %s host %s "
                                                         "and tcp port %s and %s host %s)", tokens[1], host_ip_af(tokens[0]), tokens[0],
                                tokens[3], host_ip_af(tokens[2]), tokens[2]);
                        return filter_str->str;
                }
        } else if ((env = getenv("SSH_CLIENT")) != NULL) {
                tokens = g_strsplit(env, " ", 3);
-               g_string_sprintf(filter_str, "not (tcp port %s and %s host %s "
+               g_string_printf(filter_str, "not (tcp port %s and %s host %s "
                        "and tcp port %s)", tokens[1], host_ip_af(tokens[0]), tokens[0], tokens[2]);
                return filter_str->str;
        } else if ((env = getenv("REMOTEHOST")) != NULL) {
-               if (g_ascii_strcasecmp(env, "localhost") == 0 || strcmp(env, "127.0.0.1") == 0) {
+               /* FreeBSD 7.0 sets REMOTEHOST to an empty string */
+               if (g_ascii_strcasecmp(env, "localhost") == 0 ||
+                   strcmp(env, "127.0.0.1") == 0 ||
+                   strcmp(env, "") == 0) {
                        return "";
                }
-               g_string_sprintf(filter_str, "not %s host %s", host_ip_af(env), env);
+               g_string_printf(filter_str, "not %s host %s", host_ip_af(env), env);
                return filter_str->str;
        } else if ((env = getenv("DISPLAY")) != NULL) {
                /*
                 * This mirrors what _X11TransConnectDisplay() does.
                 * Note that, on some systems, the hostname can
-                * being with "/", which means that it's a pathname
+                * begin with "/", which means that it's a pathname
                 * of a UNIX domain socket to connect to.
                 *
                 * The comments mirror those in _X11TransConnectDisplay(),
@@ -299,7 +298,7 @@ const gchar *get_conn_cfilter(void) {
                        }
                }
 
-               g_string_sprintf(filter_str, "not %s host %s",
+               g_string_printf(filter_str, "not %s host %s",
                        host_ip_af(phostname), phostname);
                g_free(phostname);
                return filter_str->str;
@@ -315,7 +314,7 @@ const gchar *get_conn_cfilter(void) {
                 * http://www.microsoft.com/technet/archive/termsrv/maintain/featusability/tsrvapi.mspx?mfr=true
                 */
                if (g_ascii_strncasecmp(env, "rdp", 3) == 0) {
-                       g_string_sprintf(filter_str, "not tcp port 3389");
+                       g_string_printf(filter_str, "not tcp port 3389");
                        return filter_str->str;
                }
        }