The branch, v3-2-test has been updated
       via  075d315e0f72d506b70040da10940e4af131b4e2 (commit)
      from  cccb80b7b7980fbe1298ce266375e51bacb4a425 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 075d315e0f72d506b70040da10940e4af131b4e2
Author: Stefan Metzmacher <[EMAIL PROTECTED]>
Date:   Thu Dec 13 12:27:57 2007 +0100

    winbindd: move domain child specific stuff into its own file
    
    metze

-----------------------------------------------------------------------

Summary of changes:
 source/Makefile.in                 |    1 +
 source/winbindd/winbindd.h         |    2 -
 source/winbindd/winbindd_domain.c  |  111 ++++++++++++++++++++++++++++++++++++
 source/winbindd/winbindd_dual.c    |   99 +++-----------------------------
 source/winbindd/winbindd_idmap.c   |    7 +-
 source/winbindd/winbindd_locator.c |    7 +-
 source/winbindd/winbindd_util.c    |   20 ++-----
 7 files changed, 133 insertions(+), 114 deletions(-)
 create mode 100644 source/winbindd/winbindd_domain.c


Changeset truncated at 500 lines:

diff --git a/source/Makefile.in b/source/Makefile.in
index 5a8d7e1..c70ad6c 100644
--- a/source/Makefile.in
+++ b/source/Makefile.in
@@ -873,6 +873,7 @@ WINBINDD_OBJ1 = \
                winbindd/winbindd_creds.o \
                winbindd/winbindd_cred_cache.o \
                winbindd/winbindd_ccache_access.o \
+               winbindd/winbindd_domain.o \
                winbindd/winbindd_idmap.o \
                winbindd/winbindd_locator.o \
                auth/token_util.o
diff --git a/source/winbindd/winbindd.h b/source/winbindd/winbindd.h
index d76e9b5..6bf6e6c 100644
--- a/source/winbindd/winbindd.h
+++ b/source/winbindd/winbindd.h
@@ -143,8 +143,6 @@ struct winbindd_child_dispatch_table {
                                          struct winbindd_cli_state *state);
 };
 
