svn commit: samba r5995 - in branches/SAMBA_3_0_RELEASE/source: client libsmb rpc_client rpc_parse sam utils

jerry at samba.org jerry at samba.org
Wed Mar 23 15:55:24 GMT 2005


Author: jerry
Date: 2005-03-23 15:55:23 +0000 (Wed, 23 Mar 2005)
New Revision: 5995

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5995

Log:
merging more changes from 3.0 tree.
Now just have to work on the acl bug (#2521) and we're 
ready to ship.


svn merge -r5945:5946 $SVNURL/branches/SAMBA_3_0
svn merge -r5945:5946 $SVNURL/branches/SAMBA_3_0
svn merge -r5954:5955 $SVNURL/branches/SAMBA_3_0
svn merge -r5965:5967 $SVNURL/branches/SAMBA_3_0
svn merge -r5968:5970 $SVNURL/branches/SAMBA_3_0
svn merge -r5970:5971 $SVNURL/branches/SAMBA_3_0
svn merge -r5971:5973 $SVNURL/branches/SAMBA_3_0
svn merge -r5973:5975 $SVNURL/branches/SAMBA_3_0
svn merge -r5975:5979 $SVNURL/branches/SAMBA_3_0
svn merge -r5979:5981 $SVNURL/branches/SAMBA_3_0
svn merge -r5981:5991 $SVNURL/branches/SAMBA_3_0
svn merge -r5993:5994 $SVNURL/branches/SAMBA_3_0


Modified:
   branches/SAMBA_3_0_RELEASE/source/client/client.c
   branches/SAMBA_3_0_RELEASE/source/libsmb/cliconnect.c
   branches/SAMBA_3_0_RELEASE/source/libsmb/clidfs.c
   branches/SAMBA_3_0_RELEASE/source/libsmb/clilist.c
   branches/SAMBA_3_0_RELEASE/source/rpc_client/cli_spoolss.c
   branches/SAMBA_3_0_RELEASE/source/rpc_parse/parse_spoolss.c
   branches/SAMBA_3_0_RELEASE/source/sam/
   branches/SAMBA_3_0_RELEASE/source/utils/net_ads.c
   branches/SAMBA_3_0_RELEASE/source/utils/net_rpc_printer.c


Changeset:
Modified: branches/SAMBA_3_0_RELEASE/source/client/client.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/client/client.c	2005-03-23 15:36:48 UTC (rev 5994)
+++ branches/SAMBA_3_0_RELEASE/source/client/client.c	2005-03-23 15:55:23 UTC (rev 5995)
@@ -219,6 +219,7 @@
 
 	if ( !cli_resolve_path( "", cli, cur_dir, &targetcli, targetpath ) ) {
 		d_printf("Error in dskattr: %s\n", cli_errstr(cli));
+		return 1;
 	}
 
 	if (!cli_dskattr(targetcli, &bsize, &total, &avail)) {

Modified: branches/SAMBA_3_0_RELEASE/source/libsmb/cliconnect.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/libsmb/cliconnect.c	2005-03-23 15:36:48 UTC (rev 5994)
+++ branches/SAMBA_3_0_RELEASE/source/libsmb/cliconnect.c	2005-03-23 15:55:23 UTC (rev 5995)
@@ -978,9 +978,13 @@
 		cli->win95 = True;
 	}
 	
-	if ( cli->protocol >= PROTOCOL_LANMAN2 )
-		cli->dfsroot = (SVAL( cli->inbuf, smb_vwv2 ) & SMB_SHARE_IN_DFS);
+	/* Make sure that we have the optional support 16-bit field.  WCT > 2 */
+	/* Avoids issues when connecting to Win9x boxes sharing files */
 
+	cli->dfsroot = False;
+	if ( (CVAL(cli->inbuf, smb_wct))>2 && cli->protocol >= PROTOCOL_LANMAN2 )
+		cli->dfsroot = (SVAL( cli->inbuf, smb_vwv2 ) & SMB_SHARE_IN_DFS) ? True : False;
+
 	cli->cnum = SVAL(cli->inbuf,smb_tid);
 	return True;
 }

