svn commit: samba r4336 - branches/SAMBA_3_0/source/include branches/SAMBA_3_0/source/rpc_parse branches/SAMBA_3_0/source/rpc_server branches/SAMBA_3_0/source/rpcclient trunk/source/include trunk/source/rpc_parse trunk/source/rpc_server trunk/source/rpcclient

gd at samba.org gd at samba.org
Wed Dec 22 23:50:32 GMT 2004


Author: gd
Date: 2004-12-22 23:50:31 +0000 (Wed, 22 Dec 2004)
New Revision: 4336

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

Log:
Apply some other samba4 SAMR idl that is just too obvious. Don't hard
set the value "forcibly disconnect remote users from server when logon
hours expire" to "no", instead take the value from our account-policy
storage.

Guenther

Modified:
   branches/SAMBA_3_0/source/include/rpc_samr.h
   branches/SAMBA_3_0/source/rpc_parse/parse_samr.c
   branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c
   branches/SAMBA_3_0/source/rpcclient/cmd_samr.c
   trunk/source/include/rpc_samr.h
   trunk/source/rpc_parse/parse_samr.c
   trunk/source/rpc_server/srv_samr_nt.c
   trunk/source/rpcclient/cmd_samr.c


Changeset:
Modified: branches/SAMBA_3_0/source/include/rpc_samr.h
===================================================================
--- branches/SAMBA_3_0/source/include/rpc_samr.h	2004-12-22 22:19:54 UTC (rev 4335)
+++ branches/SAMBA_3_0/source/include/rpc_samr.h	2004-12-22 23:50:31 UTC (rev 4336)
@@ -561,8 +561,7 @@
 
 typedef struct sam_unknown_info_2_inf
 {
-	uint32 unknown_0; /* 0x0000 0000 */
-	uint32 unknown_1; /* 0x8000 0000 */
+	NTTIME logout; /* whether users are forcibly disconnected when logon hours expire */
 	UNIHDR hdr_comment; /* comment according to samba4 idl */
 	UNIHDR hdr_domain; /* domain name unicode header */
 	UNIHDR hdr_server; /* server name unicode header */

Modified: branches/SAMBA_3_0/source/rpc_parse/parse_samr.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_parse/parse_samr.c	2004-12-22 22:19:54 UTC (rev 4335)
+++ branches/SAMBA_3_0/source/rpc_parse/parse_samr.c	2004-12-22 23:50:31 UTC (rev 4336)
@@ -697,10 +697,10 @@
 
 void init_unk_info2(SAM_UNK_INFO_2 * u_2,
 			const char *comment, const char *domain, const char *server,
-			uint32 seq_num, uint32 num_users, uint32 num_groups, uint32 num_alias)
+			uint32 seq_num, uint32 num_users, uint32 num_groups, uint32 num_alias, NTTIME nt_logout)
 {
-	u_2->unknown_0 = 0x00000000;
-	u_2->unknown_1 = 0x80000000;
+	u_2->logout.low = nt_logout.low;
+	u_2->logout.high = nt_logout.high;
 
 	u_2->seq_num.low = seq_num;
 	u_2->seq_num.high = 0x00000000;
@@ -736,10 +736,8 @@
 	prs_debug(ps, depth, desc, "sam_io_unk_info2");
 	depth++;
 
-	if(!prs_uint32("unknown_0", ps, depth, &u_2->unknown_0)) /* 0x0000 0000 */
+	if(!smb_io_time("logout", &u_2->logout, ps, depth))
 		return False;
-	if(!prs_uint32("unknown_1", ps, depth, &u_2->unknown_1)) /* 0x8000 0000 */
-		return False;
 	if(!smb_io_unihdr("hdr_comment", &u_2->hdr_comment, ps, depth))
 		return False;
 	if(!smb_io_unihdr("hdr_domain", &u_2->hdr_domain, ps, depth))

Modified: branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c	2004-12-22 22:19:54 UTC (rev 4335)
+++ branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c	2004-12-22 23:50:31 UTC (rev 4336)
@@ -2113,10 +2113,15 @@
 			}
 			num_groups=info->disp_info.num_group_account;
 			free_samr_db(info);
