[SCM] Samba Shared Repository - branch v3-4-test updated - release-4-0-0alpha7-915-g921cd4b

Günther Deschner gd at samba.org
Fri May 8 09:32:42 GMT 2009


The branch, v3-4-test has been updated
       via  921cd4b58f31e2ab821172b79ece8fb34d6b5cee (commit)
       via  aa569ecfcf9d9f6084ab171afb64fb918870958b (commit)
       via  21d7315fcf08836dfc6f5584bc018f9e46a81a26 (commit)
      from  2d52c7c605d92356211aa11c31ce9c8392952557 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-4-test


- Log -----------------------------------------------------------------
commit 921cd4b58f31e2ab821172b79ece8fb34d6b5cee
Author: Günther Deschner <gd at samba.org>
Date:   Fri May 8 11:26:57 2009 +0200

    s3-selftest: run RPC-LSA-GETUSER against Samba 3.
    
    Guenther
    (cherry picked from commit 66cf7e1835d5d711c91d0541b05eb11b61267ba8)

commit aa569ecfcf9d9f6084ab171afb64fb918870958b
Author: Günther Deschner <gd at samba.org>
Date:   Fri May 8 09:56:40 2009 +0200

    s4-smbtorture: Fix printf info-level mismatch in RPC-SAMR.
    
    Guenther
    (cherry picked from commit c2498d133db4dcb76e636661110b6432d017d13c)

commit 21d7315fcf08836dfc6f5584bc018f9e46a81a26
Author: Günther Deschner <gd at samba.org>
Date:   Fri May 8 09:55:10 2009 +0200

    s3-samr: implement more info levels in _samr_QueryDomainInfo().
    
    Gets us closer to pass RPC-SAMR.
    
    Guenther
    (cherry picked from commit 266b79e004470ae1859085ca018fd6aff6836059)

-----------------------------------------------------------------------

Summary of changes:
 source3/rpc_server/srv_samr_nt.c      |   82 +++++++++++++++++++++++++++++++++
 source3/script/tests/test_posix_s3.sh |    3 +-
 source4/torture/rpc/samr.c            |    2 +-
 3 files changed, 85 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c