Modified: branches/SAMBA_3_0_RELEASE/source/libsmb/clidfs.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/libsmb/clidfs.c	2005-03-23 15:36:48 UTC (rev 5994)
+++ branches/SAMBA_3_0_RELEASE/source/libsmb/clidfs.c	2005-03-23 15:55:23 UTC (rev 5995)
@@ -595,7 +595,7 @@
 
 	/* we got an error, check for DFS referral */
 			
-	if ( !cli_dfs_check_error(rootcli) )
+	if ( !cli_dfs_check_error(rootcli) ) 
 		return False;
 
 	/* check for the referral */

Modified: branches/SAMBA_3_0_RELEASE/source/libsmb/clilist.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/libsmb/clilist.c	2005-03-23 15:36:48 UTC (rev 5994)
+++ branches/SAMBA_3_0_RELEASE/source/libsmb/clilist.c	2005-03-23 15:55:23 UTC (rev 5995)
@@ -29,7 +29,7 @@
  by NT and 2 is used by OS/2
 ****************************************************************************/
 
-static int interpret_long_filename(struct cli_state *cli,
+static size_t interpret_long_filename(struct cli_state *cli,
 				   int level,char *p,file_info *finfo)
 {
 	extern file_info def_finfo;
@@ -130,12 +130,12 @@
 			clistr_pull(cli, finfo->name, p,
 				    sizeof(finfo->name),
 				    namelen, 0);
-			return SVAL(base, 0);
+			return (size_t)IVAL(base, 0);
 		}
 	}
 	
 	DEBUG(1,("Unknown long filename format %d\n",level));
-	return(SVAL(p,0));
+	return (size_t)IVAL(base,0);
 }
 
 /****************************************************************************
@@ -168,6 +168,7 @@
 	unsigned int param_len, data_len;	
 	uint16 setup;
 	pstring param;
+	const char *mnt;
 
 	/* NT uses 260, OS/2 uses 2. Both accept 1. */
 	info_level = (cli->capabilities&CAP_NT_SMBS)?260:1;
@@ -205,7 +206,7 @@
 			SIVAL(param,6,0); /* ff_resume_key */
 			/* NB. *DON'T* use continue here. If you do it seems that W2K and bretheren
 			   can miss filenames. Use last filename continue instead. JRA */
-			SSVAL(param,4,(FLAG_TRANS2_FIND_REQUIRE_RESUME|FLAG_TRANS2_FIND_CLOSE_IF_END));	/* resume required + close on end */
+			SSVAL(param,10,(FLAG_TRANS2_FIND_REQUIRE_RESUME|FLAG_TRANS2_FIND_CLOSE_IF_END));	/* resume required + close on end */
 			p = param+12;
 			p += clistr_push(cli, param+12, mask, sizeof(param)-12, 
 					 STR_TERMINATE);
@@ -270,25 +271,14 @@
 		p = rdata;
 
 		/* we might need the lastname for continuations */
- 
-		/* and add them to the dirlist pool */
-		tdl = SMB_REALLOC(dirlist,dirlist_len + data_len);
-
-		if (!tdl) {
-			DEBUG(0,("cli_list_new: Failed to expand dirlist\n"));
-			break;
-		} else {
-			dirlist = tdl;
-		}
-
-		/* put in a length for the last entry, to ensure we can chain entries 
-		   into the next packet */
-		for (p2=p,i=0;i<(ff_searchcount-1);i++) {
+		for (p2=p,i=0;i<ff_searchcount;i++) {
+			if ((info_level == 260) && (i == ff_searchcount-1)) {
+				/* Last entry - fixup the last offset length. */
+				SIVAL(p2,0,PTR_DIFF((rdata + data_len),p2));
+			}
 			p2 += interpret_long_filename(cli,info_level,p2,&finfo);
 		}
-		SSVAL(p2,0,data_len - PTR_DIFF(p2,p));
 
-		/* we might need the lastname for continuations */
 		if (ff_lastname > 0) {
 			pstrcpy(mask, finfo.name);
 		} else {
@@ -296,6 +286,16 @@
 		}
 
 		/* grab the data for later use */
+		/* and add them to the dirlist pool */
+		tdl = SMB_REALLOC(dirlist,dirlist_len + data_len);
+
+		if (!tdl) {
+			DEBUG(0,("cli_list_new: Failed to expand dirlist\n"));
+			break;
+		} else {
+			dirlist = tdl;
+		}
+
 		memcpy(dirlist+dirlist_len,p,data_len);
 		dirlist_len += data_len;
 
@@ -313,11 +313,10 @@
 		First = False;
 	}
 
