From a04438fdc52112947741d8af9aede762f1de7dc3 Mon Sep 17 00:00:00 2001 From: Volker Fischer Date: Mon, 11 Feb 2013 20:24:38 +0000 Subject: [PATCH] support for server welcome message on connect (enabled via a command line argument) --- src/main.cpp | 20 +++++++++++++++++++- src/server.cpp | 15 ++++++++++++++- src/server.h | 4 ++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index c043f09f..f9344082 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -69,6 +69,7 @@ int main ( int argc, char** argv ) QString strHistoryFileName = ""; QString strCentralServer = ""; QString strServerInfo = ""; + QString strWelcomeMessage = ""; // QT docu: argv()[0] is the program name, argv()[1] is the first // argument and argv()[argc()-1] is the last argument. @@ -159,7 +160,7 @@ int main ( int argc, char** argv ) // Show all registered servers in the server list ---------------------- // Undocumented debugging command line argument: Show all registered // servers in the server list regardless if a ping to the server is - // possible or not + // possible or not. if ( GetFlagArgument ( argv, i, "--showallservers", // no short form @@ -276,6 +277,21 @@ int main ( int argc, char** argv ) } + // Server welcome message ---------------------------------------------- + if ( GetStringArgument ( tsConsole, + argc, + argv, + i, + "-w", + "--welcomemessage", + strArgument ) ) + { + strWelcomeMessage = strArgument; + tsConsole << "- welcome message: " << strWelcomeMessage << endl; + continue; + } + + // Initialization file ------------------------------------------------- if ( GetStringArgument ( tsConsole, argc, @@ -400,6 +416,7 @@ int main ( int argc, char** argv ) strServerName, strCentralServer, strServerInfo, + strWelcomeMessage, bCentServPingServerInList ); if ( bUseGUI ) @@ -501,6 +518,7 @@ QString UsageArguments ( char **argv ) " -p, --port local port number (server only)\n" " -s, --server start server\n" " -u, --numchannels maximum number of channels (server only)\n" + " -w, --welcomemessage welcome message on connect (server only)\n" " -y, --history enable connection history and set file\n" " name (server only)\n" " -z, --startminimized start minimizied (server only)\n" diff --git a/src/server.cpp b/src/server.cpp index d879e9c3..f470134b 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -172,6 +172,7 @@ CServer::CServer ( const int iNewNumChan, const QString& strServerNameForHTMLStatusFile, const QString& strCentralServer, const QString& strServerInfo, + const QString& strNewWelcomeMessage, const bool bNCentServPingServerInList ) : iNumChannels ( iNewNumChan ), Socket ( this, iPortNumber ), @@ -182,7 +183,8 @@ CServer::CServer ( const int iNewNumChan, iNewNumChan, bNCentServPingServerInList, &ConnLessProtocol ), - bAutoRunMinimized ( false ) + bAutoRunMinimized ( false ), + strWelcomeMessage ( strNewWelcomeMessage ) { int i; @@ -1123,6 +1125,17 @@ bool CServer::PutData ( const CVector& vecbyRecBuf, // since old versions of the llcon software did not implement the channel name // request message, we have to explicitely send the channel list here CreateAndSendChanListForAllConChannels(); + + // send welcome message (if enabled) + if ( !strWelcomeMessage.isEmpty() ) + { + // create formated server welcome message and send it just to + // the client which just connected to the server + const QString strWelcomeMessageFormated = + "Server Welcome Message: " + strWelcomeMessage; + + vecChannels[iCurChanID].CreateChatTextMes ( strWelcomeMessageFormated ); + } } } Mutex.unlock(); diff --git a/src/server.h b/src/server.h index a7b39a0f..5784599d 100755 --- a/src/server.h +++ b/src/server.h @@ -111,6 +111,7 @@ public: const QString& strServerNameForHTMLStatusFile, const QString& strCentralServer, const QString& strServerInfo, + const QString& strNewWelcomeMessage, const bool bNCentServPingServerInList ); void Start(); @@ -234,6 +235,9 @@ protected: // GUI settings bool bAutoRunMinimized; + // messaging + QString strWelcomeMessage; + signals: void Started(); void Stopped();