mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
s3: Add "print notify backchannel" parameter to prevent us doing the reverse print notify connection.
Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Fri Mar 18 21:34:30 CET 2011 on sn-devel-104
This commit is contained in:
parent
8ae1f32229
commit
4b347a1b17
18
docs-xml/smbdotconf/printing/printnotifybackchannel.xml
Normal file
18
docs-xml/smbdotconf/printing/printnotifybackchannel.xml
Normal file
@ -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>
|
@ -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 );
|
||||
|
@ -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 */
|
||||
@ -2712,6 +2714,15 @@ static struct parm_struct parm_table[] = {
|
||||
.enum_list = NULL,
|
||||
.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,
|
||||
@ -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)
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user