The branch, master has been updated
       via  1a8f838... s3-kerberos: Fix Bug #6929: build with recent heimdal.
       via  49e464c... s3-spoolss: use macros to fillup driver levels.
      from  89e02ef... s3-smbd: no drsuapi server stubs yet in s3. Fixes the 
build, sorry.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 1a8f8382740e352a83133b8c49aaedd4716210cd
Author: Günther Deschner <[email protected]>
Date:   Fri Nov 27 01:06:36 2009 +0100

    s3-kerberos: Fix Bug #6929: build with recent heimdal.
    
    Heimdal changed the KRB5_DEPRECATED define (which now may not take an 
identifier
    for activation) in new releases (like 1.3.1).
    
    Guenther

commit 49e464cef5ed75976fcd6c544bffbd4391f3a1b6
Author: Günther Deschner <[email protected]>
Date:   Thu Nov 26 23:46:50 2009 +0100

    s3-spoolss: use macros to fillup driver levels.
    
    Guenther

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

Summary of changes:
 source3/configure.in                |   19 +++
 source3/libsmb/clikrb5.c            |    2 +-
 source3/rpc_server/srv_spoolss_nt.c |  272 +++++++++++++++--------------------
 3 files changed, 134 insertions(+), 159 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/configure.in b/source3/configure.in
index 29016c5..693fe6a 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -3362,6 +3362,25 @@ if test x"$with_ads_support" != x"no"; then
                EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS $WINBIND_KRB5_LOCATOR"
        fi
   fi
+
+  # check for new heimdal KRB5_DEPRECATED handling
+
+  AC_CACHE_CHECK([for KRB5_DEPRECATED define taking an identifier],
+                samba_cv_HAVE_KRB5_DEPRECATED_WITH_IDENTIFIER,[
+    AC_TRY_COMPILE(
+      [#define KRB5_DEPRECATED 1
+      #include <krb5.h>],
+      [void main(void) {}],
+      samba_cv_HAVE_KRB5_DEPRECATED_WITH_IDENTIFIER=yes,
+      samba_cv_HAVE_KRB5_DEPRECATED_WITH_IDENTIFIER=no)])
+
+  if test x"$samba_cv_HAVE_KRB5_DEPRECATED_WITH_IDENTIFIER" = x"yes"; then
+    AC_DEFINE(KRB5_DEPRECATED, 1,
+              [Whether to use deprecated krb5 interfaces])
+  else
+    AC_DEFINE(KRB5_DEPRECATED,,
+              [Whether to use deprecated krb5 interfaces])
+  fi
 fi
 
 # Now we have determined whether we really want ADS support
diff --git a/source3/libsmb/clikrb5.c b/source3/libsmb/clikrb5.c
index 3da64d6..3dc8c64 100644
--- a/source3/libsmb/clikrb5.c
+++ b/source3/libsmb/clikrb5.c
@@ -21,7 +21,7 @@
 */
 
 #define KRB5_PRIVATE    1       /* this file uses PRIVATE interfaces! */
-#define KRB5_DEPRECATED 1       /* this file uses DEPRECATED interfaces! */
+/* this file uses DEPRECATED interfaces! */
 
 #include "includes.h"
 
diff --git a/source3/rpc_server/srv_spoolss_nt.c 
b/source3/rpc_server/srv_spoolss_nt.c
index a40bb02..c704418 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -4537,6 +4537,24 @@ static const char 
**string_array_from_driver_info(TALLOC_CTX *mem_ctx,
        return array;
 }
 
+#define FILL_DRIVER_STRING(mem_ctx, in, out) \
+       do { \
+               if (in && strlen(in)) { \
+                       out = talloc_strdup(mem_ctx, in); \
+                       W_ERROR_HAVE_NO_MEMORY(out); \
+               } \
+       } while (0);
+
+#define FILL_DRIVER_UNC_STRING(mem_ctx, server, in, out) \
+       do { \
+               if (in && strlen(in)) { \
+                       out = talloc_asprintf(mem_ctx, "\\\\%s%s", server, in); 
\
+               } else { \
+                       out = talloc_strdup(mem_ctx, ""); \
+               } \
+               W_ERROR_HAVE_NO_MEMORY(out); \
+       } while (0);
+
 /********************************************************************
  * fill a spoolss_DriverInfo1 struct
  ********************************************************************/
@@ -4572,29 +4590,17 @@ static WERROR fill_printer_driver_info2(TALLOC_CTX 
*mem_ctx,
        r->architecture         = talloc_strdup(mem_ctx, driver->architecture);
        W_ERROR_HAVE_NO_MEMORY(r->architecture);
 
-       if (strlen(driver->driver_path)) {
-               r->driver_path  = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->driver_path);
-       } else {
-               r->driver_path  = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->driver_path);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->driver_path,
+                              r->driver_path);
 
-       if (strlen(driver->data_file)) {
-               r->data_file    = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->data_file);
-       } else {
-               r->data_file    = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->data_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->data_file,
+                              r->data_file);
 
