1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-26 23:18:57 +03:00

61 Commits

Author SHA1 Message Date
Tim Potter
52bef30fd4 r8414: Some C++ friendlyness fixes - 'not' is apparently a keyword in C++.
(This used to be commit bcfb3a45e4a5962fe763f8071d4458f4bd11605b)
2007-10-10 13:23:00 -05:00
Andrew Tridgell
7267cb3312 r7749: some bug fixes from testing with socket:testnonblock
- fixed some infinite loops in asn1.c

- ensure asn1 callers know if an error is end of buffer or bad data

- handle npending 0 in ldap server
(This used to be commit f22c3b84c8912ccd36e676a782b58f1841be8875)
2007-10-10 13:18:30 -05:00
Andrew Tridgell
be19641f30 r7724: added encoding of LDB_OP_NOT search components
(This used to be commit 82b1feeafea57ca1b8d7bf79f777eebcc703769c)
2007-10-10 13:18:26 -05:00
Andrew Tridgell
2a0a0f2551 r7723: - fix a mismatched asn1 push/pop on bind
- add error checking to ldap_encode()

- fixed the asn1 codes for extended search

- use asn1 context macros
(This used to be commit 25d500b6e559b9a530ae65a21046cfde0f8c41af)
2007-10-10 13:18:26 -05:00
Andrew Tridgell
b4eee348c4 r7720: - simplify the asn1 decode of ldap_search() a lot, taking advantage of
the fact that the ldap data structures now use ldb_message_element.

- fixed null termination of elements in ildap
(This used to be commit 09060994c1ed12073ae6e1131d7074db8fdc523c)
2007-10-10 13:18:26 -05:00
Andrew Tridgell
bab977dad7 r7626: a new ldap client library. Main features are:
- hooked into events system, so requests can be truly async and won't
   interfere with other processing happening at the same time

 - uses NTSTATUS codes for errors (previously errors were mostly
   ignored). In a similar fashion to the DOS error handling, I have
   reserved a range of the NTSTATUS code 32 bit space for LDAP error
   codes, so a function can return a LDAP error code in a NTSTATUS

 - much cleaner packet handling
(This used to be commit 2e3c660b2fc20e046d82bf1cc296422b6e7dfad0)
2007-10-10 13:18:14 -05:00
Andrew Tridgell
49bc2672f8 r7598: take advantage of struct data_blob and struct ldb_val being the same
structure in a couple of places
(This used to be commit bcd4671acae2be51958cbae23a0ab2dd2b194a5e)
2007-10-10 13:18:13 -05:00
Andrew Tridgell
3e92471d4c r7596: next step in ldap cleanup. I'm aiming to get rid of the cut&pasted
ldif parsing code in libcli/ldap/ldap_ldif.c, and instead use the ldb
ldif code. To do that I have changed the ldap code to use 'struct
ldb_message_element' instead of 'struct ldap_attribute'. They are
essentially the same structure anyway, so by making them really the
same it will be much easier to use the ldb code in libcli/ldap/

I have also made 'struct ldb_val' the same as a DATA_BLOB, which will
simplify data handling in quite a few places (I haven't yet removed
all the code that maps between these two, that will come later)
(This used to be commit 87fc3073392236221a3a6b933284e9e477c24ae5)
2007-10-10 13:18:12 -05:00
Andrew Tridgell
c0947b0d7f r7593: simplified the memory management in the ldap code. Having a mem_ctx
element in a structure is not necessary any more.
(This used to be commit 912d0427f52eac811b27bf7e385b0642f7dc7f53)
2007-10-10 13:18:12 -05:00
Andrew Tridgell
6426f2a39a r7567: added wire parsing of NOT and extended ldap search requests. This
allows us to parse and handle the complex queries we are getting from
w2k, such as

(|(|(&(!(groupType:1.2.840.113556.1.4.803=1))(groupType:1.2.840.113556.1.4.803=2147483648)(groupType:1.2.840.113556.1.4.804=6))(samAccountType=805306368))(samAccountType=805306369))
(This used to be commit 041bce591306a0fb26bd31fe371e30021ea5c0c1)
2007-10-10 13:18:10 -05:00
Andrew Tridgell
4b0e5bd753 r7527: - added a ldb_search_bytree() interface, which takes a ldb_parse_tree
instead of a search expression. This allows our ldap server to pass
  its ASN.1 parsed search expressions straight to ldb, instead of going
  via strings.

