r21935: Revert obviously not sufficiently tested code -- sorry for the pain. I am...
authorVolker Lendecke <vlendec@samba.org>
Thu, 22 Mar 2007 18:36:09 +0000 (18:36 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:18:50 +0000 (12:18 -0500)
(This used to be commit 08c29abc03267b0dfb41cec3734653a536027a10)

source3/auth/auth_winbind.c
source3/nsswitch/wb_common.c
source3/nsswitch/winbind_client.h
source3/nsswitch/winbind_nss_irix.c

index f06f83f4065027be74bec2e3afc7b90d055b4d1e..fa56757950d7a427ebf6d4695c38e067de8dc5d3 100644 (file)
@@ -108,8 +108,7 @@ static NTSTATUS check_winbind_security(const struct auth_context *auth_context,
 
        /* we are contacting the privileged pipe */
        become_root();
-       result = winbindd_priv_request_response(WINBINDD_PAM_AUTH_CRAP,
-                                               &request, &response);
+       result = winbindd_request_response(WINBINDD_PAM_AUTH_CRAP, &request, &response);
        unbecome_root();
 
        if ( result == NSS_STATUS_UNAVAIL )  {
index fb84373aa63e372dd4bb68c455505147d497a3ee..05d2a660e73b27b59f92047056ed8457deee5ea0 100644 (file)
@@ -33,7 +33,6 @@ BOOL winbind_on( void );
 /* Global variables.  These are effectively the client state information */
 
 int winbindd_fd = -1;           /* fd for winbindd socket */
-static int is_privileged = 0;
 
 /* Free a response structure */
 
@@ -288,7 +287,7 @@ static int winbind_named_pipe_sock(const char *dir)
 
 /* Connect to winbindd socket */
 
-static int winbind_open_pipe_sock(int recursing, int need_priv)
+static int winbind_open_pipe_sock(int recursing)
 {
 #ifdef HAVE_UNIXSOCKET
        static pid_t our_pid;
@@ -301,10 +300,6 @@ static int winbind_open_pipe_sock(int recursing, int need_priv)
                close_sock();
                our_pid = getpid();
        }
-
-       if ((need_priv != 0) && (is_privileged == 0)) {
-               close_sock();
-       }
        
        if (winbindd_fd != -1) {
                return winbindd_fd;
@@ -318,8 +313,6 @@ static int winbind_open_pipe_sock(int recursing, int need_priv)
                return -1;
        }
 
-       is_privileged = 0;
-
        /* version-check the socket */
 
        request.flags = WBFLAG_RECURSE;
@@ -336,14 +329,9 @@ static int winbind_open_pipe_sock(int recursing, int need_priv)
                if ((fd = winbind_named_pipe_sock((char *)response.extra_data.data)) != -1) {
                        close(winbindd_fd);
                        winbindd_fd = fd;
-                       is_privileged = 1;
                }
        }
 
-       if ((need_priv != 0) && (is_privileged == 0)) {
-               return -1;
-       }
-
        SAFE_FREE(response.extra_data.data);
 
        return winbindd_fd;
@@ -354,7 +342,7 @@ static int winbind_open_pipe_sock(int recursing, int need_priv)
 
 /* Write data to winbindd socket */
 
-int write_sock(void *buffer, int count, int recursing, int need_priv)
+int write_sock(void *buffer, int count, int recursing)
 {
        int result, nwritten;
        
@@ -362,7 +350,7 @@ int write_sock(void *buffer, int count, int recursing, int need_priv)
        
  restart:
        
-       if (winbind_open_pipe_sock(recursing, need_priv) == -1) {
+       if (winbind_open_pipe_sock(recursing) == -1) {
                return -1;
        }
        
@@ -548,8 +536,7 @@ BOOL winbind_env_set( void )
  * send simple types of requests 
  */
 
-NSS_STATUS winbindd_send_request(int req_type, int need_priv,
-                                struct winbindd_request *request)
+NSS_STATUS winbindd_send_request(int req_type, struct winbindd_request *request)
 {
        struct winbindd_request lrequest;
 
@@ -568,14 +555,12 @@ NSS_STATUS winbindd_send_request(int req_type, int need_priv,
 
        init_request(request, req_type);
        
-       if (write_sock(request, sizeof(*request),
-                      request->flags & WBFLAG_RECURSE, need_priv) == -1) {
+       if (write_sock(request, sizeof(*request), request->flags & WBFLAG_RECURSE) == -1) {
                return NSS_STATUS_UNAVAIL;
        }
 
        if ((request->extra_len != 0) &&
-           (write_sock(request->extra_data.data, request->extra_len,
-                       request->flags & WBFLAG_RECURSE, need_priv) == -1)) {
+           (write_sock(request->extra_data.data, request->extra_len, request->flags & WBFLAG_RECURSE) == -1)) {
                return NSS_STATUS_UNAVAIL;
        }
        
@@ -625,25 +610,7 @@ NSS_STATUS winbindd_request_response(int req_type,
        int count = 0;
 
        while ((status == NSS_STATUS_UNAVAIL) && (count < 10)) {
-               status = winbindd_send_request(req_type, 0, request);
-               if (status != NSS_STATUS_SUCCESS) 
-                       return(status);
-               status = winbindd_get_response(response);
-               count += 1;
-       }
-
-       return status;
-}
-
-NSS_STATUS winbindd_priv_request_response(int req_type, 
-                                         struct winbindd_request *request,
-                                         struct winbindd_response *response)
-{
-       NSS_STATUS status = NSS_STATUS_UNAVAIL;
-       int count = 0;
-
-       while ((status == NSS_STATUS_UNAVAIL) && (count < 10)) {
-               status = winbindd_send_request(req_type, 1, request);
+               status = winbindd_send_request(req_type, request);
                if (status != NSS_STATUS_SUCCESS) 
                        return(status);
                status = winbindd_get_response(response);
index d80aff37fa1d40f37b5e2c71945ced28730d99b1..1d3d379af00d0f35b57eef58c6db7ae41b467244 100644 (file)
@@ -2,16 +2,13 @@
 #include "winbindd_nss.h"
 
 void init_request(struct winbindd_request *req,int rq_type);
-NSS_STATUS winbindd_send_request(int req_type, int need_priv,
+NSS_STATUS winbindd_send_request(int req_type,
                                 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);
-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 write_sock(void *buffer, int count, int recursing);
 int read_reply(struct winbindd_response *response);
 void close_sock(void);
 void free_response(struct winbindd_response *response);
index 5c6679f04425a43bd28df470b91c80e1a582817c..2fbf3e0df827b08f69ddfd0ab23f477549602edc 100644 (file)
@@ -454,7 +454,7 @@ send_next_request(nsd_file_t *rq, struct winbindd_request *request)
        nsd_logprintf(NSD_LOG_MIN,
                "send_next_request (winbind) %d, timeout = %d sec\n",
                        rq->f_cmd_data, timeout);
-       status = winbindd_send_request((int)rq->f_cmd_data,request,0);
+       status = winbindd_send_request((int)rq->f_cmd_data,request);
        SAFE_FREE(request);
 
        if (status != NSS_STATUS_SUCCESS) {