-			
+
+			account_policy_get(AP_TIME_TO_LOGOUT, &account_policy_temp);
+			u_logout = account_policy_temp;
+
+			unix_to_nt_time_abs(&nt_logout, u_logout);
+
 			/* The time call below is to get a sequence number for the sam. FIXME !!! JRA. */
 			init_unk_info2(&ctr->info.inf2, "", lp_workgroup(), global_myname(), (uint32) time(NULL), 
-				       num_users, num_groups, num_aliases);
+				       num_users, num_groups, num_aliases, nt_logout);
 			break;
 		case 0x03:
 			account_policy_get(AP_TIME_TO_LOGOUT, (unsigned int *)&u_logout);
@@ -4360,9 +4365,14 @@
 			num_groups=info->disp_info.num_group_account;
 			free_samr_db(info);
 
+			account_policy_get(AP_TIME_TO_LOGOUT, &account_policy_temp);
+			u_logout = account_policy_temp;
+
+			unix_to_nt_time_abs(&nt_logout, u_logout);
+
 			/* The time call below is to get a sequence number for the sam. FIXME !!! JRA. */
 			init_unk_info2(&ctr->info.inf2, "", lp_workgroup(), global_myname(), (uint32) time(NULL), 
-				       num_users, num_groups, num_aliases);
+				       num_users, num_groups, num_aliases, nt_logout);
 			break;
 		case 0x03:
 			account_policy_get(AP_TIME_TO_LOGOUT, &account_policy_temp);

Modified: branches/SAMBA_3_0/source/rpcclient/cmd_samr.c
===================================================================
--- branches/SAMBA_3_0/source/rpcclient/cmd_samr.c	2004-12-22 22:19:54 UTC (rev 4335)
+++ branches/SAMBA_3_0/source/rpcclient/cmd_samr.c	2004-12-22 23:50:31 UTC (rev 4336)
@@ -161,9 +161,9 @@
 	printf("Total Aliases:\t%d\n", info2->num_local_grps);
 	
 	printf("Sequence No:\t%d\n", info2->seq_num.low);
-	
-	printf("Unknown 0:\t0x%x\n", info2->unknown_0);
-	printf("Unknown 1:\t0x%x\n", info2->unknown_1);
+
+	printf("Force Logoff:\t%d\n", (int)nt_time_to_unix_abs(&info2->logout));
+
 	printf("Unknown 4:\t0x%x\n", info2->unknown_4);
 	printf("Unknown 5:\t0x%x\n", info2->unknown_5);
 	printf("Unknown 6:\t0x%x\n", info2->unknown_6);

