summaryrefslogtreecommitdiffstats
path: root/source/pipenetlog.c
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1997-10-22 17:51:02 +0000
committerLuke Leighton <lkcl@samba.org>1997-10-22 17:51:02 +0000
commitb88ee3e16c6b671069f53ca2e9c5694ec8b1c030 (patch)
tree334148e4bddec0ff7b9600321039bc5afe63e994 /source/pipenetlog.c
parent6ee065ce6e099acfc7e83ad399ef6e60b4c625c1 (diff)
downloadsamba-b88ee3e16c6b671069f53ca2e9c5694ec8b1c030.tar.gz
samba-b88ee3e16c6b671069f53ca2e9c5694ec8b1c030.tar.xz
samba-b88ee3e16c6b671069f53ca2e9c5694ec8b1c030.zip
Makefile client.c :
adding start of undocumented options to do NT domain logons, client-side. starting with LSA_REQCHAL. the code here happily crashes smbd: i'll investigate this further... :-) smbparse.c pipeutil.c lsaparse.c : moved some of the common make_xxxx() functions out of pipeutil.c so that the make_xxxx and (smb/lsa)_io_xxxx functions now sit together. makes sense, really... added a make_q_req_chal() function. restructured make_rpc_reply() and called it make_rpc_hdr(). created functions create_rpc_reply() and create_rpc_response(). pipenetlog.c pipentlsa.c pipesrvsvc.c calling new create_rpc_reply() function instead of old make_rpc_reply(). proto.h : usual. smb.h: added enum for RPC_PACKET_TYPE
Diffstat (limited to 'source/pipenetlog.c')
-rw-r--r--source/pipenetlog.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/source/pipenetlog.c b/source/pipenetlog.c
index 7e69ac3880d..fcd44b9701e 100644
--- a/source/pipenetlog.c
+++ b/source/pipenetlog.c
@@ -624,12 +624,14 @@ BOOL api_netlogrpcTNP(int cnum,int uid, char *param,char *data,
char **rdata,char **rparam,
int *rdata_len,int *rparam_len)
{
- uint16 opnum = SVAL(data,22);
- int pkttype = CVAL(data, 2);
+ /* really should decode these using an RPC_HDR structure */
+ int pkttype = CVAL(data, 2);
+ uint32 call_id = SVAL(data,12);
+ uint16 opnum = SVAL(data,22);
user_struct *vuser;
- if (pkttype == 0x0b) /* RPC BIND */
+ if (pkttype == RPC_BIND) /* RPC BIND */
{
DEBUG(4,("netlogon rpc bind %x\n",pkttype));
LsarpcTNP1(data,rdata,rdata_len);
@@ -648,7 +650,7 @@ BOOL api_netlogrpcTNP(int cnum,int uid, char *param,char *data,
{
DEBUG(3,("LSA_REQCHAL\n"));
api_lsa_req_chal(cnum, uid, vuser, param, data, rdata, rdata_len);
- make_rpc_reply(data, *rdata, *rdata_len);
+ create_rpc_reply(call_id, *rdata, *rdata_len);
break;
}
@@ -656,7 +658,7 @@ BOOL api_netlogrpcTNP(int cnum,int uid, char *param,char *data,
{
DEBUG(3,("LSA_AUTH2\n"));
api_lsa_auth_2(vuser, param, data, rdata, rdata_len);
- make_rpc_reply(data, *rdata, *rdata_len);
+ create_rpc_reply(call_id, *rdata, *rdata_len);
break;
}
@@ -664,7 +666,7 @@ BOOL api_netlogrpcTNP(int cnum,int uid, char *param,char *data,
{
DEBUG(3,("LSA_SRVPWSET\n"));
api_lsa_srv_pwset(vuser, param, data, rdata, rdata_len);
- make_rpc_reply(data, *rdata, *rdata_len);
+ create_rpc_reply(call_id, *rdata, *rdata_len);
break;
}
@@ -672,7 +674,7 @@ BOOL api_netlogrpcTNP(int cnum,int uid, char *param,char *data,
{
DEBUG(3,("LSA_SAMLOGON\n"));
api_lsa_sam_logon(vuser, param, data, rdata, rdata_len);
- make_rpc_reply(data, *rdata, *rdata_len);
+ create_rpc_reply(call_id, *rdata, *rdata_len);
break;
}
@@ -680,6 +682,7 @@ BOOL api_netlogrpcTNP(int cnum,int uid, char *param,char *data,
{
DEBUG(3,("LSA_SAMLOGOFF\n"));
api_lsa_sam_logoff(vuser, param, data, rdata, rdata_len);
+ create_rpc_reply(call_id, *rdata, *rdata_len);
break;
}