diff options
author | Gerald Carter <jerry@samba.org> | 2004-03-11 14:52:35 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2004-03-11 14:52:35 +0000 |
commit | b025b77df1f3ffbc5c350505f7f2d4d42ac00451 (patch) | |
tree | 360b2fe1f53d9b7dd657456368980e3afc9a73c3 /source3 | |
parent | ba76a6102d8bddf69515e503e73d1af0dd1a8d3c (diff) | |
download | samba-b025b77df1f3ffbc5c350505f7f2d4d42ac00451.tar.gz samba-b025b77df1f3ffbc5c350505f7f2d4d42ac00451.tar.bz2 samba-b025b77df1f3ffbc5c350505f7f2d4d42ac00451.zip |
BUG 1088: patch from SATOH Fumiyasu <fumiya@miraclinux.com> -- use strchr_m() for query_host (smbclient -L)
(This used to be commit e7d2315e45df7e2e4e586a8fc4a32d6880e83e4f)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/client/client.c | 48 |
1 files changed, 19 insertions, 29 deletions
diff --git a/source3/client/client.c b/source3/client/client.c index 3a189a13e7..2d640a5573 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -2846,27 +2846,6 @@ static int do_message_op(void) } -/** - * Process "-L hostname" option. - * - * We don't actually do anything yet -- we just stash the name in a - * global variable and do the query when all options have been read. - **/ - -static void remember_query_host(const char *arg, - pstring query_host) -{ - char *slash; - - while (*arg == '\\' || *arg == '/') - arg++; - pstrcpy(query_host, arg); - if ((slash = strchr(query_host, '/')) - || (slash = strchr(query_host, '\\'))) { - *slash = 0; - } -} - /**************************************************************************** main program ****************************************************************************/ @@ -2961,7 +2940,7 @@ static void remember_query_host(const char *arg, break; case 'L': - remember_query_host(poptGetOptArg(pc), query_host); + pstrcpy(query_host, poptGetOptArg(pc)); break; case 't': pstrcpy(term_code, poptGetOptArg(pc)); @@ -3069,14 +3048,25 @@ static void remember_query_host(const char *arg, return do_tar_op(base_directory); } - if ((p=strchr_m(query_host,'#'))) { - *p = 0; - p++; - sscanf(p, "%x", &name_type); - } - if (*query_host) { - return do_host_query(query_host); + char *qhost = query_host; + char *slash; + + while (*qhost == '\\' || *qhost == '/') + qhost++; + + if ((slash = strchr_m(qhost, '/')) + || (slash = strchr_m(qhost, '\\'))) { + *slash = 0; + } + + if ((p=strchr_m(qhost, '#'))) { + *p = 0; + p++; + sscanf(p, "%x", &name_type); + } + + return do_host_query(qhost); } if (message) { |