Modified: trunk/source/include/rpc_samr.h
===================================================================
--- trunk/source/include/rpc_samr.h	2004-12-22 22:19:54 UTC (rev 4335)
+++ trunk/source/include/rpc_samr.h	2004-12-22 23:50:31 UTC (rev 4336)
@@ -561,8 +561,7 @@
 
 typedef struct sam_unknown_info_2_inf
 {
-	uint32 unknown_0; /* 0x0000 0000 */
-	uint32 unknown_1; /* 0x8000 0000 */
+	NTTIME logout; /* whether users are forcibly disconnected when logon hours expire */
 	UNIHDR hdr_comment; /* comment according to samba4 idl */
 	UNIHDR hdr_domain; /* domain name unicode header */
 	UNIHDR hdr_server; /* server name unicode header */

Modified: trunk/source/rpc_parse/parse_samr.c
===================================================================
--- trunk/source/rpc_parse/parse_samr.c	2004-12-22 22:19:54 UTC (rev 4335)
+++ trunk/source/rpc_parse/parse_samr.c	2004-12-22 23:50:31 UTC (rev 4336)
@@ -697,10 +697,10 @@
 
 void init_unk_info2(SAM_UNK_INFO_2 * u_2,
 			const char *comment, const char *domain, const char *server,
-			uint32 seq_num, uint32 num_users, uint32 num_groups, uint32 num_alias)
+			uint32 seq_num, uint32 num_users, uint32 num_groups, uint32 num_alias, NTTIME nt_logout)
 {
-	u_2->unknown_0 = 0x00000000;
-	u_2->unknown_1 = 0x80000000;
+	u_2->logout.low = nt_logout.low;
+	u_2->logout.high = nt_logout.high;
 
 	u_2->seq_num.low = seq_num;
 	u_2->seq_num.high = 0x00000000;
@@ -736,10 +736,8 @@
 	prs_debug(ps, depth, desc, "sam_io_unk_info2");
 	depth++;
 
-	if(!prs_uint32("unknown_0", ps, depth, &u_2->unknown_0)) /* 0x0000 0000 */
+	if(!smb_io_time("logout", &u_2->logout, ps, depth))
 		return False;
-	if(!prs_uint32("unknown_1", ps, depth, &u_2->unknown_1)) /* 0x8000 0000 */
-		return False;
 	if(!smb_io_unihdr("hdr_comment", &u_2->hdr_comment, ps, depth))
 		return False;
 	if(!smb_io_unihdr("hdr_domain", &u_2->hdr_domain, ps, depth))

Modified: trunk/source/rpc_server/srv_samr_nt.c
===================================================================
--- trunk/source/rpc_server/srv_samr_nt.c	2004-12-22 22:19:54 UTC (rev 4335)
+++ trunk/source/rpc_server/srv_samr_nt.c	2004-12-22 23:50:31 UTC (rev 4336)
@@ -2136,10 +2136,15 @@
 			}
 			num_groups=info->disp_info.num_group_account;
 			free_samr_db(info);
-			
+
+			account_policy_get(AP_TIME_TO_LOGOUT, &account_policy_temp);
+			u_logout = account_policy_temp;
+
+			unix_to_nt_time_abs(&nt_logout, u_logout);
+
 			/* The time call below is to get a sequence number for the sam. FIXME !!! JRA. */
 			init_unk_info2(&ctr->info.inf2, "", lp_workgroup(), global_myname(), (uint32) time(NULL), 
-				       num_users, num_groups, num_aliases);
+				       num_users, num_groups, num_aliases, nt_logout);
 			break;
 		case 0x03:
 			account_policy_get(AP_TIME_TO_LOGOUT, (unsigned int *)&u_logout);
@@ -4407,9 +4412,14 @@
 			num_groups=info->disp_info.num_group_account;
 			free_samr_db(info);
 
+			account_policy_get(AP_TIME_TO_LOGOUT, &account_policy_temp);
+			u_logout = account_policy_temp;
+
+			unix_to_nt_time_abs(&nt_logout, u_logout);
+
 			/* The time call below is to get a sequence number for the sam. FIXME !!! JRA. */
 			init_unk_info2(&ctr->info.inf2, "", lp_workgroup(), global_myname(), (uint32) time(NULL), 
-				       num_users, num_groups, num_aliases);
+				       num_users, num_groups, num_aliases, nt_logout);
 			break;
 		case 0x03:
 			account_policy_get(AP_TIME_TO_LOGOUT, &account_policy_temp);

Modified: trunk/source/rpcclient/cmd_samr.c
===================================================================
--- trunk/source/rpcclient/cmd_samr.c	2004-12-22 22:19:54 UTC (rev 4335)
+++ trunk/source/rpcclient/cmd_samr.c	2004-12-22 23:50:31 UTC (rev 4336)
@@ -161,9 +161,9 @@
 	printf("Total Aliases:\t%d\n", info2->num_local_grps);
 	
 	printf("Sequence No:\t%d\n", info2->seq_num.low);
-	
-	printf("Unknown 0:\t0x%x\n", info2->unknown_0);
-	printf("Unknown 1:\t0x%x\n", info2->unknown_1);
+
+	printf("Force Logoff:\t%d\n", (int)nt_time_to_unix_abs(&info2->logout));
+
 	printf("Unknown 4:\t0x%x\n", info2->unknown_4);
 	printf("Unknown 5:\t0x%x\n", info2->unknown_5);
 	printf("Unknown 6:\t0x%x\n", info2->unknown_6);



More information about the samba-cvs mailing list