1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-27 14:04:05 +03:00

267 Commits

Author SHA1 Message Date
Jelmer Vernooij
13b0776f60 r5929: Use cli_credentials for the SMB functions as well.
Fix a couple of bugs in the new cli_credentials code
(This used to be commit 4ad481cfe5cde514d2ef9646147239f3faaa6173)
2007-10-10 13:11:09 -05:00
Jelmer Vernooij
05bc2d7b2c r5928: Use cli_credentials in:
- gtk+ (returned by GtkHostBindingDialog as well now)
 - torture/
 - librpc/
 - lib/com/dcom/
(This used to be commit ccefd782335e01e8e6ecb2bcd28a4f999c53b1a6)
2007-10-10 13:11:08 -05:00
Andrew Bartlett
df64302213 r5902: A rather large change...
I wanted to add a simple 'workstation' argument to the DCERPC
authenticated binding calls, but this patch kind of grew from there.

With SCHANNEL, the 'workstation' name (the netbios name of the client)
matters, as this is what ties the session between the NETLOGON ops and
the SCHANNEL bind.  This changes a lot of files, and these will again
be changed when jelmer does the credentials work.

I also correct some schannel IDL to distinguish between workstation
names and account names.  The distinction matters for domain trust
accounts.

Issues in handling this (issues with lifetime of talloc pointers)
caused me to change the 'creds_CredentialsState' and 'struct
dcerpc_binding' pointers to always be talloc()ed pointers.

In the schannel DB, we now store both the domain and computername, and
query on both.  This should ensure we fault correctly when the domain
is specified incorrectly in the SCHANNEL bind.

In the RPC-SCHANNEL test, I finally fixed a bug that vl pointed out,
where the comment claimed we re-used a connection, but in fact we made
a new connection.

This was achived by breaking apart some of the
dcerpc_secondary_connection() logic.

The addition of workstation handling was also propogated to NTLMSSP
and GENSEC, for completeness.

