summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2004-09-22 05:15:56 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:58:59 -0500
commit2f377d5101783ed4d8c96a46aaec61895cc7b6ad (patch)
tree8a397e786d9395c1bfb90469e52940847d18a151
parent2e55ba2018a25aac33cec76ee16c2e9754421448 (diff)
downloadsamba-2f377d5101783ed4d8c96a46aaec61895cc7b6ad.tar.gz
samba-2f377d5101783ed4d8c96a46aaec61895cc7b6ad.tar.xz
samba-2f377d5101783ed4d8c96a46aaec61895cc7b6ad.zip
r2499: - use more efficient wildcard delete in smbclient
- use "*.*" instead of "*" when connected to ancient servers (This used to be commit e28f2027580f31b392ecc9e115ee2eb5fc80f933)
-rw-r--r--source4/client/client.c29
1 files changed, 9 insertions, 20 deletions
diff --git a/source4/client/client.c b/source4/client/client.c
index 45aac0444b..68b30acc67 100644
--- a/source4/client/client.c
+++ b/source4/client/client.c
@@ -624,7 +624,12 @@ static int cmd_dir(const char **cmd_ptr)
pstrcat(mask,p);
}
else {
- pstrcat(mask,"*");
+ if (cli->tree->session->transport->negotiate.protocol <=
+ PROTOCOL_LANMAN1) {
+ pstrcat(mask,"*.*");
+ } else {
+ pstrcat(mask,"*");
+ }
}
do_list(mask, attribute, display_finfo, recurse, True);
@@ -1528,24 +1533,6 @@ static int cmd_queue(const char **cmd_ptr)
/****************************************************************************
delete some files
****************************************************************************/
-static void do_del(file_info *finfo)
-{
- pstring mask;
-
- pstrcpy(mask,cur_dir);
- pstrcat(mask,finfo->name);
-
- if (finfo->mode & FILE_ATTRIBUTE_DIRECTORY)
- return;
-
- if (NT_STATUS_IS_ERR(smbcli_unlink(cli->tree, mask))) {
- d_printf("%s deleting remote file %s\n",smbcli_errstr(cli->tree),mask);
- }
-}
-
-/****************************************************************************
-delete some files
-****************************************************************************/
static int cmd_del(const char **cmd_ptr)
{
pstring mask;
@@ -1563,7 +1550,9 @@ static int cmd_del(const char **cmd_ptr)
}
pstrcat(mask,buf);
- do_list(mask, attribute,do_del,False,False);
+ if (NT_STATUS_IS_ERR(smbcli_unlink(cli->tree, mask))) {
+ d_printf("%s deleting remote file %s\n",smbcli_errstr(cli->tree),mask);
+ }
return 0;
}