X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/87587c0e1dd2c04e49e964b8d52146d95b7afac5..be1b46cc784e43cd28c5521bdcde79bd7463fb40:/projects/sgauth/web.cpp?ds=sidebyside

diff --git a/projects/sgauth/web.cpp b/projects/sgauth/web.cpp
index 6e2d4aca..a162acc4 100644
--- a/projects/sgauth/web.cpp
+++ b/projects/sgauth/web.cpp
@@ -23,11 +23,13 @@
  $Date: 2010/03/15 12:58:17 $
  */
 
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
 #include <libintl.h>
 
+#include <csignal>
+#include <cstdio>
+#include <cstring>
+#include <ctime>
+
 #include "stg/common.h"
 #include "stg/ia.h"
 #include "web.h"
@@ -42,10 +44,15 @@ extern IA_CLIENT_PROT * clnp;
 //---------------------------------------------------------------------------
 #ifndef WIN32
 void * RunWeb(void *)
+{
+sigset_t signalSet;
+sigfillset(&signalSet);
+pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
+
 #else
 unsigned long WINAPI RunWeb(void *)
-#endif
 {
+#endif
 while (1)
     web->Run();
 return NULL;
@@ -182,7 +189,8 @@ while (1)
         #ifdef WIN32
         Sleep(1000);
         #else
-        usleep(1000000);
+        struct timespec ts = {1, 0};
+        nanosleep(&ts, NULL);
         #endif
         exit(0);
         }
@@ -286,7 +294,7 @@ for (j = 0; j < DIR_NUM; j++)
     {
     if (dirName[j][0] == 0)
         continue;
-    string s;
+    std::string s;
     KOIToWin(dirName[j], &s);// +++++++++ sigsegv ==========   TODO too long dir name crashes sgauth
     sprintf(str, "       <TD id=\"TraffTableCaptionCell%d\">%s</TD>\n", rowNum++, s.c_str());
     send(outerSocket, str, strlen(str), 0);
@@ -350,7 +358,6 @@ res = send(outerSocket, str, strlen(str), 0);
 sprintf(str,"        <TD id=\"TraffTableDSCellC\">%s</TD>\n", gettext("Session Download"));
 res = send(outerSocket, str, strlen(str), 0);
 
-rowNum = 0;
 for (j = 0; j < DIR_NUM; j++)
     {
     if (dirName[j][0] == 0)
@@ -380,7 +387,7 @@ if (!messages.empty())
     sprintf(str,"        </TR>\n");
     send(outerSocket, str, strlen(str), 0);
 
-    list<STG_MESSAGE>::reverse_iterator it;
+    std::list<STG_MESSAGE>::reverse_iterator it;
     it = messages.rbegin();
     while (it != messages.rend())
         {
@@ -419,18 +426,18 @@ const char * replyHeader =
 const char * replyFooter= "\n\n";
 
 send(outerSocket, replyHeader, strlen(replyHeader), 0);
-send(outerSocket, css, strlen(css), 0);
+send(outerSocket, SGAuth::css, strlen(SGAuth::css), 0);
 send(outerSocket, replyFooter, strlen(replyFooter), 0);
 
 return 0;
 }
 //---------------------------------------------------------------------------
-void WEB::SetDirName(const string & dn, int n)
+void WEB::SetDirName(const std::string & dn, int n)
 {
 web->dirName[n] =  dn;
 }
 //---------------------------------------------------------------------------
-void WEB::AddMessage(const string & message, int type)
+void WEB::AddMessage(const std::string & message, int type)
 {
 time_t t = time(NULL);
 STG_MESSAGE m;