-       if (strlen(driver->config_file)) {
-               r->config_file  = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->config_file);
-       } else {
-               r->config_file  = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->config_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->config_file,
+                              r->config_file);
 
        return WERR_OK;
 }
@@ -4617,42 +4623,29 @@ static WERROR fill_printer_driver_info3(TALLOC_CTX 
*mem_ctx,
        r->architecture         = talloc_strdup(mem_ctx, driver->architecture);
        W_ERROR_HAVE_NO_MEMORY(r->architecture);
 
-       if (strlen(driver->driver_path)) {
-               r->driver_path  = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->driver_path);
-       } else {
-               r->driver_path  = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->driver_path);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->driver_path,
+                              r->driver_path);
 
-       if (strlen(driver->data_file)) {
-               r->data_file    = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->data_file);
-       } else {
-               r->data_file    = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->data_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->data_file,
+                              r->data_file);
 
-       if (strlen(driver->config_file)) {
-               r->config_file  = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->config_file);
-       } else {
-               r->config_file  = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->config_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->config_file,
+                              r->config_file);
 
-       if (strlen(driver->help_file)) {
-               r->help_file    = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->help_file);
-       } else {
-               r->help_file    = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->help_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->help_file,
+                              r->help_file);
 
-       r->monitor_name         = talloc_strdup(mem_ctx, driver->monitor_name);
-       W_ERROR_HAVE_NO_MEMORY(r->monitor_name);
-       r->default_datatype     = talloc_strdup(mem_ctx, 
driver->default_datatype);
-       W_ERROR_HAVE_NO_MEMORY(r->default_datatype);
+       FILL_DRIVER_STRING(mem_ctx,
+                          driver->monitor_name,
+                          r->monitor_name);
+
+       FILL_DRIVER_STRING(mem_ctx,
+                          driver->default_datatype,
+                          r->default_datatype);
 
        r->dependent_files = string_array_from_driver_info(mem_ctx,
                                                           
driver->dependent_files,
@@ -4678,47 +4671,33 @@ static WERROR fill_printer_driver_info4(TALLOC_CTX 
*mem_ctx,
        r->architecture         = talloc_strdup(mem_ctx, driver->architecture);
        W_ERROR_HAVE_NO_MEMORY(r->architecture);
 
-       if (strlen(driver->driver_path)) {
-               r->driver_path  = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->driver_path);
-       } else {
-               r->driver_path  = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->driver_path);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->driver_path,
+                              r->driver_path);
 
-       if (strlen(driver->data_file)) {
-               r->data_file    = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->data_file);
-       } else {
-               r->data_file    = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->data_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->data_file,
+                              r->data_file);
 
-       if (strlen(driver->config_file)) {
-               r->config_file  = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->config_file);
-       } else {
-               r->config_file  = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->config_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->config_file,
+                              r->config_file);
 
-       if (strlen(driver->help_file)) {
-               r->help_file    = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->help_file);
-       } else {
-               r->help_file    = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->help_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->help_file,
+                              r->help_file);
 
        r->dependent_files = string_array_from_driver_info(mem_ctx,
                                                           
driver->dependent_files,
                                                           cservername);
 
+       FILL_DRIVER_STRING(mem_ctx,
+                          driver->monitor_name,
+                          r->monitor_name);
 
-       r->monitor_name         = talloc_strdup(mem_ctx, driver->monitor_name);
-       W_ERROR_HAVE_NO_MEMORY(r->monitor_name);
-       r->default_datatype     = talloc_strdup(mem_ctx, 
driver->default_datatype);
-       W_ERROR_HAVE_NO_MEMORY(r->default_datatype);
+       FILL_DRIVER_STRING(mem_ctx,
+                          driver->default_datatype,
+                          r->default_datatype);
 
        r->previous_names = string_array_from_driver_info(mem_ctx,
                                                          NULL,
@@ -4745,29 +4724,17 @@ static WERROR fill_printer_driver_info5(TALLOC_CTX 
*mem_ctx,
        r->architecture         = talloc_strdup(mem_ctx, driver->architecture);
        W_ERROR_HAVE_NO_MEMORY(r->architecture);
 
-       if (strlen(driver->driver_path)) {
-               r->driver_path  = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->driver_path);
-       } else {
-               r->driver_path  = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->driver_path);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->driver_path,
+                              r->driver_path);
 
-       if (strlen(driver->data_file)) {
-               r->data_file    = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->data_file);
-       } else {
-               r->data_file    = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->data_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->data_file,
+                              r->data_file);
 
-       if (strlen(driver->config_file)) {
-               r->config_file  = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->config_file);
-       } else {
-               r->config_file  = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->config_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->config_file,
+                              r->config_file);
 
        r->driver_attributes    = 0;
        r->config_version       = 0;
@@ -4793,42 +4760,29 @@ static WERROR fill_printer_driver_info6(TALLOC_CTX 
*mem_ctx,
        r->architecture         = talloc_strdup(mem_ctx, driver->architecture);
        W_ERROR_HAVE_NO_MEMORY(r->architecture);
 
-       if (strlen(driver->driver_path)) {
-               r->driver_path  = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->driver_path);
-       } else {
-               r->driver_path  = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->driver_path);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->driver_path,
+                              r->driver_path);
 
