summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>2000-03-08 01:12:38 +0000
committerLuke Leighton <lkcl@samba.org>2000-03-08 01:12:38 +0000
commit92301b034d91d0e6e4622bf2e4d23971e6fea45d (patch)
treef616c7f23c457044d0c0b688cb93a7b3044fd568
parent69c0bd4414d5b2910fcb4e0669f54b25fd9626f1 (diff)
downloadsamba-92301b034d91d0e6e4622bf2e4d23971e6fea45d.tar.gz
samba-92301b034d91d0e6e4622bf2e4d23971e6fea45d.tar.xz
samba-92301b034d91d0e6e4622bf2e4d23971e6fea45d.zip
yet another stage in net user info level 2. server-side and client-side
support but no neg_flags used, yet.
-rw-r--r--source/include/proto.h3
-rw-r--r--source/netlogond/srv_netlogon_nt.c95
-rw-r--r--source/rpc_client/cli_login.c6
-rw-r--r--source/rpc_parse/parse_net.c12
-rw-r--r--source/rpc_server/srv_netlog.c191
5 files changed, 162 insertions, 145 deletions
diff --git a/source/include/proto.h b/source/include/proto.h
index 38099ea2ff7..99fc4852622 100644
--- a/source/include/proto.h
+++ b/source/include/proto.h
@@ -1242,8 +1242,7 @@ uint32 _net_srv_pwset(const DOM_CLNT_INFO * clnt_id,
uint32 _net_sam_logon(const DOM_SAM_INFO * sam_id,
uint16 validation_level,
DOM_CRED * srv_creds,
- uint16 * switch_value,
- NET_USER_INFO_3 * user, uint16 remote_pid);
+ NET_USER_INFO_CTR * uctr, uint16 remote_pid);
uint32 _net_sam_logoff(const DOM_SAM_INFO * sam_id,
DOM_CRED * srv_creds, uint16 remote_pid);
uint32 _net_sam_sync(const UNISTR2 * uni_srv_name,
diff --git a/source/netlogond/srv_netlogon_nt.c b/source/netlogond/srv_netlogon_nt.c
index 6dbc7fd1eba..6377bb48bc4 100644
--- a/source/netlogond/srv_netlogon_nt.c
+++ b/source/netlogond/srv_netlogon_nt.c
@@ -817,8 +817,7 @@ uint32 _net_srv_pwset(const DOM_CLNT_INFO * clnt_id,
uint32 _net_sam_logon(const DOM_SAM_INFO * sam_id,
uint16 validation_level,
DOM_CRED * srv_creds,
- uint16 * switch_value,
- NET_USER_INFO_3 * user, uint16 remote_pid)
+ NET_USER_INFO_CTR * uctr, uint16 remote_pid)
{
UNISTR2 *uni_samusr = NULL;
UNISTR2 *uni_domain = NULL;
@@ -857,6 +856,8 @@ uint32 _net_sam_logon(const DOM_SAM_INFO * sam_id,
UNISTR2 uni_myname;
UNISTR2 uni_sam_name;
+ uint32 status = NT_STATUS_NOPROBLEMO;
+
unistr2_to_ascii(trust_name, &(sam_id->client.login.uni_comp_name),
sizeof(trust_name) - 1);
@@ -933,10 +934,9 @@ uint32 _net_sam_logon(const DOM_SAM_INFO * sam_id,
if (sam_id->logon_level == GENERAL_LOGON_TYPE)
{
/* general login. cleartext password */
- uint32 status = NT_STATUS_NOPROBLEMO;
- status =
- net_login_general(&(sam_id->ctr->auth.id4), &dc,
- usr_sess_key);
+ status = NT_STATUS_NOPROBLEMO;
+ status = net_login_general(&(sam_id->ctr->auth.id4),
+ &dc, usr_sess_key);
enc_user_sess_key = usr_sess_key;
if (status != NT_STATUS_NOPROBLEMO)
@@ -1002,7 +1002,6 @@ uint32 _net_sam_logon(const DOM_SAM_INFO * sam_id,
if (!(IS_BITS_SET_ALL(acb_info, ACB_PWNOTREQ)))
{
- uint32 status = NT_STATUS_NOPROBLEMO;
switch (sam_id->logon_level)
{
case INTERACTIVE_LOGON_TYPE:
@@ -1022,7 +1021,8 @@ uint32 _net_sam_logon(const DOM_SAM_INFO * sam_id,
net_login_network(&
(sam_id->ctr->auth.
id2), acb_info,
-&dc, usr_sess_key, lm_pw8);
+ &dc, usr_sess_key,
+lm_pw8);
padding = lm_pw8;
enc_user_sess_key = usr_sess_key;
break;
@@ -1051,29 +1051,72 @@ uint32 _net_sam_logon(const DOM_SAM_INFO * sam_id,
make_unistr2(&uni_myname, global_myname, strlen(global_myname));
make_unistr2(&uni_sam_name, global_sam_name, strlen(global_sam_name));
- make_net_user_info3W(user, &logon_time, &logoff_time, &kickoff_time, &pass_last_set_time, &pass_can_change_time, &pass_must_change_time, uni_nt_name, /* user_name */
- uni_full_name, /* full_name */
- uni_logon_script, /* logon_script */
- uni_profile_path, /* profile_path */
- uni_home_dir, /* home_dir */
- uni_dir_drive, /* dir_drive */
- 0, /* logon_count */
- 0, /* bad_pw_count */
- user_rid, /* RID user_id */
- group_rid, /* RID group_id */
- num_gids, /* uint32 num_groups */
- gids, /* DOM_GID *gids */
- 0x20, /* uint32 user_flgs (?) */
- enc_user_sess_key, /* char usr_sess_key[16] */
- &uni_myname, /* char *logon_srv */
- &uni_sam_name, /* char *logon_dom */
- padding, &global_sam_sid, /* DOM_SID *dom_sid */
- NULL); /* char *other_sids */
+ switch (validation_level)
+ {
+ case 2:
+ {
+ uctr->usr.id2 = g_new(NET_USER_INFO_2, 1);
+ if (uctr->usr.id2 == NULL)
+ {
+ status = NT_STATUS_INVALID_PARAMETER;
+ break;
+ }
+ make_net_user_info2W(uctr->usr.id2, &logon_time,
+ &logoff_time, &kickoff_time,
+ &pass_last_set_time,
+ &pass_can_change_time,
+ &pass_must_change_time,
+ uni_nt_name, uni_full_name,
+ uni_logon_script,
+ uni_profile_path, uni_home_dir,
+ uni_dir_drive, 0, 0, user_rid,
+ group_rid, num_gids, gids, 0x20,
+ enc_user_sess_key, &uni_myname,
+ &uni_sam_name, padding,
+ &global_sam_sid);
+ break;
+ }
+ case 3:
+ {
+ uctr->usr.id3 = g_new(NET_USER_INFO_3, 1);
+ if (uctr->usr.id3 == NULL)
+ {
+ status = NT_STATUS_INVALID_PARAMETER;
+ break;
+ }
+ make_net_user_info3W(uctr->usr.id3, &logon_time,
+ &logoff_time, &kickoff_time,
+ &pass_last_set_time,
+ &pass_can_change_time,
+ &pass_must_change_time,
+ uni_nt_name, uni_full_name,
+ uni_logon_script,
+ uni_profile_path, uni_home_dir,
+ uni_dir_drive, 0,
+ 0,
+ user_rid, group_rid, num_gids,
+ gids, 0x20,
+ enc_user_sess_key, &uni_myname,
+ &uni_sam_name, padding,
+ &global_sam_sid, NULL);
+ break;
+ }
+ default:
+ {
+ status = NT_STATUS_INVALID_INFO_CLASS;
+ break;
+ }
+ }
/* Free any allocated groups array. */
safe_free(gids);
free_samr_userinfo_ctr(&ctr);
+ if (status != NT_STATUS_NOPROBLEMO)
+ {
+ return status;
+ }
+
if (!cred_store(remote_pid, global_sam_name, trust_name, &dc))
{
return NT_STATUS_INVALID_HANDLE;
diff --git a/source/rpc_client/cli_login.c b/source/rpc_client/cli_login.c
index 9316e61f0fa..c6b93c23765 100644
--- a/source/rpc_client/cli_login.c
+++ b/source/rpc_client/cli_login.c
@@ -155,7 +155,7 @@ BOOL cli_nt_login_general(const char *srv_name, const char *myhostname,
uint8 sess_key[16];
NET_USER_INFO_CTR user_ctr;
uint32 status;
- user_ctr.switch_value = 2;
+ user_ctr.switch_value = 3;
DEBUG(5, ("cli_nt_login_general: %d\n", __LINE__));
@@ -205,7 +205,7 @@ uint32 cli_nt_login_interactive(const char *srv_name, const char *myhostname,
uint32 status;
uint8 sess_key[16];
NET_USER_INFO_CTR user_ctr;
- user_ctr.switch_value = 2;
+ user_ctr.switch_value = 3;
DEBUG(5, ("cli_nt_login_interactive: %d\n", __LINE__));
@@ -261,7 +261,7 @@ uint32 cli_nt_login_network(const char *srv_name, const char *myhostname,
uint8 sess_key[16];
uint32 status;
NET_USER_INFO_CTR user_ctr;
- user_ctr.switch_value = 2;
+ user_ctr.switch_value = 3;
DEBUG(5, ("cli_nt_login_network: %d\n", __LINE__));
diff --git a/source/rpc_parse/parse_net.c b/source/rpc_parse/parse_net.c
index 3698ca87292..1d4b78d0d25 100644
--- a/source/rpc_parse/parse_net.c
+++ b/source/rpc_parse/parse_net.c
@@ -1089,6 +1089,8 @@ BOOL make_net_user_info2W(NET_USER_INFO_2 * usr,
int len_logon_srv = logon_srv != NULL ? logon_srv->uni_str_len : 0;
int len_logon_dom = logon_dom != NULL ? logon_dom->uni_str_len : 0;
+ ZERO_STRUCTP(usr);
+
usr->logon_time = *logon_time;
usr->logoff_time = *logoff_time;
usr->kickoff_time = *kickoff_time;
@@ -1286,7 +1288,7 @@ BOOL net_io_user_info2(char *desc, NET_USER_INFO_2 * usr, prs_struct * ps,
if (usr == NULL)
return False;
- prs_debug(ps, depth, desc, "lsa_io_lsa_user_info");
+ prs_debug(ps, depth, desc, "net_io_lsa_user_info2");
depth++;
prs_align(ps);
@@ -1459,6 +1461,8 @@ BOOL make_net_user_info3W(NET_USER_INFO_3 * usr,
int len_logon_srv = logon_srv != NULL ? logon_srv->uni_str_len : 0;
int len_logon_dom = logon_dom != NULL ? logon_dom->uni_str_len : 0;
+ ZERO_STRUCTP(usr);
+
usr->logon_time = *logon_time;
usr->logoff_time = *logoff_time;
usr->kickoff_time = *kickoff_time;
@@ -1670,7 +1674,7 @@ BOOL net_io_user_info3(char *desc, NET_USER_INFO_3 * usr, prs_struct * ps,
if (usr == NULL)
return False;
- prs_debug(ps, depth, desc, "lsa_io_lsa_user_info");
+ prs_debug(ps, depth, desc, "net_io_lsa_user_info3");
depth++;
prs_align(ps);
@@ -1848,7 +1852,7 @@ BOOL net_io_user_info_ctr(char *desc, NET_USER_INFO_CTR * ctr,
{
return False;
}
- net_io_user_info2("", ctr->usr.id2, ps,
+ net_io_user_info2("usr2", ctr->usr.id2, ps,
depth);
break;
}
@@ -1862,7 +1866,7 @@ BOOL net_io_user_info_ctr(char *desc, NET_USER_INFO_CTR * ctr,
{
return False;
}
- net_io_user_info3("", ctr->usr.id3, ps,
+ net_io_user_info3("usr3", ctr->usr.id3, ps,
depth);
break;
}
diff --git a/source/rpc_server/srv_netlog.c b/source/rpc_server/srv_netlog.c
index 7dd75336cf3..2ad872e5ad8 100644
--- a/source/rpc_server/srv_netlog.c
+++ b/source/rpc_server/srv_netlog.c
@@ -24,7 +24,6 @@
*/
-/* strikerXXXX Luke, do I need all these? */
#include "includes.h"
#include "nterr.h"
#include "sids.h"
@@ -37,9 +36,8 @@ extern pstring global_myname;
/*************************************************************************
api_net_req_chal
*************************************************************************/
-static BOOL api_net_req_chal( rpcsrv_struct *p,
- prs_struct *data,
- prs_struct *rdata)
+static BOOL api_net_req_chal(rpcsrv_struct * p,
+ prs_struct * data, prs_struct * rdata)
{
NET_Q_REQ_CHAL q_r;
NET_R_REQ_CHAL r_c;
@@ -53,9 +51,8 @@ static BOOL api_net_req_chal( rpcsrv_struct *p,
return False;
}
- r_c.status = _net_req_chal(&q_r.uni_logon_srv, &q_r.uni_logon_clnt,
- &q_r.clnt_chal, &r_c.srv_chal,
- p->key.pid); /* strikerXXXX have to pass this parameter */
+ r_c.status = _net_req_chal(&q_r.uni_logon_srv, &q_r.uni_logon_clnt,
+ &q_r.clnt_chal, &r_c.srv_chal, p->key.pid);
/* store the response in the SMB stream */
return net_io_r_req_chal("", &r_c, rdata, 0);
@@ -64,9 +61,8 @@ static BOOL api_net_req_chal( rpcsrv_struct *p,
/*************************************************************************
api_net_auth
*************************************************************************/
-static BOOL api_net_auth( rpcsrv_struct *p,
- prs_struct *data,
- prs_struct *rdata)
+static BOOL api_net_auth(rpcsrv_struct * p,
+ prs_struct * data, prs_struct * rdata)
{
NET_Q_AUTH q_a;
NET_R_AUTH r_a;
@@ -80,10 +76,9 @@ static BOOL api_net_auth( rpcsrv_struct *p,
return False;
}
- r_a.status = _net_auth(&q_a.clnt_id,
- &q_a.clnt_chal,
- &r_a.srv_chal,
- p->key.pid); /* strikerXXXX have to pass this parameter */
+ r_a.status =
+ _net_auth(&q_a.clnt_id, &q_a.clnt_chal, &r_a.srv_chal,
+ p->key.pid);
/* store the response in the SMB stream */
return net_io_r_auth("", &r_a, rdata, 0);
@@ -92,9 +87,8 @@ static BOOL api_net_auth( rpcsrv_struct *p,
/*************************************************************************
api_net_auth_2
*************************************************************************/
-static BOOL api_net_auth_2( rpcsrv_struct *p,
- prs_struct *data,
- prs_struct *rdata)
+static BOOL api_net_auth_2(rpcsrv_struct * p,
+ prs_struct * data, prs_struct * rdata)
{
NET_Q_AUTH_2 q_a;
NET_R_AUTH_2 r_a;
@@ -108,12 +102,9 @@ static BOOL api_net_auth_2( rpcsrv_struct *p,
return False;
}
- r_a.status = _net_auth_2(&q_a.clnt_id,
- &q_a.clnt_chal,
- &q_a.clnt_flgs,
- &r_a.srv_chal,
- &r_a.srv_flgs,
- p->key.pid); /* strikerXXXX have to pass this parameter */
+ r_a.status =
+ _net_auth_2(&q_a.clnt_id, &q_a.clnt_chal, &q_a.clnt_flgs,
+ &r_a.srv_chal, &r_a.srv_flgs, p->key.pid);
/* store the response in the SMB stream */
return net_io_r_auth_2("", &r_a, rdata, 0);
@@ -122,9 +113,8 @@ static BOOL api_net_auth_2( rpcsrv_struct *p,
/*************************************************************************
api_net_srv_pwset
*************************************************************************/
-static BOOL api_net_srv_pwset( rpcsrv_struct *p,
- prs_struct *data,
- prs_struct *rdata)
+static BOOL api_net_srv_pwset(rpcsrv_struct * p,
+ prs_struct * data, prs_struct * rdata)
{
NET_Q_SRV_PWSET q_a;
NET_R_SRV_PWSET r_s;
@@ -138,10 +128,9 @@ static BOOL api_net_srv_pwset( rpcsrv_struct *p,
return False;
}
- r_s.status = _net_srv_pwset(&q_a.clnt_id,
- q_a.pwd,
- &r_s.srv_cred,
- p->key.pid); /* strikerXXXX have to pass this parameter */
+ r_s.status =
+ _net_srv_pwset(&q_a.clnt_id, q_a.pwd, &r_s.srv_cred,
+ p->key.pid);
/* store the response in the SMB stream */
return net_io_r_srv_pwset("", &r_s, rdata, 0);
@@ -150,13 +139,12 @@ static BOOL api_net_srv_pwset( rpcsrv_struct *p,
/*************************************************************************
api_net_sam_logoff
*************************************************************************/
-static BOOL api_net_sam_logoff( rpcsrv_struct *p,
- prs_struct *data,
- prs_struct *rdata)
+static BOOL api_net_sam_logoff(rpcsrv_struct * p,
+ prs_struct * data, prs_struct * rdata)
{
NET_Q_SAM_LOGOFF q_l;
NET_R_SAM_LOGOFF r_s;
- NET_ID_INFO_CTR ctr;
+ NET_ID_INFO_CTR ctr;
DOM_CRED srv_cred;
uint32 status;
@@ -173,9 +161,7 @@ static BOOL api_net_sam_logoff( rpcsrv_struct *p,
return False;
}
- status = _net_sam_logoff(&q_l.sam_id,
- &srv_cred,
- p->key.pid); /* strikerXXXX have to pass this parameter */
+ status = _net_sam_logoff(&q_l.sam_id, &srv_cred, p->key.pid);
make_r_sam_logoff(&r_s, &srv_cred, status);
/* store the response in the SMB stream */
@@ -183,14 +169,14 @@ static BOOL api_net_sam_logoff( rpcsrv_struct *p,
}
static uint32 net_update_creds(uint32 remote_pid, struct dcinfo *dc,
- const UNISTR2 *uni_cli_name,
- const DOM_CRED *cli_creds,
- const DOM_CRED *ret_creds,
- DOM_CRED *srv_creds)
+ const UNISTR2 * uni_cli_name,
+ const DOM_CRED * cli_creds,
+ const DOM_CRED * ret_creds,
+ DOM_CRED * srv_creds)
{
fstring trust_name;
- unistr2_to_ascii(trust_name, uni_cli_name, sizeof(trust_name)-1);
+ unistr2_to_ascii(trust_name, uni_cli_name, sizeof(trust_name) - 1);
if (!cred_get(remote_pid, global_sam_name, trust_name, dc))
{
@@ -198,7 +184,8 @@ static uint32 net_update_creds(uint32 remote_pid, struct dcinfo *dc,
}
/* checks and updates credentials. creates reply credentials */
- if (!deal_with_creds(dc->sess_key, &dc->clnt_cred, cli_creds, srv_creds))
+ if (!deal_with_creds
+ (dc->sess_key, &dc->clnt_cred, cli_creds, srv_creds))
{
return NT_STATUS_ACCESS_DENIED;
}
@@ -216,9 +203,8 @@ static uint32 net_update_creds(uint32 remote_pid, struct dcinfo *dc,
/*************************************************************************
api_net_sam_sync
*************************************************************************/
-static BOOL api_net_sam_sync( rpcsrv_struct *p,
- prs_struct *data,
- prs_struct *rdata)
+static BOOL api_net_sam_sync(rpcsrv_struct * p,
+ prs_struct * data, prs_struct * rdata)
{
NET_Q_SAM_SYNC q_s;
NET_R_SAM_SYNC r_s;
@@ -232,41 +218,32 @@ static BOOL api_net_sam_sync( rpcsrv_struct *p,
struct dcinfo dc;
ZERO_STRUCT(dc);
ZERO_STRUCT(srv_creds);
-
+
/* grab the challenge... */
if (!net_io_q_sam_sync("", &q_s, data, 0))
{
return False;
}
-
status = net_update_creds(p->key.pid,
- &dc, &q_s.uni_cli_name,
- &q_s.cli_creds,
- &q_s.ret_creds,
- &srv_creds);
+ &dc, &q_s.uni_cli_name,
+ &q_s.cli_creds, &q_s.ret_creds, &srv_creds);
if (status == 0x0)
{
status = _net_sam_sync(&q_s.uni_srv_name,
- &q_s.uni_cli_name,
- q_s.database_id,
- q_s.restart_state,
- &q_s.sync_context,
- q_s.max_size,
- &num_deltas,
- &num_deltas2,
- hdr_deltas,
- deltas);
+ &q_s.uni_cli_name,
+ q_s.database_id,
+ q_s.restart_state,
+ &q_s.sync_context,
+ q_s.max_size,
+ &num_deltas,
+ &num_deltas2, hdr_deltas, deltas);
}
make_r_sam_sync(&r_s, &srv_creds,
- q_s.sync_context,
- num_deltas,
- num_deltas2,
- hdr_deltas,
- deltas,
- status);
+ q_s.sync_context,
+ num_deltas, num_deltas2, hdr_deltas, deltas, status);
/* store the response in the SMB stream */
return net_io_r_sam_sync("", dc.sess_key, &r_s, rdata, 0);
@@ -275,48 +252,45 @@ static BOOL api_net_sam_sync( rpcsrv_struct *p,
/*************************************************************************
api_net_sam_logon
*************************************************************************/
-static BOOL api_net_sam_logon( rpcsrv_struct *p,
- prs_struct *data,
- prs_struct *rdata)
+static BOOL api_net_sam_logon(rpcsrv_struct * p,
+ prs_struct * data, prs_struct * rdata)
{
NET_Q_SAM_LOGON q_l;
NET_R_SAM_LOGON r_s;
NET_ID_INFO_CTR ctr;
DOM_CRED srv_creds;
- uint16 switch_value;
- NET_USER_INFO_3 info_3;
+ NET_USER_INFO_CTR uctr;
uint32 status;
+ BOOL ret;
- ZERO_STRUCT(info_3);
+ ZERO_STRUCT(uctr);
ZERO_STRUCT(q_l);
ZERO_STRUCT(r_s);
- q_l.sam_id.ctr = &ctr; /* strikerXXXX don't really get this */
+ q_l.sam_id.ctr = &ctr;
if (!net_io_q_sam_logon("", &q_l, data, 0))
{
return False;
}
status = _net_sam_logon(&q_l.sam_id,
- q_l.validation_level,
- &srv_creds,
- &switch_value,
- &info_3,
- p->key.pid);
- make_r_sam_logon(&r_s, &srv_creds, switch_value,
- status == NT_STATUS_NOPROBLEMO ? &info_3 : NULL,
- status);
+ q_l.validation_level,
+ &srv_creds, &uctr, p->key.pid);
+ make_r_sam_logon(&r_s, &srv_creds, q_l.validation_level,
+ status == NT_STATUS_NOPROBLEMO ? uctr.usr.id : NULL,
+ status);
/* store the response in the SMB stream */
- return net_io_r_sam_logon("", &r_s, rdata, 0);
+ ret = net_io_r_sam_logon("", &r_s, rdata, 0);
+ free_net_user_info_ctr(&uctr);
+ return ret;
}
/*************************************************************************
api_net_trust_dom_list
*************************************************************************/
-static BOOL api_net_trust_dom_list( rpcsrv_struct *p,
- prs_struct *data,
- prs_struct *rdata)
+static BOOL api_net_trust_dom_list(rpcsrv_struct * p,
+ prs_struct * data, prs_struct * rdata)
{
NET_Q_TRUST_DOM_LIST q_t;
NET_R_TRUST_DOM_LIST r_t;
@@ -331,9 +305,9 @@ static BOOL api_net_trust_dom_list( rpcsrv_struct *p,
}
r_t.status = _net_trust_dom_list(&q_t.uni_server_name,
- q_t.function_code,
- &r_t.uni_trust_dom_name);
-
+ q_t.function_code,
+ &r_t.uni_trust_dom_name);
+
/* store the response in the SMB stream */
return net_io_r_trust_dom("", &r_t, rdata, 0);
}
@@ -341,9 +315,8 @@ static BOOL api_net_trust_dom_list( rpcsrv_struct *p,
/*************************************************************************
api_net_logon_ctrl2
*************************************************************************/
-static BOOL api_net_logon_ctrl2( rpcsrv_struct *p,
- prs_struct *data,
- prs_struct *rdata)
+static BOOL api_net_logon_ctrl2(rpcsrv_struct * p,
+ prs_struct * data, prs_struct * rdata)
{
NET_Q_LOGON_CTRL2 q_l;
NET_R_LOGON_CTRL2 r_l;
@@ -362,11 +335,10 @@ static BOOL api_net_logon_ctrl2( rpcsrv_struct *p,
}
status = _net_logon_ctrl2(&q_l.uni_server_name,
- q_l.function_code,
- q_l.query_level,
- q_l.switch_value,
- &switch_value,
- &logon_info);
+ q_l.function_code,
+ q_l.query_level,
+ q_l.switch_value,
+ &switch_value, &logon_info);
make_r_logon_ctrl2(&r_l, switch_value, &logon_info, status);
/* store the response in the SMB stream */
@@ -376,24 +348,23 @@ static BOOL api_net_logon_ctrl2( rpcsrv_struct *p,
/*******************************************************************
array of \PIPE\NETLOGON operations
********************************************************************/
-static const struct api_struct api_net_cmds [] =
-{
- { "NET_REQCHAL" , NET_REQCHAL , api_net_req_chal },
- { "NET_AUTH" , NET_AUTH , api_net_auth },
- { "NET_AUTH2" , NET_AUTH2 , api_net_auth_2 },
- { "NET_SRVPWSET" , NET_SRVPWSET , api_net_srv_pwset },
- { "NET_SAMLOGON" , NET_SAMLOGON , api_net_sam_logon },
- { "NET_SAMLOGOFF" , NET_SAMLOGOFF , api_net_sam_logoff },
- { "NET_LOGON_CTRL2" , NET_LOGON_CTRL2 , api_net_logon_ctrl2 },
- { "NET_TRUST_DOM_LIST", NET_TRUST_DOM_LIST, api_net_trust_dom_list },
- { "NET_SAM_SYNC" , NET_SAM_SYNC , api_net_sam_sync },
- { NULL , 0 , NULL }
+static const struct api_struct api_net_cmds[] = {
+ {"NET_REQCHAL", NET_REQCHAL, api_net_req_chal},
+ {"NET_AUTH", NET_AUTH, api_net_auth},
+ {"NET_AUTH2", NET_AUTH2, api_net_auth_2},
+ {"NET_SRVPWSET", NET_SRVPWSET, api_net_srv_pwset},
+ {"NET_SAMLOGON", NET_SAMLOGON, api_net_sam_logon},
+ {"NET_SAMLOGOFF", NET_SAMLOGOFF, api_net_sam_logoff},
+ {"NET_LOGON_CTRL2", NET_LOGON_CTRL2, api_net_logon_ctrl2},
+ {"NET_TRUST_DOM_LIST", NET_TRUST_DOM_LIST, api_net_trust_dom_list},
+ {"NET_SAM_SYNC", NET_SAM_SYNC, api_net_sam_sync},
+ {NULL, 0, NULL}
};
/*******************************************************************
receives a netlogon pipe and responds.
********************************************************************/
-BOOL api_netlog_rpc(rpcsrv_struct *p)
+BOOL api_netlog_rpc(rpcsrv_struct * p)
{
return api_rpcTNP(p, "api_netlog_rpc", api_net_cmds);
}