s3:auth Improve make_auth_context_text_list API - add const
authorAndrew Bartlett <abartlet@samba.org>
Tue, 18 May 2010 03:00:53 +0000 (13:00 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 12 Jul 2010 04:36:30 +0000 (14:36 +1000)
source3/auth/auth.c
source3/include/proto.h

index 9276758b1f6a6af63d79a99c364728076cc6fa9c..8ffea912b47e30f0c31ae7760b899eab75a445e9 100644 (file)
@@ -415,7 +415,7 @@ bool load_auth_module(struct auth_context *auth_context,
  Make a auth_info struct for the auth subsystem
 ***************************************************************************/
 
-NTSTATUS make_auth_context_text_list(struct auth_context **auth_context, char **text_list)
+NTSTATUS make_auth_context_text_list(struct auth_context **auth_context, const char **text_list)
 {
        auth_methods *list = NULL;
        auth_methods *t = NULL;
@@ -447,27 +447,28 @@ NTSTATUS make_auth_context_text_list(struct auth_context **auth_context, char **
 
 NTSTATUS make_auth_context_subsystem(struct auth_context **auth_context) 
 {
-       char **auth_method_list = NULL; 
+       char **tmp_method_list = NULL;
+       const char **auth_method_list;
        NTSTATUS nt_status;
 
        if (lp_auth_methods()
-           && !(auth_method_list = str_list_copy(talloc_tos(), 
+           && !(tmp_method_list = str_list_copy(talloc_tos(),
                              lp_auth_methods()))) {
                return NT_STATUS_NO_MEMORY;
        }
 
-       if (auth_method_list == NULL) {
+       if (tmp_method_list == NULL) {
                switch (lp_security()) 
                {
                case SEC_DOMAIN:
                        DEBUG(5,("Making default auth method list for security=domain\n"));
-                       auth_method_list = str_list_make_v3(
+                       tmp_method_list = str_list_make_v3(
                                talloc_tos(), "guest sam winbind:ntdomain",
                                NULL);
                        break;
                case SEC_SERVER:
                        DEBUG(5,("Making default auth method list for security=server\n"));
-                       auth_method_list = str_list_make_v3(
+                       tmp_method_list = str_list_make_v3(
                                talloc_tos(), "guest sam smbserver",
                                NULL);
                        break;
@@ -475,36 +476,36 @@ NTSTATUS make_auth_context_subsystem(struct auth_context **auth_context)
                        if (lp_encrypted_passwords()) { 
                                if ((lp_server_role() == ROLE_DOMAIN_PDC) || (lp_server_role() == ROLE_DOMAIN_BDC)) {
                                        DEBUG(5,("Making default auth method list for DC, security=user, encrypt passwords = yes\n"));
-                                       auth_method_list = str_list_make_v3(
+                                       tmp_method_list = str_list_make_v3(
                                                talloc_tos(),
                                                "guest sam winbind:trustdomain",
                                                NULL);
                                } else {
                                        DEBUG(5,("Making default auth method list for standalone security=user, encrypt passwords = yes\n"));
-                                       auth_method_list = str_list_make_v3(
+                                       tmp_method_list = str_list_make_v3(
                                                talloc_tos(), "guest sam",
                                                NULL);
                                }
                        } else {
                                DEBUG(5,("Making default auth method list for security=user, encrypt passwords = no\n"));
-                               auth_method_list = str_list_make_v3(
+                               tmp_method_list = str_list_make_v3(
                                        talloc_tos(), "guest unix", NULL);
                        }
                        break;
                case SEC_SHARE:
                        if (lp_encrypted_passwords()) {
                                DEBUG(5,("Making default auth method list for security=share, encrypt passwords = yes\n"));
-                               auth_method_list = str_list_make_v3(
+                               tmp_method_list = str_list_make_v3(
                                        talloc_tos(), "guest sam", NULL);
                        } else {
                                DEBUG(5,("Making default auth method list for security=share, encrypt passwords = no\n"));
-                               auth_method_list = str_list_make_v3(
+                               tmp_method_list = str_list_make_v3(
                                        talloc_tos(), "guest unix", NULL);
                        }
                        break;
                case SEC_ADS:
                        DEBUG(5,("Making default auth method list for security=ADS\n"));
-                       auth_method_list = str_list_make_v3(
+                       tmp_method_list = str_list_make_v3(
                                talloc_tos(), "guest sam winbind:ntdomain",
                                NULL);
                        break;
@@ -516,10 +517,11 @@ NTSTATUS make_auth_context_subsystem(struct auth_context **auth_context)
                DEBUG(5,("Using specified auth order\n"));
        }
 
+       auth_method_list = (const char **)tmp_method_list;
        nt_status = make_auth_context_text_list(auth_context,
                                                auth_method_list);
 
-       TALLOC_FREE(auth_method_list);
+       TALLOC_FREE(tmp_method_list);
        return nt_status;
 }
 #endif
index 1d0ed195733b1525d746ccaf91e6744dae72e655..fea9814fe817d8e949dcb1aec9c536b7219f947c 100644 (file)
@@ -31,7 +31,7 @@ bool load_auth_module(struct auth_context *auth_context,
                      const char *module, auth_methods **ret) ;
 NTSTATUS make_auth_context_subsystem(struct auth_context **auth_context) ;
 NTSTATUS make_auth_context_fixed(struct auth_context **auth_context, uchar chal[8]) ;
-NTSTATUS make_auth_context_text_list(struct auth_context **auth_context, char **text_list);
+NTSTATUS make_auth_context_text_list(struct auth_context **auth_context, const char **text_list);
 
 /* The following definitions come from auth/auth_builtin.c  */