1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-13 13:18:06 +03:00
Commit Graph

310 Commits

Author SHA1 Message Date
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 d5353b6342)
2007-10-10 13:16:34 -05:00
Andrew Bartlett
2eb3d68062 r6028: A MAJOR update to intergrate the new credentails system fully with
GENSEC, and to pull SCHANNEL into GENSEC, by making it less 'special'.

GENSEC now no longer has it's own handling of 'set username' etc,
instead it uses cli_credentials calls.

In order to link the credentails code right though Samba, a lot of
interfaces have changed to remove 'username, domain, password'
arguments, and these have been replaced with a single 'struct
cli_credentials'.

In the session setup code, a new parameter 'workgroup' contains the
client/server current workgroup, which seems unrelated to the
authentication exchange (it was being filled in from the auth info).

This allows in particular kerberos to only call back for passwords
when it actually needs to perform the kinit.

The kerberos code has been modified not to use the SPNEGO provided
'principal name' (in the mechListMIC), but to instead use the name the
host was connected to as.  This better matches Microsoft behaviour,
is more secure and allows better use of standard kerberos functions.

To achieve this, I made changes to our socket code so that the
hostname (before name resolution) is now recorded on the socket.

In schannel, most of the code from librpc/rpc/dcerpc_schannel.c is now
in libcli/auth/schannel.c, and it looks much more like a standard
GENSEC module.  The actual sign/seal code moved to
libcli/auth/schannel_sign.c in a previous commit.

The schannel credentails structure is now merged with the rest of the
credentails, as many of the values (username, workstation, domain)
where already present there.  This makes handling this in a generic
manner much easier, as there is no longer a custom entry-point.

The auth_domain module continues to be developed, but is now just as
functional as auth_winbind.  The changes here are consequential to the
schannel changes.

The only removed function at this point is the RPC-LOGIN test
(simulating the load of a WinXP login), which needs much more work to
clean it up (it contains copies of too much code from all over the
torture suite, and I havn't been able to penetrate its 'structure').

Andrew Bartlett
(This used to be commit 2301a4b38a)
2007-10-10 13:11:15 -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 80ffcc650c)
2007-10-10 13:09:41 -05:00
Andrew Tridgell
75ddf59ea1 r5308: trimmed back a lot of the old macros from smb_macros.h
(This used to be commit bf43c9bdcf)
2007-10-10 13:09:40 -05:00
Andrew Tridgell
501379431c r5305: removed libcli/ldap/ldap.h from includes.h
(This used to be commit 0df3fdd817)
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 9db6c79e90)
2007-10-10 13:09:38 -05:00
Stefan Metzmacher
d8d3a5ffe3 r5137: fix types
metze
(This used to be commit add1c57937)
2007-10-10 13:09:26 -05:00
Andrew Tridgell
a0ab1f7afd r5107: moved the horrible ldap socket code, and the even worse
asn1-tied-to-blocking-sockets code into the ldap client and torture
suite, and out of the generic libs, so nobody else is tempted to use
it for any new code.
(This used to be commit 39d1ced21b)
2007-10-10 13:09:23 -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 ec32b22ed5)
2007-10-10 13:09:15 -05:00
Andrew Tridgell
3dd17f1288 r5034: - added a type mapping function in pidl, so the type names in our IDL
files don't need to match the type names in the generated headers

- with this type mapping we no longer need definitions for the
  deprecated "int32", "uint8" etc form of types. We can now force
  everyone to use the standard types int32_t, uint8_t etc.

- fixed all the code that used the deprecated types

- converted the IDL types "int64" and "uint64" to "dlong" and
  "udlong". These are the 4 byte aligned 64 bit integers that
  Microsoft internally define as two 32 bit integers in a
  structure. After discussions with Ronnie Sahlberg we decided that
  calling these "int64" was confusing, as it implied a true 8 byte
  aligned type

- fixed all the cases where we incorrectly used things like
  "NTTIME_hyper" in our C code. The generated API now uses a NTTIME for
  those. The fact that it is hyper-aligned on the wire is not relevant
  to the API, and should remain just a IDL property