- updated all the ldb modules code to handle the new interface

- got rid of the separate ldb_parse.h now that the ldb_parse
  structures are exposed externally

- moved to C99 structure initialisation in ldb

- switched ldap server to using ldb_search_bytree()
(This used to be commit 96620ab2ee5d440bbbc51c1bc0cad9977770f897)
2007-10-10 13:18:06 -05:00
Andrew Tridgell
8fd5825a89 r7524: make the ldap ASN.1 filter parse code go via a struct
ldb_parse_tree. This also fixes the error handling.

next step will be to pass the parse tree straight into ldb, avoiding
the string encoding completely.
(This used to be commit 235cf625e20767c8d5d30c5955ae45e1fdf88bf2)
2007-10-10 13:18:06 -05:00
Andrew Tridgell
816f4f7c4a r7519: rip the copy of the ldap expression parser out of libcli/ldap/ and use
the original one in lib/ldb/ instead. Having two copies of this code
is silly.
(This used to be commit 0e9f18c44858b692c724c004f362de9e3dc15db5)
2007-10-10 13:18:04 -05:00
Andrew Tridgell
9469051d5b r6817: - fixed empty ldap search elements in filters
- added support for guids in cldap netlogon searches.

the cldap server now passes the LDAP-CLDAP torture test
(This used to be commit eb7979d9def389942fa1c54693d2dfcb8828f544)
2007-10-10 13:16:47 -05:00
Andrew Tridgell
4029df5e60 r6763: added functions in libcli/ldap/ to binary encode some NDR structures into
ldap friendly filter strings
(This used to be commit 8890dd3ac331cffe83226a356c52df89c917c2b0)
2007-10-10 13:16:42 -05:00
Andrew Tridgell
c956f4f982 r6745: - escape spaces in binary ldap blobs
- expose the ldap filter string parsing outside of ldap.c
(This used to be commit b644ff6fe164fbe359c47e4d34f5ad490ff61d5b)
2007-10-10 13:16:40 -05:00
Andrew Tridgell
49304e965f r6726: support binary search elements in ldap_decode()
(This used to be commit 2b36f1dfdd6cf3ab89f63b541ae4cd905fb03c8d)
2007-10-10 13:16:38 -05:00
Andrew Tridgell
f6c0bee791 r6689: minor ldap client library work
- added support for binary encoded search filters
 - fixed some const handling
 - changed the message type to an enum, to help debugging
(This used to be commit d5353b63428698d1ce95c50e2626f1841fa637e3)
2007-10-10 13:16:34 -05:00
Andrew Tridgell
9515fc4406 r5322: removed a whole bunch of #include lines that minimal_includes.pl
thinks are not needed. Now to see how this fares on the build farm :)
(This used to be commit 80ffcc650c9c86141507edd8338b97814a85f868)
2007-10-10 13:09:41 -05:00
Andrew Tridgell
501379431c r5305: removed libcli/ldap/ldap.h from includes.h
(This used to be commit 0df3fdd8178085c40f9cd776cc3e1486ca559c8e)
2007-10-10 13:09:39 -05:00
Andrew Tridgell
e82aad1ce3 r5298: - got rid of pstring.h from includes.h. This at least makes it a bit
less likely that anyone will use pstring for new code

 - got rid of winbind_client.h from includes.h. This one triggered a
   huge change, as winbind_client.h was including system/filesys.h and
   defining the old uint32 and uint16 types, as well as its own
   pstring and fstring.
(This used to be commit 9db6c79e902ec538108d6b7d3324039aabe1704f)
2007-10-10 13:09:38 -05:00
Stefan Metzmacher
d8d3a5ffe3 r5137: fix types
metze
(This used to be commit add1c579375d08040f722946da31ee3862f9e7ac)
2007-10-10 13:09:26 -05:00
Andrew Tridgell
759da3b915 r5037: got rid of all of the TALLOC_DEPRECATED stuff. My apologies for the
large commit. I thought this was worthwhile to get done for
consistency.
(This used to be commit ec32b22ed5ec224f6324f5e069d15e92e38e15c0)
2007-10-10 13:09:15 -05:00
Andrew Tridgell
ddc10d4d37 r4549: got rid of a lot more uses of plain talloc(), instead using
talloc_size() or talloc_array_p() where appropriate.