-extern const struct winbindd_child_dispatch_table domain_dispatch_table[];
-
 struct winbindd_child {
        struct winbindd_child *next, *prev;
 
diff --git a/source/winbindd/winbindd_domain.c 
b/source/winbindd/winbindd_domain.c
new file mode 100644
index 0000000..1b758cd
--- /dev/null
+++ b/source/winbindd/winbindd_domain.c
@@ -0,0 +1,111 @@
+/*
+   Unix SMB/CIFS implementation.
+
+   Winbind domain child functions
+
+   Copyright (C) Stefan Metzmacher 2007
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+#undef DBGC_CLASS
+#define DBGC_CLASS DBGC_WINBIND
+
+static const struct winbindd_child_dispatch_table domain_dispatch_table[];
+
+void setup_domain_child(struct winbindd_domain *domain,
+                       struct winbindd_child *child)
+{
+       setup_child(child, domain_dispatch_table,
+                   "log.wb", domain->name);
+
+       child->domain = domain;
+}
+
+static const struct winbindd_child_dispatch_table domain_dispatch_table[] = {
+       {
+               .name           = "LOOKUPSID",
+               .struct_cmd     = WINBINDD_LOOKUPSID,
+               .struct_fn      = winbindd_dual_lookupsid,
+       },{
+               .name           = "LOOKUPNAME",
+               .struct_cmd     = WINBINDD_LOOKUPNAME,
+               .struct_fn      = winbindd_dual_lookupname,
+       },{
+               .name           = "LOOKUPRIDS",
+               .struct_cmd     = WINBINDD_LOOKUPRIDS,
+               .struct_fn      = winbindd_dual_lookuprids,
+       },{
+               .name           = "LIST_TRUSTDOM",
+               .struct_cmd     = WINBINDD_LIST_TRUSTDOM,
+               .struct_fn      = winbindd_dual_list_trusted_domains,
+       },{
+               .name           = "INIT_CONNECTION",
+               .struct_cmd     = WINBINDD_INIT_CONNECTION,
+               .struct_fn      = winbindd_dual_init_connection,
+       },{
+               .name           = "GETDCNAME",
+               .struct_cmd     = WINBINDD_GETDCNAME,
+               .struct_fn      = winbindd_dual_getdcname,
+       },{
+               .name           = "SHOW_SEQUENCE",
+               .struct_cmd     = WINBINDD_SHOW_SEQUENCE,
+               .struct_fn      = winbindd_dual_show_sequence,
+       },{
+               .name           = "PAM_AUTH",
+               .struct_cmd     = WINBINDD_PAM_AUTH,
+               .struct_fn      = winbindd_dual_pam_auth,
+       },{
+               .name           = "AUTH_CRAP",
+               .struct_cmd     = WINBINDD_PAM_AUTH_CRAP,
+               .struct_fn      = winbindd_dual_pam_auth_crap,
+       },{
+               .name           = "PAM_LOGOFF",
+               .struct_cmd     = WINBINDD_PAM_LOGOFF,
+               .struct_fn      = winbindd_dual_pam_logoff,
+       },{
+               .name           = "CHNG_PSWD_AUTH_CRAP",
+               .struct_cmd     = WINBINDD_PAM_CHNG_PSWD_AUTH_CRAP,
+               .struct_fn      = winbindd_dual_pam_chng_pswd_auth_crap,
+       },{
+               .name           = "PAM_CHAUTHTOK",
+               .struct_cmd     = WINBINDD_PAM_CHAUTHTOK,
+               .struct_fn      = winbindd_dual_pam_chauthtok,
+       },{
+               .name           = "CHECK_MACHACC",
+               .struct_cmd     = WINBINDD_CHECK_MACHACC,
+               .struct_fn      = winbindd_dual_check_machine_acct,
+       },{
+               .name           = "DUAL_USERINFO",
+               .struct_cmd     = WINBINDD_DUAL_USERINFO,
+               .struct_fn      = winbindd_dual_userinfo,
+       },{
+               .name           = "GETUSERDOMGROUPS",
+               .struct_cmd     = WINBINDD_GETUSERDOMGROUPS,
+               .struct_fn      = winbindd_dual_getuserdomgroups,
+       },{
+               .name           = "GETSIDALIASES",
+               .struct_cmd     = WINBINDD_DUAL_GETSIDALIASES,
+               .struct_fn      = winbindd_dual_getsidaliases,
+       },{
+               .name           = "CCACHE_NTLM_AUTH",
+               .struct_cmd     = WINBINDD_CCACHE_NTLMAUTH,
+               .struct_fn      = winbindd_dual_ccache_ntlm_auth,
+       },{
+               .name           = NULL,
+       }
+};
diff --git a/source/winbindd/winbindd_dual.c b/source/winbindd/winbindd_dual.c
index 08ce7f4..778886d 100644
--- a/source/winbindd/winbindd_dual.c
+++ b/source/winbindd/winbindd_dual.c
@@ -408,80 +408,6 @@ void sendto_domain(struct winbindd_cli_state *state,
                             recvfrom_child, state);
 }
 
-const struct winbindd_child_dispatch_table domain_dispatch_table[] = {
-       {
-               .name           = "LOOKUPSID",
-               .struct_cmd     = WINBINDD_LOOKUPSID,
-               .struct_fn      = winbindd_dual_lookupsid,
-       },{
-               .name           = "LOOKUPNAME",
-               .struct_cmd     = WINBINDD_LOOKUPNAME,
-               .struct_fn      = winbindd_dual_lookupname,
-       },{
-               .name           = "LOOKUPRIDS",
-               .struct_cmd     = WINBINDD_LOOKUPRIDS,
-               .struct_fn      = winbindd_dual_lookuprids,
-       },{
-               .name           = "LIST_TRUSTDOM",
-               .struct_cmd     = WINBINDD_LIST_TRUSTDOM,
-               .struct_fn      = winbindd_dual_list_trusted_domains,
-       },{
-               .name           = "INIT_CONNECTION",
-               .struct_cmd     = WINBINDD_INIT_CONNECTION,
-               .struct_fn      = winbindd_dual_init_connection,
-       },{
-               .name           = "GETDCNAME",
-               .struct_cmd     = WINBINDD_GETDCNAME,
-               .struct_fn      = winbindd_dual_getdcname,
-       },{
-               .name           = "SHOW_SEQUENCE",
-               .struct_cmd     = WINBINDD_SHOW_SEQUENCE,
-               .struct_fn      = winbindd_dual_show_sequence,
-       },{
-               .name           = "PAM_AUTH",
-               .struct_cmd     = WINBINDD_PAM_AUTH,
-               .struct_fn      = winbindd_dual_pam_auth,
-       },{
-               .name           = "AUTH_CRAP",
-               .struct_cmd     = WINBINDD_PAM_AUTH_CRAP,
-               .struct_fn      = winbindd_dual_pam_auth_crap,
-       },{
-               .name           = "PAM_LOGOFF",
-               .struct_cmd     = WINBINDD_PAM_LOGOFF,
-               .struct_fn      = winbindd_dual_pam_logoff,
-       },{
-               .name           = "CHNG_PSWD_AUTH_CRAP",
-               .struct_cmd     = WINBINDD_PAM_CHNG_PSWD_AUTH_CRAP,
-               .struct_fn      = winbindd_dual_pam_chng_pswd_auth_crap,
-       },{
-               .name           = "PAM_CHAUTHTOK",
-               .struct_cmd     = WINBINDD_PAM_CHAUTHTOK,
-               .struct_fn      = winbindd_dual_pam_chauthtok,
-       },{
-               .name           = "CHECK_MACHACC",
-               .struct_cmd     = WINBINDD_CHECK_MACHACC,
-               .struct_fn      = winbindd_dual_check_machine_acct,
-       },{
-               .name           = "DUAL_USERINFO",
-               .struct_cmd     = WINBINDD_DUAL_USERINFO,
-               .struct_fn      = winbindd_dual_userinfo,
-       },{
-               .name           = "GETUSERDOMGROUPS",
-               .struct_cmd     = WINBINDD_GETUSERDOMGROUPS,
-               .struct_fn      = winbindd_dual_getuserdomgroups,
-       },{
-               .name           = "GETSIDALIASES",
-               .struct_cmd     = WINBINDD_DUAL_GETSIDALIASES,
-               .struct_fn      = winbindd_dual_getsidaliases,
-       },{
-               .name           = "CCACHE_NTLM_AUTH",
-               .struct_cmd     = WINBINDD_CCACHE_NTLMAUTH,
-               .struct_fn      = winbindd_dual_ccache_ntlm_auth,
-       },{
-               .name           = NULL,
-       }
-};
-
 static void child_process_request(struct winbindd_child *child,
                                  struct winbindd_cli_state *state)
 {
@@ -513,27 +439,22 @@ static void child_process_request(struct winbindd_child 
*child,
        state->response.result = WINBINDD_ERROR;
 }
 
-void setup_domain_child(struct winbindd_domain *domain,
-                       struct winbindd_child *child,
-                       const struct winbindd_child_dispatch_table *table,
-                       const char *explicit_logfile)
+void setup_child(struct winbindd_child *child,
+                const struct winbindd_child_dispatch_table *table,
+                const char *logprefix,
+                const char *logname)
 {
-       if (explicit_logfile != NULL) {
-               if (asprintf(&child->logfilename, "%s/log.winbindd-%s",
-                            get_dyn_LOGFILEBASE(), explicit_logfile) < 0) {
-                       smb_panic("Internal error: asprintf failed");
-               }
-       } else if (domain != NULL) {
-               if (asprintf(&child->logfilename, "%s/log.wb-%s",
-                            get_dyn_LOGFILEBASE(), domain->name) < 0) {
+       if (logprefix && logname) {
+               if (asprintf(&child->logfilename, "%s/%s-%s",
+                            get_dyn_LOGFILEBASE(), logprefix, logname) < 0) {
                        smb_panic("Internal error: asprintf failed");
                }
        } else {
-               smb_panic("Internal error: domain == NULL && "
-                         "explicit_logfile == NULL");
+               smb_panic("Internal error: logprefix == NULL && "
+                         "logname == NULL");
        }
 
-       child->domain = domain;
+       child->domain = NULL;
        child->table = table;
 }
 
diff --git a/source/winbindd/winbindd_idmap.c b/source/winbindd/winbindd_idmap.c
index cc5cf1e..6f7b562 100644
--- a/source/winbindd/winbindd_idmap.c
+++ b/source/winbindd/winbindd_idmap.c
@@ -44,10 +44,9 @@ static struct winbindd_child static_idmap_child;
 
 void init_idmap_child(void)
 {
-       setup_domain_child(NULL,
-                          &static_idmap_child,
-                          idmap_dispatch_table,
-                          "idmap");
+       setup_child(&static_idmap_child,
+                   idmap_dispatch_table,
+                   "log.winbindd", "idmap");
 }
 
 struct winbindd_child *idmap_child(void)
diff --git a/source/winbindd/winbindd_locator.c 
b/source/winbindd/winbindd_locator.c
index 67bafc7..ee497eb 100644
--- a/source/winbindd/winbindd_locator.c
+++ b/source/winbindd/winbindd_locator.c
@@ -33,10 +33,9 @@ static struct winbindd_child static_locator_child;
 
 void init_locator_child(void)
 {
-       setup_domain_child(NULL,
-                          &static_locator_child,
-                          locator_dispatch_table,
-                          "locator");
+       setup_child(&static_locator_child,
+                   locator_dispatch_table,
+                   "log.winbindd", "locator");
 }
 
 struct winbindd_child *locator_child(void)
diff --git a/source/winbindd/winbindd_util.c b/source/winbindd/winbindd_util.c
index 56ae4f2..2389a4b 100644
--- a/source/winbindd/winbindd_util.c
+++ b/source/winbindd/winbindd_util.c
@@ -326,9 +326,7 @@ static void trustdom_recv(void *private_data, bool success)
                                                    &sid);
                        if (domain) {
                                setup_domain_child(domain,
-                                                  &domain->child,
-                                                  domain_dispatch_table,
-                                                  NULL);
+                                                  &domain->child);
                        }
                }
                p=q;
@@ -698,9 +696,7 @@ bool init_domain_list(void)
                                    &global_sid_Builtin);
        if (domain) {
                setup_domain_child(domain,
-                                  &domain->child,
-                                  domain_dispatch_table,
-                                  NULL);
+                                  &domain->child);
        }
 
        /* Local SAM */
@@ -712,9 +708,7 @@ bool init_domain_list(void)
                        domain->primary = True;
                }
                setup_domain_child(domain,
-                                  &domain->child,
-                                  domain_dispatch_table,
-                                  NULL);
+                                  &domain->child);
        }
 
        /* Add ourselves as the first entry. */
@@ -732,9 +726,7 @@ bool init_domain_list(void)
                if (domain) {
                        domain->primary = True;
                        setup_domain_child(domain,
-                                          &domain->child,
-                                          domain_dispatch_table,
-                                          NULL);
+                                          &domain->child);
 
                        /* Even in the parent winbindd we'll need to
                           talk to the DC, so try and see if we can
@@ -781,9 +773,7 @@ void check_domain_trusted( const char *name, const DOM_SID 
*user_sid )
        domain->online = True;  
 
        setup_domain_child(domain,
-                          &domain->child,
-                          domain_dispatch_table,
-                          NULL);
+                          &domain->child);
 
        wcache_tdc_add_domain( domain );
 


-- 
Samba Shared Repository

Reply via email to