+	mnt = cli_cm_get_mntpoint( cli );
+
 	for (p=dirlist,i=0;i<total_received;i++) {
-		const char *mnt = cli_cm_get_mntpoint( cli );
-		
 		p += interpret_long_filename(cli,info_level,p,&finfo);
-		
 		fn( mnt,&finfo, Mask, state );
 	}
 

Modified: branches/SAMBA_3_0_RELEASE/source/rpc_client/cli_spoolss.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/rpc_client/cli_spoolss.c	2005-03-23 15:36:48 UTC (rev 5994)
+++ branches/SAMBA_3_0_RELEASE/source/rpc_client/cli_spoolss.c	2005-03-23 15:55:23 UTC (rev 5995)
@@ -1089,7 +1089,7 @@
  */
 WERROR cli_spoolss_deleteprinterdriverex(struct cli_state *cli, 
                                          TALLOC_CTX *mem_ctx, const char *arch,
-                                         const char *driver, uint32 version)
+                                         const char *driver, int version)
 {
 	prs_struct    qbuf, rbuf;
 	SPOOL_Q_DELETEPRINTERDRIVEREX q;

Modified: branches/SAMBA_3_0_RELEASE/source/rpc_parse/parse_spoolss.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/rpc_parse/parse_spoolss.c	2005-03-23 15:36:48 UTC (rev 5994)
+++ branches/SAMBA_3_0_RELEASE/source/rpc_parse/parse_spoolss.c	2005-03-23 15:55:23 UTC (rev 5995)
@@ -1226,7 +1226,7 @@
                                            const char *server,
                                            const char* arch, 
                                            const char* driver,
-                                           uint32 version)
+                                           int version)
 {
 	DEBUG(5,("make_spoolss_q_deleteprinterdriverex\n"));
  


Property changes on: branches/SAMBA_3_0_RELEASE/source/sam
___________________________________________________________________
Name: svn:ignore
   + *.po
*.po32



Modified: branches/SAMBA_3_0_RELEASE/source/utils/net_ads.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/utils/net_ads.c	2005-03-23 15:36:48 UTC (rev 5994)
+++ branches/SAMBA_3_0_RELEASE/source/utils/net_ads.c	2005-03-23 15:55:23 UTC (rev 5995)
@@ -94,8 +94,13 @@
 {
 	ADS_STRUCT *ads;
 
-	ads = ads_init(NULL, opt_target_workgroup, opt_host);
+	/* if netbios is disabled we have to default to the realm from smb.conf */
 
+	if ( lp_disable_netbios() && *lp_realm() )
+		ads = ads_init(lp_realm(), opt_target_workgroup, opt_host);
+	else
+		ads = ads_init(NULL, opt_target_workgroup, opt_host);
+
 	if (ads) {
 		ads->auth.flags |= ADS_AUTH_NO_BIND;
 	}

Modified: branches/SAMBA_3_0_RELEASE/source/utils/net_rpc_printer.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/utils/net_rpc_printer.c	2005-03-23 15:36:48 UTC (rev 5994)
+++ branches/SAMBA_3_0_RELEASE/source/utils/net_rpc_printer.c	2005-03-23 15:55:23 UTC (rev 5995)
@@ -466,7 +466,7 @@
 	if (!src_name || !dst_name)
 		goto out;
 
-	if (cli_share_dst == NULL || cli_share_dst == NULL)
+	if (cli_share_src == NULL || cli_share_dst == NULL)
 		goto out; 
 		
 



More information about the samba-cvs mailing list