also fixed a memory leak in pvfs_copy_file() (failed to free a memory
context)
(This used to be commit 89b74b53546e1570b11b3702f40bee58aed8c503)
2007-10-10 13:08:25 -05:00
Andrew Tridgell
6e6374cb5b r4055: fixed more places to use type safe allocation macros
(This used to be commit eec698254f67365f27b4b7569fa982e22472aca1)
2007-10-10 13:06:20 -05:00
Stefan Metzmacher
b012ab557b r3585: check sscanf return code
metze
(This used to be commit 9701abfa3a5f6351c8c7bced6adb751be9f5ff31)
2007-10-10 13:05:35 -05:00
Stefan Metzmacher
e5c8e21129 r3584: fix referral handling
metze
(This used to be commit 4868f1ea857e94f60dbde83bfb54def8a5ee728f)
2007-10-10 13:05:35 -05:00
Stefan Metzmacher
8408b3428d r3583: - seperate the ldap client code and the ldap parsing code
(vl: we should only sync the parsing code with trunk)

- use hierachical talloc in the ldap client code

metze
(This used to be commit 1e9c0b68ca9ddb28877d45fc1b47653b13a7446d)
2007-10-10 13:05:35 -05:00
Andrew Tridgell
c5e4c83464 r3475: don't pass a ptr to an enum as a ptr to an int (bug found by tcc)
(This used to be commit a7e5bde6befa8da8fc7447b295d9177126f74964)
2007-10-10 13:05:18 -05:00
Andrew Tridgell
3643fb1109 r3463: separated out some more headers (asn_1.h, messages.h, dlinklist.h and ioctl.h)
(This used to be commit b97e395c814762024336c1cf4d7c25be8da5813a)
2007-10-10 13:05:17 -05:00
Andrew Tridgell
edbfc0f6e7 r3453: - split out the auth and popt includes
- tidied up some of the system includes

- moved a few more structures back from misc.idl to netlogon.idl and samr.idl now that pidl
  knows about inter-IDL dependencies
(This used to be commit 7b7477ac42d96faac1b0ff361525d2c63cedfc64)
2007-10-10 13:05:13 -05:00
Andrew Tridgell
26c6b4c70b r3449: more include file reduction
the ldb part isn't ideal, I will have to think of a better solution
(This used to be commit 6b1f86aea8427a8e957b1aeb0ec2f507297f07cb)
2007-10-10 13:05:13 -05:00
Andrew Tridgell
284349482f r3443: the next stage in the include files re-organisation.
I have created the include/system/ directory, which will contain the
wrappers for the system includes for logical subsystems. So far I have
created include/system/kerberos.h and include/system/network.h, which
contain all the system includes for kerberos code and networking code.
These are the included in subsystems that need kerberos or networking
respectively.

Note that this method avoids the mess of #ifdef HAVE_XXX_H in every C
file, instead each C module includes the include/system/XXX.h file for
the logical system support it needs, and the details are kept isolated
in include/system/

This patch also creates a "struct ipv4_addr" which replaces "struct
in_addr" in our code. That avoids every C file needing to import all
the system networking headers.
(This used to be commit 2e25c71853f8996f73755277e448e7d670810349)
2007-10-10 13:05:11 -05:00
Andrew Bartlett
d0d86b5348 r3079: make code more pretty :-)
Andrew Bartlett
(This used to be commit 9c911b361c4dbb058eb48150c113c2e95b8053da)
2007-10-10 13:01:56 -05:00
Stefan Metzmacher
f49f6e0c83 r2884: parse LDAP Control messages
metze
(This used to be commit e23dcb18870450be4252a0dba3e427f73291da25)
2007-10-10 12:59:42 -05:00
Stefan Metzmacher
78782df554 r2861: encode and decode BindRequest/Response correct
and some minor changes
- make ldap_encode/decode_response maore usable

metze
(This used to be commit cc77baf729a56499e19a50dcb1a404a4777b36d5)
2007-10-10 12:59:40 -05:00
Stefan Metzmacher
6aa4a9bd16 r2853: add torture test to find the defaultNamingContext on the RootDSE
try a sasl sealed CompareRequest

