[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Thu Nov 26 17:43:25 MST 2009


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 <gd at samba.org>
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 <gd at samba.org>
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


More information about the samba-cvs mailing list