/* util.c
* Utility routines
*
- * $Id: util.c,v 1.77 2004/02/07 04:25:16 guy Exp $
+ * $Id: util.c,v 1.78 2004/03/12 17:23:56 gerald Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
/* Try to figure out if we're remotely connected, e.g. via ssh or
Terminal Server, and create a capture filter that matches aspects of the
connection. We match the following environment variables:
-
+
SSH_CONNECTION (ssh): <remote IP> <remote port> <local IP> <local port>
SSH_CLIENT (ssh): <remote IP> <remote port> <local port>
REMOTEHOST (tcsh, others?): <remote name>
gchar *get_conn_cfilter(void) {
static GString *filter_str = NULL;
gchar *env, **tokens;
-
+
if (filter_str == NULL) {
filter_str = g_string_new("");
}
"and tcp port %s)", tokens[1], tokens[0], tokens[2]);
return filter_str->str;
} else if ((env = getenv("REMOTEHOST")) != NULL) {
+ if (strcasecmp(env, "localhost") == 0 || strcmp(env, "127.0.0.1") == 0) {
+ return "";
+ }
g_string_sprintf(filter_str, "not ip host %s", env);
return filter_str->str;
} else if ((env = getenv("DISPLAY")) != NULL) {
tokens = g_strsplit(env, ":", 2);
if (tokens[0] && tokens[0][0] != 0) {
- g_string_sprintf(filter_str, "not ip host %s",
+ if (strcasecmp(tokens[0], "localhost") == 0 ||
+ strcmp(tokens[0], "127.0.0.1") == 0) {
+ return "";
+ }
+ g_string_sprintf(filter_str, "not ip host %s",
tokens[0]);
return filter_str->str;
}
}
}
return "";
-}
+}