mirror of
https://github.com/samba-team/samba.git
synced 2025-02-25 17:57:42 +03:00
bug9598: s4-process_single: Use pid,fd as cluster_id in process_single just like process_prefork
This avoids two different process single servers (say LDAP and the RPC server) sharing the same server id. Fix-bug: https://bugzilla.samba.org/show_bug.cgi?id=9598 Reported-by: Matthieu Patou <mat@matws.net> Reviewed-by: Matthieu Patou <mat@matws.net> Signed-off-by: Andrew Bartlett <abartlett@samba.org> Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Fri Jan 25 12:00:04 CET 2013 on sn-devel-104
This commit is contained in:
parent
da35cd7bd2
commit
c5db4eb910
@ -49,6 +49,7 @@ static void single_accept_connection(struct tevent_context *ev,
|
||||
{
|
||||
NTSTATUS status;
|
||||
struct socket_context *connected_socket;
|
||||
pid_t pid = getpid();
|
||||
|
||||
/* accept an incoming connection. */
|
||||
status = socket_accept(listen_socket, &connected_socket);
|
||||
@ -71,10 +72,14 @@ static void single_accept_connection(struct tevent_context *ev,
|
||||
|
||||
talloc_steal(private_data, connected_socket);
|
||||
|
||||
/* The cluster_id(0, fd) cannot collide with the incrementing
|
||||
* task below, as the first component is 0, not 1 */
|
||||
/*
|
||||
* We use the PID so we cannot collide in with cluster ids
|
||||
* generated in other single mode tasks, and, and won't
|
||||
* collide with PIDs from process model standard because a the
|
||||
* combination of pid/fd should be unique system-wide
|
||||
*/
|
||||
new_conn(ev, lp_ctx, connected_socket,
|
||||
cluster_id(0, socket_get_fd(connected_socket)), private_data);
|
||||
cluster_id(pid, socket_get_fd(connected_socket)), private_data);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user