diff options
Diffstat (limited to 'source3/svcctld')
-rw-r--r-- | source3/svcctld/svcctld.c | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/source3/svcctld/svcctld.c b/source3/svcctld/svcctld.c new file mode 100644 index 0000000000..95470ad4a4 --- /dev/null +++ b/source3/svcctld/svcctld.c @@ -0,0 +1,97 @@ +/* + Unix SMB/Netbios implementation. + Version 1.9. + Main SMB server routines + Copyright (C) Andrew Tridgell 1992-1998 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +*/ + +#include "includes.h" + +fstring pipe_name; + +pstring servicesf = CONFIGFILE; +extern pstring debugf; +extern BOOL append_log; + +/************************************************************************* + initialise an msrpc service + *************************************************************************/ +void msrpc_service_init(void) +{ +} + +/**************************************************************************** + reload the services file + **************************************************************************/ +BOOL reload_services(BOOL test) +{ + BOOL ret; + + if (lp_loaded()) { + pstring fname; + pstrcpy(fname,lp_configfile()); + if (file_exist(fname,NULL) && !strcsequal(fname,servicesf)) { + pstrcpy(servicesf,fname); + test = False; + } + } + + reopen_logs(); + + if (test && !lp_file_list_changed()) + return(True); + + lp_killunused(NULL); + + ret = lp_load(servicesf,False,False,True); + + /* perhaps the config filename is now set */ + if (!test) + reload_services(True); + + reopen_logs(); + + load_interfaces(); + + return(ret); +} + +/**************************************************************************** + main program +****************************************************************************/ + int main(int argc,char *argv[]) +{ +#ifdef HAVE_SET_AUTH_PARAMETERS + set_auth_parameters(argc,argv); +#endif + +#ifdef HAVE_SETLUID + /* needed for SecureWare on SCO */ + setluid(0); +#endif + + append_log = True; + + TimeInit(); + + setup_logging(argv[0],False); + fstrcpy(pipe_name, "svcctl"); + slprintf(debugf, sizeof(debugf), "%s/log.%s", LOGFILEBASE, pipe_name); + add_msrpc_command_processor( pipe_name, argv[0], api_svcctl_rpc ); + + return msrpc_main(argc, argv); +} |