mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-12 19:33:03 +00:00
Supply full path to elogd.cfg when running elogd as windows service
SVN revision: 976
This commit is contained in:
parent
f053c014ac
commit
2b50453e5f
36
src/elogd.c
36
src/elogd.c
@ -6,6 +6,9 @@
|
|||||||
Contents: Web server program for Electronic Logbook ELOG
|
Contents: Web server program for Electronic Logbook ELOG
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.400 2004/07/23 19:23:51 midas
|
||||||
|
Supply full path to elogd.cfg when running elogd as windows service
|
||||||
|
|
||||||
Revision 1.399 2004/07/23 09:42:39 midas
|
Revision 1.399 2004/07/23 09:42:39 midas
|
||||||
Use onUnload only if locking enabled
|
Use onUnload only if locking enabled
|
||||||
|
|
||||||
@ -311,7 +314,7 @@
|
|||||||
\********************************************************************/
|
\********************************************************************/
|
||||||
|
|
||||||
/* Version of ELOG */
|
/* Version of ELOG */
|
||||||
#define VERSION "2.5.3"
|
#define VERSION "2.5.4"
|
||||||
|
|
||||||
/* ELOG identification */
|
/* ELOG identification */
|
||||||
static const char ELOGID[] = "elogd " VERSION " built " __DATE__ ", " __TIME__;
|
static const char ELOGID[] = "elogd " VERSION " built " __DATE__ ", " __TIME__;
|
||||||
@ -19711,7 +19714,7 @@ SERVICE_STATUS_HANDLE serviceStatusHandle = 0;
|
|||||||
int install_service(void)
|
int install_service(void)
|
||||||
{
|
{
|
||||||
OSVERSIONINFO vi;
|
OSVERSIONINFO vi;
|
||||||
char path[2048], cmd[2080];
|
char path[2048], dir[2048], cmd[2080];
|
||||||
SC_HANDLE hservice;
|
SC_HANDLE hservice;
|
||||||
SC_HANDLE hsrvmanager;
|
SC_HANDLE hsrvmanager;
|
||||||
|
|
||||||
@ -19729,7 +19732,11 @@ int install_service(void)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf(cmd, "\"%s\" -D", path);
|
strcpy(dir, path);
|
||||||
|
if (strrchr(dir, '\\'))
|
||||||
|
*(strrchr(dir, '\\')+1) = 0;
|
||||||
|
|
||||||
|
sprintf(cmd, "\"%s\" -D -c \"%selogd.cfg\"", path, dir);
|
||||||
|
|
||||||
/* Open the default, local Service Control Manager database */
|
/* Open the default, local Service Control Manager database */
|
||||||
hsrvmanager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
|
hsrvmanager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
|
||||||
@ -20069,6 +20076,16 @@ int main(int argc, char *argv[])
|
|||||||
fgets(clone_url, sizeof(clone_url), stdin);
|
fgets(clone_url, sizeof(clone_url), stdin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* check if local elogd.cfg exists */
|
||||||
|
fh = open(config_file, O_RDONLY | O_BINARY);
|
||||||
|
if (fh > 0) {
|
||||||
|
close(fh);
|
||||||
|
eprintf("Overwrite local \"elogd.cfg\"? [y]/n: ");
|
||||||
|
fgets(str, sizeof(str), stdin);
|
||||||
|
if (str[0] == 'n' || str[0] == 'N')
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
/* contact remote server */
|
/* contact remote server */
|
||||||
receive_config(NULL, clone_url, error_str);
|
receive_config(NULL, clone_url, error_str);
|
||||||
if (error_str[0]) {
|
if (error_str[0]) {
|
||||||
@ -20085,12 +20102,15 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* check for configuration file */
|
/* check for configuration file */
|
||||||
fh = open(config_file, O_RDONLY | O_BINARY);
|
if (!clone_url[0]) {
|
||||||
if (fh < 0) {
|
|
||||||
eprintf("Configuration file \"%s\" not found.\n", config_file);
|
fh = open(config_file, O_RDONLY | O_BINARY);
|
||||||
exit(EXIT_FAILURE);
|
if (fh < 0) {
|
||||||
|
eprintf("Configuration file \"%s\" not found.\n", config_file);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
close(fh);
|
||||||
}
|
}
|
||||||
close(fh);
|
|
||||||
|
|
||||||
/* evaluate directories from config file */
|
/* evaluate directories from config file */
|
||||||
if (getcfg("global", "Resource Dir", str, sizeof(str)))
|
if (getcfg("global", "Resource Dir", str, sizeof(str)))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user