summaryrefslogtreecommitdiff
path: root/source3/rpc_parse/parse_samr.c
AgeCommit message (Collapse)AuthorFilesLines
2000-01-17SAMR_R_UNKNOWN_38 is 3 uint16 params (4-byte aligned) followed by status code.Luke Leighton1-4/+3
(This used to be commit 55035b8984c135ddd2c4e3be18caf8833975841d)
1999-12-13first pass at updating head branch to be to be the same as the SAMBA_2_0 branchAndrew Tridgell1-4617/+1925
(This used to be commit 453a822a76780063dff23526c35408866d0c0154)
1999-12-12delineation between smb and msrpc more marked. smbd now constructsLuke Leighton1-34/+0
pdus, and then feeds them over either a "local" function call or a "remote" function call to an msrpc service. the "remote" msrpc daemon, on the other side of a unix socket, then calls the same "local" function that smbd would, if the msrpc service were being run from inside smbd. this allows a transition from local msrpc services (inside the same smbd process) to remote (over a unix socket). removed reference to pipes_struct in msrpc services. all msrpc processing functions take rpcsrv_struct which is a structure containing state info for the msrpc functions to decode and create pdus. created become_vuser() which does everything not related to connection_struct that become_user() does. removed, as best i could, connection_struct dependencies from the nt spoolss printing code. todo: remove dcinfo from rpcsrv_struct because this stores NETLOGON-specific info on a per-connection basis, and if the connection dies then so does the info, and that's a fairly serious problem. had to put pretty much everything that is in user_struct into parse_creds.c to feed unix user info over to the msrpc daemons. why? because it's expensive to do unix password/group database lookups, and it's definitely expensive to do nt user profile lookups, not to mention pretty difficult and if you did either of these it would introduce a complication / unnecessary interdependency. so, send uid/gid/num_groups/gid_t* + SID+num_rids+domain_group_rids* + unix username + nt username + nt domain + user session key etc. this is the MINIMUM info identified so far that's actually implemented. missing bits include the called and calling netbios names etc. (basically, anything that can be loaded into standard_sub() and standard_sub_basic()...) (This used to be commit aa3c659a8dba0437c17c60055a6ed30fdfecdb6d)
1999-12-01fixing joining to domain plus something weird going down with nt logins...Luke Leighton1-1/+1
(This used to be commit cef258f1c931ecb7c2dda9d5c9977153e4c1dc73)
1999-12-01improving createuser account command to be able to add workstationsLuke Leighton1-8/+11
and then set a default random password. (This used to be commit 7846818432a93295651c8c67445a2d6a0f3b21d8)
1999-11-29first attempt at getting \PIPE\NETLOGON working. it's pretty horrible.Luke Leighton1-2/+2
(This used to be commit 44dd3efa6380544e9a515e91960f9271498cefaf)
1999-11-25cool! completed a samr* API that _would_ look like an msdn samr* api...Luke Leighton1-0/+20
if microsoft bothered to publish it. actually, there are good reasons for not publishing it: people might write programs for it, and then those programs wouldn't work on nt5, for example... (This used to be commit 8ce93b80d3b4e1c1e28aa1dde38cdef184eff3c1)
1999-11-20dynamic memory allocation i added a month ago: forgot to ZERO_STRUCT()Luke Leighton1-0/+2
some of the server-side stuff. Realloc() was being used, so it Realloc()d some random area of memory. oops.dynamic memory allocation i added a month ago: forgot to ZERO_STRUCT() some of the server-side stuff. Realloc() was being used, so it Realloc()d some random area of memory. oops.dynamic memory allocation i added a month ago: forgot to ZERO_STRUCT() some of the server-side stuff. Realloc() was being used, so it Realloc()d some random area of memory. oops. (This used to be commit a51f62f4cf610c23e45251cedb543144747a3e54)
1999-11-19- surprise! the number of UNICODE strings that didn't have alignmentLuke Leighton1-0/+20
after them is incredible. how did we get away with this for so long? (This used to be commit 3152bde7d855d189f6f8ab9e6291828579cde2d0)
1999-11-18added samuserset2 rpcclient command to test ACB_XXX bit-setting onLuke Leighton1-3/+158
samr opcode 0x25. _yet_ another failed attempt to get nt5rc2 to join a samba domain. what _is_ it with this stuff, dammit? (This used to be commit c3913f8ae272c496fc4519141accf01ee9f1e49e)
1999-11-16attempting to get nt5 wksta to join domain.Luke Leighton1-1/+2
1) had to fix samr "create user" and "set user info" (level 23). 2) had to fix netlogon enum trust domains 3) registry key needed \\ in it not \. (This used to be commit 70b2c1ecbb4fbbb86fea676c80754485aae5ab13)
1999-11-15added server-side samr enum domains. fixed some parsing issues, server-side.Luke Leighton1-15/+7
(This used to be commit 60b0840106a6f5c283a8339428f3cfeb62398355)
1999-11-15added rpcclient "enumdomains" command. enumerates names of domainsLuke Leighton1-0/+160
for which a PDC is responsible. typical answers are: <Name of Domain> plus <Builtin>. against a hierarchical, down-level-compatible NT5 PDC, there's likely to be more than these two entries!!!!! (This used to be commit 3146aa6b6049a0d996e9abbe7dbee8526550e7e0)
1999-11-08const feeding frenzyLuke Leighton1-9/+10
(This used to be commit e0eb390ab3e2a0cce191e78ea4ff90d088a8895c)
1999-11-04samuserset <username> -p password. YESSSSS :)Luke Leighton1-57/+190
you have to use "ntlmv1" at the moment (i.e set client ntlmv2 = no). (This used to be commit f52504c553becc64b89d546a57b1bd9cf1bc5b5c)
1999-11-04adding experimental set user password command to rpcclient, it returnsLuke Leighton1-14/+31
error wrong password against nt. ???? (This used to be commit b3f16e6b5aa5ba1b6afa38ad698646c8e765ec90)
1999-11-02dynamic mem allocation in enum dom groups and enum dom aliasesLuke Leighton1-42/+83
(This used to be commit baa789fabc45e62889755802fd8ec8c9191fe767)
1999-10-29more reshuffling of enum groups code. more higher order functions.Luke Leighton1-3/+4
(This used to be commit 497d4231723576390b10f5ea8704bd0af88d76ab)
1999-10-25signed / unsigned and typecast issuesLuke Leighton1-54/+56
(This used to be commit 6e22bf912cb981d91834c63098d41f5f8abaa594)
1999-10-25one of those wonderful moments when running against a different MSRPCLuke Leighton1-28/+32
implementation (NT5) when you discover that your code is trash. samr_enum_dom_users(), samr_enum_dom_aliases() and samr_enum_dom_groups() all take a HANDLE for multiple-call enumeration purposes. (This used to be commit 19490d8b4fb8a103f3df4e6104f6f22937b0c518)
1999-10-21the dynamic memory alloc blood-fest goes on...Luke Leighton1-1/+76
(This used to be commit 134b20e2a7b5ddfa4cc9bf100de5025c7b98f594)
1999-10-21turning some of the rpcclient functions dynamic. this is likely toLuke Leighton1-26/+94
break a few things... (This used to be commit 4b06f303235d36903b6e9f55ee45b987d98256b0)
1999-10-21various. debug levels changed. nmbd doesn't need libsmb/clienttrust.c.Luke Leighton1-9/+77
samr_lookup_rids() moved to a dynamic memory structure not a static one limited to 32 RIDs. cli_pipe.c reading wasn't checking ERRmoredata when DOS error codes negotiated (this terminates MSRPC code with prejudice). (This used to be commit 8976eca2db43576c32069dcda017e8777048e007)
1999-10-18initialising enum dom users mem and account name ptrs to NULL.Luke Leighton1-0/+3
(This used to be commit 6f933fb359e7efc7b685e537b95bdadd6e131727)
1999-10-15return results on prs_xxxxx() and all xxx_io_xxx() routines.Luke Leighton1-423/+838
the whole task is not complete, yet. xxx_io_xxx() routines that _call_ xxx_io_xxx() routines not done. prs_xxxx() covered by macros. considering doing xxx_io_xxxx in the same way. (This used to be commit 3b583f7be51434af98bc52b48dfa42c4602a3094)
1999-10-01splitting dom info into sam_query_dominfo functionLuke Leighton1-2/+3
(This used to be commit 39c367b8e9932f64fa774b807e14416f97254312)
1999-09-21testing for attempts to get more info levels into samr_query_userinfoLuke Leighton1-4/+46
(This used to be commit cc19d5cc5c20665beb3b7c5fcf7787d54e37ea71)
1999-05-06alignment needed after unicode string names in password change.Luke Leighton1-0/+3
(This used to be commit e66b6afc699593789e7a8372ddaa407c320cd15d)
1999-03-29added SamrQueryDomainInfo call info level 0x3 for kix32.exe supportLuke Leighton1-4/+37
(This used to be commit ac070dfd39bfa9b60680855585155ce528ab7691)
1999-03-25added SAMR_USER_INFO_24 info level to samr_set_userinfo. this is usedLuke Leighton1-0/+49
by "Welcome to SAMBA Domain". (This used to be commit 4aed18b5e1e2309c0f6931fbfdd604b01cb9498a)
1999-03-25SAM database "set user info".Luke Leighton1-13/+313
---------------------------- - removed DOM_RID4 - removed SAMR_UNKNOWN_32 - added SAMR_SET_USERINFO (opcode 0x32) - added level 0x1 to SAMR_QUERY_DOM_INFO (needed for create user) - fixed pwdb_gethexpwd() it was failing on XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - added mod_sam21pwd_entry() - preparing to call mod_sam21pwd_entry() - added "user session key" to user_struct.dc. this is md4(nt#) and is needed to decode user's clear-text passwords in SAMR_SET_USERINFO. - split code out in chgpasswd.c to decode 516 byte password buffers. (This used to be commit 2e58ed742435befe419aa366c4052019fede8c23)
1999-03-24removed 2 unnecessary args from make_uni_hdr.Luke Leighton1-34/+34
(This used to be commit f84dede27e16a5f02ee6d02fe2d16f2661c65470)
1999-03-23dynamic memory allocation in samr enum dom users. works with 849 entries now.Luke Leighton1-12/+21
(This used to be commit 103557e26b071bf1e65e025ef5a52ccdbf483d02)
1999-03-23If a buffer pointer is NULL then its length_is() attribute should not beMatthew Chapman1-4/+19
transmitted. Such a problem was crashing Server Manager. (This used to be commit 402ed18188dd058ebed2ffc2af9840c04533dc8f)
1999-03-21Ensuring return status is aligned in SAMR_QUERY_DISPINFO response.Matthew Chapman1-0/+1
(This used to be commit 1e17c2529c5162ea79fe2331ca2162ffb98bd6c2)
1999-03-19added a "createuser" command.Luke Leighton1-0/+69
(This used to be commit fefb4bf19181714cb73414febd6ee2ec10356cbe)
1999-03-18Changed hard-coded number of users/groups in SAMR_QUERY_DOMAIN_INFOMatthew Chapman1-3/+3
to MAX_SAM_ENTRIES to prevent truncation of user lists. A proper implementation is not important right now. (This used to be commit 900238a66153c276d63780e3264651089291d185)
1999-03-08- todd sabin spotted bugs in samr enum dom users / groups / aliases code:Luke Leighton1-5/+3
last count (probably an ENUM / resume handle) should always be returned even if there are no items being returned. - got fed up of seven intendation levels in cmd_samr.c, maximum recommended in *any* code is three! made some sub-fns instead. (This used to be commit 1c330d568225759950401cfb98fe9e99db81419c)
1999-02-24Win9x user level security.Matthew Chapman1-249/+553
* Added SAMR_LOOKUP_DOMAIN (-> SamrLookupDomainInSamServer) * Added real SAMR_ENUM_DOM_GROUPS (corresponding to SamrEnumerateGroupsInDomain). The existing one is just an alias for SamrQueryDisplayInformation (see below). * Added three extra info levels to SAMR_QUERY_DISPINFO. Info level 3 is what was previously SAMR_ENUM_DOM_GROUPS; info levels 4 and 5 are simple user/group list requests used by Win9x and I suspect (haven't checked) the "low speed connection" User Manager. * Added another two aliases for SAMR_QUERY_DISPINFO, opcodes 0x30 and 0x33. Usually the first is with info level 3 and the second 4 but there is some overlap so indeed these should be implemented as just aliases. * Return ERRDOS/ERRmoredata on extra data instead of STATUS_BUFFER_OVERFLOW for Win95's benefit. On a named pipe this results in an SMBreadX as usual. Still need to fix SAMR_QUERY_DOMAIN_INFO which has a hard-coded number of users and groups - which Win95 proceeds to truncate at. (This used to be commit 7d03e6e21908f3a759a4e65c5edd850622335e3e)
1999-02-19samr_lookup_names "none found" error needed corrections with empty lists.Luke Leighton1-2/+2
(This used to be commit e164b5080ca966de4227277f7ac031bc96d056ad)
1999-02-03cache unix groups so that two-level getgrent calls don't occur.Luke Leighton1-2/+2
(This used to be commit f7dfa55a2e191ae780d399026bce48f68cda4bf0)
1999-01-29fix for enumerate domain users (bug spotted by sean matthews).Luke Leighton1-12/+9
also needed to use start index properly and generate next index. both client and server code need to recognise error code 0x105 when there's not enough room to store all the users in one call. sort this out another time. (This used to be commit ad58cdfac6b85d9431216e32e532ad4d60f9c6dd)
1998-12-08adding srvsvc pipe.Luke Leighton1-0/+65
(This used to be commit d06d6369942828ec89e90f99bd0d0d3f91d61d13)
1998-12-07bugs in rpcclient. add_aliasmem uses a DOM_SID2 not a DOM_SID.Luke Leighton1-3/+3
(This used to be commit 8a85d7abed317fd06e3e0026d4b9e088311eede4)
1998-12-07- lib/unix_sec_ctxt.cLuke Leighton1-26/+91
attempt at taking lib/uid.c and getting a unix security context change module that is independent of "cnums" and "snums". a security context is needed for pipes, not just IPC$ or other services. - group database API added add_group/alias_member, del_group/alias_member, del_group/alias_entry functions. del_builtin_entry() is deliberately set to NULL to cause an exception, you cannot delete builtin aliases. - parse_lsa.c srv_lsa.c fixed lookup_names code, it was a load of trash and didn't do anything. - cmd_samr.c rpcclient.c srv_samr.c added "deletegroup", "deletealias", "delaliasmem", "delgroupmem", "addgroupmem", "addaliasmem", "createalias", "creategroup", to both client and server code. server code calls into unix stubs right now, which don't actually do anything. the only instance where they are expected to do anything is in appliance mode NOT even in the ldap code or anything. client code modified to call samr_lookup_names() for group code (because we can) and lsa_lookup_names() for alias code (because we have to). - srv_lookup.c oops, lookup on unsplit name, we got lookup on DOMAIN, DOMAIN\name instead of DOMAIN, name. (This used to be commit b8175702ef61b8b37b078f38e81452c00a5e2986)
1998-12-04added delete domain group and local group and delete domain group member.Luke Leighton1-1/+179
(This used to be commit bf15343def5b95ce4387ac4357674aff31431194)
1998-12-04- oops, i got "add alias member" and "delete alias member" swapped.Luke Leighton1-22/+20
- samr_enum_dom_users, the first 4 bytes is some sort of garbage, nt5-beta2 clears them out to zeros whereas nt4 does not. fixed bug where we were assuming that the first 4 bytes of a response _had_ to be non-zero. - cli_lsarpc.c: forgot to append the rid on the lsa_lookup_names() client call. - added in "addaliasmem" and "addgroupmem" commands. the addaliasmem command actually turned out to be a "delaliasmem" :-) :-) - parse_lsa.c: moved assert array check to after the size of useable array space is set... (This used to be commit 165b15a8cacc4bc7cf8cc0b9aaabb6b92cef7fdb)
1998-12-04- renamed do_samr_xxx to samr_xxxLuke Leighton1-28/+28
- renamed do_lsa_xxx to lsa_xxx - added "enumgroups [-m]" command, enumerates groups, shows members. - added cmd_sam_add_groupmem(), need to call these in rpcclient.c - added cmd_sam_add_aliasmem(), need to call these in rpcclient.c - modified "enumaliases [-m]" command - improved "enumgroups" and "enumaliases" to display names not just RIDS/SIDs. - renamed "samr_unknown_12" to "samr_lookup_rids". - added the following client-side functions: get_samr_query_groupmem() get_samr_query_aliasmem() get_samr_query_groupinfo() samr_enum_dom_groups() samr_enum_dom_aliases() samr_add_aliasmem() samr_add_groupmem() - improved display output (display.c) (This used to be commit eacc5e581af2b4de24186b9be3238b352c54effe)
1998-12-03added createalias command to rpcclientLuke Leighton1-16/+13
(This used to be commit 4771d5451b49375cc2fd4246d7d746b0d03cd5ba)
1998-12-03create domain group command (creategroup) added to rpcclient.Luke Leighton1-5/+5
renamed do_samr_xxxx to samr_xxxx. (This used to be commit 1e5d81c154740349a2cda4c1892b33a21c0683a8)