svn commit: samba r22546 - in branches/SAMBA_4_0/source: param torture/local

metze at samba.org metze at samba.org
Sat Apr 28 08:37:36 GMT 2007


Author: metze
Date: 2007-04-28 08:37:36 +0000 (Sat, 28 Apr 2007)
New Revision: 22546

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

Log:
use the same error codes in both share backends

metze
Modified:
   branches/SAMBA_4_0/source/param/share_ldb.c
   branches/SAMBA_4_0/source/torture/local/share.c


Changeset:
Modified: branches/SAMBA_4_0/source/param/share_ldb.c
===================================================================
--- branches/SAMBA_4_0/source/param/share_ldb.c	2007-04-28 08:00:51 UTC (rev 22545)
+++ branches/SAMBA_4_0/source/param/share_ldb.c	2007-04-28 08:37:36 UTC (rev 22546)
@@ -175,7 +175,7 @@
 	talloc_steal(tmp_ctx, res);
 	if (ret != LDB_SUCCESS) {
 		talloc_free(tmp_ctx);
-		return NT_STATUS_BAD_NETWORK_NAME;
+		return NT_STATUS_INTERNAL_DB_CORRUPTION;
 	}
 
 	n = talloc_array(mem_ctx, const char *, res->count);
@@ -223,9 +223,12 @@
 	ret = ldb_search_exp_fmt(ldb, tmp_ctx, &res,
 				 ldb_dn_new(tmp_ctx, ldb, "CN=SHARES"), LDB_SCOPE_SUBTREE, NULL,
 				 "(name=%s)", name);
-	if (ret != LDB_SUCCESS || res->count != 1) {
+	if (ret != LDB_SUCCESS || res->count > 1) {
 		talloc_free(tmp_ctx);
-		return NT_STATUS_BAD_NETWORK_NAME;
+		return NT_STATUS_INTERNAL_DB_CORRUPTION;
+	} else if (res->count != 1) {
+		talloc_free(tmp_ctx);
+		return NT_STATUS_OBJECT_NAME_NOT_FOUND;
 	}
 
 	s = talloc(tmp_ctx, struct share_config);
@@ -363,7 +366,9 @@
 		DEBUG(2,("ERROR: unable to add share %s to share.ldb\n"
 			 "       err=%d [%s]\n", name, err, ldb_errstring(ldb)));
 		if (err == LDB_ERR_NO_SUCH_OBJECT) {
-			ret = NT_STATUS_BAD_NETWORK_NAME;
+			ret = NT_STATUS_OBJECT_NAME_NOT_FOUND;
+		} else if (err == LDB_ERR_ENTRY_ALREADY_EXISTS) {
+			ret = NT_STATUS_OBJECT_NAME_COLLISION;
 		} else {
 			ret = NT_STATUS_UNSUCCESSFUL;
 		}
@@ -499,7 +504,7 @@
 			DEBUG(2,("ERROR: unable to rename share %s (to %s)\n"
 				 "       err=%d [%s]\n", name, newname, err, ldb_errstring(ldb)));
 			if (err == LDB_ERR_NO_SUCH_OBJECT) {
-				ret = NT_STATUS_BAD_NETWORK_NAME;
+				ret = NT_STATUS_OBJECT_NAME_COLLISION;
 			} else {
 				ret = NT_STATUS_UNSUCCESSFUL;
 			}
@@ -514,7 +519,7 @@
 		DEBUG(2,("ERROR: unable to add share %s to share.ldb\n"
 			 "       err=%d [%s]\n", name, err, ldb_errstring(ldb)));
 		if (err == LDB_ERR_NO_SUCH_OBJECT) {
-			ret = NT_STATUS_BAD_NETWORK_NAME;
+			ret = NT_STATUS_OBJECT_NAME_COLLISION;
 		} else {
 			ret = NT_STATUS_UNSUCCESSFUL;
 		}

Modified: branches/SAMBA_4_0/source/torture/local/share.c
===================================================================
--- branches/SAMBA_4_0/source/torture/local/share.c	2007-04-28 08:00:51 UTC (rev 22545)
+++ branches/SAMBA_4_0/source/torture/local/share.c	2007-04-28 08:37:36 UTC (rev 22546)
@@ -159,7 +159,7 @@
 
 	torture_assert_ntstatus_ok(tctx, status, "create_share failed");
 
-	torture_assert_ntstatus_equal(tctx, NT_STATUS_UNSUCCESSFUL, 
+	torture_assert_ntstatus_equal(tctx, NT_STATUS_OBJECT_NAME_COLLISION,
 				      share_create(ctx, "bla", inf, 2),
 				      "create_share failed");
 



More information about the samba-cvs mailing list