abartlet: we need to check how SINGING only can work,
          it failed for me:-(

metze
(This used to be commit 1dabd04e265bbc1e8335f816708c2639746d9afd)
2007-10-10 12:59:38 -05:00
Stefan Metzmacher
dba5773d9d r2851: don't destroy the gensec context it's used for sign and seal
check the result of ldap_receive()

metze
(This used to be commit 778cf6d92bc3c50add43b573652c2aefef65026c)
2007-10-10 12:59:38 -05:00
Stefan Metzmacher
cd5326a44e r2750: decode AbandonRequest correct (untested:-)
metze
(This used to be commit 4233067921d386d4bf02218b479083cdbe2bd3c1)
2007-10-10 12:59:30 -05:00
Stefan Metzmacher
88ead90b1d r2747: use DATA_BLOB for attribute values
en/decode CompareRequest/Response correct

metze
(This used to be commit 72dfea2b07aea83d0965a585f6e388eb88a7c6d1)
2007-10-10 12:59:29 -05:00
Simo Sorce
eac532ee3a r2695: revert "Del" renaming
(This used to be commit ddd74dae8efe4e04b5a56ee9ecd9d4f87f99d104)
2007-10-10 12:59:24 -05:00
Simo Sorce
456e2f82e8 r2689: Use consistent naming Del -> Delete
Add delete functionality to ldb simple lda server backend
add some const in ldap.h
(This used to be commit 5ed9a6eb184f34eb572dd81202237042518ec7cd)
2007-10-10 12:59:22 -05:00
Andrew Tridgell
5b44130afa r2671: we're getting too many errors caused by the talloc_realloc() API not
taking a context (so when you pass a NULL pointer you end up with
memory in a top level context). Fixed it by changing the API to take a
context. The context is only used if the pointer you are reallocing is
NULL.
(This used to be commit 8dc23821c9f54b2f13049b5e608a0cafb81aa540)
2007-10-10 12:59:20 -05:00
Andrew Tridgell
c5f4378361 r2629: convert gensec to the new talloc model
by making our gensec structures a talloc child of the open connection
we can be sure that it will be destroyed when the connection is
dropped.
(This used to be commit f12ee2f241aab1549bc1d9ca4c35a35a1ca0d09d)
2007-10-10 12:59:14 -05:00
Stefan Metzmacher
566c38c820 r2508: - implemented ldap_decode() for UnbindRequest and ExtendedRequest
- fail when we got a wrong tag in ldap_decode()

metze
(This used to be commit e942f414c5f9130c7ac9996612caaefd29f5eeca)
2007-10-10 12:59:00 -05:00
Andrew Tridgell
defe32e9f4 r2432: more string function updates.
btw, the reason I want to use strncasecmp() instead of StrnCaseCmp()
is that the Samba internal functions are built to deal with
multi-byte, whereas in the cases I am converting we know we are
dealing with solely ascii string constants, so going via the slow
conversion libraries is pointless.
(This used to be commit cef08d5789277bdaa25d5bf0e7cfca8615230f1b)
2007-10-10 12:58:52 -05:00
Stefan Metzmacher
d9d634ce97 r2347: merge LDAP ASN.1 fixes from trunk
metze
(This used to be commit 492a00d909d6f3ff8305f102551f60d91d988ccd)
2007-10-10 12:58:45 -05:00
Volker Lendecke
3e454a5891 r2173: Fix asn1 BOOLEANs. Thanks to Love Hornquist-Astrand.
Volker
(This used to be commit 53f58c053b643c8b45d2f9394faf8cfdd5005f6d)
2007-10-10 12:58:29 -05:00
Andrew Tridgell
b83ba93eae r1983: a completely new implementation of talloc
This version does the following:

  1) talloc_free(), talloc_realloc() and talloc_steal() lose their
     (redundent) first arguments

  2) you can use _any_ talloc pointer as a talloc context to allocate
     more memory. This allows you to create complex data structures
     where the top level structure is the logical parent of the next
     level down, and those are the parents of the level below
     that. Then destroy either the lot with a single talloc_free() or
     destroy any sub-part with a talloc_free() of that part

  3) you can name any pointer. Use talloc_named() which is just like
     talloc() but takes the printf style name argument as well as the
     parent context and the size.

The whole thing ends up being a very simple piece of code, although
some of the pointer walking gets hairy.

So far, I'm just using the new talloc() like the old one. The next
step is to actually take advantage of the new interface
properly. Expect some new commits soon that simplify some common
coding styles in samba4 by using the new talloc().
(This used to be commit e35bb094c52e550b3105dd1638d8d90de71d854f)
2007-10-10 12:58:14 -05:00
Simo Sorce
333aaf01e8 r1944: put ldif functions in a separate file
(This used to be commit 8be31e5c854e4462163b97b897ff41de95f181c4)
2007-10-10 12:58:13 -05:00