1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

57 Commits

Author SHA1 Message Date
Andrew Bartlett
cdd802af83 s4-messaging Rename messaging -> imessaging
This avoid symbol and structure conflicts between Samba3 and Samba4,
and chooses a less generic name.

Andrew Bartlett
2011-05-03 07:37:07 +02:00
Andrew Tridgell
ef7f4a1420 s4-server: make server sockets a child of the task context
We previously allocated sockets as direct children of the event
context. That led to crashes if a service called
task_server_terminate(), as it left the socket open and handling
events for a dead protocol.

Making them a child of the task allows the task to terminate and take
all its sockets with it.

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-11-15 10:19:34 +11:00
Andrew Tridgell
6b266b85cf s4-loadparm: 2nd half of lp_ to lpcfg_ conversion
this converts all callers that use the Samba4 loadparm lp_ calling
convention to use the lpcfg_ prefix.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-07-16 18:24:27 +10:00
Jelmer Vernooij
f9ca9e46ad Finish removal of iconv_convenience in public API's. 2010-05-18 11:45:30 +02:00
Stefan Metzmacher
ae049c49df s4:libcli/wrepl: rewrite the low level request handling to use tevent_queue and tstream_context
metze
2010-03-07 17:12:39 +01:00
Andreas Schneider
81bb8f67fa s4-smb: Migrate named_pipe_server to tsocket.
This is an improved version of commit 69d5cea2e59162f19460e7ce4b6382fc5fdd6ca0,
which was reverted by commit 71c20f703b0c603d6aada63ed5634070a26df052.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-02-26 08:57:31 +01:00
Simo Sorce
71c20f703b Revert "s4-smb: Migrate named_pipe_server to tsocket."
This reverts commit 69d5cea2e59162f19460e7ce4b6382fc5fdd6ca0.

This commit causes issues with the RPC server, revert it until we find the
exact issue and possibly have a torture test to avoid it happening again.
Found playing with w2k8r2 and forest trusts.
2010-02-24 18:35:47 -05:00
Andreas Schneider
69d5cea2e5 s4-smb: Migrate named_pipe_server to tsocket. 2010-02-23 13:48:21 +01:00
Stefan Metzmacher
500f55ca92 s4:smbd: hold tsocket_addresses on the stream_connection
metze
2009-12-24 17:38:33 +01:00
Andrew Tridgell
72c60db126 s4-smbd: removed unnecessary includes 2009-09-19 14:11:58 -07:00
Volker Lendecke
4b3e89c2e7 Fix Coverity 911: FORWARD_NULL. Metze, please check! 2009-05-02 13:14:14 +02:00
Stefan Metzmacher
d9c30894a1 s4:service_stream: s/private/private_data
metze
2009-02-02 13:09:00 +01:00
Stefan Metzmacher
29cc638c2c s4:smbd: s/private/private_data
metze
2009-02-02 13:08:36 +01:00
Stefan Metzmacher
47d532fa68 s4:smbd: convert to tevent_* api
metze
2009-01-03 19:58:57 +01:00
Stefan Metzmacher
5fa0d3d568 s4:socket: use a socket_wrapper aware function to auto close the fd event for sockets
metze
2009-01-03 19:58:53 +01:00
Stefan Metzmacher
183c379fe5 s4:lib/tevent: rename structs
list=""
list="$list event_context:tevent_context"
list="$list fd_event:tevent_fd"
list="$list timed_event:tevent_timer"

for s in $list; do
	o=`echo $s | cut -d ':' -f1`
	n=`echo $s | cut -d ':' -f2`
	r=`git grep "struct $o" |cut -d ':' -f1 |sort -u`
	files=`echo "$r" | grep -v source3 | grep -v nsswitch | grep -v packaging4`
	for f in $files; do
		cat $f | sed -e "s/struct $o/struct $n/g" > $f.tmp
		mv $f.tmp $f
	done
done

