$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"
-#include "common.h"
-#include "ia_auth_c.h"
extern WEB * web;
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;
dirName[i] = "-";
refreshPeriod = 5;
+
+memset(&ls, 0, sizeof(ls));
}
//---------------------------------------------------------------------------
void WEB::Start()
#ifdef WIN32
Sleep(1000);
#else
- usleep(1000000);
+ struct timespec ts = {1, 0};
+ nanosleep(&ts, NULL);
#endif
exit(0);
}
{
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);
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)
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())
{
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;