-       if (strlen(driver->data_file)) {
-               r->data_file    = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->data_file);
-       } else {
-               r->data_file    = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->data_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->data_file,
+                              r->data_file);
 
-       if (strlen(driver->config_file)) {
-               r->config_file  = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->config_file);
-       } else {
-               r->config_file  = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->config_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->config_file,
+                              r->config_file);
 
-       if (strlen(driver->help_file)) {
-               r->help_file    = talloc_asprintf(mem_ctx, "\\\\%s%s",
-                               cservername, driver->help_file);
-       } else {
-               r->help_file    = talloc_strdup(mem_ctx, "");
-       }
-       W_ERROR_HAVE_NO_MEMORY(r->help_file);
+       FILL_DRIVER_UNC_STRING(mem_ctx, cservername,
+                              driver->help_file,
+                              r->help_file);
 
-       r->monitor_name         = talloc_strdup(mem_ctx, driver->monitor_name);
-       W_ERROR_HAVE_NO_MEMORY(r->monitor_name);
-       r->default_datatype     = talloc_strdup(mem_ctx, 
driver->default_datatype);
-       W_ERROR_HAVE_NO_MEMORY(r->default_datatype);
+       FILL_DRIVER_STRING(mem_ctx,
+                          driver->monitor_name,
+                          r->monitor_name);
+
+       FILL_DRIVER_STRING(mem_ctx,
+                          driver->default_datatype,
+                          r->default_datatype);
 
        r->dependent_files = string_array_from_driver_info(mem_ctx,
                                                           
driver->dependent_files,
@@ -4840,14 +4794,14 @@ static WERROR fill_printer_driver_info6(TALLOC_CTX 
*mem_ctx,
        r->driver_date          = 0;
        r->driver_version       = 0;
 
-       r->manufacturer_name    = talloc_strdup(mem_ctx, "");
-       W_ERROR_HAVE_NO_MEMORY(r->manufacturer_name);
-       r->manufacturer_url     = talloc_strdup(mem_ctx, "");
-       W_ERROR_HAVE_NO_MEMORY(r->manufacturer_url);
-       r->hardware_id          = talloc_strdup(mem_ctx, "");
-       W_ERROR_HAVE_NO_MEMORY(r->hardware_id);
-       r->provider             = talloc_strdup(mem_ctx, "");
-       W_ERROR_HAVE_NO_MEMORY(r->provider);
+       FILL_DRIVER_STRING(mem_ctx, "",
+                          r->manufacturer_name);
+       FILL_DRIVER_STRING(mem_ctx, "",
+                          r->manufacturer_url);
+       FILL_DRIVER_STRING(mem_ctx, "",
+                          r->hardware_id);
+       FILL_DRIVER_STRING(mem_ctx, "",
+                          r->provider);
 
        return WERR_OK;
 }
@@ -4996,11 +4950,13 @@ static WERROR fill_printer_driver_info101(TALLOC_CTX 
*mem_ctx,
                return result;
        }
 
-       r->monitor_name         = talloc_strdup(mem_ctx, driver->monitor_name);
-       W_ERROR_HAVE_NO_MEMORY(r->monitor_name);
+       FILL_DRIVER_STRING(mem_ctx,
+                          driver->monitor_name,
+                          r->monitor_name);
 
-       r->default_datatype     = talloc_strdup(mem_ctx, 
driver->default_datatype);
-       W_ERROR_HAVE_NO_MEMORY(r->default_datatype);
+       FILL_DRIVER_STRING(mem_ctx,
+                          driver->default_datatype,
+                          r->default_datatype);
 
        r->previous_names = string_array_from_driver_info(mem_ctx,
                                                          NULL,
@@ -5008,14 +4964,14 @@ static WERROR fill_printer_driver_info101(TALLOC_CTX 
*mem_ctx,
        r->driver_date          = 0;
        r->driver_version       = 0;
 
-       r->manufacturer_name    = talloc_strdup(mem_ctx, "");
-       W_ERROR_HAVE_NO_MEMORY(r->manufacturer_name);
-       r->manufacturer_url     = talloc_strdup(mem_ctx, "");
-       W_ERROR_HAVE_NO_MEMORY(r->manufacturer_url);
-       r->hardware_id          = talloc_strdup(mem_ctx, "");
-       W_ERROR_HAVE_NO_MEMORY(r->hardware_id);
-       r->provider             = talloc_strdup(mem_ctx, "");
-       W_ERROR_HAVE_NO_MEMORY(r->provider);
+       FILL_DRIVER_STRING(mem_ctx, "",
+                          r->manufacturer_name);
+       FILL_DRIVER_STRING(mem_ctx, "",
+                          r->manufacturer_url);
+       FILL_DRIVER_STRING(mem_ctx, "",
+                          r->hardware_id);
+       FILL_DRIVER_STRING(mem_ctx, "",
+                          r->provider);
 
        return WERR_OK;
 }


-- 
Samba Shared Repository

Reply via email to