svn commit: samba r12344 - in trunk/source/nsswitch: .

gd at samba.org gd at samba.org
Mon Dec 19 03:37:37 GMT 2005


Author: gd
Date: 2005-12-19 03:37:37 +0000 (Mon, 19 Dec 2005)
New Revision: 12344

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

Log:
Add info3 as text to the winbindd_response (the flag to set this in a
request was already there), the info3 is not complete (sessionkeys and
group sids missing), this might be removed again later on.

Guenther

Modified:
   trunk/source/nsswitch/winbindd_nss.h
   trunk/source/nsswitch/winbindd_pam.c


Changeset:
Modified: trunk/source/nsswitch/winbindd_nss.h
===================================================================
--- trunk/source/nsswitch/winbindd_nss.h	2005-12-19 03:28:10 UTC (rev 12343)
+++ trunk/source/nsswitch/winbindd_nss.h	2005-12-19 03:37:37 UTC (rev 12344)
@@ -320,6 +320,31 @@
 				time_t min_passwordage;
 			} policy;
 			uint32 reject_reason;
+			struct info3_text {
+				time_t logon_time;
+				time_t logoff_time;
+				time_t kickoff_time;
+				time_t pass_last_set_time;
+				time_t pass_can_change_time;
+				time_t pass_must_change_time;
+				uint16 logon_count;
+				uint16 bad_pw_count;
+				fstring user_sid;
+				fstring group_sid;
+				fstring dom_sid;
+				uint32 num_groups;
+				uint32 user_flgs;
+				uint32 acct_flags;
+				uint32 num_other_sids;
+				fstring user_name;
+				fstring full_name;
+				fstring logon_script;
+				fstring profile_path;
+				fstring home_dir;
+				fstring dir_drive;
+				fstring logon_srv;
+				fstring logon_dom;
+			} info3;
 		} auth;
 		uint32 rid;	/* create user or group or allocate rid */
 		struct {

Modified: trunk/source/nsswitch/winbindd_pam.c
===================================================================
--- trunk/source/nsswitch/winbindd_pam.c	2005-12-19 03:28:10 UTC (rev 12343)
+++ trunk/source/nsswitch/winbindd_pam.c	2005-12-19 03:37:37 UTC (rev 12344)
@@ -27,7 +27,71 @@
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_WINBIND
 
+static NTSTATUS append_info3_as_txt(TALLOC_CTX *mem_ctx, 
+				    struct winbindd_cli_state *state, 
+				    NET_USER_INFO_3 *info3) 
+{
+	DOM_SID user_sid, group_sid;
+	fstring str_sid;
 
+	state->response.data.auth.info3.logon_time = 
+		nt_time_to_unix(&(info3->logon_time));
+	state->response.data.auth.info3.logoff_time = 
+		nt_time_to_unix(&(info3->logoff_time));
+	state->response.data.auth.info3.kickoff_time = 
+		nt_time_to_unix(&(info3->kickoff_time));
+	state->response.data.auth.info3.pass_last_set_time = 
+		nt_time_to_unix(&(info3->pass_last_set_time));
+	state->response.data.auth.info3.pass_can_change_time = 
+		nt_time_to_unix(&(info3->pass_can_change_time));
+	state->response.data.auth.info3.pass_must_change_time = 
+		nt_time_to_unix(&(info3->pass_must_change_time));
+
+	state->response.data.auth.info3.logon_count = info3->logon_count;
+	state->response.data.auth.info3.bad_pw_count = info3->bad_pw_count;
+
+	sid_copy(&user_sid, &(info3->dom_sid.sid));
+	sid_append_rid(&user_sid, info3->user_rid);
+
+	sid_to_string(str_sid, &user_sid);
+	fstrcpy(state->response.data.auth.info3.user_sid, str_sid);
+
+	sid_copy(&group_sid, &(info3->dom_sid.sid));
+	sid_append_rid(&group_sid, info3->group_rid);
+
+	sid_to_string(str_sid, &group_sid);
+	fstrcpy(state->response.data.auth.info3.group_sid, str_sid);
+
+	sid_to_string(str_sid, &(info3->dom_sid.sid));
+	fstrcpy(state->response.data.auth.info3.dom_sid, str_sid);
+
+	state->response.data.auth.info3.num_groups = info3->num_groups;
+	state->response.data.auth.info3.user_flgs = info3->user_flgs;
+
+	state->response.data.auth.info3.acct_flags = info3->acct_flags;
+	state->response.data.auth.info3.num_other_sids = info3->num_other_sids;
+
+	unistr2_to_ascii(state->response.data.auth.info3.user_name, 
+		&info3->uni_user_name, -1);
+	unistr2_to_ascii(state->response.data.auth.info3.full_name, 
+		&info3->uni_full_name, -1);
+	unistr2_to_ascii(state->response.data.auth.info3.logon_script, 
+		&info3->uni_logon_script, -1);
+	unistr2_to_ascii(state->response.data.auth.info3.profile_path, 
+		&info3->uni_profile_path, -1);
+	unistr2_to_ascii(state->response.data.auth.info3.home_dir, 
+		&info3->uni_home_dir, -1);
+	unistr2_to_ascii(state->response.data.auth.info3.dir_drive, 
+		&info3->uni_dir_drive, -1);
+
+	unistr2_to_ascii(state->response.data.auth.info3.logon_srv, 
+		&info3->uni_logon_srv, -1);
+	unistr2_to_ascii(state->response.data.auth.info3.logon_dom, 
+		&info3->uni_logon_dom, -1);
+
+	return NT_STATUS_OK;
+}
+
 static NTSTATUS append_info3_as_ndr(TALLOC_CTX *mem_ctx, 
 				    struct winbindd_cli_state *state, 
 				    NET_USER_INFO_3 *info3) 



More information about the samba-cvs mailing list