1
0
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:
Jeremy Allison 1997-10-18 00:22:04 +00:00
parent c336a2f081
commit 07c507728b
3 changed files with 13 additions and 19 deletions

View File

@ -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);

View File

@ -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));

View File

@ -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)