diff --git a/src/sbbs3/ctrl/MainFormUnit.cpp b/src/sbbs3/ctrl/MainFormUnit.cpp index a6adb7854505710794c5d1e7b48a52eaf6ab1296..b2b267337d55dff3b041215ac35e81ef8851802f 100644 --- a/src/sbbs3/ctrl/MainFormUnit.cpp +++ b/src/sbbs3/ctrl/MainFormUnit.cpp @@ -1999,7 +1999,7 @@ void __fastcall TMainForm::StartupTimerTick(TObject *Sender) void __fastcall TMainForm::DisplayMainPanels(TObject* Sender) { - if(bbs_startup.options&BBS_OPT_MUTE) + if(sound_muted(&cfg)) SoundToggle->Checked=false; else SoundToggle->Checked=true; @@ -2557,35 +2557,11 @@ void __fastcall TMainForm::HelpAboutMenuItemClick(TObject *Sender) //--------------------------------------------------------------------------- BOOL MuteService(SC_HANDLE svc, SERVICE_STATUS* status, BOOL mute) { - if(svc==NULL || controlService==NULL) - return(FALSE); - - return controlService(svc - ,mute ? SERVICE_CONTROL_MUTE:SERVICE_CONTROL_UNMUTE, status); } //--------------------------------------------------------------------------- void __fastcall TMainForm::SoundToggleExecute(TObject *Sender) { SoundToggle->Checked=!SoundToggle->Checked; - - if(!SoundToggle->Checked) { - bbs_startup.options|=BBS_OPT_MUTE; - ftp_startup.options|=FTP_OPT_MUTE; - web_startup.options|=FTP_OPT_MUTE; - mail_startup.options|=MAIL_OPT_MUTE; - services_startup.options|=MAIL_OPT_MUTE; - } else { - bbs_startup.options&=~BBS_OPT_MUTE; - ftp_startup.options&=~FTP_OPT_MUTE; - web_startup.options&=~FTP_OPT_MUTE; - mail_startup.options&=~MAIL_OPT_MUTE; - services_startup.options&=~MAIL_OPT_MUTE; - } - MuteService(bbs_svc,&bbs_svc_status,!SoundToggle->Checked); - MuteService(ftp_svc,&ftp_svc_status,!SoundToggle->Checked); - MuteService(web_svc,&web_svc_status,!SoundToggle->Checked); - MuteService(mail_svc,&mail_svc_status,!SoundToggle->Checked); - MuteService(services_svc,&services_svc_status,!SoundToggle->Checked); } //--------------------------------------------------------------------------- void __fastcall TMainForm::BBSStatisticsLogMenuItemClick(TObject *Sender) @@ -2699,12 +2675,18 @@ void __fastcall TMainForm::UpTimerTick(TObject *Sender) static time_t start; ulong up; static bool sysop_available; + static bool sound_muted; if(ChatToggle->Checked != sysop_available) { sysop_available = ChatToggle->Checked; set_sysop_availability(&cfg, sysop_available); } + if(SoundToggle->Checked != !sound_muted) { + sound_muted = !SoundToggle->Checked; + set_sound_muted(&cfg, sound_muted); + } + if(clearLoginAttemptList) { loginAttemptListClear(&login_attempt_list); clearLoginAttemptList = false; @@ -3147,11 +3129,12 @@ void __fastcall TMainForm::reload_config(void) ChatToggle->Checked=true; else ChatToggle->Checked=false; - - if(bbs_startup.options&BBS_OPT_MUTE) + + if(sound_muted(&cfg)) SoundToggle->Checked=false; else SoundToggle->Checked=true; + SetControls(); } //--------------------------------------------------------------------------- diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index 68324b09665a76c31caeaaa26bffd31563848d11..18870ac95624d5d2d528c22ce7f074a0d5323376 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -1724,7 +1724,7 @@ void ftp_printfile(SOCKET sock, CRYPT_SESSION sess, const char* name, unsigned c static BOOL ftp_hacklog(char* prot, char* user, char* text, char* host, union xp_sockaddr* addr) { #ifdef _WIN32 - if(startup->sound.hack[0] && !(startup->options&FTP_OPT_MUTE)) + if(startup->sound.hack[0] && !sound_muted(&scfg)) PlaySound(startup->sound.hack, NULL, SND_ASYNC|SND_FILENAME); #endif @@ -2198,7 +2198,7 @@ static void ctrl_thread(void* arg) free(arg); #ifdef _WIN32 - if(startup->sound.answer[0] && !(startup->options&FTP_OPT_MUTE)) + if(startup->sound.answer[0] && !sound_muted(&scfg)) PlaySound(startup->sound.answer, NULL, SND_ASYNC|SND_FILENAME); #endif @@ -2566,7 +2566,7 @@ static void ctrl_thread(void* arg) putuserdat(&scfg, &user); #ifdef _WIN32 - if(startup->sound.login[0] && !(startup->options&FTP_OPT_MUTE)) + if(startup->sound.login[0] && !sound_muted(&scfg)) PlaySound(startup->sound.login, NULL, SND_ASYNC|SND_FILENAME); #endif continue; @@ -4807,14 +4807,14 @@ static void ctrl_thread(void* arg) lprintf(LOG_ERR,"%04d <%s> !ERROR in logoutuserdat", sock, user.alias); lprintf(LOG_INFO,"%04d <%s> logged off", sock, user.alias); #ifdef _WIN32 - if(startup->sound.logout[0] && !(startup->options&FTP_OPT_MUTE)) + if(startup->sound.logout[0] && !sound_muted(&scfg)) PlaySound(startup->sound.logout, NULL, SND_ASYNC|SND_FILENAME); #endif } #ifdef _WIN32 - if(startup->sound.hangup[0] && !(startup->options&FTP_OPT_MUTE)) + if(startup->sound.hangup[0] && !sound_muted(&scfg)) PlaySound(startup->sound.hangup, NULL, SND_ASYNC|SND_FILENAME); #endif diff --git a/src/sbbs3/login.cpp b/src/sbbs3/login.cpp index 094684302fcd62be033a0080e1b48927b30b4fac..4690fdcfc444e1dbcfea730b968cb004862fb792 100644 --- a/src/sbbs3/login.cpp +++ b/src/sbbs3/login.cpp @@ -147,7 +147,7 @@ int sbbs_t::login(char *username, char *pw_prompt, const char* user_pw, const ch } #ifdef _WIN32 - if(startup->sound.login[0] && !(startup->options&BBS_OPT_MUTE)) + if(startup->sound.login[0] && !sound_muted(&cfg)) PlaySound(startup->sound.login, NULL, SND_ASYNC|SND_FILENAME); #endif @@ -173,7 +173,7 @@ void sbbs_t::badlogin(char* user, char* passwd, const char* protocol, xp_sockadd getnameinfo(&addr->addr, addr_len, host_name, sizeof(host_name), NULL, 0, NI_NAMEREQD); ::hacklog(&cfg, reason, user, passwd, host_name, addr); #ifdef _WIN32 - if(startup->sound.hack[0] && !(startup->options&BBS_OPT_MUTE)) + if(startup->sound.hack[0] && !sound_muted(&cfg)) PlaySound(startup->sound.hack, NULL, SND_ASYNC|SND_FILENAME); #endif } diff --git a/src/sbbs3/logout.cpp b/src/sbbs3/logout.cpp index d2df4e4d2242003b4945d74460bfd9676009bb85..25c7a07de80fbf6a346afb94884ed74746a09b4f 100644 --- a/src/sbbs3/logout.cpp +++ b/src/sbbs3/logout.cpp @@ -149,7 +149,7 @@ void sbbs_t::logout() answertime=now; // In case we're re-logging on #ifdef _WIN32 - if(startup->sound.logout[0] && !(startup->options&BBS_OPT_MUTE)) + if(startup->sound.logout[0] && !sound_muted(&cfg)) PlaySound(startup->sound.logout, NULL, SND_ASYNC|SND_FILENAME); #endif diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index 1134be59bff87c178f8bf1f37ec0027322446ae5..a2dd7d4c95997884839978b0ad8aad7f515dad2e 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -958,7 +958,7 @@ static void badlogin(SOCKET sock, CRYPT_SESSION sess, const char* prot, const ch if(startup->login_attempt.hack_threshold && count>=startup->login_attempt.hack_threshold) { hacklog(&scfg, reason, user, passwd, host, addr); #ifdef _WIN32 - if(startup->sound.hack[0] && !(startup->options&MAIL_OPT_MUTE)) + if(startup->sound.hack[0] && !sound_muted(&scfg)) PlaySound(startup->sound.hack, NULL, SND_ASYNC|SND_FILENAME); #endif } @@ -1028,7 +1028,7 @@ static void pop3_thread(void* arg) lprintf(LOG_DEBUG,"%04d %s session thread started", socket, client.protocol); #ifdef _WIN32 - if(startup->pop3_sound[0] && !(startup->options&MAIL_OPT_MUTE)) + if(startup->pop3_sound[0] && !sound_muted(&scfg)) PlaySound(startup->pop3_sound, NULL, SND_ASYNC|SND_FILENAME); #endif @@ -1344,7 +1344,7 @@ static void pop3_thread(void* arg) SAFEPRINTF2(str,"%s: %s", client.protocol, user.alias); status(str); #ifdef _WIN32 - if(startup->sound.login[0] && !(startup->options&MAIL_OPT_MUTE)) + if(startup->sound.login[0] && !sound_muted(&scfg)) PlaySound(startup->sound.login, NULL, SND_ASYNC|SND_FILENAME); #endif SAFEPRINTF(smb.file,"%smail",scfg.data_dir); @@ -1715,7 +1715,7 @@ static void pop3_thread(void* arg) } if(user.number) { #ifdef _WIN32 - if(startup->sound.logout[0] && !(startup->options&MAIL_OPT_MUTE)) + if(startup->sound.logout[0] && !sound_muted(&scfg)) PlaySound(startup->sound.logout, NULL, SND_ASYNC|SND_FILENAME); #endif if(!logoutuserdat(&scfg,&user,time(NULL),client.time)) @@ -2935,7 +2935,7 @@ static void smtp_thread(void* arg) lprintf(LOG_DEBUG,"%04d %s Session thread started", socket, client.protocol); #ifdef _WIN32 - if(startup->inbound_sound[0] && !(startup->options&MAIL_OPT_MUTE)) + if(startup->inbound_sound[0] && !sound_muted(&scfg)) PlaySound(startup->inbound_sound, NULL, SND_ASYNC|SND_FILENAME); #endif SAFEPRINTF(domain_list,"%sdomains.cfg",scfg.ctrl_dir); @@ -4218,7 +4218,7 @@ static void smtp_thread(void* arg) SAFEPRINTF(client_id, "<%s>", relay_user.alias); sockprintf(socket,client.protocol,session,auth_ok); #ifdef _WIN32 - if(startup->sound.login[0] && !(startup->options&MAIL_OPT_MUTE)) + if(startup->sound.login[0] && !sound_muted(&scfg)) PlaySound(startup->sound.login, NULL, SND_ASYNC|SND_FILENAME); #endif continue; @@ -4316,7 +4316,7 @@ static void smtp_thread(void* arg) SAFEPRINTF(client_id, "<%s>", relay_user.alias); sockprintf(socket,client.protocol,session,auth_ok); #ifdef _WIN32 - if(startup->sound.login[0] && !(startup->options&MAIL_OPT_MUTE)) + if(startup->sound.login[0] && !sound_muted(&scfg)) PlaySound(startup->sound.login, NULL, SND_ASYNC|SND_FILENAME); #endif continue; @@ -5037,7 +5037,7 @@ static void smtp_thread(void* arg) #ifdef _WIN32 if(relay_user.number) { - if(startup->sound.logout[0] && !(startup->options&MAIL_OPT_MUTE)) + if(startup->sound.logout[0] && !sound_muted(&scfg)) PlaySound(startup->sound.logout, NULL, SND_ASYNC|SND_FILENAME); } #endif @@ -5605,7 +5605,7 @@ static void sendmail_thread(void* arg) SAFEPRINTF2(str,"Sending (%u of %u)", u+1, msgs); status(str); #ifdef _WIN32 - if(startup->outbound_sound[0] && !(startup->options&MAIL_OPT_MUTE)) + if(startup->outbound_sound[0] && !sound_muted(&scfg)) PlaySound(startup->outbound_sound, NULL, SND_ASYNC|SND_FILENAME); #endif diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 3e9c2ca292d40e0f17709f7dd4cae8d262dccf3d..c397eaafb4ecc7a15b88ca9bad32232a4c043c15 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -4386,7 +4386,7 @@ void node_thread(void* arg) } #ifdef _WIN32 - if(startup->sound.hangup[0] && !(startup->options&BBS_OPT_MUTE)) + if(startup->sound.hangup[0] && !sound_muted(&scfg)) PlaySound(startup->sound.hangup, NULL, SND_ASYNC|SND_FILENAME); #endif @@ -5337,7 +5337,7 @@ NO_SSH: } #ifdef _WIN32 - if(startup->sound.answer[0] && !(startup->options&BBS_OPT_MUTE)) + if(startup->sound.answer[0] && !sound_muted(&scfg)) PlaySound(startup->sound.answer, NULL, SND_ASYNC|SND_FILENAME); #endif diff --git a/src/sbbs3/ntsvcs.c b/src/sbbs3/ntsvcs.c index 97083e4076db135280524ab1c4c8cc0b65155522..6e55acf4dd34ca60f9b4821a2bf3d3787f01c0cf 100644 --- a/src/sbbs3/ntsvcs.c +++ b/src/sbbs3/ntsvcs.c @@ -185,12 +185,6 @@ static void svc_ctrl_handler(sbbs_ntsvc_t* svc, DWORD dwCtrlCode) case SERVICE_CONTROL_RECYCLE: *svc->recycle_now=TRUE; break; - case SERVICE_CONTROL_MUTE: - *svc->options|=BBS_OPT_MUTE; - break; - case SERVICE_CONTROL_UNMUTE: - *svc->options&=~BBS_OPT_MUTE; - break; case SERVICE_CONTROL_STOP: case SERVICE_CONTROL_SHUTDOWN: svc->terminate(); @@ -632,14 +626,6 @@ static const char* control_desc(DWORD ctrl) /* Synchronet-specific */ case SERVICE_CONTROL_RECYCLE: return("Recycling"); - case SERVICE_CONTROL_MUTE: - return("Muting"); - case SERVICE_CONTROL_UNMUTE: - return("Un-muting"); - case SERVICE_CONTROL_SYSOP_AVAILABLE: - return("Sysop Available"); - case SERVICE_CONTROL_SYSOP_UNAVAILABLE: - return("Sysop Unavailable"); } SAFEPRINTF(str,"Control: %d", ctrl); return(str); @@ -1304,12 +1290,6 @@ int main(int argc, char** argv) if(!stricmp(arg,"recycle")) return control(argv[i+1],SERVICE_CONTROL_RECYCLE); - - if(!stricmp(arg,"mute")) - return control(argv[i+1],SERVICE_CONTROL_MUTE); - - if(!stricmp(arg,"unmute")) - return control(argv[i+1],SERVICE_CONTROL_UNMUTE); } if(start_services) { @@ -1341,8 +1321,6 @@ int main(int argc, char** argv) printf("%-20s %s\n","start","to start services"); printf("%-20s %s\n","stop","to stop services"); printf("%-20s %s\n","recycle","to recycle services"); - printf("%-20s %s\n","mute","to mute (sounds of) services"); - printf("%-20s %s\n","unmute","to unmute (sounds of) services"); printf("\nAvailable Services:\n\n"); printf("%-20s %s\n","Name","Description"); diff --git a/src/sbbs3/ntsvcs.h b/src/sbbs3/ntsvcs.h index ee124af77bdc1129ba723c33cf4fb7df0947ccda..9a2fa2c8a0ad1d53b8507a29e9a609583d42fdc2 100644 --- a/src/sbbs3/ntsvcs.h +++ b/src/sbbs3/ntsvcs.h @@ -1,7 +1,5 @@ /* Synchronet BBS Windows NT Service Names */ -/* $Id: ntsvcs.h,v 1.7 2018/03/20 03:36:11 rswindell Exp $ */ - /**************************************************************************** * @format.tab-size 4 (Plain Text/Source Code File Header) * * @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) * @@ -15,21 +13,9 @@ * See the GNU General Public License for more details: gpl.txt or * * http://www.fsf.org/copyleft/gpl.html * * * - * Anonymous FTP access to the most recent released source is available at * - * ftp://vert.synchro.net, ftp://cvs.synchro.net and ftp://ftp.synchro.net * - * * - * Anonymous CVS access to the development source and modification history * - * is available at cvs.synchro.net:/cvsroot/sbbs, example: * - * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs login * - * (just hit return, no password is necessary) * - * cvs -d :pserver:anonymous@cvs.synchro.net:/cvsroot/sbbs checkout src * - * * * For Synchronet coding style and modification guidelines, see * * http://www.synchro.net/source.html * * * - * You are encouraged to submit any modifications (preferably in Unix diff * - * format) via e-mail to mods@synchro.net * - * * * Note: If this box doesn't appear square, then you need to fix your tabs. * ****************************************************************************/ @@ -46,10 +32,6 @@ /* User-defined control codes */ enum { SERVICE_CONTROL_RECYCLE=128 - ,SERVICE_CONTROL_MUTE - ,SERVICE_CONTROL_UNMUTE - ,SERVICE_CONTROL_SYSOP_AVAILABLE /* BBS service only */ - ,SERVICE_CONTROL_SYSOP_UNAVAILABLE /* BBS service only */ }; typedef struct { @@ -59,4 +41,4 @@ typedef struct { uint32_t repeated; } log_msg_t; -#endif /* Don't add anything after this line */ \ No newline at end of file +#endif /* Don't add anything after this line */ diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c index 30b5aa81dda88914d274b39168ba563ba62f2596..f2b0bc384f99af3b46fe262a104da2c089e88e96 100644 --- a/src/sbbs3/services.c +++ b/src/sbbs3/services.c @@ -326,7 +326,7 @@ static void badlogin(SOCKET sock, char* prot, char* user, char* passwd, char* ho if(startup->login_attempt.hack_threshold && count>=startup->login_attempt.hack_threshold) { hacklog(&scfg, reason, user, passwd, host, addr); #ifdef _WIN32 - if(startup->sound.hack[0] && !(startup->options&BBS_OPT_MUTE)) + if(startup->sound.hack[0] && !sound_muted(&scfg)) PlaySound(startup->sound.hack, NULL, SND_ASYNC|SND_FILENAME); #endif } @@ -460,7 +460,7 @@ js_login(JSContext *cx, uintN argc, jsval *arglist) JS_SET_RVAL(cx, arglist,BOOLEAN_TO_JSVAL(JS_TRUE)); #ifdef _WIN32 - if(startup->sound.login[0] && !(startup->options&BBS_OPT_MUTE) + if(startup->sound.login[0] && !sound_muted(&scfg) && !(service->options&BBS_OPT_MUTE)) PlaySound(startup->sound.login, NULL, SND_ASYNC|SND_FILENAME); #endif @@ -1189,7 +1189,7 @@ static void js_service_thread(void* arg) logoutuserdat(&scfg,&service_client.user,time(NULL),service_client.logintime); #ifdef _WIN32 - if(startup->sound.logout[0] && !(startup->options&BBS_OPT_MUTE) + if(startup->sound.logout[0] && !sound_muted(&scfg) && !(service->options&BBS_OPT_MUTE)) PlaySound(startup->sound.logout, NULL, SND_ASYNC|SND_FILENAME); #endif @@ -1200,7 +1200,7 @@ static void js_service_thread(void* arg) update_clients(); #ifdef _WIN32 - if(startup->sound.hangup[0] && !(startup->options&BBS_OPT_MUTE) + if(startup->sound.hangup[0] && !sound_muted(&scfg) && !(service->options&BBS_OPT_MUTE)) PlaySound(startup->sound.hangup, NULL, SND_ASYNC|SND_FILENAME); #endif @@ -1522,7 +1522,7 @@ static void native_service_thread(void* arg) update_clients(); #ifdef _WIN32 - if(startup->sound.hangup[0] && !(startup->options&BBS_OPT_MUTE) + if(startup->sound.hangup[0] && !sound_muted(&scfg) && !(service->options&BBS_OPT_MUTE)) PlaySound(startup->sound.hangup, NULL, SND_ASYNC|SND_FILENAME); #endif @@ -2292,7 +2292,7 @@ void services_thread(void* arg) } #ifdef _WIN32 - if(startup->sound.answer[0] && !(startup->options&BBS_OPT_MUTE) + if(startup->sound.answer[0] && !sound_muted(&scfg) && !(service[i].options&BBS_OPT_MUTE)) PlaySound(startup->sound.answer, NULL, SND_ASYNC|SND_FILENAME); #endif diff --git a/src/sbbs3/startup.h b/src/sbbs3/startup.h index a4365ce55ab57be737b2421acb6d284798a0a171..6c0c5cba3f7e41e0a7ff909bf1eb2fc9b5ec5e2e 100644 --- a/src/sbbs3/startup.h +++ b/src/sbbs3/startup.h @@ -185,12 +185,12 @@ static struct init_field { #define BBS_OPT_ALLOW_SSH (1<<12) /* Allow logins via BSD SSH */ #define BBS_OPT_NO_DOS (1<<13) /* Don't attempt to run 16-bit DOS programs */ #define BBS_OPT_NO_NEWDAY_EVENTS (1<<14) /* Don't check for a new day in event thread */ -#define BBS_OPT_NO_TELNET (1<<15) /* Don't accept incoming telnet connections */ +#define BBS_OPT_NO_TELNET (1<<15) /* Don't accept incoming telnet connections */ #define BBS_OPT_HAPROXY_PROTO (1<<26) /* Incoming requests are via HAproxy */ #define BBS_OPT_NO_RECYCLE (1<<27) /* Disable recycling of server */ #define BBS_OPT_GET_IDENT (1<<28) /* Get Identity (RFC 1413) */ -#define BBS_OPT_NO_JAVASCRIPT (1<<29) /* JavaScript disabled */ -#define BBS_OPT_MUTE (1<<31) /* Mute sounds */ +#define BBS_OPT_NO_JAVASCRIPT (1<<29) /* JavaScript disabled - Not supported */ +#define BBS_OPT_MUTE (1<<31) /* Mute sounds - DEPRECATED (controlled via semfile) */ /* bbs_startup_t.options bits that require re-init/recycle when changed */ #define BBS_INIT_OPTS (BBS_OPT_ALLOW_RLOGIN|BBS_OPT_ALLOW_SSH|BBS_OPT_NO_EVENTS|BBS_OPT_NO_SPY_SOCKETS \ diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c index 41304af1d0074f23cf9e5c996587fd9b84c27e81..83a1c87b711c5cba5418c52ac8f6dbaa2f262748 100644 --- a/src/sbbs3/userdat.c +++ b/src/sbbs3/userdat.c @@ -3688,6 +3688,25 @@ BOOL set_sysop_availability(scfg_t* scfg, BOOL available) return remove(sysop_available_semfile(scfg)) == 0; } +static char* sound_muted_semfile(scfg_t* scfg) +{ + static char semfile[MAX_PATH+1]; + SAFEPRINTF(semfile, "%ssound.muted", scfg->ctrl_dir); + return semfile; +} + +BOOL sound_muted(scfg_t* scfg) +{ + return fexist(sound_muted_semfile(scfg)); +} + +BOOL set_sound_muted(scfg_t* scfg, BOOL muted) +{ + if(muted) + return ftouch(sound_muted_semfile(scfg)); + return remove(sound_muted_semfile(scfg)) == 0; +} + /************************************/ /* user .ini file get/set functions */ /************************************/ diff --git a/src/sbbs3/userdat.h b/src/sbbs3/userdat.h index 9dc1d7915f344a0e30370550440c64759a69213e..4155e9c9d2db90b2bc4b952dba8505dc8d175c44 100644 --- a/src/sbbs3/userdat.h +++ b/src/sbbs3/userdat.h @@ -128,6 +128,8 @@ DLLEXPORT time_t gettimeleft(scfg_t*, user_t*, time_t starttime); DLLEXPORT BOOL check_name(scfg_t*, const char* name); DLLEXPORT BOOL sysop_available(scfg_t*); DLLEXPORT BOOL set_sysop_availability(scfg_t*, BOOL available); +DLLEXPORT BOOL sound_muted(scfg_t*); +DLLEXPORT BOOL set_sound_muted(scfg_t*, BOOL muted); DLLEXPORT int lookup_user(scfg_t*, link_list_t*, const char* name); diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c index 1674fed09d3d9f2c66fd8611cd4beadb72b3c795..616024a914a2349cb7f64e2cba1ff560620a8804 100644 --- a/src/sbbs3/websrvr.c +++ b/src/sbbs3/websrvr.c @@ -1619,7 +1619,7 @@ void http_logoff(http_session_t* session, SOCKET socket, int line) session->last_user_num=session->user.number; #ifdef _WIN32 - if(startup->sound.logout[0] && !(startup->options&BBS_OPT_MUTE)) + if(startup->sound.logout[0] && !sound_muted(&scfg)) PlaySound(startup->sound.logout, NULL, SND_ASYNC|SND_FILENAME); #endif } @@ -1847,7 +1847,7 @@ static void badlogin(SOCKET sock, const char* prot, const char* user, const char if(startup->login_attempt.hack_threshold && count>=startup->login_attempt.hack_threshold) { hacklog(&scfg, reason, user, passwd, host, addr); #ifdef _WIN32 - if(startup->sound.hack[0] && !(startup->options&BBS_OPT_MUTE)) + if(startup->sound.hack[0] && !sound_muted(&scfg)) PlaySound(startup->sound.hack, NULL, SND_ASYNC|SND_FILENAME); #endif } @@ -2015,7 +2015,7 @@ static BOOL check_ars(http_session_t * session) ,session->socket,session->req.auth.username,session->req.ars); #ifdef _WIN32 - if(startup->sound.hack[0] && !(startup->options&BBS_OPT_MUTE)) + if(startup->sound.hack[0] && !sound_muted(&scfg)) PlaySound(startup->sound.hack, NULL, SND_ASYNC|SND_FILENAME); #endif @@ -5447,7 +5447,7 @@ js_login(JSContext *cx, uintN argc, jsval *arglist) JS_SET_RVAL(cx, arglist,BOOLEAN_TO_JSVAL(JS_TRUE)); #ifdef _WIN32 - if(startup->sound.login[0] && !(startup->options&BBS_OPT_MUTE)) + if(startup->sound.login[0] && !sound_muted(&scfg)) PlaySound(startup->sound.login, NULL, SND_ASYNC|SND_FILENAME); #endif @@ -6383,7 +6383,7 @@ void http_session_thread(void* arg) lprintf(LOG_DEBUG,"%04d !!! DANGER WILL ROBINSON, DANGER !!!", session.socket); #ifdef _WIN32 - if(startup->sound.answer[0] && !(startup->options&BBS_OPT_MUTE)) + if(startup->sound.answer[0] && !sound_muted(&scfg)) PlaySound(startup->sound.answer, NULL, SND_ASYNC|SND_FILENAME); #endif @@ -6621,7 +6621,7 @@ void http_session_thread(void* arg) } #ifdef _WIN32 - if(startup->sound.hangup[0] && !(startup->options&BBS_OPT_MUTE)) + if(startup->sound.hangup[0] && !sound_muted(&scfg)) PlaySound(startup->sound.hangup, NULL, SND_ASYNC|SND_FILENAME); #endif