index a86ebe5..3f59666 100644
--- a/source3/rpc_server/srv_samr_nt.c
+++ b/source3/rpc_server/srv_samr_nt.c
@@ -1749,6 +1749,9 @@ NTSTATUS _samr_QueryAliasInfo(pipes_struct *p,
 		alias_info->all.num_members		= 1; /* ??? */
 		alias_info->all.description.string	= alias_description;
 		break;
+	case ALIASINFONAME:
+		alias_info->name.string			= alias_name;
+		break;
 	case ALIASINFODESCRIPTION:
 		alias_info->description.string		= alias_description;
 		break;
@@ -3381,6 +3384,66 @@ NTSTATUS _samr_QueryDomainInfo(pipes_struct *p,
 			dom_info->info8.domain_create_time = 0;
 
 			break;
+		case 0x09:
+
+			dom_info->info9.domain_server_state		= DOMAIN_SERVER_ENABLED;
+
+			break;
+		case 0x0b:
+
+			/* AS ROOT !!! */
+
+			become_root();
+
+			dom_info->general2.general.num_users	= count_sam_users(
+				dinfo->disp_info, ACB_NORMAL);
+			dom_info->general2.general.num_groups	= count_sam_groups(
+				dinfo->disp_info);
+			dom_info->general2.general.num_aliases	= count_sam_aliases(
+				dinfo->disp_info);
+
+			pdb_get_account_policy(AP_TIME_TO_LOGOUT, &u_logout);
+
+			unix_to_nt_time_abs(&dom_info->general2.general.force_logoff_time, u_logout);
+
+			if (!pdb_get_seq_num(&seq_num))
+				seq_num = time(NULL);
+
+			pdb_get_account_policy(AP_LOCK_ACCOUNT_DURATION, &account_policy_temp);
+			u_lock_duration = account_policy_temp;
+			if (u_lock_duration != -1) {
+				u_lock_duration *= 60;
+			}
+
+			pdb_get_account_policy(AP_RESET_COUNT_TIME, &account_policy_temp);
+			u_reset_time = account_policy_temp * 60;
+
+			pdb_get_account_policy(AP_BAD_ATTEMPT_LOCKOUT,
+					       &account_policy_temp);
+			dom_info->general2.lockout_threshold = account_policy_temp;
+
+			/* !AS ROOT */
+
+			unbecome_root();
+
+			server_role = ROLE_DOMAIN_PDC;
+			if (lp_server_role() == ROLE_DOMAIN_BDC)
+				server_role = ROLE_DOMAIN_BDC;
+
+			dom_info->general2.general.oem_information.string	= lp_serverstring();
+			dom_info->general2.general.domain_name.string		= lp_workgroup();
+			dom_info->general2.general.primary.string		= global_myname();
+			dom_info->general2.general.sequence_num			= seq_num;
+			dom_info->general2.general.domain_server_state		= DOMAIN_SERVER_ENABLED;
+			dom_info->general2.general.role				= server_role;
+			dom_info->general2.general.unknown3			= 1;
+
+			unix_to_nt_time_abs(&dom_info->general2.lockout_duration,
+					    u_lock_duration);
+			unix_to_nt_time_abs(&dom_info->general2.lockout_window,
+					    u_reset_time);
+
+			break;
 		case 0x0c:
 
 			become_root();
@@ -3410,6 +3473,25 @@ NTSTATUS _samr_QueryDomainInfo(pipes_struct *p,
 					    u_reset_time);
 
 			break;
+		case 0x0d:
+
+			become_root();
+
+			/* AS ROOT !!! */
+
+			if (!pdb_get_seq_num(&seq_num)) {
+				seq_num = time(NULL);
+			}
+
+			/* !AS ROOT */
+
+			unbecome_root();
+
+			dom_info->info13.sequence_num = seq_num;
+			dom_info->info13.domain_create_time = 0;
+			dom_info->info13.modified_count_at_last_promotion = 0;
+
+			break;
         	default:
             		return NT_STATUS_INVALID_INFO_CLASS;
 	}
diff --git a/source3/script/tests/test_posix_s3.sh b/source3/script/tests/test_posix_s3.sh
index 704dd9b..0fe6b40 100755
--- a/source3/script/tests/test_posix_s3.sh
+++ b/source3/script/tests/test_posix_s3.sh
@@ -40,7 +40,8 @@ raw="$raw RAW-SAMBA3ROOTDIRFID"
 rpc="RPC-AUTHCONTEXT RPC-BINDSAMBA3 RPC-SAMBA3-SRVSVC RPC-SAMBA3-SHARESEC"
 rpc="$rpc RPC-SAMBA3-SPOOLSS RPC-SAMBA3-WKSSVC"
 rpc="$rpc RPC-NETLOGSAMBA3 RPC-SAMBA3SESSIONKEY RPC-SAMBA3-GETUSERNAME"
-rpc="$rpc RPC-SVCCTL RPC-SPOOLSS RPC-SPOOLSS-WIN RPC-NTSVCS RPC-LSA-LOOKUPSIDS"
+rpc="$rpc RPC-SVCCTL RPC-SPOOLSS RPC-SPOOLSS-WIN RPC-NTSVCS"
+rpc="$rpc RPC-LSA-GETUSER RPC-LSA-LOOKUPSIDS"
 rpc="$rpc RPC-SAMR-PASSWORDS RPC-SAMR-PASSWORDS-PWDLASTSET RPC-JOIN"
 rpc="$rpc RPC-SCHANNEL RPC-SCHANNEL2 RPC-BENCH-SCHANNEL1"
 
diff --git a/source4/torture/rpc/samr.c b/source4/torture/rpc/samr.c
index fd4e496..e9aa6c3 100644
--- a/source4/torture/rpc/samr.c
+++ b/source4/torture/rpc/samr.c
@@ -5151,7 +5151,7 @@ static bool test_QueryDomainInfo(struct dcerpc_pipe *p, struct torture_context *
 	status = dcerpc_samr_SetDomainInfo(p, tctx, &s);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("SetDomainInfo level %u (set comment) failed - %s\n", 
-		       r.in.level, nt_errstr(status));
+		       s.in.level, nt_errstr(status));
 		return false;
 	}
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list