svn commit: samba r21989 - in branches/SAMBA_3_0/source/printing: .

metze at samba.org metze at samba.org
Tue Mar 27 11:22:08 GMT 2007


Author: metze
Date: 2007-03-27 11:22:07 +0000 (Tue, 27 Mar 2007)
New Revision: 21989

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

Log:
make use of tdb_*_bystring() and string_term_tdb_data()
to avoid creating the TDB_DATA struct from strings "by hand"

metze
Modified:
   branches/SAMBA_3_0/source/printing/nt_printing.c


Changeset:
Modified: branches/SAMBA_3_0/source/printing/nt_printing.c
===================================================================
--- branches/SAMBA_3_0/source/printing/nt_printing.c	2007-03-27 11:20:55 UTC (rev 21988)
+++ branches/SAMBA_3_0/source/printing/nt_printing.c	2007-03-27 11:22:07 UTC (rev 21989)
@@ -240,8 +240,7 @@
 	
 	pstr_sprintf( keystr, "%s%s", PRINTERS_PREFIX, share );
 	
-	key.dptr = keystr;
-	key.dsize = strlen(keystr)+1;
+	key = string_term_tdb_data(keystr);
 
 	return key;
 }
@@ -250,17 +249,20 @@
  generate a new TDB_DATA key for storing a printer security descriptor
 ****************************************************************************/
 
-static char *make_printers_secdesc_tdbkey( const char* sharename  )
+static TDB_DATA make_printers_secdesc_tdbkey( const char* sharename  )
 {
 	fstring share;
 	static pstring keystr;
-	
+	TDB_DATA key;
+
 	fstrcpy( share, sharename );
 	strlower_m( share );
 	
 	pstr_sprintf( keystr, "%s%s", SECDESC_PREFIX, share );
 
-	return keystr;
+	key = string_term_tdb_data(keystr);
+
+	return key;
 }
 
 /****************************************************************************
@@ -491,8 +493,7 @@
 		new_key = make_printer_tdbkey( key.dptr+strlen(PRINTERS_PREFIX) );
 	}
 	else if ( strncmp( key.dptr, SECDESC_PREFIX, strlen(SECDESC_PREFIX) ) == 0 ) {
-		new_key.dptr = make_printers_secdesc_tdbkey( key.dptr+strlen(SECDESC_PREFIX) );
-		new_key.dsize = strlen( new_key.dptr ) + 1;
+		new_key = make_printers_secdesc_tdbkey( key.dptr+strlen(SECDESC_PREFIX) );
 	}
 	else {
 		/* ignore this record */
@@ -820,7 +821,7 @@
 {
 	pstring buf, key;
 	int len;
-	TDB_DATA kbuf,dbuf;
+	TDB_DATA dbuf;
 	int i;
 
 	for (i=0;i<number;i++) {
@@ -831,11 +832,9 @@
 			       (*list)[i].bottom);
 		if (len > sizeof(buf)) break;
 		slprintf(key, sizeof(key)-1, "%s%s", FORMS_PREFIX, (*list)[i].name);
-		kbuf.dsize = strlen(key)+1;
-		kbuf.dptr = key;
 		dbuf.dsize = len;
 		dbuf.dptr = buf;
-		if (tdb_store(tdb_forms, kbuf, dbuf, TDB_REPLACE) != 0) break;
+		if (tdb_store_bystring(tdb_forms, key, dbuf, TDB_REPLACE) != 0) break;
        }
 
        return i;
@@ -896,7 +895,6 @@
 BOOL delete_a_form(nt_forms_struct **list, UNISTR2 *del_name, int *count, WERROR *ret)
 {
 	pstring key;
-	TDB_DATA kbuf;
 	int n=0;
 	fstring form_name;
 
@@ -918,9 +916,7 @@
 	}
 
 	slprintf(key, sizeof(key)-1, "%s%s", FORMS_PREFIX, (*list)[n].name);