The RPC-SAMSYNC test has been cleaned up a little, using a loop over
usernames/passwords rather than manually expanded tests.  This will be
expanded further (the code in #if 0 in this patch) to use a newly
created user account for testing.

In making this test pass test_rpc.sh, I found a bug in the RPC-ECHO
server, caused by the removal of [ref] and the assoicated pointer from
the IDL.  This has been re-added, until the underlying pidl issues are
solved.
(This used to be commit 824289dcc20908ddec957a4a892a103eec2da9b9)
2007-10-10 13:11:07 -05:00
Stefan Metzmacher
4a3ca96fb4 r5603: add "authservice()" property to the interface property list
so we can specify allowed target service names in the idl file

the default is "host"

metze
(This used to be commit bf40d5321f3257bf9354a42d31265f1a9b0d53ad)
2007-10-10 13:10:55 -05:00
Andrew Tridgell
35537c1255 r5302: fixed a compilation problem on solaris caused by the recent include
changes
(This used to be commit e7e015f79b10c353848a17f31c91a0593790a560)
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
Andrew Tridgell
1ac4f562e2 r5291: fixed ncacn_ip_tcp against windows
(This used to be commit 8df8308f7f7c937ea8bcbb4336e98911824ece48)
2007-10-10 13:09:37 -05:00
Jelmer Vernooij
632acd9bc7 r5286: Some first steps in making the pidl code somewhat more generic for the
various data types:

Add ndr_flags argument to all ndr push/pull scalar functions
(This used to be commit ab490c0c882bb13de190546c50a0631ecb8255ad)
2007-10-10 13:09:36 -05:00
Jelmer Vernooij
60d9b40ba4 r5209: Fix the endpoint mapper to work with IPX endpoints (which
accidently have the same protocol id as UUID's)
Before this, Samba would give NDR errors when contacting
a remote server that has IPX support enabled.

This one was on my long due bugs list.
(This used to be commit 7b847de64f35b8e897b64ad047d8aea3813214f8)
2007-10-10 13:09:31 -05:00
Andrew Tridgell
9b9c23b19b r5155: define ipv4address as a based IDL type, mapped to a "const char *" in
the header, and defined on the wire as a 4 byte network byte order
IP. This means the calling code doesn't have to worry about network
byte order conversions.
(This used to be commit 72048e37179dd5b9ada0c5280d2f0d8c23d1a17d)
2007-10-10 13:09:28 -05:00
Stefan Metzmacher
c4f115aa1b r5148: use ipv4_addr also in epmapper idl
metze
(This used to be commit cbc1f172822363e1fc4495d27248464403748cae)
2007-10-10 13:09:28 -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
Stefan Metzmacher
c108689bf6 r4962: add infrastructure to use raw krb5 auth in dcerpc client code
Note this doesn't work currently because the gensec_modules are not ready for that yet

metze
(This used to be commit 7b09a3f725baca5d4483b7ec24a9cb6151557bb5)
2007-10-10 13:09:10 -05:00
Andrew Tridgell
61a3d370b9 r4758: - added async support to the session request code
- added async support to the negprot client code

- removed two unused parameters from smbcli_full_connection() code

- converted smbclient to use smbcli_full_connection() rather than
  reinventing everything itself
(This used to be commit 71cbe2873473e039b4511511302cb63f1c50bce8)
2007-10-10 13:08:50 -05:00
Andrew Bartlett
7db9de3ea9 r4635: Fix NTLMSSP to return NT_STATUS_OK when it has constructed the auth
token in the client (the final token in the negotiation).

Consequential fixes in the SPNEGO code, which now uses the out.length
as the indicator of 'I need to send something to the other side'.

Merge the NTLM and SPNEGO DCE-RPC authentication routines in the client.

Fix the RPC-MULTIBIND test consequent to this merge.

Andrew Bartlett
(This used to be commit 43e3516fc03008e97ebb4ad1a0cde464303f43c6)
2007-10-10 13:08:37 -05:00
Andrew Tridgell
e1f0e09203 r4630: for ncacn_np if we don't have an explicit request for one of the
advanced auth types we should do a plain bind. This fixes rpc
connections to ancient servers (like sun cascade)
(This used to be commit 59a5a0b218f7182c541a06ffc4528c1160699033)
2007-10-10 13:08:36 -05:00
Andrew Tridgell
5da3f75a59 r4627: - simplified the dcerpc auth code using a common function
- added support for "spnego" in binding strings. This enables SPNEGO
  auth in the dcerpc client code, using as many allter_context calls as
  are needed

To try SPNEGO do this:

  smbtorture ncacn_ip_tcp:SERVER[spnego,seal] -Uadministrator%password RPC-SAMR
(This used to be commit 9c0a3423f03111c110d21c0d3910e16aa1a8bf87)
2007-10-10 13:08:35 -05:00
Andrew Tridgell
e74b3ed6f1 r4618: - tidied up the alter_context client code a bit
- there is no alter_nak or alter_ack packet, its all done in an
  alter_response

- auto-allocated the contex_ids

- tried to fix up the dcom code to work again with
  alter_context. Jelmer, please take a look :)
(This used to be commit dd1c54add8884376601f2f8a56c01bfb8add030c)
2007-10-10 13:08:34 -05:00
Andrew Tridgell
ab9ca55926 r4617: basic alter_context requests now work in our client library. The test
just does a simple LSA/DSSETUP combo, which is what w2k does in the
ACL editor rpc calls that triggered this work
(This used to be commit 0129ec947aa1fa5a7104dc3a666af3cb9bd104f1)
2007-10-10 13:08:34 -05:00
Andrew Tridgell
6836f5d0b1 r4616: the first phase in the addition of proper support for
dcerpc_alter_context and multiple context_ids in the dcerpc client
library.

This stage does the following:

 - split "struct dcerpc_pipe" into two parts, the main part being "struct dcerpc_connection", which
   contains all the parts not dependent on the context, and "struct dcerpc_pipe" which has
   the context dependent part. This is similar to the layering in libcli_*() for SMB

 - disable the current dcerpc_alter code. I've used a #warning until i
   get the 2nd phase finished. I don't know how portable #warning is, but
   it won't be long before I add full alter context support anyway, so it won't last long

 - cleanup the allocation of dcerpc_pipe structures. The previous code
   was quite awkward.
(This used to be commit 4004c69937be7e5dae56f9567ca607f982d395d3)
2007-10-10 13:08:34 -05:00
Andrew Tridgell
e3450b0ade r4588: fixed the double bind in ncalrpc with dcerpc_secondary_connection()
(This used to be commit b65a95c11778fd778ad3c013664aea7d038e16ae)
2007-10-10 13:08:30 -05:00
Andrew Tridgell
57842ede9e r4587: fixed dcerpc_secondary_connection() for ncacn_ip_tcp
this fixes RPC-SAMLOGON and some other tests on ncacn_ip_tcp
(This used to be commit 244370d62424ab3c0f9d6689b0e674d057b3fc09)
2007-10-10 13:08:29 -05:00
Andrew Tridgell
58d9adf409 r4526: - much simpler (and more accurate!) ndr_size_*() code generation. It
is less efficient, but I really doubt that matters.

- use enum in epmapper.idl for protocol type

- added support for "enum8bit" flag, used in epmapper.idl
(This used to be commit 1a24a50384b7f588844cd012f1218ca242ca4507)
2007-10-10 13:08:18 -05:00
Andrew Tridgell
4183b2ac38 r4037: fixed a bunch of "might be uninitialised" warnings after enabling -O1 in my compile
(This used to be commit 0928b1f5b68c858922c3ea6c27ed03b5091c6221)
2007-10-10 13:06:16 -05:00
Stefan Metzmacher
e900618654 r3972: use GUID_* naming context and move GUID_* functions to one place
metze
(This used to be commit 523e6acf4fec5d4946fa7c0c89f40d7d712c9f3a)
2007-10-10 13:06:09 -05:00
Andrew Tridgell
285db33399 r3792: improved the posix -> nt error mapping, so we get things like
NT_STATUS_HOST_UNREACHABLE instead of NT_STATUS_UNSUCCESSFUL
(This used to be commit f2a488e5668ab5d262269f1bab1b33a63265cbe9)
2007-10-10 13:05:54 -05:00
Jelmer Vernooij
46badf1908 r3790: use a registration function that is called from dcerpc_*_init functions
rather then a large table in librpc/gen_ndr/tables.c. This will allow us
to only link in only the required gen_ndr files (speeds up linking quite a
bit, makes binaries smaller).

Each gen_ndr_* file now has a init function that calls the init functions
of the interfaces it contains. I did it this way to keep pidl's code simple,
though it might hurt startup time a bit. I'd be happy to change it if
people like one function better.
(This used to be commit 3c436590ae95b58ad6d00e72d6fdd08a4d80f208)
2007-10-10 13:05:53 -05:00
Jelmer Vernooij
8c2e179d47 r3611: DCOM client support works!!
The torture test DCOM-SIMPLE now successfully does an
IStream_Read and a IStream_Write call.

This test can now be run successfully against the "Simple DCOM" Visual
Studio example.

(You have to quote out line 337 in pidl. pidl complains if the variable
 that contains the array size follows the array. I still need to fix this
 properly)

Next goals:
 - Clean up code
 - Server side support
 - Support custom marshalling
 - Support DCOM interfaces in files other then dcom.idl
(This used to be commit 8693344772a9b700533179f4bacfe27ec27dfcfe)
2007-10-10 13:05:39 -05:00
Jelmer Vernooij
add049380e r3602: Add looking up transport by endpoint protocol
(This used to be commit 76c02ecbe8581fbf07bb59dd22ba88eb97b4fd04)
2007-10-10 13:05:38 -05:00
Andrew Tridgell
63b2fef51e r3600: fixed two debug typos
(This used to be commit d0149b173f70cf012e6ed2382394985fb4950af6)
2007-10-10 13:05:37 -05:00
Andrew Bartlett
ba8b9d49cd r3542: Re-indent, and fix a use-after-free by doing the talloc_destroy just a
little later.

Andrew Bartlett
(This used to be commit b7c2a4fc34ef09b177508dcf475055523b84587c)
2007-10-10 13:05:30 -05:00
Jelmer Vernooij
52f7f9b8be r3516: dcerpc_epm_map_binding now checks the endpoints it nows first
and then possibly does a epm_Map call().
ncacn_np now also uses dcerpc_epm_map_binding()
(This used to be commit 77eec3fa18dbbf4d774ccf04c7a38b0887f26ca6)
2007-10-10 13:05:27 -05:00
Jelmer Vernooij
695677f4bb r3515: Fix RemoteActivation correctly this time (-:
Thanks to tridge for some help on this one!
(This used to be commit 1104667190aa144e2c7d79ece9a55502b98d0351)
2007-10-10 13:05:27 -05:00
Andrew Tridgell
02785df1b0 r3497: removed some include cruft, and split out librpc/gen_ndr/tables.h
(This used to be commit 7dd3a5a6dadb0edc4fad56deba84f24b1e6dd2bc)
2007-10-10 13:05:22 -05:00
Andrew Tridgell
5011f901aa r3457: s_addr is a macro on solaris, so we can't use it in structure names. arrgh.
(This used to be commit 7842b23d01c53009259a2461600bd01159cecebf)
2007-10-10 13:05:15 -05:00
Jelmer Vernooij
75b2790da8 r3444: Don't use random data as endpoint if no default endpoint is known and no
endpoint was specified for ncacn_np.
(This used to be commit 5f47bf1187fbd07fd8eb88da2a1fea2b0e9addf8)
2007-10-10 13:05:12 -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
Volker Lendecke
722eec5fc0 r3434: Fix memleak
(This used to be commit 0a12cc4cadf7c1e97282a0d8ab2f486536987a77)
2007-10-10 13:05:10 -05:00
Andrew Tridgell
90067934cd r3428: switched to using minimal includes for the auto-generated RPC code.
The thing that finally convinced me that minimal includes was worth
pursuing for rpc was a compiler (tcc) that failed to build Samba due
to reaching internal limits of the size of include files. Also the
fact that includes.h.gch was 16MB, which really seems excessive. This
patch brings it back to 12M, which is still too large, but
better. Note that this patch speeds up compile times for both the pch
and non-pch case.

This change also includes the addition iof a "depends()" option in our
IDL files, allowing you to specify that one IDL file depends on
another. This capability was needed for the auto-includes generation.
(This used to be commit b8f5fa8ac8e8725f3d321004f0aedf4246fc6b49)
2007-10-10 13:05:09 -05:00
Jelmer Vernooij
b33f17e11b r3412: Add NCACN_SPX and NCADG_IPX transports
(This used to be commit ff2f2b4273ce9a49599b385d32fbbd5e8f0d4c23)
2007-10-10 13:05:07 -05:00
Andrew Tridgell
eb3b256864 r3392: fixed schannel over ncalrpc
(This used to be commit 0b93be9f5f89ef17f94e8e98c3a405495e04e235)
2007-10-10 13:05:05 -05:00
Andrew Tridgell
173dda6bf4 r3391: fixed some memory leaks in the schannel code
(This used to be commit eb3366d3667ddddf7ab5eae5d1fbc5de86c41072)
2007-10-10 13:05:04 -05:00
Andrew Tridgell
c2cf02c116 r3388: when doing schannel use a anonymous session setup (as the machine acct
isn't allowed to login on a share)
(This used to be commit 8c0be60d8d59863f0bcdd17012dce923c139ce09)
2007-10-10 13:05:04 -05:00
Andrew Tridgell
d3da369f91 r3280: fixed byte order of rhs IP
(This used to be commit 29fab12d0b1649046ab2abb08b51f9845c8f8116)
2007-10-10 13:04:49 -05:00
Andrew Tridgell
9d055846f2 r3278: - rewrote the client side rpc connection code to use lib/socket/
rather than doing everything itself. This greatly simplifies the
  code, although I really don't like the socket_recv() interface (it
  always allocates memory for you, which means an extra memcpy in this
  code)

- fixed several bugs in the socket_ipv4.c code, in particular client
  side code used a non-blocking connect but didn't handle EINPROGRESS,
  so it had no chance of working. Also fixed the error codes, using
  map_nt_error_from_unix()

- cleaned up and expanded map_nt_error_from_unix()

- changed interpret_addr2() to not take a mem_ctx. It makes absolutely
  no sense to allocate a fixed size 4 byte structure like this. Dozens
  of places in the code were also using interpret_addr2() incorrectly
  (precisely because the allocation made no sense)
(This used to be commit 7f2c771b0e0e98c5c9e5cf662592d64d34ff1205)
2007-10-10 13:04:49 -05:00
Andrew Tridgell
5ae4481161 r3277: don't use the non-portable getaddrinfo() function, instead use
interpret_addr() and if someone wants to add support to that function
for ipv6 then they are welcome to.
(This used to be commit 50377db11bb727b407744e0c50805c8f90810c16)
2007-10-10 13:04:49 -05:00
Jelmer Vernooij
883fdf1a17 r3211: Add a graphical endpoint mapper view tool
(This used to be commit 71dfc27b8efb3057c4b7383feca0ba35ab5768a4)
2007-10-10 13:04:41 -05:00
Jelmer Vernooij
17781196bf r3209: - Create directory for ncalrpc with correct mode
- Support binding strings like :

ncacn_np:[sign]
ncacn_np:myhost[seal,sign,endpoint]

again
(This used to be commit b53f4cd1697345065c7d979ba63237bf828dc07f)
2007-10-10 13:04:41 -05:00
Jelmer Vernooij
3b252b765d r3205: Create ncalrpc directory if it didn't exist yet
(This used to be commit 1161c33794cdb16a3d09a66258f46e0020c4aeef)
2007-10-10 13:04:41 -05:00
Jelmer Vernooij
dbdd217435 r3168: Use generic function for looking up endpoints
(This used to be commit 45a3e2a9815058a3a828c573573c5eee605f9129)
2007-10-10 13:02:29 -05:00