(This used to be commit f86521677d)
2007-10-10 13:09:15 -05:00
Andrew Tridgell
11ce2cfd70 r4591: - converted the other _p talloc functions to not need _p
- added #if TALLOC_DEPRECATED around the _p functions

- fixes the code that broke from the above

while doing this I fixed quite a number of places that were
incorrectly using the non type-safe talloc functions to use the type
safe ones. Some were even doing multiplies for array allocation, which
is potentially unsafe.
(This used to be commit 6e7754abd0)
2007-10-10 13:08:30 -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 89b74b5354)
2007-10-10 13:08:25 -05:00
Andrew Bartlett
740ee4a897 r4460: Add a new GENSEC module: gensec_gssapi
(disabled by default, set parametric option: gensec:gssapi=yes to enable).

This module backs directly onto GSSAPI, and allows us to sign and seal
GSSAPI/Krb5 connections in particular.  This avoids me reinventing the
entire GSSAPI wheel.

Currently a lot of things are left as default - we will soon start
specifiying OIDs as well as passwords (it uses the keytab only at the
moment).  Tested with our LDAP-* torture tests against Win2k3.

My hope is to use this module to access the new SPNEGO implementation
in Heimdal, to avoid having to standards-verify our own.

Andrew Bartlett
(This used to be commit 14b650c85d)
2007-10-10 13:07:53 -05:00
Andrew Bartlett
e3da3b48b1 r4386: Grr, fix copy-and-paste bug.
Andrew Bartlett
(This used to be commit 13aa88ed65)
2007-10-10 13:07:41 -05:00
Andrew Bartlett
ecabb2dce5 r4385: Set the correct target service.
Andrew Bartlett
(This used to be commit 722f59c7c8)
2007-10-10 13:07:41 -05:00
Stefan Metzmacher
0ad10aec63 r4079: implement the gensec_have_feature() correctly by asking
the backend what is actually in use

metze
(This used to be commit 6f3eb7bc03)
2007-10-10 13:06:23 -05:00
Andrew Tridgell
6e6374cb5b r4055: fixed more places to use type safe allocation macros
(This used to be commit eec698254f)
2007-10-10 13:06:20 -05:00
Andrew Tridgell
58c326809a r4052: fixed a bunch of code to use the type safe _p allocation macros
(This used to be commit 80d15fa340)
2007-10-10 13:06:18 -05:00
Jelmer Vernooij
8e16d8a76f r3733: More build system fixes/features:
- Use .mk files directly (no need for a SMB_*_MK() macro when adding a new SUBSYSTEM, MODULE or BINARY). This allows addition of new modules and subsystems without running configure
 - Add support for generating .dot files with the Samba4 dependency tree (as used by the graphviz and springgraph utilities)
