first pass at updating head branch to be to be the same as the SAMBA_2_0 branch
[kai/samba.git] / source / browserd / browserd.c
1 /* 
2    Unix SMB/Netbios implementation.
3    Version 1.9.
4    Main SMB server routines
5    Copyright (C) Andrew Tridgell 1992-1998
6    
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 2 of the License, or
10    (at your option) any later version.
11    
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16    
17    You should have received a copy of the GNU General Public License
18    along with this program; if not, write to the Free Software
19    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 */
21
22 #include "includes.h"
23
24 fstring pipe_name;
25
26 pstring servicesf = CONFIGFILE;
27 extern pstring debugf;
28 extern BOOL append_log;
29
30 /*************************************************************************
31  initialise an msrpc service
32  *************************************************************************/
33 void msrpc_service_init(void)
34 {
35 }
36
37 /****************************************************************************
38   reload the services file
39   **************************************************************************/
40 BOOL reload_services(BOOL test)
41 {
42         BOOL ret;
43
44         if (lp_loaded()) {
45                 pstring fname;
46                 pstrcpy(fname,lp_configfile());
47                 if (file_exist(fname,NULL) && !strcsequal(fname,servicesf)) {
48                         pstrcpy(servicesf,fname);
49                         test = False;
50                 }
51         }
52
53         reopen_logs();
54
55         if (test && !lp_file_list_changed())
56                 return(True);
57
58         lp_killunused(NULL);
59
60         ret = lp_load(servicesf,False,False,True);
61
62         /* perhaps the config filename is now set */
63         if (!test)
64                 reload_services(True);
65
66         reopen_logs();
67
68         load_interfaces();
69
70         return(ret);
71 }
72
73 /****************************************************************************
74   main program
75 ****************************************************************************/
76  int main(int argc,char *argv[])
77 {
78 #ifdef HAVE_SET_AUTH_PARAMETERS
79         set_auth_parameters(argc,argv);
80 #endif
81
82 #ifdef HAVE_SETLUID
83         /* needed for SecureWare on SCO */
84         setluid(0);
85 #endif
86
87         append_log = True;
88
89         TimeInit();
90
91         setup_logging(argv[0],False);
92         fstrcpy(pipe_name, "browser");
93         slprintf(debugf, sizeof(debugf), "%s/log.%s", LOGFILEBASE, pipe_name);
94         add_msrpc_command_processor( pipe_name, argv[0], api_brs_rpc );
95
96         return msrpc_main(argc, argv);
97 }