summaryrefslogtreecommitdiff
path: root/source/nsswitch/winbind_client.h
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2007-03-19 21:04:56 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:18:42 -0500
commite5741e27c4c22702c9f8b07877641fecc7eef39c (patch)
tree0d32d9bd21c8d6d4a675bea16cc160e9305cd7a8 /source/nsswitch/winbind_client.h
parent184571e4b0283fb1a62c441f10429006656052c8 (diff)
downloadsamba-e5741e27c4c22702c9f8b07877641fecc7eef39c.tar.gz
r21878: Fix a bug with smbd serving a windows terminal server: If winbind decides smbd
to be idle it might happen that smbd needs to do a winbind operation (for example sid2name) as non-root. This then fails to get the privileged pipe. When later on on the same connection another authentication request comes in, we try to do the CRAP auth via the non-privileged pipe. This adds a winbindd_priv_request_response() request that kills the existing winbind pipe connection if it's not privileged. Volker
Diffstat (limited to 'source/nsswitch/winbind_client.h')
-rw-r--r--source/nsswitch/winbind_client.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/source/nsswitch/winbind_client.h b/source/nsswitch/winbind_client.h
index 1d3d379af00..d80aff37fa1 100644
--- a/source/nsswitch/winbind_client.h
+++ b/source/nsswitch/winbind_client.h
@@ -2,13 +2,16 @@
#include "winbindd_nss.h"
void init_request(struct winbindd_request *req,int rq_type);
-NSS_STATUS winbindd_send_request(int req_type,
+NSS_STATUS winbindd_send_request(int req_type, int need_priv,
struct winbindd_request *request);
NSS_STATUS winbindd_get_response(struct winbindd_response *response);
NSS_STATUS winbindd_request_response(int req_type,
struct winbindd_request *request,
struct winbindd_response *response);
-int write_sock(void *buffer, int count, int recursing);
+NSS_STATUS winbindd_priv_request_response(int req_type,
+ struct winbindd_request *request,
+ struct winbindd_response *response);
+int write_sock(void *buffer, int count, int recursing, int need_priv);
int read_reply(struct winbindd_response *response);
void close_sock(void);
void free_response(struct winbindd_response *response);