mirror of
https://github.com/samba-team/samba.git
synced 2025-03-25 14:50:24 +03:00
After talking with Andrew added "interfaces only" parameter that
turns off the filtering on the broadcast socket by default. Jeremy (jallison@whistle.com) (This used to be commit db9aad07481f48c0fe2108d4ab0b2bc9b632816c)
This commit is contained in:
parent
c336a2f081
commit
07c507728b
@ -185,6 +185,7 @@ BOOL lp_browse_list(void);
|
||||
BOOL lp_unix_realname(void);
|
||||
BOOL lp_nis_home_map(void);
|
||||
BOOL lp_time_server(void);
|
||||
BOOL lp_interfaces_only(void);
|
||||
int lp_os_level(void);
|
||||
int lp_max_ttl(void);
|
||||
int lp_max_log_size(void);
|
||||
|
@ -622,18 +622,12 @@ BOOL listen_for_packets(BOOL run_election)
|
||||
struct packet_struct *packet = read_packet(sock_array[i], NMB_PACKET);
|
||||
if (packet)
|
||||
{
|
||||
|
||||
/*
|
||||
* If we got a packet on the broadcast socket check it
|
||||
* came from one of our local nets. We should only be
|
||||
* receiving broadcasts from nets we have subnets for.
|
||||
*
|
||||
* Note that this filter precludes remote announces.
|
||||
* If we need this to work we will have to add an
|
||||
* 'allow local announce' parameter that gives a
|
||||
* list of networks we will allow through the filter.
|
||||
* If we got a packet on the broadcast socket and interfaces
|
||||
* only is set then check it came from one of our local nets.
|
||||
*/
|
||||
if((sock_array[i] == ClientNMB) && (!is_local_net(packet->ip)))
|
||||
if(lp_interfaces_only() && (sock_array[i] == ClientNMB) &&
|
||||
(!is_local_net(packet->ip)))
|
||||
{
|
||||
DEBUG(7,("discarding nmb packet sent to broadcast socket from %s:%d\n",
|
||||
inet_ntoa(packet->ip),packet->port));
|
||||
@ -663,16 +657,11 @@ BOOL listen_for_packets(BOOL run_election)
|
||||
if (packet)
|
||||
{
|
||||
/*
|
||||
* If we got a packet on the broadcast socket check it
|
||||
* came from one of our local nets. We should only be
|
||||
* receiving broadcasts from nets we have subnets for.
|
||||
*
|
||||
* Note that this filter precludes remote announces.
|
||||
* If we need this to work we will have to add an
|
||||
* 'allow local announce' parameter that gives a
|
||||
* list of networks we will allow through the filter.
|
||||
* If we got a packet on the broadcast socket and interfaces
|
||||
* only is set then check it came from one of our local nets.
|
||||
*/
|
||||
if((sock_array[i] == ClientDGRAM) && (!is_local_net(packet->ip)))
|
||||
if(lp_interfaces_only() && (sock_array[i] == ClientDGRAM) &&
|
||||
(!is_local_net(packet->ip)))
|
||||
{
|
||||
DEBUG(7,("discarding dgram packet sent to broadcast socket from %s:%d\n",
|
||||
inet_ntoa(packet->ip),packet->port));
|
||||
|
@ -183,6 +183,7 @@ typedef struct
|
||||
BOOL bUnixRealname;
|
||||
BOOL bNISHomeMap;
|
||||
BOOL bTimeServer;
|
||||
BOOL bInterfacesOnly;
|
||||
} global;
|
||||
|
||||
static global Globals;
|
||||
@ -410,6 +411,7 @@ struct parm_struct
|
||||
{"null passwords", P_BOOL, P_GLOBAL, &Globals.bNullPasswords, NULL},
|
||||
{"strip dot", P_BOOL, P_GLOBAL, &Globals.bStripDot, NULL},
|
||||
{"interfaces", P_STRING, P_GLOBAL, &Globals.szInterfaces, NULL},
|
||||
{"interfaces only", P_BOOL, P_GLOBAL, &Globals.bInterfacesOnly, NULL},
|
||||
{"password server", P_STRING, P_GLOBAL, &Globals.szPasswordServer, NULL},
|
||||
{"socket options", P_GSTRING, P_GLOBAL, user_socket_options, NULL},
|
||||
{"netbios name", P_UGSTRING,P_GLOBAL, myname, NULL},
|
||||
@ -655,6 +657,7 @@ static void init_globals(void)
|
||||
coding_system = interpret_coding_system (KANJI, SJIS_CODE);
|
||||
Globals.client_code_page = DEFAULT_CLIENT_CODE_PAGE;
|
||||
Globals.bTimeServer = False;
|
||||
Globals.bInterfacesOnly = False;
|
||||
|
||||
/* these parameters are set to defaults that are more appropriate
|
||||
for the increasing samba install base:
|
||||
@ -867,6 +870,7 @@ FN_GLOBAL_BOOL(lp_browse_list,&Globals.bBrowseList)
|
||||
FN_GLOBAL_BOOL(lp_unix_realname,&Globals.bUnixRealname)
|
||||
FN_GLOBAL_BOOL(lp_nis_home_map,&Globals.bNISHomeMap)
|
||||
FN_GLOBAL_BOOL(lp_time_server,&Globals.bTimeServer)
|
||||
FN_GLOBAL_BOOL(lp_interfaces_only,&Globals.bInterfacesOnly)
|
||||
|
||||
FN_GLOBAL_INTEGER(lp_os_level,&Globals.os_level)
|
||||
FN_GLOBAL_INTEGER(lp_max_ttl,&Globals.max_ttl)
|
||||
|
Loading…
x
Reference in New Issue
Block a user