(This used to be commit 64826da834)
2007-10-10 13:05:47 -05:00
Stefan Metzmacher
b012ab557b r3585: check sscanf return code
metze
(This used to be commit 9701abfa3a)
2007-10-10 13:05:35 -05:00
Stefan Metzmacher
e5c8e21129 r3584: fix referral handling
metze
(This used to be commit 4868f1ea85)
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 1e9c0b68ca)
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 a7e5bde6be)
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 b97e395c81)
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 7b7477ac42)
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 6b1f86aea8)
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 2e25c71853)
2007-10-10 13:05:11 -05:00
Stefan Metzmacher
367b3bfa12 r3096: typo
metze
(This used to be commit c730d7d638)
2007-10-10 13:02:20 -05:00
Stefan Metzmacher
86ab5f1267 r3094: import all LDAP error codes from the RFC 2251
metze
(This used to be commit f1d8f4bc5d)
2007-10-10 13:02:20 -05:00
Andrew Bartlett
d0d86b5348 r3079: make code more pretty :-)
Andrew Bartlett
(This used to be commit 9c911b361c)
2007-10-10 13:01:56 -05:00
Stefan Metzmacher
f49f6e0c83 r2884: parse LDAP Control messages
metze
(This used to be commit e23dcb1887)
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 cc77baf729)
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 1dabd04e26)
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 778cf6d92b)
2007-10-10 12:59:38 -05:00
Stefan Metzmacher
cd5326a44e r2750: decode AbandonRequest correct (untested:-)
metze
(This used to be commit 4233067921)
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 72dfea2b07)
2007-10-10 12:59:29 -05:00
Simo Sorce
eac532ee3a r2695: revert "Del" renaming
(This used to be commit ddd74dae8e)
2007-10-10 12:59:24 -05:00
Simo Sorce
159b8c2d38 r2690: deleted by mistake
(This used to be commit 3d587a7141)
2007-10-10 12:59:22 -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 5ed9a6eb18)
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 8dc23821c9)
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 f12ee2f241)
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 e942f414c5)
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 cef08d5789)
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 492a00d909)
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 53f58c053b)
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 e35bb094c5)
2007-10-10 12:58:14 -05:00
Simo Sorce
333aaf01e8 r1944: put ldif functions in a separate file
(This used to be commit 8be31e5c85)
2007-10-10 12:58:13 -05:00
Stefan Metzmacher
46003a56a8 r1881: empty structs are not allowed by all compilers
metze
(This used to be commit 4c6c4d6bc8)
2007-10-10 12:58:08 -05:00
Stefan Metzmacher
ebd696bd8c r1862: add invalid_creds ldap error
metze
(This used to be commit 11c866d602)
2007-10-10 12:58:04 -05:00
Stefan Metzmacher
c074e30e2e r1856: - move asn1 functions to asn1.c
- merge some stuff from trunk

metze
(This used to be commit 267edf1c0b)
2007-10-10 12:58:02 -05:00
Stefan Metzmacher
16757c52d6 r1805: ...I just forgot to say that the sasl bind actually works now:-)
metze
(This used to be commit a2cd725681)
2007-10-10 12:57:58 -05:00
Stefan Metzmacher
e0a6215cdf r1804: get a bit closer to a sasl bind
metze
(This used to be commit d0278c6bef)
2007-10-10 12:57:58 -05:00
Stefan Metzmacher
cd5421b8ab r1803: more progress on sasl binds, but decoding the response still fails
metze
(This used to be commit f6c4420107)
2007-10-10 12:57:58 -05:00
Simo Sorce
01b58ebf83 r1802: start to support SASL in our ldap libraries
does not work yet but we are close currently we send the right data
on wire and fail to decode the answer
(This used to be commit 10baf58582)
2007-10-10 12:57:58 -05:00
Stefan Metzmacher
2129ba5082 r1798: fix the build
metze
(This used to be commit a1bfc94ab3)
2007-10-10 12:57:58 -05:00
Simo Sorce
16c52f7a07 r1792: split ldap_setup_connection() and provide an ldap_bind_simple() function
(This used to be commit d9f8f97c9e)
2007-10-10 12:57:57 -05:00
Simo Sorce
28ea8b8785 r1785: remove unneeded dependencies on openldap client libraries
(This used to be commit 44083e3178)
2007-10-10 12:57:56 -05:00
Simo Sorce
2e28edd233 r1771: OK Let's add tests for ldap.
Thanks to Metze and Volker for their unvaluable support :)
(This used to be commit e6a6c0737a)
2007-10-10 12:57:56 -05:00
Simo Sorce
2b51ce3ca4 r1761: start porting valuable volker's work on ldap from trunk
all ldb functions has been renamed to ldap_ as we don't
really want to include ldb functions here, let's keep ldap
and ldb separate.
(This used to be commit f9d7b731c9)
2007-10-10 12:57:54 -05:00
Stefan Metzmacher
fa8d37adae r1756: merge volkers ldap client lib to samba4 for simo to start with the
ldap server code

it's not compiled in yet...

metze
(This used to be commit 48939adca1)
2007-10-10 12:57:54 -05:00