forked from osmocom/wireshark
On Windows, convert all of our command-line arguments from UTF-16 to
UTF-8 where we don't already do so. In Wireshark use g_utf16_to_utf8 instead of utf_16to8. This should fix bug 5520. svn path=/trunk/; revision=35411daniel/osmux
parent
b0beaec6a1
commit
3bc1fc3802
|
@ -92,7 +92,7 @@ wireshark_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
|
|||
!ENDIF
|
||||
|
||||
tshark_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
|
||||
wsock32.lib user32.lib \
|
||||
wsock32.lib user32.lib shell32.lib \
|
||||
$(GLIB_LIBS) \
|
||||
wsutil\libwsutil.lib \
|
||||
$(GNUTLS_LIBS) \
|
||||
|
@ -112,7 +112,7 @@ tshark_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
|
|||
!ENDIF
|
||||
|
||||
rawshark_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
|
||||
wsock32.lib user32.lib \
|
||||
wsock32.lib user32.lib shell32.lib \
|
||||
$(GLIB_LIBS) \
|
||||
wsutil\libwsutil.lib \
|
||||
$(GNUTLS_LIBS) \
|
||||
|
@ -143,17 +143,17 @@ editcap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
|
|||
$(GLIB_LIBS)
|
||||
|
||||
mergecap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
|
||||
wsock32.lib user32.lib \
|
||||
wsock32.lib user32.lib shell32.lib \
|
||||
wsutil\libwsutil.lib \
|
||||
$(GLIB_LIBS)
|
||||
|
||||
text2pcap_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
|
||||
wsock32.lib user32.lib \
|
||||
wsock32.lib user32.lib shell32.lib \
|
||||
wsutil\libwsutil.lib \
|
||||
$(GLIB_LIBS)
|
||||
|
||||
dumpcap_LIBS= \
|
||||
wsock32.lib user32.lib \
|
||||
wsock32.lib user32.lib shell32.lib \
|
||||
wsutil\libwsutil.lib \
|
||||
$(GLIB_LIBS) \
|
||||
$(GTHREAD_LIBS)
|
||||
|
@ -177,7 +177,7 @@ dftest_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
|
|||
!ENDIF
|
||||
|
||||
randpkt_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
|
||||
user32.lib \
|
||||
user32.lib shell32.lib \
|
||||
wsutil\libwsutil.lib \
|
||||
$(GLIB_LIBS)
|
||||
|
||||
|
|
21
capinfos.c
21
capinfos.c
|
@ -85,6 +85,10 @@
|
|||
#include "wsutil/wsgetopt.h"
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <shellapi.h>
|
||||
#endif /* _WIN32 */
|
||||
|
||||
#include "svnversion.h"
|
||||
|
||||
/*
|
||||
|
@ -802,6 +806,13 @@ main(int argc, char *argv[])
|
|||
int err;
|
||||
gchar *err_info;
|
||||
int opt;
|
||||
|
||||
#ifdef _WIN32
|
||||
WSADATA wsaData;
|
||||
LPWSTR *wc_argv;
|
||||
int wc_argc, i;
|
||||
#endif /* _WIN32 */
|
||||
|
||||
int status = 0;
|
||||
#ifdef HAVE_PLUGINS
|
||||
char* init_progfile_dir_error;
|
||||
|
@ -813,6 +824,16 @@ main(int argc, char *argv[])
|
|||
size_t hash_bytes;
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
/* Convert our arg list to UTF-8. */
|
||||
wc_argv = CommandLineToArgvW(GetCommandLineW(), &wc_argc);
|
||||
if (wc_argv && wc_argc == argc) {
|
||||
for (i = 0; i < argc; i++) {
|
||||
argv[i] = g_utf16_to_utf8(wc_argv[i], -1, NULL, NULL, NULL);
|
||||
}
|
||||
} /* XXX else bail because something is horribly, horribly wrong? */
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/*
|
||||
* Get credential information for later use.
|
||||
*/
|
||||
|
|
13
dumpcap.c
13
dumpcap.c
|
@ -85,6 +85,7 @@
|
|||
#include "pcapio.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <shellapi.h>
|
||||
#include "capture-wpcap.h"
|
||||
#include <wsutil/unicode-utils.h>
|
||||
#endif
|
||||
|
@ -3305,6 +3306,8 @@ main(int argc, char *argv[])
|
|||
|
||||
#ifdef _WIN32
|
||||
WSADATA wsaData;
|
||||
LPWSTR *wc_argv;
|
||||
int wc_argc;
|
||||
#else
|
||||
struct sigaction action, oldaction;
|
||||
#endif
|
||||
|
@ -3326,6 +3329,16 @@ main(int argc, char *argv[])
|
|||
struct utsname osinfo;
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
/* Convert our arg list to UTF-8. */
|
||||
wc_argv = CommandLineToArgvW(GetCommandLineW(), &wc_argc);
|
||||
if (wc_argv && wc_argc == argc) {
|
||||
for (i = 0; i < argc; i++) {
|
||||
argv[i] = g_utf16_to_utf8(wc_argv[i], -1, NULL, NULL, NULL);
|
||||
}
|
||||
} /* XXX else bail because something is horribly, horribly wrong? */
|
||||
#endif /* _WIN32 */
|
||||
|
||||
#ifdef _WIN32
|
||||
/*
|
||||
* Initialize our DLL search path. MUST be called before LoadLibrary
|
||||
|
|
18
editcap.c
18
editcap.c
|
@ -49,6 +49,8 @@
|
|||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#include <shellapi.h>
|
||||
#include <process.h> /* getpid */
|
||||
#ifdef HAVE_WINSOCK2_H
|
||||
#include <winsock2.h>
|
||||
|
@ -813,6 +815,12 @@ main(int argc, char *argv[])
|
|||
int i, j, err;
|
||||
gchar *err_info;
|
||||
int opt;
|
||||
|
||||
#ifdef _WIN32
|
||||
LPWSTR *wc_argv;
|
||||
int wc_argc;
|
||||
#endif /* _WIN32 */
|
||||
|
||||
char *p;
|
||||
unsigned int snaplen = 0; /* No limit */
|
||||
unsigned int choplen = 0; /* No chop */
|
||||
|
@ -838,6 +846,16 @@ main(int argc, char *argv[])
|
|||
char* init_progfile_dir_error;
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
/* Convert our arg list to UTF-8. */
|
||||
wc_argv = CommandLineToArgvW(GetCommandLineW(), &wc_argc);
|
||||
if (wc_argv && wc_argc == argc) {
|
||||
for (i = 0; i < argc; i++) {
|
||||
argv[i] = g_utf16_to_utf8(wc_argv[i], -1, NULL, NULL, NULL);
|
||||
}
|
||||
} /* XXX else bail because something is horribly, horribly wrong? */
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/*
|
||||
* Get credential information for later use.
|
||||
*/
|
||||
|
|
|
@ -118,7 +118,6 @@
|
|||
#include "../capture-wpcap.h"
|
||||
#include "../capture_wpcap_packet.h"
|
||||
#include <tchar.h> /* Needed for Unicode */
|
||||
#include <wsutil/unicode-utils.h>
|
||||
#include <commctrl.h>
|
||||
#include <shellapi.h>
|
||||
#endif /* _WIN32 */
|
||||
|
@ -2098,7 +2097,7 @@ main(int argc, char *argv[])
|
|||
wc_argv = CommandLineToArgvW(GetCommandLineW(), &wc_argc);
|
||||
if (wc_argv && wc_argc == argc) {
|
||||
for (i = 0; i < argc; i++) {
|
||||
argv[i] = g_strdup(utf_16to8(wc_argv[i]));
|
||||
argv[i] = g_utf16_to_utf8(wc_argv[i], -1, NULL, NULL, NULL);
|
||||
}
|
||||
} /* XXX else bail because something is horribly, horribly wrong? */
|
||||
#endif /* _WIN32 */
|
||||
|
|
21
mergecap.c
21
mergecap.c
|
@ -41,6 +41,11 @@
|
|||
#include <fcntl.h>
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#include <shellapi.h>
|
||||
#endif /* _WIN32 */
|
||||
|
||||
static int
|
||||
get_natural_int(const char *string, const char *name)
|
||||
{
|
||||
|
@ -143,6 +148,12 @@ int
|
|||
main(int argc, char *argv[])
|
||||
{
|
||||
int opt;
|
||||
|
||||
#ifdef _WIN32
|
||||
LPWSTR *wc_argv;
|
||||
int wc_argc;
|
||||
#endif /* _WIN32 */
|
||||
|
||||
gboolean do_append = FALSE;
|
||||
gboolean verbose = FALSE;
|
||||
int in_file_count = 0;
|
||||
|
@ -162,6 +173,16 @@ main(int argc, char *argv[])
|
|||
gboolean got_read_error = FALSE, got_write_error = FALSE;
|
||||
int count;
|
||||
|
||||
#ifdef _WIN32
|
||||
/* Convert our arg list to UTF-8. */
|
||||
wc_argv = CommandLineToArgvW(GetCommandLineW(), &wc_argc);
|
||||
if (wc_argv && wc_argc == argc) {
|
||||
for (i = 0; i < argc; i++) {
|
||||
argv[i] = g_utf16_to_utf8(wc_argv[i], -1, NULL, NULL, NULL);
|
||||
}
|
||||
} /* XXX else bail because something is horribly, horribly wrong? */
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/* Process the options first */
|
||||
while ((opt = getopt(argc, argv, "hvas:T:F:w:")) != -1) {
|
||||
|
||||
|
|
22
randpkt.c
22
randpkt.c
|
@ -50,6 +50,11 @@
|
|||
#include <glib.h>
|
||||
#include "wiretap/wtap.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#include <shellapi.h>
|
||||
#endif /* _WIN32 */
|
||||
|
||||
#define array_length(x) (sizeof x / sizeof x[0])
|
||||
|
||||
/* Types of produceable packets */
|
||||
|
@ -502,12 +507,29 @@ main(int argc, char **argv)
|
|||
guint8 buffer[65536];
|
||||
|
||||
int opt;
|
||||
|
||||
#ifdef _WIN32
|
||||
LPWSTR *wc_argv;
|
||||
int wc_argc;
|
||||
#endif /* _WIN32 */
|
||||
|
||||
|
||||
int produce_count = 1000; /* number of pkts to produce */
|
||||
int produce_type = PKT_ETHERNET;
|
||||
char *produce_filename = NULL;
|
||||
int produce_max_bytes = 5000;
|
||||
pkt_example *example;
|
||||
|
||||
#ifdef _WIN32
|
||||
/* Convert our arg list to UTF-8. */
|
||||
wc_argv = CommandLineToArgvW(GetCommandLineW(), &wc_argc);
|
||||
if (wc_argv && wc_argc == argc) {
|
||||
for (i = 0; i < argc; i++) {
|
||||
argv[i] = g_utf16_to_utf8(wc_argv[i], -1, NULL, NULL, NULL);
|
||||
}
|
||||
} /* XXX else bail because something is horribly, horribly wrong? */
|
||||
#endif /* _WIN32 */
|
||||
|
||||
while ((opt = getopt(argc, argv, "b:c:ht:")) != -1) {
|
||||
switch (opt) {
|
||||
case 'b': /* max bytes */
|
||||
|
|
18
rawshark.c
18
rawshark.c
|
@ -117,6 +117,10 @@
|
|||
#endif /* HAVE_LIBPCAP */
|
||||
#include "log.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <shellapi.h>
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/*
|
||||
* This is the template for the decode as option; it is shared between the
|
||||
* various functions that output the usage for this parameter.
|
||||
|
@ -430,7 +434,9 @@ main(int argc, char *argv[])
|
|||
gboolean arg_error = FALSE;
|
||||
|
||||
#ifdef _WIN32
|
||||
WSADATA wsaData;
|
||||
WSADATA wsaData;
|
||||
LPWSTR *wc_argv;
|
||||
int wc_argc;
|
||||
#endif /* _WIN32 */
|
||||
|
||||
char *gpf_path, *pf_path;
|
||||
|
@ -453,6 +459,16 @@ main(int argc, char *argv[])
|
|||
|
||||
static const char optstring[] = OPTSTRING_INIT;
|
||||
|
||||
#ifdef _WIN32
|
||||
/* Convert our arg list to UTF-8. */
|
||||
wc_argv = CommandLineToArgvW(GetCommandLineW(), &wc_argc);
|
||||
if (wc_argv && wc_argc == argc) {
|
||||
for (i = 0; i < argc; i++) {
|
||||
argv[i] = g_utf16_to_utf8(wc_argv[i], -1, NULL, NULL, NULL);
|
||||
}
|
||||
} /* XXX else bail because something is horribly, horribly wrong? */
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/*
|
||||
* Get credential information for later use.
|
||||
*/
|
||||
|
|
22
text2pcap.c
22
text2pcap.c
|
@ -138,6 +138,11 @@
|
|||
#include "text2pcap.h"
|
||||
#include "svnversion.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#include <shellapi.h>
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/*--- Options --------------------------------------------------------------------*/
|
||||
|
||||
/* Debug level */
|
||||
|
@ -1108,6 +1113,20 @@ parse_options (int argc, char *argv[])
|
|||
{
|
||||
int c;
|
||||
char *p;
|
||||
#ifdef _WIN32
|
||||
LPWSTR *wc_argv;
|
||||
int wc_argc, i;
|
||||
#endif /* _WIN32 */
|
||||
|
||||
#ifdef _WIN32
|
||||
/* Convert our arg list to UTF-8. */
|
||||
wc_argv = CommandLineToArgvW(GetCommandLineW(), &wc_argc);
|
||||
if (wc_argv && wc_argc == argc) {
|
||||
for (i = 0; i < argc; i++) {
|
||||
argv[i] = g_utf16_to_utf8(wc_argv[i], -1, NULL, NULL, NULL);
|
||||
}
|
||||
} /* XXX else bail because something is horribly, horribly wrong? */
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/* Scan CLI parameters */
|
||||
while ((c = getopt(argc, argv, "dhqe:i:l:m:o:u:s:S:t:T:")) != -1) {
|
||||
|
@ -1351,7 +1370,8 @@ parse_options (int argc, char *argv[])
|
|||
}
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
parse_options(argc, argv);
|
||||
|
||||
|
|
13
tshark.c
13
tshark.c
|
@ -96,6 +96,7 @@
|
|||
#ifdef _WIN32
|
||||
#include "capture-wpcap.h"
|
||||
#include "capture_errs.h"
|
||||
#include <shellapi.h>
|
||||
#endif /* _WIN32 */
|
||||
#include "capture_sync.h"
|
||||
#endif /* HAVE_LIBPCAP */
|
||||
|
@ -765,6 +766,8 @@ main(int argc, char *argv[])
|
|||
|
||||
#ifdef _WIN32
|
||||
WSADATA wsaData;
|
||||
LPWSTR *wc_argv;
|
||||
int wc_argc, i;
|
||||
#endif /* _WIN32 */
|
||||
|
||||
char *gpf_path, *pf_path;
|
||||
|
@ -816,6 +819,16 @@ main(int argc, char *argv[])
|
|||
|
||||
static const char optstring[] = OPTSTRING;
|
||||
|
||||
#ifdef _WIN32
|
||||
/* Convert our arg list to UTF-8. */
|
||||
wc_argv = CommandLineToArgvW(GetCommandLineW(), &wc_argc);
|
||||
if (wc_argv && wc_argc == argc) {
|
||||
for (i = 0; i < argc; i++) {
|
||||
argv[i] = g_utf16_to_utf8(wc_argv[i], -1, NULL, NULL, NULL);
|
||||
}
|
||||
} /* XXX else bail because something is horribly, horribly wrong? */
|
||||
#endif /* _WIN32 */
|
||||
|
||||
/*
|
||||
* Get credential information for later use.
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue