Re: cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
William A. Rowe, Jr. wrote: -sprintf(szMsg, %s error: %d, Jakrta - Tomcat, dwErr); +sprintf(szMsg, %s error: %d, Jakarta - Tomcat, dwErr); Mladen, we are in the process of graduating. If this is being tweaked, why not Apache Tomcat {descriptive} Event? Well, you said you will maintain the nt-service, so feel free to tweak that as desired ;) Personally I think that the nt-service is useless project, because we have a full-blown nt service wrapper and manager for Tomcat5 (procrun in commons/daemon), so I see no point to maintain an additional service wrapper whatsoever. That's why I would like to see that deprecated for 1.3 branch. Regards, Mladen. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
mturk 2005/04/27 00:41:07 Modified:jk/native/nt_service jk_nt_service.c Log: Fix API changed, so it can compile again. Revision ChangesPath 1.13 +4 -4 jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c Index: jk_nt_service.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- jk_nt_service.c 23 Dec 2004 18:33:37 - 1.12 +++ jk_nt_service.c 27 Apr 2005 07:41:07 - 1.13 @@ -908,8 +908,8 @@ jk_b_end(msg, AJP13_PROTO); if(0 jk_tcp_socket_sendfull(sd, - jk_b_get_buff(msg), - jk_b_get_len(msg))) { + msg-buf, + msg-len)) { rc = JK_FALSE; } } @@ -955,7 +955,7 @@ jk_map_t *init_map; if(jk_map_alloc(init_map)) { -if(jk_map_read_properties(init_map, prp_file)) { +if(jk_map_read_properties(init_map, prp_file, NULL)) { jk_tomcat_startup_data_t data; jk_pool_t p; jk_pool_atom_t buf[HUGE_POOL_SIZE]; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
mturk 2005/04/27 00:46:22 Modified:jk/native/nt_service jk_nt_service.c Log: Fix typo. Revision ChangesPath 1.14 +3 -3 jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c Index: jk_nt_service.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- jk_nt_service.c 27 Apr 2005 07:41:07 - 1.13 +++ jk_nt_service.c 27 Apr 2005 07:46:22 - 1.14 @@ -791,9 +791,9 @@ dwErr = GetLastError(); -hEventSource = RegisterEventSource(NULL, Jakrta - Tomcat); +hEventSource = RegisterEventSource(NULL, Jakarta - Tomcat); -sprintf(szMsg, %s error: %d, Jakrta - Tomcat, dwErr); +sprintf(szMsg, %s error: %d, Jakarta - Tomcat, dwErr); lpszStrings[0] = szMsg; lpszStrings[1] = lpszMsg; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
At 02:46 AM 4/27/2005, [EMAIL PROTECTED] wrote: mturk 2005/04/27 00:46:22 -hEventSource = RegisterEventSource(NULL, Jakrta - Tomcat); +hEventSource = RegisterEventSource(NULL, Jakarta - Tomcat); -sprintf(szMsg, %s error: %d, Jakrta - Tomcat, dwErr); +sprintf(szMsg, %s error: %d, Jakarta - Tomcat, dwErr); Mladen, we are in the process of graduating. If this is being tweaked, why not Apache Tomcat {descriptive} Event? Bill - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c nt_service.dsp
mturk 2004/12/23 10:33:37 Modified:jk/native/nt_service jk_nt_service.c nt_service.dsp Log: Allow nt_service to build again. Patch prowided by wrowe. Revision ChangesPath 1.12 +45 -44 jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c Index: jk_nt_service.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- jk_nt_service.c 5 Nov 2004 15:28:39 - 1.11 +++ jk_nt_service.c 23 Dec 2004 18:33:37 - 1.12 @@ -871,7 +871,7 @@ } if(jk_resolve(localhost, port, in)) { -int sd = jk_open_socket(in, JK_TRUE, 0, NULL); +int sd = jk_open_socket(in, JK_TRUE, 0, -1, NULL); if(sd 0) { int rc = JK_FALSE; @@ -954,8 +954,8 @@ sizeof(prp_file))) { jk_map_t *init_map; -if(map_alloc(init_map)) { -if(map_read_properties(init_map, prp_file)) { +if(jk_map_alloc(init_map)) { +if(jk_map_read_properties(init_map, prp_file)) { jk_tomcat_startup_data_t data; jk_pool_t p; jk_pool_atom_t buf[HUGE_POOL_SIZE]; @@ -1127,29 +1127,29 @@ /* All this is wrong - you just need to configure cmd_line */ /* Optional - you may have cmd_line defined */ -data-server_file = map_get_string(init_map, - wrapper.server_xml, +data-server_file = jk_map_get_string(init_map, + wrapper.server_xml, + NULL); +data-classpath = jk_map_get_string(init_map, +wrapper.class_path, +NULL); +data-tomcat_home = jk_map_get_string(init_map, + wrapper.tomcat_home, + NULL); +data-java_bin = jk_map_get_string(init_map, + wrapper.javabin, NULL); -data-classpath = map_get_string(init_map, - wrapper.class_path, +data-tomcat_class = jk_map_get_string(init_map, + wrapper.startup_class, + org.apache.tomcat.startup.Tomcat); + +data-cmd_line = jk_map_get_string(init_map, + wrapper.cmd_line, NULL); -data-tomcat_home = map_get_string(init_map, - wrapper.tomcat_home, + +data-stop_cmd = jk_map_get_string(init_map, + wrapper.stop_cmd, NULL); -data-java_bin = map_get_string(init_map, -wrapper.javabin, -NULL); -data-tomcat_class = map_get_string(init_map, -wrapper.startup_class, -org.apache.tomcat.startup.Tomcat); - -data-cmd_line = map_get_string(init_map, -wrapper.cmd_line, -NULL); - -data-stop_cmd = map_get_string(init_map, -wrapper.stop_cmd, -NULL); if(NULL == data-cmd_line ( (NULL == data-tomcat_class) || @@ -1185,24 +1185,25 @@ strcat(data-cmd_line, data-server_file); } -data-shutdown_port = map_get_int(init_map, - wrapper.shutdown_port, - 8007); - -data-shutdown_secret = map_get_string(init_map, - wrapper.shutdown_secret, NULL ); +data-shutdown_port = jk_map_get_int(init_map, + wrapper.shutdown_port, + 8007); + +data-shutdown_secret = jk_map_get_string(init_map, + wrapper.shutdown_secret, + NULL); -data-shutdown_protocol = map_get_string(init_map, - wrapper.shutdown_protocol, - AJP12_TAG); - -data-extra_path = map_get_string(init_map, - wrapper.ld_path, - NULL);
cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
jfclere 2004/11/05 07:28:39 Modified:jk/native/apache-1.3 mod_jk.c jk/native/apache-2.0 mod_jk.c jk/native/common jk_map.c jk_map.h jk_util.c jk_worker.c jk/native/domino jk_dsapi_plugin.c jk/native/iis jk_isapi_plugin.c jk/native/isapi jk_isapi_plugin.c jk/native/netscape jk_nsapi_plugin.c jk/native/nt_service jk_nt_service.c Log: Change map_free() to jk_map_free() because it conflics with a map_free in php. The map_free() of php comes from cyrus-imapd-2.2.x Revision ChangesPath 1.49 +4 -4 jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c Index: mod_jk.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c,v retrieving revision 1.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- mod_jk.c 8 Oct 2004 08:55:13 - 1.48 +++ mod_jk.c 5 Nov 2004 15:28:39 - 1.49 @@ -2005,9 +2005,9 @@ if (NULL != conf) { wc_close(conf-log); uri_worker_map_free((conf-uw_map), conf-log); -map_free((conf-uri_to_context)); -map_free((conf-worker_properties)); -map_free((conf-automount)); +jk_map_free((conf-uri_to_context)); +jk_map_free((conf-worker_properties)); +jk_map_free((conf-automount)); if (conf-log) jk_close_file_logger((conf-log)); } 1.97 +4 -4 jakarta-tomcat-connectors/jk/native/apache-2.0/mod_jk.c Index: mod_jk.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/apache-2.0/mod_jk.c,v retrieving revision 1.96 retrieving revision 1.97 diff -u -r1.96 -r1.97 --- mod_jk.c 8 Oct 2004 08:55:13 - 1.96 +++ mod_jk.c 5 Nov 2004 15:28:39 - 1.97 @@ -1844,11 +1844,11 @@ up between APR implementations. */ wc_close(NULL); if (conf-worker_properties) -map_free(conf-worker_properties); +jk_map_free(conf-worker_properties); if (conf-uri_to_context) -map_free(conf-uri_to_context); +jk_map_free(conf-uri_to_context); if (conf-automount) -map_free(conf-automount); +jk_map_free(conf-automount); if (conf-uw_map) uri_worker_map_free(conf-uw_map, NULL); } 1.15 +2 -2 jakarta-tomcat-connectors/jk/native/common/jk_map.c Index: jk_map.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_map.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- jk_map.c 8 Oct 2004 07:50:39 - 1.14 +++ jk_map.c 5 Nov 2004 15:28:39 - 1.15 @@ -57,7 +57,7 @@ return JK_FALSE; } -int map_free(jk_map_t **m) +int jk_map_free(jk_map_t **m) { int rc = JK_FALSE; 1.10 +2 -2 jakarta-tomcat-connectors/jk/native/common/jk_map.h Index: jk_map.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_map.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- jk_map.h 8 Oct 2004 07:50:40 - 1.9 +++ jk_map.h 5 Nov 2004 15:28:39 - 1.10 @@ -35,7 +35,7 @@ int map_alloc(jk_map_t **m); -int map_free(jk_map_t **m); +int jk_map_free(jk_map_t **m); int map_open(jk_map_t *m); 1.31 +6 -4 jakarta-tomcat-connectors/jk/native/common/jk_util.c Index: jk_util.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_util.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- jk_util.c 8 Oct 2004 07:50:40 - 1.30 +++ jk_util.c 5 Nov 2004 15:28:39 - 1.31 @@ -205,9 +205,11 @@ { if (l *l) { file_logger_t *p = (*l)-logger_private; -fflush(p-logfile); -fclose(p-logfile); -free(p); +if (p) { + fflush(p-logfile); + fclose(p-logfile); + free(p); +} free(*l); *l = NULL; 1.17 +2 -2 jakarta-tomcat-connectors/jk/native/common/jk_worker.c Index: jk_worker.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_worker.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 ---
cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
hgomez 2003/07/24 01:17:26 Modified:jk/native/nt_service jk_nt_service.c Log: port is now integer Revision ChangesPath 1.8 +18 -18jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c Index: jk_nt_service.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- jk_nt_service.c 8 Aug 2002 18:15:44 - 1.7 +++ jk_nt_service.c 24 Jul 2003 08:17:24 - 1.8 @@ -86,8 +86,8 @@ static HANDLE hServerStopEvent = NULL; static int shutdown_port; static char*shutdown_protocol = AJP12_TAG; -static char*shutdown_secret = NULL; -static char*shutdown_cmd=NULL; +static char*shutdown_secret = NULL; +static char*shutdown_cmd=NULL; typedef enum ActionEnum { acNoAction = 0, @@ -156,11 +156,11 @@ char *b, DWORD sz); static int start_tomcat(const char *name, HANDLE *hTomcat); -static void stop_tomcat(char *name, -short port, -const char *protocol, -char *secret, -HANDLE hTomcat); +static void stop_tomcat(char *name, +int port, +const char *protocol, +char *secret, +HANDLE hTomcat); static int read_startup_data(jk_map_t *init_map, jk_tomcat_startup_data_t *data, jk_pool_t *p); @@ -756,8 +756,8 @@ char szNameBuff[256]; DWORD lenNameBuff = 256; char *szTrueName = name; -SC_HANDLE schSCManager; -int rc; +SC_HANDLE schSCManager; +int rc; schSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS ); if(schSCManager) { @@ -781,7 +781,7 @@ * Stop order arrived */ ResetEvent(hServerStopEvent); -stop_tomcat(name, (short)shutdown_port, shutdown_protocol, +stop_tomcat(name, shutdown_port, shutdown_protocol, shutdown_secret, hTomcat); break; case (WAIT_OBJECT_0 + 1): @@ -799,7 +799,7 @@ * some error... * close the servlet container and exit */ -stop_tomcat(name, (short)shutdown_port, shutdown_protocol, +stop_tomcat(name, shutdown_port, shutdown_protocol, shutdown_secret, hTomcat); } CloseHandle(hServerStopEvent); @@ -897,7 +897,7 @@ } static void stop_tomcat(char *name, -short port, +int port, const char *protocol, char *secret, HANDLE hTomcat) @@ -1040,9 +1040,9 @@ FILE_END); memset(processInformation, 0, sizeof(processInformation)); - - if( cmdLine==NULL ) - cmdLine=data.cmd_line; + + if( cmdLine==NULL ) + cmdLine=data.cmd_line; printf(cmdLine); if(CreateProcess(data.java_bin, @@ -1063,8 +1063,8 @@ shutdown_port = data.shutdown_port; shutdown_secret = data.shutdown_secret; -shutdown_protocol = strdup(data.shutdown_protocol); - shutdown_cmd = strdup(data.stop_cmd); +shutdown_protocol = strdup(data.shutdown_protocol); + shutdown_cmd = strdup(data.stop_cmd); return JK_TRUE; } else { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
costin 02/03/14 09:43:47 Modified:jk/native/nt_service jk_nt_service.c Log: Merged changes from 3.3 Addition of stop_cmd, allowing the stop to be done by executing a command. ( catalina shutdown protocol is already supported ) Removed some of the checks for settings that are not required. If cmd_line is specified, there is no need for server.xml or other tomcat-specific things. cmd_line, stdout, stderr are required. Revision ChangesPath 1.4 +288 -79 jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c Index: jk_nt_service.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- jk_nt_service.c 17 Jan 2002 21:17:02 - 1.3 +++ jk_nt_service.c 14 Mar 2002 17:43:47 - 1.4 @@ -58,14 +58,14 @@ /*** * Description: NT System service for Jakarta/Tomcat * * Author: Gal Shachor [EMAIL PROTECTED] * - * Version: $Revision: 1.3 $ * + * Dave Oxley [EMAIL PROTECTED] * + * Version: $Revision: 1.4 $ * ***/ #include jk_global.h #include jk_util.h #include jk_ajp13.h #include jk_connect.h - #include windows.h #include stdio.h #include stdlib.h @@ -86,23 +86,39 @@ static HANDLE hServerStopEvent = NULL; static int shutdown_port; static char*shutdown_protocol = AJP12_TAG; -static char*shutdown_secret = NULL; +static char*shutdown_secret = NULL; +static char*shutdown_cmd=NULL; + +typedef enum ActionEnum +{ acNoAction = 0, +acInstall = 1, +acRemove= 2, +acStartTC = 3, +acStopTC= 4 +} ActionEnum; + struct jk_tomcat_startup_data { -char *classpath; -char *tomcat_home; +char *cmd_line; /* Start command line */ char *stdout_file; char *stderr_file; +char *extra_path; +char *tomcat_home; char *java_bin; -char *tomcat_class; -char *server_file; -char *cmd_line; -int shutdown_port; + char *shutdown_protocol; +/* for cmd */ +char *stop_cmd; +/* For ajp13/ajp12/catalina */ +int shutdown_port; char *shutdown_secret; -char *extra_path; +/* Optional/not needed */ +char *classpath; +char *tomcat_class; +char *server_file; }; + typedef struct jk_tomcat_startup_data jk_tomcat_startup_data_t; // internal function prototypes @@ -110,8 +126,16 @@ static void WINAPI service_main(DWORD dwArgc, char **lpszArgv); static void install_service(char *name, -char *prp_file); +char *user, +char *password, +char *deps, +BOOL bAutomatic, +char *rel_prp_file); static void remove_service(char *name); +static void start_service(char *name, + char *machine); +static void stop_service(char *name, + char *machine); static char *GetLastErrorText(char *lpszBuf, DWORD dwSize); static void AddToMessageLog(char *lpszMsg); static BOOL ReportStatusToSCMgr(DWORD dwCurrentState, @@ -131,34 +155,59 @@ char *b, DWORD sz); static int start_tomcat(const char *name, HANDLE *hTomcat); -static void stop_tomcat(short port, +static void stop_tomcat(char *name, +short port, const char *protocol, - char *secret, -HANDLE hTomcat); +char *secret, +HANDLE hTomcat); static int read_startup_data(jk_map_t *init_map, jk_tomcat_startup_data_t *data, jk_pool_t *p); - +static int exec_cmd(const char *name, HANDLE *hTomcat, char *cmdLine); static void usage_message(const char *name) { -printf(%s - Usage:\n, name); -printf(%s -i service name configuration properties file\n, name); -printf(\tto install the service\n); -printf(%s -r service name\n, name); -printf(\tto remove the service\n); +printf(%s - Usage:\n\n, name); +
RE: cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
Hi Costin, This merge from 3.3 doesn't include the -n option that Larry added 2 weeks ago. It allows for specifying a display name separately from the service name since the rules for what is a valid name differ in each case. For example, the display name is allowed to contain spaces while the service name is not. Was it left behind on purpose? I have a tough time keeping up with all the great stuff you're checking in but I'm trying. Thanks, -David -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Thursday, March 14, 2002 9:44 AM To: [EMAIL PROTECTED] Subject: cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c costin 02/03/14 09:43:47 Modified:jk/native/nt_service jk_nt_service.c Log: Merged changes from 3.3 Addition of stop_cmd, allowing the stop to be done by executing a command. ( catalina shutdown protocol is already supported ) Removed some of the checks for settings that are not required. If cmd_line is specified, there is no need for server.xml or other tomcat-specific things. cmd_line, stdout, stderr are required. Revision ChangesPath 1.4 +288 -79 jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c Index: jk_nt_service.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- jk_nt_service.c 17 Jan 2002 21:17:02 - 1.3 +++ jk_nt_service.c 14 Mar 2002 17:43:47 - 1.4 @@ -58,14 +58,14 @@ /*** * Description: NT System service for Jakarta/Tomcat * * Author: Gal Shachor [EMAIL PROTECTED] * - * Version: $Revision: 1.3 $ * + * Dave Oxley [EMAIL PROTECTED] * + * Version: $Revision: 1.4 $ * ***/ #include jk_global.h #include jk_util.h #include jk_ajp13.h #include jk_connect.h - #include windows.h #include stdio.h #include stdlib.h @@ -86,23 +86,39 @@ static HANDLE hServerStopEvent = NULL; static int shutdown_port; static char*shutdown_protocol = AJP12_TAG; -static char*shutdown_secret = NULL; +static char*shutdown_secret = NULL; +static char*shutdown_cmd=NULL; + +typedef enum ActionEnum +{ acNoAction = 0, +acInstall = 1, +acRemove= 2, +acStartTC = 3, +acStopTC= 4 +} ActionEnum; + struct jk_tomcat_startup_data { -char *classpath; -char *tomcat_home; +char *cmd_line; /* Start command line */ char *stdout_file; char *stderr_file; +char *extra_path; +char *tomcat_home; char *java_bin; -char *tomcat_class; -char *server_file; -char *cmd_line; -int shutdown_port; + char *shutdown_protocol; +/* for cmd */ +char *stop_cmd; +/* For ajp13/ajp12/catalina */ +int shutdown_port; char *shutdown_secret; -char *extra_path; +/* Optional/not needed */ +char *classpath; +char *tomcat_class; +char *server_file; }; + typedef struct jk_tomcat_startup_data jk_tomcat_startup_data_t; // internal function prototypes @@ -110,8 +126,16 @@ static void WINAPI service_main(DWORD dwArgc, char **lpszArgv); static void install_service(char *name, -char *prp_file); +char *user, +char *password, +char *deps, +BOOL bAutomatic, +char *rel_prp_file); static void remove_service(char *name); +static void start_service(char *name, + char *machine); +static void stop_service(char *name, + char *machine); static char *GetLastErrorText(char *lpszBuf, DWORD dwSize); static void AddToMessageLog(char *lpszMsg); static BOOL ReportStatusToSCMgr(DWORD dwCurrentState, @@ -131,34 +155,59 @@ char *b, DWORD sz); static int start_tomcat(const char *name, HANDLE *hTomcat); -static void stop_tomcat(short port, +static void stop_tomcat(char *name, +short port, const char *protocol, - char *secret, -HANDLE hTomcat); +char *secret, +HANDLE hTomcat); static int read_startup_data(jk_map_t *init_map
RE: cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
On Thu, 14 Mar 2002, Schreibman, David wrote: Hi Costin, This merge from 3.3 doesn't include the -n option that Larry added 2 weeks ago. It allows for specifying a display name separately from the service name since the rules for what is a valid name differ in each case. For example, the display name is allowed to contain spaces while the service name is not. Was it left behind on purpose? Ops, I may have an old version, I'll check. Thanks. BTW, I have another change ( contributed by WRowe ) to allow spaces in names and few other improvements ( it is leaving the name with spaces as display name, and removing the spaces for the internal name ). The -n is a different solution ( you specify both names in the command line ). After 3.3.1 is released I would like to remove nt_service from jakarta-tomcat CVS. The version in j-t-c has few additional fixes and improvements ( including the ability to execute a program to stop, support for catalina shutdown protocol, etc ). Costin -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
costin 02/03/14 11:17:52 Modified:jk/native/nt_service jk_nt_service.c Log: Patch from WRowe ( modified to match the merged version ). It allows spaces in service names by 'mangling' the internal name. Also use the API to add services instead of editing the registry ( I left the original code as backup ). I'm not sure about deps - are Tcp and Afd required ? ( I have no idea what Afd is :-) Revision ChangesPath 1.5 +90 -34jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c Index: jk_nt_service.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- jk_nt_service.c 14 Mar 2002 17:43:47 - 1.4 +++ jk_nt_service.c 14 Mar 2002 19:17:52 - 1.5 @@ -59,7 +59,7 @@ * Description: NT System service for Jakarta/Tomcat * * Author: Gal Shachor [EMAIL PROTECTED] * * Dave Oxley [EMAIL PROTECTED] * - * Version: $Revision: 1.4 $ * + * Version: $Revision: 1.5 $ * ***/ #include jk_global.h @@ -143,7 +143,7 @@ DWORD dwWaitHint); static void start_jk_service(char *name); static void stop_jk_service(void); -static int set_registry_values(char *name, +static int set_registry_values(SC_HANDLE schService, char *name, char *prp_file); static int create_registry_key(const char *tag, HKEY *key); @@ -388,6 +388,10 @@ return fResult; } +typedef WINADVAPI BOOL (WINAPI * pfnChangeServiceConfig2_t) + (SC_HANDLE hService, DWORD dwInfoLevel, LPVOID lpInfo); + + void install_service(char *name, char *user, char *password, @@ -399,11 +403,26 @@ SC_HANDLE schSCManager; charszExecPath[2048]; charszPropPath[2048]; +charszTrueName[256]; char*dummy; +char*src, *dst; + +dst = szTrueName; +for (src = name; *src; ++src) { +if (dst = szTrueName + sizeof(szTrueName) - 1) { +break; +} +if (!isspace(*src) *src != '/' *src != '\\') { +*(dst++) = *src; +} +} +*dst = '\0'; if (0 == stricmp(, deps)) deps = NULL; +/* XXX strcat( deps, Tcpip\0Afd\0 ); */ + if(!GetFullPathName(rel_prp_file, sizeof(szPropPath) - 1, szPropPath, dummy)) { printf(Unable to install %s - %s\n, name, @@ -418,19 +437,25 @@ return; } -if(GetModuleFileName( NULL, szExecPath, sizeof(szExecPath) - 1) == 0) { +szExecPath[0] = '\'; +if(GetModuleFileName( NULL, szExecPath + 1, sizeof(szExecPath) - 2) == 0) { +/* Was: if(GetModuleFileName( NULL, szExecPath, sizeof(szExecPath) - 1) == 0) { */ printf(Unable to install %s - %s\n, name, GetLastErrorText(szErr, sizeof(szErr))); return; } +strcat(szExecPath, \ ); +strcat(szExecPath, szTrueName); + schSCManager = OpenSCManager(NULL, // machine (NULL == local) NULL, // database (NULL == default) SC_MANAGER_ALL_ACCESS); // access required if(schSCManager) { + schService = CreateService(schSCManager, // SCManager database - name, // name of service + szTrueName, // name of service name, // name to display SERVICE_ALL_ACCESS, // desired access SERVICE_WIN32_OWN_PROCESS, // service type @@ -444,9 +469,10 @@ password); // password if(schService) { + printf(The service named %s was created. Now adding registry entries\n, name); -if(set_registry_values(name, szPropPath)) { +if(set_registry_values(schService, szTrueName, szPropPath)) { CloseServiceHandle(schService); } else { printf(CreateService failed setting the private registry - %s\n, GetLastErrorText(szErr, sizeof(szErr))); @@ -467,13 +493,19 @@ { SC_HANDLE schService; SC_HANDLE schSCManager; +
Re: cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
I am a newbie to this list. What is the difference between creating a distribution and a deployment. Basically, if modify a couple of classes and want to move them over to the location where tomcat is already running on a previously copied distribution(created by me), would I need to copy the dist folder or the build folder. Or, I want to run Tomcat on a machine that just has the JDk would I need the dist or build. Please let me know. Thanks. Bhai -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
costin 02/03/14 13:01:24 Modified:jk/native/nt_service jk_nt_service.c Log: The -n option from 3.3 Revision ChangesPath 1.6 +14 -4 jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c Index: jk_nt_service.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- jk_nt_service.c 14 Mar 2002 19:17:52 - 1.5 +++ jk_nt_service.c 14 Mar 2002 21:01:24 - 1.6 @@ -59,7 +59,7 @@ * Description: NT System service for Jakarta/Tomcat * * Author: Gal Shachor [EMAIL PROTECTED] * * Dave Oxley [EMAIL PROTECTED] * - * Version: $Revision: 1.5 $ * + * Version: $Revision: 1.6 $ * ***/ #include jk_global.h @@ -125,7 +125,8 @@ static void WINAPI service_ctrl(DWORD dwCtrlCode); static void WINAPI service_main(DWORD dwArgc, char **lpszArgv); -static void install_service(char *name, +static void install_service(char *name, +char *dname, char *user, char *password, char *deps, @@ -172,6 +173,7 @@ printf(%s -i service name {optional params} config properties file\n, name); printf(Optional parameters\n); printf(-u user name - In the form DomainName\\UserName (.\\UserName for local)\n); +printf(-n service display name - In quotes if contains non-lphanumeric chars\n); printf(-p user password\n); printf(-a - Set startup type to automatic\n); printf(-d service dependency - Can be entered multiple times\n\n); @@ -195,6 +197,7 @@ int err; int count; int iAction = acNoAction; +char *pServiceDisplayName = NULL; char *pServiceName = NULL; char *pUserName = NULL; char *pPassword = NULL; @@ -251,6 +254,8 @@ pMachine = argv[i+1]; } else if(0 == stricmp(a, cmd)) { bAutomatic = TRUE; +} else if(0 == stricmp(n, cmd)) { +pServiceDisplayName = argv[i+1]; } else if(0 == stricmp(d, cmd)) { memcpy(strDependancy+count, argv[i+1], strlen(argv[i+1])); count+= strlen(argv[i+1])+1; @@ -259,7 +264,11 @@ } switch (iAction) { case acInstall: -install_service(pServiceName, pUserName, pPassword, strDependancy, bAutomatic, argv[i-1]); +if (pServiceDisplayName == NULL) { +pServiceDisplayName = pServiceName; +} +install_service(pServiceName, pServiceDisplayName, pUserName, +pPassword, strDependancy, bAutomatic, argv[i-1]); return; case acRemove: remove_service(pServiceName); @@ -393,6 +402,7 @@ void install_service(char *name, + char *dname, char *user, char *password, char *deps, @@ -456,7 +466,7 @@ schService = CreateService(schSCManager, // SCManager database szTrueName, // name of service - name, // name to display + dname, // name to display SERVICE_ALL_ACCESS, // desired access SERVICE_WIN32_OWN_PROCESS, // service type bAutomatic ? SERVICE_AUTO_START : SERVICE_DEMAND_START, // start type -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/nt_service jk_nt_service.c
costin 02/01/17 13:17:02 Modified:jk/native/nt_service jk_nt_service.c Log: Fix the build ( was missing a param for jk_b_end ). Added a bit of code to send a secret ( needed if secret is used ) and a bit of code to deal with catalina's shutdown. Revision ChangesPath 1.3 +27 -6 jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c Index: jk_nt_service.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/nt_service/jk_nt_service.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- jk_nt_service.c 18 Jun 2001 14:46:26 - 1.2 +++ jk_nt_service.c 17 Jan 2002 21:17:02 - 1.3 @@ -58,7 +58,7 @@ /*** * Description: NT System service for Jakarta/Tomcat * * Author: Gal Shachor [EMAIL PROTECTED] * - * Version: $Revision: 1.2 $ * + * Version: $Revision: 1.3 $ * ***/ #include jk_global.h @@ -86,6 +86,7 @@ static HANDLE hServerStopEvent = NULL; static int shutdown_port; static char*shutdown_protocol = AJP12_TAG; +static char*shutdown_secret = NULL; struct jk_tomcat_startup_data { char *classpath; @@ -98,6 +99,7 @@ char *cmd_line; int shutdown_port; char *shutdown_protocol; +char *shutdown_secret; char *extra_path; }; @@ -130,7 +132,8 @@ static int start_tomcat(const char *name, HANDLE *hTomcat); static void stop_tomcat(short port, -const char *protocol, +const char *protocol, + char *secret, HANDLE hTomcat); static int read_startup_data(jk_map_t *init_map, jk_tomcat_startup_data_t *data, @@ -531,7 +534,8 @@ * Stop order arrived */ ResetEvent(hServerStopEvent); -stop_tomcat((short)shutdown_port, shutdown_protocol, hTomcat); +stop_tomcat((short)shutdown_port, shutdown_protocol, +shutdown_secret, hTomcat); break; case (WAIT_OBJECT_0 + 1): /* @@ -543,7 +547,8 @@ * some error... * close the servlet container and exit */ -stop_tomcat((short)shutdown_port, shutdown_protocol, hTomcat); +stop_tomcat((short)shutdown_port, shutdown_protocol, +shutdown_secret, hTomcat); } CloseHandle(hServerStopEvent); CloseHandle(hTomcat); @@ -641,6 +646,7 @@ static void stop_tomcat(short port, const char *protocol, +char *secret, HANDLE hTomcat) { struct sockaddr_in in; @@ -649,7 +655,18 @@ int sd = jk_open_socket(in, JK_TRUE, NULL); if(sd 0) { int rc = JK_FALSE; -if(!strcasecmp(protocol, ajp13)) { +if(strcasecmp(protocol, catalina) == 0 ) { +char len; + +if( secret==NULL ) +secret=SHUTDOWN; +len=strlen( secret ); + +rc = send(sd, secret, len , 0); +if(len == rc) { +rc = JK_TRUE; +} +} else if(!strcasecmp(protocol, ajp13)) { jk_pool_t pool; jk_msg_buf_t *msg = NULL; jk_pool_atom_t buf[TINY_POOL_SIZE]; @@ -663,7 +680,7 @@ pool, NULL); if(rc) { -jk_b_end(msg); +jk_b_end(msg, AJP13_PROTO); if(0 jk_tcp_socket_sendfull(sd, jk_b_get_buff(msg), @@ -775,6 +792,7 @@ CloseHandle(startupInfo.hStdOutput); CloseHandle(startupInfo.hStdError); shutdown_port = data.shutdown_port; +shutdown_secret = data.shutdown_secret;