svn commit: samba r9708 - in branches/SOC/SAMBA_3_0/source/client: .
kalim at samba.org
kalim at samba.org
Sun Aug 28 07:30:41 GMT 2005
Author: kalim
Date: 2005-08-28 07:30:40 +0000 (Sun, 28 Aug 2005)
New Revision: 9708
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9708
Log:
Patched up and enabled mput command. Support for directories/recursion coming soon.
-Kalim
Modified:
branches/SOC/SAMBA_3_0/source/client/client.c
Changeset:
Modified: branches/SOC/SAMBA_3_0/source/client/client.c
===================================================================
--- branches/SOC/SAMBA_3_0/source/client/client.c 2005-08-28 02:38:11 UTC (rev 9707)
+++ branches/SOC/SAMBA_3_0/source/client/client.c 2005-08-28 07:30:40 UTC (rev 9708)
@@ -656,10 +656,13 @@
case SMBC_IPC_SHARE:
break;
case SMBC_DIR:
+ if (!dirs)
+ break;
case SMBC_FILE:
pstrcpy(dentname, res);
pstrcat(dentname, dent->name);
- if (mask_match(dent->name, mask, False))
+ /*if (mask_match(dent->name, mask, False))*/
+ if (mask_match(dentname, mask, False))
{
if (smbc_stat(dentname, &stat) < 0)
{
@@ -670,8 +673,6 @@
fn(dent->name, &stat);
}
}
- else
- d_printf("no match: %s >< %s\n", dent->name, mask);
break;
case SMBC_LINK:
break;
@@ -808,10 +809,14 @@
pstring buf;
char *p=buf;
+ pstrcpy(mask, "smb:");
+ pstrcat(mask, service);
+ pstrcat(mask, cur_dir);
+
if (next_token_nr(NULL,buf,NULL,sizeof(buf)))
- pstrcpy(mask,buf);
+ pstrcat(mask,buf);
else
- pstrcpy(mask,"*");
+ pstrcat(mask,"*");
tool_list(mask, mode, display_stat, recurse, True);
return 0;
@@ -1031,57 +1036,54 @@
Do an mget operation on one file.
****************************************************************************/
-static void do_mget(file_info *finfo)
+static void do_mget(char *name, struct stat *st)
{
pstring rname;
pstring quest;
pstring saved_curdir;
pstring mget_mask;
+ mode_t mode;
- if (strequal(finfo->name,".") || strequal(finfo->name,".."))
+ if (strequal(name,".") || strequal(name,".."))
return;
- if (abort_mget) {
- d_printf("mget aborted\n");
- return;
- }
-
- if (finfo->mode & aDIR)
- slprintf(quest,sizeof(pstring)-1,
- "Get directory %s? ",finfo->name);
+ if (S_ISDIR(mode))
+ slprintf(quest,sizeof(pstring)-1, "Get directory %s%s? ", cur_dir, name);
else
- slprintf(quest,sizeof(pstring)-1,
- "Get file %s? ",finfo->name);
+ slprintf(quest,sizeof(pstring)-1, "Get file %s%s? ", cur_dir, name);
if (prompt && !yesno(quest))
return;
- if (!(finfo->mode & aDIR)) {
- pstrcpy(rname,cur_dir);
- pstrcat(rname,finfo->name);
- do_get(rname, finfo->name, False);
+ if (!S_ISDIR(mode)) {
+ pstrcpy(rname,"smb:");
+ pstrcat(rname,service);
+ pstrcat(rname,cur_dir);
+ pstrcat(rname,name);
+ do_get(rname,name, False);
return;
}
/* handle directories */
- pstrcpy(saved_curdir,cur_dir);
+ /* TODO: clean this code up for recursive calls */
+ /*pstrcpy(saved_curdir,cur_dir);
- pstrcat(cur_dir,finfo->name);
+ pstrcat(cur_dir,name);
pstrcat(cur_dir,"/");
- unix_format(finfo->name);
+ unix_format(name);
if (lowercase)
- strlower_m(finfo->name);
+ strlower_m(name);
- if (!directory_exist(finfo->name,NULL) &&
- mkdir(finfo->name,0777) != 0) {
- d_printf("failed to create directory %s\n",finfo->name);
+ if (!directory_exist(name,NULL) &&
+ mkdir(name,0777) != 0) {
+ d_printf("failed to create directory %s\n",name);
pstrcpy(cur_dir,saved_curdir);
return;
}
- if (chdir(finfo->name) != 0) {
- d_printf("failed to chdir to directory %s\n",finfo->name);
+ if (chdir(name) != 0) {
+ d_printf("failed to chdir to directory %s\n",name);
pstrcpy(cur_dir,saved_curdir);
return;
}
@@ -1089,9 +1091,9 @@
pstrcpy(mget_mask,cur_dir);
pstrcat(mget_mask,"*");
- do_list(mget_mask, aSYSTEM | aHIDDEN | aDIR,do_mget,False, True);
+ tool_list(mget_mask, mode, do_mget, False, True);
chdir("..");
- pstrcpy(cur_dir,saved_curdir);
+ pstrcpy(cur_dir,saved_curdir);*/
}
/****************************************************************************
@@ -1141,36 +1143,41 @@
static int cmd_mget(void)
{
- uint16 attribute = aSYSTEM | aHIDDEN;
+ mode_t mode;
pstring mget_mask;
pstring buf;
char *p=buf;
*mget_mask = 0;
- if (recurse)
- attribute |= aDIR;
-
- abort_mget = False;
-
while (next_token_nr(NULL,p,NULL,sizeof(buf))) {
- pstrcpy(mget_mask,cur_dir);
+ pstrcpy(mget_mask, "smb:");
+ pstrcat(mget_mask, service);
+ pstrcat(mget_mask,cur_dir);
if(mget_mask[strlen(mget_mask)-1]!='/')
pstrcat(mget_mask,"/");
if (*p == '/')
- pstrcpy(mget_mask,p);
+ {
+ pstrcpy(mget_mask, "smb:");
+ pstrcat(mget_mask, service);
+ pstrcat(mget_mask,p);
+ }
else
pstrcat(mget_mask,p);
- do_list(mget_mask, attribute,do_mget,False,True);
+ /* TODO: enable directories on calls to tool_list
+ once recursion is worked out */
+ tool_list(mget_mask, mode, do_mget, recurse, False);
}
if (!*mget_mask) {
- pstrcpy(mget_mask,cur_dir);
+ pstrcpy(mget_mask, "smb:");
+ pstrcat(mget_mask, service);
+ pstrcat(mget_mask,cur_dir);
if(mget_mask[strlen(mget_mask)-1]!='/')
pstrcat(mget_mask,"/");
pstrcat(mget_mask,"*");
- do_list(mget_mask, attribute,do_mget,False,True);
+ tool_list(mget_mask, mode, do_mget, recurse, False);
}
return 0;
@@ -2915,7 +2922,7 @@
{"ls",cmd_dir,"<mask> list the contents of the current directory",{COMPL_REMOTE,COMPL_NONE}},
/* {"mask",cmd_select,"<mask> mask all filenames against this",{COMPL_REMOTE,COMPL_NONE}}, */
{"md",cmd_mkdir,"<directory> make a directory",{COMPL_NONE,COMPL_NONE}},
-/* {"mget",cmd_mget,"<mask> get all the matching files",{COMPL_REMOTE,COMPL_NONE}}, */
+ {"mget",cmd_mget,"<mask> get all the matching files",{COMPL_REMOTE,COMPL_NONE}},
{"mkdir",cmd_mkdir,"<directory> make a directory",{COMPL_NONE,COMPL_NONE}},
/* {"more",cmd_more,"<remote name> view a remote file with your pager",{COMPL_REMOTE,COMPL_NONE}}, */
{"mput",cmd_mput,"<mask> put all matching files",{COMPL_REMOTE,COMPL_NONE}},
More information about the samba-cvs
mailing list