Author: jra Date: 2007-07-24 22:28:19 +0000 (Tue, 24 Jul 2007) New Revision: 24036
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24036 Log: Fix dfs rename bug in smbclient reported by Thomas Bork <[EMAIL PROTECTED]>. Couldn't rename file as we weren't DFS enabling the target path. Jeremy. Modified: branches/SAMBA_3_0_25/source/client/client.c branches/SAMBA_3_2/source/client/client.c branches/SAMBA_3_2_0/source/client/client.c Changeset: Modified: branches/SAMBA_3_0_25/source/client/client.c =================================================================== --- branches/SAMBA_3_0_25/source/client/client.c 2007-07-24 11:52:38 UTC (rev 24035) +++ branches/SAMBA_3_0_25/source/client/client.c 2007-07-24 22:28:19 UTC (rev 24036) @@ -2649,7 +2649,8 @@ pstring src,dest; pstring buf,buf2; struct cli_state *targetcli; - pstring targetname; + pstring targetsrc; + pstring targetdest; pstrcpy(src,cur_dir); pstrcpy(dest,cur_dir); @@ -2663,15 +2664,23 @@ pstrcat(src,buf); pstrcat(dest,buf2); - if ( !cli_resolve_path( "", cli, src, &targetcli, targetname ) ) { - d_printf("chown %s: %s\n", src, cli_errstr(cli)); + if ( !cli_resolve_path( "", cli, src, &targetcli, targetsrc ) ) { + d_printf("rename %s: %s\n", src, cli_errstr(cli)); return 1; } - if (!cli_rename(targetcli, targetname, dest)) { - d_printf("%s renaming files\n",cli_errstr(targetcli)); + if ( !cli_resolve_path( "", cli, dest, &targetcli, targetdest ) ) { + d_printf("rename %s: %s\n", dest, cli_errstr(cli)); return 1; } + + if (!cli_rename(targetcli, targetsrc, targetdest)) { + d_printf("%s renaming files %s -> %s \n", + cli_errstr(targetcli), + targetsrc, + targetdest); + return 1; + } return 0; } Modified: branches/SAMBA_3_2/source/client/client.c =================================================================== --- branches/SAMBA_3_2/source/client/client.c 2007-07-24 11:52:38 UTC (rev 24035) +++ branches/SAMBA_3_2/source/client/client.c 2007-07-24 22:28:19 UTC (rev 24036) @@ -2727,7 +2727,8 @@ pstring src,dest; pstring buf,buf2; struct cli_state *targetcli; - pstring targetname; + pstring targetsrc; + pstring targetdest; pstrcpy(src,cur_dir); pstrcpy(dest,cur_dir); @@ -2741,15 +2742,23 @@ pstrcat(src,buf); pstrcat(dest,buf2); - if ( !cli_resolve_path( "", cli, src, &targetcli, targetname ) ) { - d_printf("chown %s: %s\n", src, cli_errstr(cli)); + if ( !cli_resolve_path( "", cli, src, &targetcli, targetsrc ) ) { + d_printf("rename %s: %s\n", src, cli_errstr(cli)); return 1; } - if (!cli_rename(targetcli, targetname, dest)) { - d_printf("%s renaming files\n",cli_errstr(targetcli)); + if ( !cli_resolve_path( "", cli, dest, &targetcli, targetdest ) ) { + d_printf("rename %s: %s\n", dest, cli_errstr(cli)); return 1; } + + if (!cli_rename(targetcli, targetsrc, targetdest)) { + d_printf("%s renaming files %s -> %s \n", + cli_errstr(targetcli), + targetsrc, + targetdest); + return 1; + } return 0; } Modified: branches/SAMBA_3_2_0/source/client/client.c =================================================================== --- branches/SAMBA_3_2_0/source/client/client.c 2007-07-24 11:52:38 UTC (rev 24035) +++ branches/SAMBA_3_2_0/source/client/client.c 2007-07-24 22:28:19 UTC (rev 24036) @@ -2679,7 +2679,8 @@ pstring src,dest; pstring buf,buf2; struct cli_state *targetcli; - pstring targetname; + pstring targetsrc; + pstring targetdest; pstrcpy(src,cur_dir); pstrcpy(dest,cur_dir); @@ -2693,15 +2694,23 @@ pstrcat(src,buf); pstrcat(dest,buf2); - if ( !cli_resolve_path( "", cli, src, &targetcli, targetname ) ) { - d_printf("chown %s: %s\n", src, cli_errstr(cli)); + if ( !cli_resolve_path( "", cli, src, &targetcli, targetsrc ) ) { + d_printf("rename %s: %s\n", src, cli_errstr(cli)); return 1; } - if (!cli_rename(targetcli, targetname, dest)) { - d_printf("%s renaming files\n",cli_errstr(targetcli)); + if ( !cli_resolve_path( "", cli, dest, &targetcli, targetdest ) ) { + d_printf("rename %s: %s\n", dest, cli_errstr(cli)); return 1; } + + if (!cli_rename(targetcli, targetsrc, targetdest)) { + d_printf("%s renaming files %s -> %s \n", + cli_errstr(targetcli), + targetsrc, + targetdest); + return 1; + } return 0; }