metze
2008-12-29 20:46:40 +01:00
Jelmer Vernooij
2400b1fea2 Fix segfault. 2008-09-30 04:22:54 +02:00
Jelmer Vernooij
2ba4a79210 Eliminate another global_loadparm. 2008-09-30 03:20:46 +02:00
Andrew Tridgell
59847fd6b6 log stream termination 2008-09-24 18:10:23 -07:00
Andrew Bartlett
00bde569b7 Fix segfault caused by talloc_free() being called while still processing
The problem here was that with the packet code set to serialise, we
can have multiple packets 'processing' at once, and previously the
second packet (allowed because we are spining on an event context down
the stack) would clear the flag.

Andrew Bartlett
(This used to be commit 33789111241a1d97fc105ec4edd7b8054895b28c)
2008-06-19 17:59:57 +10:00
Stefan Metzmacher
250478d044 smbd: pass down lp_ctx to stream_new_connection_merge()
metze
(This used to be commit 91e9062265a68e3a1fe5e092503ec44ae5ea034e)
2008-05-17 02:15:18 +02:00
Jelmer Vernooij
2ba62662f8 Remove sDefault as static variable.
(This used to be commit 16f36ce499e93860dd535034a584ec2b93e7a172)
2008-02-28 20:04:58 +01:00
Jelmer Vernooij
649f820998 Set lp_ctx properly.
(This used to be commit 5d274f19aedbb022d61b1493857dce66877dc809)
2008-02-27 19:37:04 +01:00
Andrew Bartlett
77f71c1b65 Rework cluster_id() to take an additional argument, as we need
<node>.<pid>.<fd> to be unique in a prefork process environment.

Andrew Bartlett and David Disseldorp
(This used to be commit 931994a7f185bbc98924823e9e8cef1011dd0957)
2008-02-04 17:51:38 +11:00
Jelmer Vernooij
df408d056e r26672: Janitorial: Remove uses of global_loadparm.
(This used to be commit 18cd08623eaad7d2cd63b82ea5275d4dfd21cf00)
2008-01-05 13:06:03 -06:00
Jelmer Vernooij
84b4763947 r26441: Remove global_loadparm uses.
(This used to be commit 32007c6277efa46341da7741b749a98633d71640)
2007-12-21 05:50:09 +01:00
Jelmer Vernooij
2f5ca872a8 r26313: Fix more uses of static loadparm.
(This used to be commit 6fd0d9d3b75546d08c24c513e05b1843d5777608)
2007-12-21 05:48:25 +01:00
Jelmer Vernooij
fc2f06d31b r26274: Some syntax fixes, remove more global_loadparm instances.
(This used to be commit 3809113d86dbd35b906356a05bb481a1e2bfe4b7)
2007-12-21 05:47:58 +01:00
Andrew Bartlett
b45b8fa9c3 r25922: Make it easier to bind to a unix domain socket, without messing with
ports...

