[SCM] Samba Shared Repository - branch v3-6-test updated

Jeremy Allison jra at samba.org
Fri Mar 18 13:48:11 MDT 2011


The branch, v3-6-test has been updated
       via  5dd200b s3: Add "print notify backchannel" parameter to prevent us doing the reverse print notify connection. (cherry picked from commit e8a8c65f2309cfa4b5a366ae4102d727cc86b5cf)
      from  1279cee s3:autorid make sure we set the mapping status correct on early exit

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


- Log -----------------------------------------------------------------
commit 5dd200b3386add55c5ccb43f2feecb2ff31ec67a
Author: Volker Lendecke <Volker.Lendecke at SerNet.DE>
Date:   Fri Mar 18 12:07:43 2011 -0700

    s3: Add "print notify backchannel" parameter to prevent us doing the reverse print notify connection.
    (cherry picked from commit e8a8c65f2309cfa4b5a366ae4102d727cc86b5cf)

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

Summary of changes:
 .../smbdotconf/printing/printnotifybackchannel.xml |   18 ++++++++++++++++++
 source3/include/proto.h                            |    1 +
 source3/param/loadparm.c                           |   12 ++++++++++++
 source3/rpc_server/spoolss/srv_spoolss_nt.c        |    6 ++++++
 4 files changed, 37 insertions(+), 0 deletions(-)
 create mode 100644 docs-xml/smbdotconf/printing/printnotifybackchannel.xml


Changeset truncated at 500 lines:

diff --git a/docs-xml/smbdotconf/printing/printnotifybackchannel.xml b/docs-xml/smbdotconf/printing/printnotifybackchannel.xml
new file mode 100644
index 0000000..f895f9c
--- /dev/null
+++ b/docs-xml/smbdotconf/printing/printnotifybackchannel.xml
@@ -0,0 +1,18 @@
+<samba:parameter name="print notify backchannel"
+		 context="S"
+		 print="1"
+		 type="boolean"
+		 xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+<para>Windows print clients can update print queue status by expecting
+	the server to open a backchannel SMB connection to them. Due to
+	client firewall settings this can cause considerable timeouts
+	and will often fail, as there is no guarantee the client is even
+	running an SMB server. By setting this parameter to <constant>no</constant>
+	the Samba print server will not try to connect back to clients
+	and treat corresponding requests as if the connection back to
+	the client failed. The default setting of <constant>yes</constant>
+	causes smbd to attempt this connection.
+</description>
+<value type="default">yes</value>
+</samba:parameter>
diff --git a/source3/include/proto.h b/source3/include/proto.h
index f944b2a..9edbfc5 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -3199,6 +3199,7 @@ bool lp_guest_ok(int );
 bool lp_guest_only(int );
 bool lp_administrative_share(int );
 bool lp_print_ok(int );
+bool lp_print_notify_backchannel(int );
 bool lp_map_hidden(int );
 bool lp_map_archive(int );
 bool lp_store_dos_attributes(int );
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 3314ad2..f9b8f70 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -474,6 +474,7 @@ struct service {
 	bool bAdministrative_share;
 	bool bGuest_ok;
 	bool bPrint_ok;
+	bool bPrintNotifyBackchannel;
 	bool bMap_system;
 	bool bMap_hidden;
 	bool bMap_archive;
@@ -618,6 +619,7 @@ static struct service sDefault = {
 	False,			/* bAdministrative_share */
 	False,			/* bGuest_ok */
 	False,			/* bPrint_ok */
+	True,			/* bPrintNotifyBackchannel */
 	False,			/* bMap_system */
 	False,			/* bMap_hidden */
 	True,			/* bMap_archive */
@@ -2713,6 +2715,15 @@ static struct parm_struct parm_table[] = {
 		.flags		= FLAG_ADVANCED | FLAG_PRINT,
 	},
 	{
+		.label		= "print notify backchannel",
+		.type		= P_BOOL,
+		.p_class	= P_LOCAL,
+		.ptr		= &sDefault.bPrintNotifyBackchannel,
+		.special	= NULL,
+		.enum_list	= NULL,
+		.flags		= FLAG_ADVANCED,
+	},
+	{
 		.label		= "print ok",
 		.type		= P_BOOL,
 		.p_class	= P_LOCAL,
@@ -5918,6 +5929,7 @@ FN_LOCAL_BOOL(lp_guest_ok, bGuest_ok)
 FN_LOCAL_BOOL(lp_guest_only, bGuest_only)
 FN_LOCAL_BOOL(lp_administrative_share, bAdministrative_share)
 FN_LOCAL_BOOL(lp_print_ok, bPrint_ok)
+FN_LOCAL_BOOL(lp_print_notify_backchannel, bPrintNotifyBackchannel)
 FN_LOCAL_BOOL(lp_map_hidden, bMap_hidden)
 FN_LOCAL_BOOL(lp_map_archive, bMap_archive)
 FN_LOCAL_BOOL(lp_store_dos_attributes, bStoreDosAttributes)
diff --git a/source3/rpc_server/spoolss/srv_spoolss_nt.c b/source3/rpc_server/spoolss/srv_spoolss_nt.c
index 3026a88..030324c 100644
--- a/source3/rpc_server/spoolss/srv_spoolss_nt.c
+++ b/source3/rpc_server/spoolss/srv_spoolss_nt.c
@@ -2736,6 +2736,12 @@ WERROR _spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct pipes_struct *p,
 	DEBUG(10,("_spoolss_RemoteFindFirstPrinterChangeNotifyEx: "
 		"client_address is %s\n", p->client_id->addr));
 
+	if (!lp_print_notify_backchannel(snum)) {
+		DEBUG(10, ("_spoolss_RemoteFindFirstPrinterChangeNotifyEx: "
+			"backchannel disabled\n"));
+		return WERR_SERVER_UNAVAILABLE;
+	}
+
 	if (!interpret_string_addr(&client_ss, p->client_id->addr,
 				   AI_NUMERICHOST)) {
 		return WERR_SERVER_UNAVAILABLE;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list