-	kbuf.dsize = strlen(key)+1;
-	kbuf.dptr = key;
-	if (tdb_delete(tdb_forms, kbuf) != 0) {
+	if (tdb_delete_bystring(tdb_forms, key) != 0) {
 		*ret = WERR_NOMEM;
 		return False;
 	}
@@ -1935,7 +1931,7 @@
 	pstring key;
 	char *buf;
 	int i, ret;
-	TDB_DATA kbuf, dbuf;
+	TDB_DATA dbuf;
 
 	architecture = get_short_archi(driver->environment);
 	if (!architecture) {
@@ -2020,13 +2016,10 @@
 		goto again;
 	}
 
-
-	kbuf.dptr = key;
-	kbuf.dsize = strlen(key)+1;
 	dbuf.dptr = buf;
 	dbuf.dsize = len;
 	
-	ret = tdb_store(tdb_drivers, kbuf, dbuf, TDB_REPLACE);
+	ret = tdb_store_bystring(tdb_drivers, key, dbuf, TDB_REPLACE);
 
 done:
 	if (ret)
@@ -2094,7 +2087,7 @@
 static WERROR get_a_printer_driver_3(NT_PRINTER_DRIVER_INFO_LEVEL_3 **info_ptr, fstring drivername, const char *arch, uint32 version)
 {
 	NT_PRINTER_DRIVER_INFO_LEVEL_3 driver;
-	TDB_DATA kbuf, dbuf;
+	TDB_DATA dbuf;
 	const char *architecture;
 	int len = 0;
 	int i;
@@ -2115,11 +2108,8 @@
 	DEBUG(8,("get_a_printer_driver_3: [%s%s/%d/%s]\n", DRIVERS_PREFIX, architecture, version, drivername));
 
 	slprintf(key, sizeof(key)-1, "%s%s/%d/%s", DRIVERS_PREFIX, architecture, version, drivername);
-
-	kbuf.dptr = key;
-	kbuf.dsize = strlen(key)+1;
 	
-	dbuf = tdb_fetch(tdb_drivers, kbuf);
+	dbuf = tdb_fetch_bystring(tdb_drivers, key);
 	if (!dbuf.dptr) 
 		return WERR_UNKNOWN_PRINTER_DRIVER;
 
@@ -2352,8 +2342,7 @@
 	kbuf = make_printer_tdbkey( sharename );
 	tdb_delete(tdb_printers, kbuf);
 
-	kbuf.dptr = make_printers_secdesc_tdbkey( sharename );
-	kbuf.dsize = strlen(kbuf.dptr) + 1;
+	kbuf= make_printers_secdesc_tdbkey( sharename );
 	tdb_delete(tdb_printers, kbuf);
 
 	close_all_print_db();
@@ -4083,7 +4072,7 @@
 {
 	int                     len = 0;
 	pstring                 key;
-	TDB_DATA                kbuf, dbuf;
+	TDB_DATA                dbuf;
 	NT_PRINTER_INFO_LEVEL_2 info;
 
 
@@ -4100,10 +4089,7 @@
 	
 	slprintf(key, sizeof(key)-1, "%s%s", DRIVER_INIT_PREFIX, info_ptr->drivername);
 
-	kbuf.dptr = key;
-	kbuf.dsize = strlen(key)+1;
-
-	dbuf = tdb_fetch(tdb_drivers, kbuf);
+	dbuf = tdb_fetch_bystring(tdb_drivers, key);
 	if (!dbuf.dptr) {
 		/*
 		 * When changing to a driver that has no init info in the tdb, remove
@@ -4196,7 +4182,6 @@
 BOOL del_driver_init(char *drivername)
 {
 	pstring key;
-	TDB_DATA kbuf;
 
 	if (!drivername || !*drivername) {
 		DEBUG(3,("del_driver_init: No drivername specified!\n"));
@@ -4205,12 +4190,9 @@
 
 	slprintf(key, sizeof(key)-1, "%s%s", DRIVER_INIT_PREFIX, drivername);
 
-	kbuf.dptr = key;
-	kbuf.dsize = strlen(key)+1;
-
 	DEBUG(6,("del_driver_init: Removing driver init data for [%s]\n", drivername));
 
-	return (tdb_delete(tdb_drivers, kbuf) == 0);
+	return (tdb_delete_bystring(tdb_drivers, key) == 0);
 }
 
 /****************************************************************************
@@ -4226,7 +4208,7 @@
 	pstring key;
 	char *buf;
 	int buflen, len, ret;
-	TDB_DATA kbuf, dbuf;
+	TDB_DATA dbuf;
 
 	buf = NULL;
 	buflen = 0;
@@ -4250,12 +4232,10 @@
 
 	slprintf(key, sizeof(key)-1, "%s%s", DRIVER_INIT_PREFIX, info->drivername);
 
-	kbuf.dptr = key;
-	kbuf.dsize = strlen(key)+1;
 	dbuf.dptr = buf;
 	dbuf.dsize = len;
 
-	ret = tdb_store(tdb_drivers, kbuf, dbuf, TDB_REPLACE);
+	ret = tdb_store_bystring(tdb_drivers, key, dbuf, TDB_REPLACE);
 
 done:
 	if (ret == -1)
@@ -5022,7 +5002,7 @@
 {
 	pstring 	key;
 	const char     *arch;
-	TDB_DATA 	kbuf, dbuf;
+	TDB_DATA 	dbuf;
 	NT_PRINTER_DRIVER_INFO_LEVEL	ctr;
 
 	/* delete the tdb data first */
@@ -5040,12 +5020,9 @@
 	ctr.info_3 = info_3;
 	dump_a_printer_driver( ctr, 3 );
 
-	kbuf.dptr=key;
-	kbuf.dsize=strlen(key)+1;
-
 	/* check if the driver actually exists for this environment */
 	
-	dbuf = tdb_fetch( tdb_drivers, kbuf );
+	dbuf = tdb_fetch_bystring( tdb_drivers, key );
 	if ( !dbuf.dptr ) {
 		DEBUG(8,("delete_printer_driver: Driver unknown [%s]\n", key));
 		return WERR_UNKNOWN_PRINTER_DRIVER;
@@ -5055,7 +5032,7 @@
 	
 	/* ok... the driver exists so the delete should return success */
 		
-	if (tdb_delete(tdb_drivers, kbuf) == -1) {
+	if (tdb_delete_bystring(tdb_drivers, key) == -1) {
 		DEBUG (0,("delete_printer_driver: fail to delete %s!\n", key));
 		return WERR_ACCESS_DENIED;
 	}
@@ -5085,7 +5062,7 @@
 	SEC_DESC_BUF *old_secdesc_ctr = NULL;
 	prs_struct ps;
 	TALLOC_CTX *mem_ctx = NULL;
-	char *key;
+	TDB_DATA kbuf;
 	WERROR status;
 
 	mem_ctx = talloc_init("nt_printing_setsec");
@@ -5157,9 +5134,9 @@
 		goto out;
 	}
 
-	key = make_printers_secdesc_tdbkey( sharename );
+	kbuf = make_printers_secdesc_tdbkey( sharename );
 
-	if (tdb_prs_store_bystring(tdb_printers, key, &ps)==0) {
+	if (tdb_prs_store(tdb_printers, kbuf, &ps)==0) {
 		status = WERR_OK;
 	} else {
 		DEBUG(1,("Failed to store secdesc for %s\n", sharename));
@@ -5267,7 +5244,7 @@
 BOOL nt_printing_getsec(TALLOC_CTX *ctx, const char *sharename, SEC_DESC_BUF **secdesc_ctr)
 {
 	prs_struct ps;
-	char *key;
+	TDB_DATA kbuf;
 	char *temp;
 
 	if (strlen(sharename) > 2 && (temp = strchr(sharename + 2, '\\'))) {
@@ -5278,9 +5255,9 @@
 
 	/* Fetch security descriptor from tdb */
 
-	key = make_printers_secdesc_tdbkey( sharename  );
+	kbuf = make_printers_secdesc_tdbkey( sharename  );
 
-	if (tdb_prs_fetch_bystring(tdb_printers, key, &ps, ctx)!=0 ||
+	if (tdb_prs_fetch(tdb_printers, kbuf, &ps, ctx)!=0 ||
 	    !sec_io_desc_buf("nt_printing_getsec", secdesc_ctr, &ps, 1)) {
 
 		prs_mem_free(&ps);
@@ -5297,7 +5274,7 @@
 				sizeof(SEC_DESC_BUF), ctx, MARSHALL);
 
 		if (sec_io_desc_buf("nt_printing_getsec", secdesc_ctr, &ps, 1)) {
-			tdb_prs_store_bystring(tdb_printers, key, &ps);
+			tdb_prs_store(tdb_printers, kbuf, &ps);
 		}
 
 		prs_mem_free(&ps);



More information about the samba-cvs mailing list