Author: vlendec Date: 2006-01-16 16:28:14 +0000 (Mon, 16 Jan 2006) New Revision: 12960
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12960 Log: One thing that has annoyed me for ages is the fact that you can't run smbclient against smbd -i anymore, smbclient opens two connections. This makes cli_dfs_get_referral use the already opened connection. Jerry, could you please look at this? Thanks, Volker Modified: trunk/source/libsmb/clidfs.c Changeset: Modified: trunk/source/libsmb/clidfs.c =================================================================== --- trunk/source/libsmb/clidfs.c 2006-01-16 15:23:06 UTC (rev 12959) +++ trunk/source/libsmb/clidfs.c 2006-01-16 16:28:14 UTC (rev 12960) @@ -682,12 +682,15 @@ CLIENT_DFS_REFERRAL *refs = NULL; size_t num_refs; uint16 consumed; - struct cli_state *cli_ipc; pstring fullpath; + BOOL res; + uint16 cnum; if ( !cli || !sharename ) return False; + cnum = cli->cnum; + /* special case. never check for a referral on the IPC$ share */ if ( strequal( sharename, "IPC$" ) ) @@ -699,14 +702,21 @@ /* check for the referral */ - if ( !(cli_ipc = cli_cm_open( cli->desthost, "IPC$", False )) ) + if (!cli_send_tconX(cli, "IPC$", "IPC", NULL, 0)) { return False; - - if ( !cli_dfs_get_referral(cli_ipc, fullpath, &refs, &num_refs, &consumed) - || !num_refs ) - { + } + + res = cli_dfs_get_referral(cli, fullpath, &refs, &num_refs, &consumed); + + if (!cli_tdis(cli)) { return False; } + + cli->cnum = cnum; + + if (!res || !num_refs ) { + return False; + } split_dfs_path( refs[0].dfspath, newserver, newshare );
