diff --git a/src/sbbs3/atcodes.cpp b/src/sbbs3/atcodes.cpp index d234ebbdd092c428317122cc0d74af93753322e3..6a90afedfe116e08be287603386ae2b7e9f94aaf 100644 --- a/src/sbbs3/atcodes.cpp +++ b/src/sbbs3/atcodes.cpp @@ -38,6 +38,13 @@ #include "sbbs.h" #include "cmdshell.h" +#if defined(_WINSOCKAPI_) + extern WSADATA WSAData; + #define SOCKLIB_DESC WSAData.szDescription +#else + #define SOCKLIB_DESC NULL +#endif + /****************************************************************************/ /* Returns 0 if invalid @ code. Returns length of @ code if valid. */ /****************************************************************************/ @@ -157,7 +164,7 @@ char* sbbs_t::atcode(char* sp, char* str) } if(!strcmp(sp,"SOCKET_LIB")) - return(socklib_version(str)); + return(socklib_version(str,SOCKLIB_DESC)); if(!strcmp(sp,"MSG_LIB")) { sprintf(str,"SMBLIB %s",smb_lib_ver()); diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index 1120531cccaa9d1fa786516ffd99e4bd2eba56c4..4543bac64c00e4ab1da71520a7e543a5516447da 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -153,6 +153,8 @@ static int lprintf(int level, char *fmt, ...) #ifdef _WINSOCKAPI_ static WSADATA WSAData; +#define SOCKLIB_DESC WSAData.szDescription + static BOOL WSAInitialized=FALSE; static BOOL winsock_startup(void) @@ -172,6 +174,7 @@ static BOOL winsock_startup(void) #else /* No WINSOCK */ #define winsock_startup() (TRUE) +#define SOCKLIB_DESC NULL #endif @@ -491,7 +494,7 @@ js_initcx(JSRuntime* runtime, SOCKET sock, JSObject** glob, JSObject** ftp) break; lprintf(LOG_DEBUG,"%04d JavaScript: Initializing System object",sock); - if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name)==NULL) + if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name, SOCKLIB_DESC)==NULL) break; if((*ftp=JS_DefineObject(js_cx, js_glob, "ftp", NULL diff --git a/src/sbbs3/js_system.c b/src/sbbs3/js_system.c index 2825519a724d22c0be64b9e07128ca91605d690f..dd61617c5f80f4a012cf1f9adb190ee52cd46cc9 100644 --- a/src/sbbs3/js_system.c +++ b/src/sbbs3/js_system.c @@ -1587,7 +1587,7 @@ static JSClass js_node_class = { }; JSObject* DLLCALL js_CreateSystemObject(JSContext* cx, JSObject* parent - ,scfg_t* cfg, time_t uptime, char* host_name) + ,scfg_t* cfg, time_t uptime, char* host_name, char* socklib_desc) { char str[256]; uint i; @@ -1671,7 +1671,7 @@ JSObject* DLLCALL js_CreateSystemObject(JSContext* cx, JSObject* parent if(!JS_SetProperty(cx, sysobj, "platform", &val)) return(NULL); - if((js_str=JS_NewStringCopyZ(cx, socklib_version(str)))==NULL) + if((js_str=JS_NewStringCopyZ(cx, socklib_version(str, socklib_desc)))==NULL) return(NULL); val = STRING_TO_JSVAL(js_str); if(!JS_SetProperty(cx, sysobj, "socket_lib", &val)) diff --git a/src/sbbs3/jsexec.c b/src/sbbs3/jsexec.c index f32c052d2b9f7d844dc05b87d1fcd25c2ed944f1..69ed19df9a682933665da3422ef8cd9cf0e3c101 100644 --- a/src/sbbs3/jsexec.c +++ b/src/sbbs3/jsexec.c @@ -138,6 +138,7 @@ int lprintf(int level, char *fmt, ...) #if defined(_WINSOCKAPI_) WSADATA WSAData; +#define SOCKLIB_DESC WSAData.szDescription static BOOL WSAInitialized=FALSE; static BOOL winsock_startup(void) @@ -156,7 +157,8 @@ static BOOL winsock_startup(void) #else /* No WINSOCK */ -#define winsock_startup() (TRUE) +#define winsock_startup() (TRUE) +#define SOCKLIB_DESC NULL #endif @@ -502,7 +504,7 @@ static BOOL js_init(char** environ) return(FALSE); /* System Object */ - if(js_CreateSystemObject(js_cx, js_glob, &scfg, time(NULL), host_name)==NULL) + if(js_CreateSystemObject(js_cx, js_glob, &scfg, time(NULL), host_name, SOCKLIB_DESC)==NULL) return(FALSE); /* Socket Class */ diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index b984567adc65afbd169f9003bd4646b03e63fb12..1a46ae7bac52737dd30521820acf0f9f9077dbcf 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -125,6 +125,7 @@ static int lprintf(int level, char *fmt, ...) #ifdef _WINSOCKAPI_ static WSADATA WSAData; +#define SOCKLIB_DESC WSAData.szDescription static BOOL WSAInitialized=FALSE; static BOOL winsock_startup(void) @@ -144,6 +145,7 @@ static BOOL winsock_startup(void) #else /* No WINSOCK */ #define winsock_startup() (TRUE) +#define SOCKLIB_DESC NULL #endif @@ -1437,7 +1439,7 @@ js_mailproc(SOCKET sock, client_t* client, user_t* user break; /* System Object */ - if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name)==NULL) + if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name, SOCKLIB_DESC)==NULL) break; /* Socket Class */ diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index dfad93b339406a2f7219ef4214be6ed45cc2fe88..86a79dddb001861ce14d4667dcdc8270358c7676 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -233,6 +233,33 @@ u_long resolve_ip(char *addr) } /* extern "C" */ +#ifdef _WINSOCKAPI_ + +WSADATA WSAData; +#define SOCKLIB_DESC WSAData.szDescription +static BOOL WSAInitialized=FALSE; + +static BOOL winsock_startup(void) +{ + int status; /* Status Code */ + + if((status = WSAStartup(MAKEWORD(1,1), &WSAData))==0) { + lprintf(LOG_INFO,"%s %s",WSAData.szDescription, WSAData.szSystemStatus); + WSAInitialized=TRUE; + return(TRUE); + } + + lprintf(LOG_ERR,"!WinSock startup ERROR %d", status); + return(FALSE); +} + +#else /* No WINSOCK */ + +#define winsock_startup() (TRUE) +#define SOCKLIB_DESC NULL + +#endif + #ifdef JAVASCRIPT static js_server_props_t js_server_props; @@ -863,7 +890,7 @@ bool sbbs_t::js_init() #endif /* System Object */ - if(js_CreateSystemObject(js_cx, js_glob, &cfg, uptime, startup->host_name)==NULL) + if(js_CreateSystemObject(js_cx, js_glob, &cfg, uptime, startup->host_name, SOCKLIB_DESC)==NULL) break; /* Internal JS Object */ @@ -960,31 +987,6 @@ void sbbs_t::js_create_user_objects(void) #endif /* JAVASCRIPT */ -#ifdef _WINSOCKAPI_ - -WSADATA WSAData; -static BOOL WSAInitialized=FALSE; - -static BOOL winsock_startup(void) -{ - int status; /* Status Code */ - - if((status = WSAStartup(MAKEWORD(1,1), &WSAData))==0) { - lprintf(LOG_INFO,"%s %s",WSAData.szDescription, WSAData.szSystemStatus); - WSAInitialized=TRUE; - return(TRUE); - } - - lprintf(LOG_ERR,"!WinSock startup ERROR %d", status); - return(FALSE); -} - -#else /* No WINSOCK */ - -#define winsock_startup() (TRUE) - -#endif - static BYTE* telnet_interpret(sbbs_t* sbbs, BYTE* inbuf, int inlen, BYTE* outbuf, int& outlen) { diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index 80b5b5f6662d7ed12df7bf31162cc95508783cd1..0d3c2735a27045c9a04f57f2384e8781e1990ae7 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -931,7 +931,9 @@ extern "C" { /* js_system.c */ DLLEXPORT JSObject* DLLCALL js_CreateSystemObject(JSContext* cx, JSObject* parent - ,scfg_t* cfg, time_t uptime, char* host_name); + ,scfg_t* cfg, time_t uptime + ,char* host_name + ,char* socklib_desc); /* js_client.c */ DLLEXPORT JSObject* DLLCALL js_CreateClientObject(JSContext* cx, JSObject* parent @@ -1010,7 +1012,7 @@ BOOL md(char *path); char * readtext(long *line, FILE *stream); /* ver.cpp */ - char* socklib_version(char* str); + char* socklib_version(char* str, char* winsock_ver); /* sortdir.cpp */ int fnamecmp_a(char **str1, char **str2); /* for use with resort() */ diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c index d5e0f1530a6eb07ea094a92930a99ae45062d3ae..209e78b34b6f003531eaa63026366288597dab1b 100644 --- a/src/sbbs3/services.c +++ b/src/sbbs3/services.c @@ -160,6 +160,7 @@ static int lprintf(int level, char *fmt, ...) #ifdef _WINSOCKAPI_ static WSADATA WSAData; +#define SOCKLIB_DESC WSAData.szDescription static BOOL WSAInitialized=FALSE; static BOOL winsock_startup(void) @@ -179,6 +180,7 @@ static BOOL winsock_startup(void) #else /* No WINSOCK */ #define winsock_startup() (TRUE) +#define SOCKLIB_DESC NULL #endif @@ -811,7 +813,7 @@ js_initcx(JSRuntime* js_runtime, SOCKET sock, service_client_t* service_client, if(!js_CreateUserObjects(js_cx, js_glob, &scfg, NULL, NULL, NULL)) break; - if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name)==NULL) + if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name, SOCKLIB_DESC)==NULL) break; #if 0 char ver[256]; diff --git a/src/sbbs3/ver.cpp b/src/sbbs3/ver.cpp index bc55ffeec2b7f5a92549247f455063b9c89d82e5..5e5e396e3e4e3825522c383e8de8435e625f87b8 100644 --- a/src/sbbs3/ver.cpp +++ b/src/sbbs3/ver.cpp @@ -41,17 +41,20 @@ extern "C" const char* beta_version = " alpha"; /* Space if non-beta, " beta" ot #if defined(_WINSOCKAPI_) extern WSADATA WSAData; + #define SOCKLIB_DESC WSAData.szDescription +#else + #define SOCKLIB_DESC NULL #endif #if defined(__unix__) #include <sys/utsname.h> /* uname() */ #endif -char* socklib_version(char* str) +char* socklib_version(char* str, char* winsock_ver) { #if defined(_WINSOCKAPI_) - strcpy(str,WSAData.szDescription); + strcpy(str,winsock_ver); #elif defined(__GLIBC__) @@ -101,7 +104,7 @@ void sbbs_t::ver() } #endif - center(socklib_version(str)); + center(socklib_version(str,SOCKLIB_DESC)); CRLF; center(os_version(str)); diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c index f9edadc294646f9884f952b189696e47e56996c8..0f95babd7ce495cafdfa8f9e46cd007a14d8f422 100644 --- a/src/sbbs3/websrvr.c +++ b/src/sbbs3/websrvr.c @@ -287,6 +287,7 @@ static int lprintf(int level, char *fmt, ...) #ifdef _WINSOCKAPI_ static WSADATA WSAData; +#define SOCKLIB_DESC WSAData.szDescription static BOOL WSAInitialized=FALSE; static BOOL winsock_startup(void) @@ -306,6 +307,7 @@ static BOOL winsock_startup(void) #else /* No WINSOCK */ #define winsock_startup() (TRUE) +#define SOCKLIB_DESC NULL #endif @@ -2090,7 +2092,7 @@ js_initcx(JSRuntime* runtime, SOCKET sock, JSObject** glob, http_session_t *sess break; lprintf(LOG_INFO,"%04d JavaScript: Initializing System object",sock); - if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name)==NULL) + if(js_CreateSystemObject(js_cx, js_glob, &scfg, uptime, startup->host_name, SOCKLIB_DESC)==NULL) break; #if 0