git.stg.codes
/
stg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix tests for inclusive fee charge rules
[stg.git]
/
projects
/
sgauth
/
web.cpp
diff --git
a/projects/sgauth/web.cpp
b/projects/sgauth/web.cpp
index caec33a00391cf0ff2b5e61810d36982391a3f17..61cd2b5846211b4840465dde392c84db9ba62f2c 100644
(file)
--- a/
projects/sgauth/web.cpp
+++ b/
projects/sgauth/web.cpp
@@
-23,14
+23,16
@@
$Date: 2010/03/15 12:58:17 $
*/
$Date: 2010/03/15 12:58:17 $
*/
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
#include <libintl.h>
#include <libintl.h>
+#include <csignal>
+#include <cstdio>
+#include <cstring>
+#include <ctime>
+
+#include "stg/common.h"
+#include "stg/ia.h"
#include "web.h"
#include "web.h"
-#include "common.h"
-#include "ia_auth_c.h"
extern WEB * web;
extern IA_CLIENT_PROT * clnp;
extern WEB * web;
extern IA_CLIENT_PROT * clnp;
@@
-42,10
+44,15
@@
extern IA_CLIENT_PROT * clnp;
//---------------------------------------------------------------------------
#ifndef WIN32
void * RunWeb(void *)
//---------------------------------------------------------------------------
#ifndef WIN32
void * RunWeb(void *)
+{
+sigset_t signalSet;
+sigfillset(&signalSet);
+pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
+
#else
unsigned long WINAPI RunWeb(void *)
#else
unsigned long WINAPI RunWeb(void *)
-#endif
{
{
+#endif
while (1)
web->Run();
return NULL;
while (1)
web->Run();
return NULL;
@@
-56,8
+63,7
@@
WEB::WEB()
listenSocket(0),
outerSocket(0),
refreshPeriod(0),
listenSocket(0),
outerSocket(0),
refreshPeriod(0),
- listenWebAddr(0),
- outerAddrLen(0)
+ listenWebAddr(0)
{
#ifdef WIN32
res = WSAStartup(MAKEWORD(2,0), &wsaData);
{
#ifdef WIN32
res = WSAStartup(MAKEWORD(2,0), &wsaData);
@@
-67,6
+73,8
@@
for (int i = 0; i < DIR_NUM; i++)
dirName[i] = "-";
refreshPeriod = 5;
dirName[i] = "-";
refreshPeriod = 5;
+
+memset(&ls, 0, sizeof(ls));
}
//---------------------------------------------------------------------------
void WEB::Start()
}
//---------------------------------------------------------------------------
void WEB::Start()
@@
-89,13
+97,14
@@
pthread_create(&thread, NULL, RunWeb, NULL);
void WEB::PrepareNet()
{
listenSocket = socket(PF_INET, SOCK_STREAM, 0);
void WEB::PrepareNet()
{
listenSocket = socket(PF_INET, SOCK_STREAM, 0);
+
+struct sockaddr_in listenAddr;
listenAddr.sin_family = AF_INET;
listenAddr.sin_port = htons(LISTEN_PORT);
listenAddr.sin_addr.s_addr = listenWebAddr;
listenAddr.sin_family = AF_INET;
listenAddr.sin_port = htons(LISTEN_PORT);
listenAddr.sin_addr.s_addr = listenWebAddr;
-int lng = 1;
-
#ifndef WIN32
#ifndef WIN32
+int lng = 1;
if (0 != setsockopt(listenSocket, SOL_SOCKET, SO_REUSEADDR, &lng, 4))
{
printf("Setsockopt Fail\n");
if (0 != setsockopt(listenSocket, SOL_SOCKET, SO_REUSEADDR, &lng, 4))
{
printf("Setsockopt Fail\n");
@@
-120,8
+129,6
@@
if (res == -1)
printf("Listen failed.\n");
exit(0);
}
printf("Listen failed.\n");
exit(0);
}
-
-outerAddrLen = sizeof(outerAddr);
}
//---------------------------------------------------------------------------
void WEB::SetRefreshPagePeriod(int p)
}
//---------------------------------------------------------------------------
void WEB::SetRefreshPagePeriod(int p)
@@
-142,6
+149,14
@@
PrepareNet();
char recvBuffer[4096];
while (1)
{
char recvBuffer[4096];
while (1)
{
+ struct sockaddr_in outerAddr;
+
+ #ifndef WIN32
+ socklen_t outerAddrLen = sizeof(outerAddr);
+ #else
+ int outerAddrLen = sizeof(outerAddr);
+ #endif
+
outerSocket = accept(listenSocket, (struct sockaddr*)&outerAddr, &outerAddrLen);
if (outerSocket == -1)
{
outerSocket = accept(listenSocket, (struct sockaddr*)&outerAddr, &outerAddrLen);
if (outerSocket == -1)
{
@@
-174,7
+189,8
@@
while (1)
#ifdef WIN32
Sleep(1000);
#else
#ifdef WIN32
Sleep(1000);
#else
- usleep(1000000);
+ struct timespec ts = {1, 0};
+ nanosleep(&ts, NULL);
#endif
exit(0);
}
#endif
exit(0);
}