From 07c507728b6d3f5521e74aa14aedd5b37dea8c57 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Sat, 18 Oct 1997 00:22:04 +0000 Subject: 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) --- source3/namepacket.c | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) (limited to 'source3/namepacket.c') diff --git a/source3/namepacket.c b/source3/namepacket.c index 55c850f254..ba1c4044a3 100644 --- a/source3/namepacket.c +++ b/source3/namepacket.c @@ -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)); -- cgit