diff options
author | Luke Leighton <lkcl@samba.org> | 1998-10-15 05:47:29 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1998-10-15 05:47:29 +0000 |
commit | a42afcdcc7ab9aa9ed193ae36d3dbb10843447f0 (patch) | |
tree | d5f55708810d375cb906e8deea7dd21e522be07f /source3/lsarpcd | |
parent | ba22030ed7e81749116191bce26e948ebf35e2cb (diff) | |
download | samba-a42afcdcc7ab9aa9ed193ae36d3dbb10843447f0.tar.gz samba-a42afcdcc7ab9aa9ed193ae36d3dbb10843447f0.tar.bz2 samba-a42afcdcc7ab9aa9ed193ae36d3dbb10843447f0.zip |
bug-fixing against:
AS/U:
it returns dce/rpc "first" and "last" bits _clear_ in a bind/ack
response, when they should be set in a (small) packet. they also,
in the bind/ack do not set a secondary address string at all, so
we can't check against that...
Win95:
client-side dce/rpc code is a bit odd. it does a "WaitNamedPipeState"
and has slightly different pipe-naming (\PIPE\LANMAN is joined by
\PIPE\SRVSVC, \PIPE\WINREG etc whereas nt just has \PIPE\LANMAN
and \PIPE\).
Win95-USRMGR.EXE:
added LsaOpenPolicy (renamed existing to LsaOpenPolicy2).
added SamrConnect (renamed existing to SamrConnect2).
(This used to be commit a7fccd807b938cbb51002ebae8c7a48b40dbb655)
Diffstat (limited to 'source3/lsarpcd')
-rw-r--r-- | source3/lsarpcd/srv_lsa.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/source3/lsarpcd/srv_lsa.c b/source3/lsarpcd/srv_lsa.c index 2e5ebc9e68..93584b5acf 100644 --- a/source3/lsarpcd/srv_lsa.c +++ b/source3/lsarpcd/srv_lsa.c @@ -31,6 +31,28 @@ extern int DEBUGLEVEL; extern DOM_SID global_machine_sid; /*************************************************************************** +lsa_reply_open_policy2 + ***************************************************************************/ +static void lsa_reply_open_policy2(prs_struct *rdata) +{ + int i; + LSA_R_OPEN_POL2 r_o; + + ZERO_STRUCT(r_o); + + /* set up the LSA QUERY INFO response */ + + for (i = 4; i < POL_HND_SIZE; i++) + { + r_o.pol.data[i] = i; + } + r_o.status = 0x0; + + /* store the response in the SMB stream */ + lsa_io_r_open_pol2("", &r_o, rdata, 0); +} + +/*************************************************************************** lsa_reply_open_policy ***************************************************************************/ static void lsa_reply_open_policy(prs_struct *rdata) @@ -282,6 +304,25 @@ static void lsa_reply_lookup_rids(prs_struct *rdata, /*************************************************************************** api_lsa_open_policy ***************************************************************************/ +static void api_lsa_open_policy2( uint16 vuid, prs_struct *data, + prs_struct *rdata ) +{ + LSA_Q_OPEN_POL2 q_o; + + ZERO_STRUCT(q_o); + + /* grab the server, object attributes and desired access flag...*/ + lsa_io_q_open_pol2("", &q_o, data, 0); + + /* lkclXXXX having decoded it, ignore all fields in the open policy! */ + + /* return a 20 byte policy handle */ + lsa_reply_open_policy2(rdata); +} + +/*************************************************************************** +api_lsa_open_policy + ***************************************************************************/ static void api_lsa_open_policy( uint16 vuid, prs_struct *data, prs_struct *rdata ) { @@ -513,6 +554,7 @@ static void api_lsa_open_secret( uint16 vuid, prs_struct *data, ***************************************************************************/ static struct api_struct api_lsa_cmds[] = { + { "LSA_OPENPOLICY2" , LSA_OPENPOLICY2 , api_lsa_open_policy2 }, { "LSA_OPENPOLICY" , LSA_OPENPOLICY , api_lsa_open_policy }, { "LSA_QUERYINFOPOLICY" , LSA_QUERYINFOPOLICY , api_lsa_query_info }, { "LSA_ENUMTRUSTDOM" , LSA_ENUMTRUSTDOM , api_lsa_enum_trust_dom }, |