From 15575571aa69e399ab6f1cc54cbd3c14a0c20a69 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Nov 26 2010 13:30:45 +0000 Subject: add missing patch --- diff --git a/wireshark-1.4.2-group-msg.patch b/wireshark-1.4.2-group-msg.patch new file mode 100644 index 0000000..8ad42df --- /dev/null +++ b/wireshark-1.4.2-group-msg.patch @@ -0,0 +1,60 @@ +Customize 'permission denied' error. + +From: Jan Safranek + +Add Fedora-specific message to error output when dumpcap cannot be started +because of permissions. + +Signed-off-by: Jan Safranek +--- + + capture_sync.c | 14 ++++++++++---- + 1 files changed, 10 insertions(+), 4 deletions(-) + + +diff --git a/capture_sync.c b/capture_sync.c +index 68b79f7..71de366 100644 +--- a/capture_sync.c ++++ b/capture_sync.c +@@ -351,6 +351,7 @@ sync_pipe_start(capture_options *capture_opts) { + gchar *signal_pipe_name; + #else + char errmsg[1024+1]; ++ const char *securitymsg = ""; + int sync_pipe[2]; /* pipe used to send messages from child to parent */ + enum PIPES { PIPE_READ, PIPE_WRITE }; /* Constants 0 and 1 for PIPE_READ and PIPE_WRITE */ + #endif +@@ -596,8 +597,10 @@ sync_pipe_start(capture_options *capture_opts) { + dup2(sync_pipe[PIPE_WRITE], 2); + ws_close(sync_pipe[PIPE_READ]); + execv(argv[0], (gpointer)argv); +- g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s", +- argv[0], strerror(errno)); ++ if (errno == EPERM || errno == EACCES) ++ securitymsg = "\nAre you memeber of 'wireshark' group? Try running 'usermod -a -G wireshark ' as root."; ++ g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s%s", ++ argv[0], strerror(errno), securitymsg); + sync_pipe_errmsg_to_parent(2, errmsg, ""); + + /* Exit with "_exit()", so that we don't close the connection +@@ -687,6 +690,7 @@ sync_pipe_open_command(const char** argv, int *data_read_fd, + int i; + #else + char errmsg[1024+1]; ++ const char *securitymsg = ""; + int sync_pipe[2]; /* pipe used to send messages from child to parent */ + int data_pipe[2]; /* pipe used to send data from child to parent */ + #endif +@@ -811,8 +815,10 @@ sync_pipe_open_command(const char** argv, int *data_read_fd, + ws_close(sync_pipe[PIPE_READ]); + ws_close(sync_pipe[PIPE_WRITE]); + execv(argv[0], (gpointer)argv); +- g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s", +- argv[0], strerror(errno)); ++ if (errno == EPERM || errno == EACCES) ++ securitymsg = "\nAre you memeber of 'wireshark' group? Try running 'usermod -a -G wireshark ' as root."; ++ g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s%s", ++ argv[0], strerror(errno), securitymsg); + sync_pipe_errmsg_to_parent(2, errmsg, ""); + + /* Exit with "_exit()", so that we don't close the connection