summaryrefslogtreecommitdiff
path: root/source/svcctld
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1999-12-12 20:03:42 +0000
committerLuke Leighton <lkcl@samba.org>1999-12-12 20:03:42 +0000
commitcaa50525220b0d0250fa139367593c2de2c12135 (patch)
treee37748c25c6d433104f4f98540f5cf0a68b69254 /source/svcctld
parentaa3c659a8dba0437c17c60055a6ed30fdfecdb6d (diff)
downloadsamba-caa50525220b0d0250fa139367593c2de2c12135.tar.gz
final part of "first" phase converting over to msrpc daemon architecture.
done a minimal amout of clean-up in the Makefile, removing unnecessary modules from the link stage. this is not complete, yet, and will involve some changes, for example to smbd, to remove dependencies on the password database API that shouldn't be there. for example, smbd should not ever call getsmbpwXXX() it should call the Samr or Lsa API. this first implementation has minor problems with not reinstantiating the same services as the caller. the "homes" service is a good example.
Diffstat (limited to 'source/svcctld')
-rw-r--r--source/svcctld/svcctld.c97
1 files changed, 97 insertions, 0 deletions
diff --git a/source/svcctld/svcctld.c b/source/svcctld/svcctld.c
new file mode 100644
index 00000000000..95470ad4a49
--- /dev/null
+++ b/source/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);
+}