Andrew Bartlett
(This used to be commit 70de473980e99eeeb719bf9f63d23a399847b23b)
2007-12-21 05:45:03 +01:00
Jelmer Vernooij
efa384375f r25454: Use standard bool types in a couple more places.
(This used to be commit 9243b551f30c7aa2763115516a6adcfe5bbddc58)
2007-10-10 15:07:38 -05:00
Jelmer Vernooij
2f3551ca7c r25446: Merge some changes I made on the way home from SFO:
2007-09-29 More higher-level passing around of lp_ctx.
2007-09-29 Fix warning.
2007-09-29 Pass loadparm contexts on a higher level.
2007-09-29 Avoid using global loadparm context.
(This used to be commit 3468952e771ab31f90b6c374ade01c5550810f42)
2007-10-10 15:07:34 -05:00
Jelmer Vernooij
37d53832a4 r25398: Parse loadparm context to all lp_*() functions.
(This used to be commit 3fcc960839c6e5ca4de2c3c042f12f369ac5f238)
2007-10-10 15:07:25 -05:00
Jelmer Vernooij
98b57d5eb6 r25035: Fix some more warnings, use service pointer rather than service number in more places.
(This used to be commit df9cebcb97e20564359097148665bd519f31bc6f)
2007-10-10 15:05:43 -05:00
Jelmer Vernooij
ffeee68e4b r25026: Move param/param.h out of includes.h
(This used to be commit abe8349f9b4387961ff3665d8c589d61cd2edf31)
2007-10-10 15:05:38 -05:00
Jelmer Vernooij
8e2d624a58 r24937: Merge tests spoolss RPC callbacks.
(This used to be commit 9b256a0ca232ea6e89771bf73a1adf877273a752)
2007-10-10 15:03:39 -05:00
Andrew Tridgell
b5c4c5f420 r24276: don't mark a stream readable until after the messaging setup is
complete. This is needed because messaging setup with ctdb involve
events, and we don't want a SMB packet to be processed on this stream
until after the stream structure is fully setup
(This used to be commit 8e378051e594372dfb2c00a380ef4bc151021ea2)
2007-10-10 15:01:34 -05:00
Andrew Tridgell
0479a2f1cb r23792: convert Samba4 to GPLv3
There are still a few tidyups of old FSF addresses to come (in both s3
and s4). More commits soon.
(This used to be commit fcf38a38ac691abd0fa51b89dc951a08e89fdafa)
2007-10-10 14:59:12 -05:00
Andrew Tridgell
4ace7950d4 r23702: fixed a "falling back to select" error in the standard process
model. It's much cleaner to get the event system to close the fd,
especially with the complexity of forks
(This used to be commit d1b710f09c95a8181d2b642081282d8c97b37811)
2007-10-10 14:59:05 -05:00
Andrew Tridgell
1cd4339b9a r20646: first preparations for cluster enablement. This changes "
uint32_t server_id
to
  struct server_id server_id;

which allows a server ID to have an node number. The node number will
be zero in non-clustered case. This is the most basic hook needed for
clustering, and ctdb.
(This used to be commit 2365abaa991d57d68c6ebe9be608e01c907102eb)
2007-10-10 14:37:23 -05:00
Andrew Tridgell
fb1d60363e r18806: fixed two spelling errors
(This used to be commit f11112d7f0a6b1550008fd8192be2592412fb222)
2007-10-10 14:19:13 -05:00
Stefan Metzmacher
8a3f6a7912 r17227: don't call a function which takes some nonoptional args
with NULL.

metze
(This used to be commit 3711b968adf8a0951171ad1a90be65a9ae0dc03b)
2007-10-10 14:10:22 -05:00
Andrew Bartlett
ba07fa43d0 r17197: This patch moves the encryption of bulk data on SASL negotiated security
contexts from the application layer into the socket layer.

This improves a number of correctness aspects, as we now allow LDAP
packets to cross multiple SASL packets.  It should also make it much
easier to write async LDAP tests from windows clients, as they use SASL
by default.  It is also vital to allowing OpenLDAP clients to use GSSAPI
against Samba4, as it negotiates a rather small SASL buffer size.

This patch mirrors the earlier work done to move TLS into the socket
layer.

Unusual in this pstch is the extra read callback argument I take.  As
SASL is a layer on top of a socket, it is entirely possible for the
SASL layer to drain a socket dry, but for the caller not to have read
all the decrypted data.  This would leave the system without an event
to restart the read (as the socket is dry).

As such, I re-invoke the read handler from a timed callback, which
should trigger on the next running of the event loop.  I believe that
the TLS code does require a similar callback.

In trying to understand why this is required, imagine a SASL-encrypted
LDAP packet in the following formation:

+-----------------+---------------------+
| SASL  Packet #1 | SASL Packet #2      |
----------------------------------------+
| LDAP Packet #1       | LDAP Packet #2 |
----------------------------------------+

