From 20b5dea237916902437ce3dcdb7c253fd1ad3585 Mon Sep 17 00:00:00 2001 From: Samba Release Account Date: Wed, 9 Apr 1997 01:19:25 +0000 Subject: Large changes from jra@cygnus.com. Mainly browser updates. access.c: Fixed crash if yp domain unavailable. includes.h: Moved ifdefs for minor platform. interface.c: Changed name of ipgrp to wins_ip to make it clearer. loadparm.c: Changed default of wins support to 'no'. nameannounce.c: Many changes to fix cross subnet browsing. namebrowse.c: Many changes to fix cross subnet browsing. namedbname.c: Many changes to fix cross subnet browsing. namedbresp.c: Many changes to fix cross subnet browsing. namedbsubnet.c: Many changes to fix cross subnet browsing. namedbwork.c: Many changes to fix cross subnet browsing. nameelect.c: Many changes to fix cross subnet browsing. namelogon.c: Many changes to fix cross subnet browsing. namepacket.c: Many changes to fix cross subnet browsing. nameresp.c: Many changes to fix cross subnet browsing. nameserv.c: Many changes to fix cross subnet browsing. nameserv.h: Many changes to fix cross subnet browsing. nameservreply.c: Many changes to fix cross subnet browsing. nameservresp.c: Many changes to fix cross subnet browsing. namework.c: Many changes to fix cross subnet browsing. nmbd.c: Change to search wins subnet. nmbsync.c: Change to check if we are any master before proceeding. proto.h: Added find_subnet_all() and check_work_servertype(). util.c: Moved 'done' settings on name resolution. (This used to be commit a82476eee2c521e5eed092bc367da0a7cef23de1) --- source3/include/includes.h | 2 ++ source3/include/nameserv.h | 7 +++++-- source3/include/proto.h | 5 ++--- 3 files changed, 9 insertions(+), 5 deletions(-) (limited to 'source3/include') diff --git a/source3/include/includes.h b/source3/include/includes.h index a8653d0978..249e4940a9 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -344,6 +344,7 @@ char *getwd(char *); #endif #ifdef SGI5 +#include #include #include #include @@ -427,6 +428,7 @@ char *mktemp(char *); /* No standard include */ #define SIGNAL_CAST ( void (*) (int) ) #define STATFS3 #define USE_F_FSIZE +#define USE_SETSID #include #ifdef OSF1_ENH_SEC #include diff --git a/source3/include/nameserv.h b/source3/include/nameserv.h index 027931f9e6..17ae085bc6 100644 --- a/source3/include/nameserv.h +++ b/source3/include/nameserv.h @@ -75,6 +75,8 @@ #define AM_BACKUP(work) (work->ServerType & SV_TYPE_BACKUP_BROWSER) #define AM_DOMMST(work) (work->ServerType & SV_TYPE_DOMAIN_MASTER) #define AM_DOMMEM(work) (work->ServerType & SV_TYPE_DOMAIN_MEMBER) +#define AM_ANY_MASTER(work) (check_work_servertype(work->work_group, \ +SV_TYPE_MASTER_BROWSER|SV_TYPE_DOMAIN_MASTER)) /* microsoft browser NetBIOS name */ #define MSBROWSE "\001\002__MSBROWSE__\002" @@ -124,7 +126,7 @@ enum state_type NAME_QUERY_SRV_CHK, NAME_QUERY_FIND_MST, NAME_QUERY_MST_CHK, - NAME_QUERY_DOMAIN, + NAME_QUERY_DOMAIN }; /* a netbios name structure */ @@ -401,7 +403,8 @@ struct packet_struct #define CHECK_TIME_MAX_HOST_ANNCE 12 /* announce as master to WINS server and any Primary Domain Controllers */ -#define CHECK_TIME_MST_ANNOUNCE 15 +/* ORIGINAL - changed for test by JRA #define CHECK_TIME_MST_ANNOUNCE 15 */ +#define CHECK_TIME_MST_ANNOUNCE 1 /* do all remote announcements this often */ #define REMOTE_ANNOUNCE_INTERVAL 180 diff --git a/source3/include/proto.h b/source3/include/proto.h index bbfcad78f9..cfc05c1c6b 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -386,11 +386,9 @@ void expire_servers(time_t t); struct subnet_record *find_subnet(struct in_addr bcast_ip); struct subnet_record *find_req_subnet(struct in_addr ip, BOOL bcast); +struct subnet_record *find_subnet_all(struct in_addr bcast_ip); void add_subnet_interfaces(void); void add_my_subnets(char *group); -struct subnet_record *add_subnet_entry(struct in_addr bcast_ip, - struct in_addr mask_ip, - char *name, BOOL add, BOOL lmhosts); void write_browse_list(time_t t); /*The following definitions come from namedbwork.c */ @@ -401,6 +399,7 @@ struct work_record *remove_workgroup(struct subnet_record *d, struct work_record *find_workgroupstruct(struct subnet_record *d, fstring name, BOOL add); void dump_workgroups(void); +int check_work_servertype(const char *work_name, int type_mask); /*The following definitions come from nameelect.c */ -- cgit