In the old code, this was illegal, but it is perfectly standard
SASL-encrypted LDAP.  Without the callback, we would read and process
the first LDAP packet, and the SASL code would have read the second SASL
packet (to decrypt enough data for the LDAP packet), and no data would
remain on the socket.

Without data on the socket, read events stop.  That is why I add timed
events, until the SASL buffer is drained.

Another approach would be to add a hack to the event system, to have it
pretend there remained data to read off the network (but that is ugly).

In improving the code, to handle more real-world cases, I've been able
to remove almost all the special-cases in the testnonblock code.  The
only special case is that we must use a deterministic partial packet
when calling send, rather than a random length.  (1 + n/2).  This is
needed because of the way the SASL and TLS code works, and the 'resend
on failure' requirements.

Andrew Bartlett
(This used to be commit 5d7c9c12cb2b39673172a357092b80cd814850b0)
2007-10-10 14:10:18 -05:00
Stefan Metzmacher
651ca6553e r14079: I just found the setproctitle library from alt linux:-)
- add set_title hook to the process models
- use setproctitle library in process_model standard if available
- the the title for the task servers and on connections

metze
(This used to be commit 526f20bbecc9bbd607595637c15fc4001d3f0c70)
2007-10-10 13:56:49 -05:00
Andrew Bartlett
f55ea8bb3d r12804: This patch reworks the Samba4 sockets layer to use a socket_address
structure that is more generic than just 'IP/port'.

It now passes make test, and has been reviewed and updated by
metze. (Thankyou *very* much).

This passes 'make test' as well as kerberos use (not currently in the
testsuite).

The original purpose of this patch was to have Samba able to pass a
socket address stucture from the BSD layer into the kerberos routines
and back again.   It also removes nbt_peer_addr, which was being used
for a similar purpose.

It is a large change, but worthwhile I feel.

Andrew Bartlett
(This used to be commit 88198c4881d8620a37086f80e4da5a5b71c5bbb2)
2007-10-10 13:49:57 -05:00
Stefan Metzmacher
7eb3fc533d r12125: make the deferred connection termination the default,
so that I can remove all the other versions of it

metze
(This used to be commit 82de98b8e9f3030449225634935a71a3dd7e117c)
2007-10-10 13:47:12 -05:00
Stefan Metzmacher
f7cd569828 r10768: add a function to create a stream_connection from an already
existing socket connection, that's used for protocols
which switch the client/server roles inside a session

metze
(This used to be commit d4b4d963353e6986da5b42680739329069f5affe)
2007-10-10 13:39:29 -05:00
Andrew Tridgell
28bc38de2a r10682: force the free of the fd event first when a stream terminates. That ensures
destructors hanging off the stream connection don't trip more socket
events.

this should help with the problem volker described
(This used to be commit fd8eccd5bf0c742a7809f3991101f4ac75b5e037)
2007-10-10 13:39:18 -05:00
Andrew Tridgell
bf1ffa283c r7294: implemented the irpc messaging system. This is the core of the
management system I proposed on samba-technical a couple of days
ago. Essentially it is a very lightweight way for any code in Samba to
make IDL based rpc calls to anywhere else in the code, without the
client or server having to go to the trouble of setting up a full rpc
service.

It can be used with any of our existing IDL, but I expect it will
mostly be used for a new set of Samba specific management calls.

The LOCAL-IRPC torture test demonstrates how it can be used by calling
the echo_AddOne() call over this transport.
(This used to be commit 3d589a09954eb8b318f567e1150b0c27412fb942)
2007-10-10 13:17:37 -05:00
Andrew Tridgell
bed7c9ec32 r5304: removed lib/socket/socket.h from includes.h
(This used to be commit b902ea546d2d1327b23f40ddaeeaa8e7e3662454)
2007-10-10 13:09:39 -05:00
Andrew Tridgell
131dc76d56 r5197: moved events code to lib/events/ (suggestion from metze)
(This used to be commit 7f54c8a339f36aa43c9340be70ab7f0067593ef2)
2007-10-10 13:09:30 -05:00