git.stg.codes
/
stg.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
GetPlugin should be extern "C".
[stg.git]
/
projects
/
sgauthstress
/
proto.cpp
diff --git
a/projects/sgauthstress/proto.cpp
b/projects/sgauthstress/proto.cpp
index 2e97fd2a0990c165c8d3089a0096866440f1a722..3150002ddbd8dc0c163b54a993055d6313d47118 100644
(file)
--- a/
projects/sgauthstress/proto.cpp
+++ b/
projects/sgauthstress/proto.cpp
@@
-1,6
+1,10
@@
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <arpa/inet.h>
+#include <csignal>
#include <cerrno>
#include <cstring>
#include <cassert>
#include <cerrno>
#include <cstring>
#include <cassert>
@@
-77,6
+81,10
@@
pthread_mutex_destroy(&mutex);
void * PROTO::Runner(void * data)
{
void * PROTO::Runner(void * data)
{
+sigset_t signalSet;
+sigfillset(&signalSet);
+pthread_sigmask(SIG_BLOCK, &signalSet, NULL);
+
PROTO * protoPtr = static_cast<PROTO *>(data);
protoPtr->Run();
return NULL;
PROTO * protoPtr = static_cast<PROTO *>(data);
protoPtr->Run();
return NULL;
@@
-126,7
+134,7
@@
return true;
void PROTO::AddUser(const USER & user, bool connect)
{
void PROTO::AddUser(const USER & user, bool connect)
{
-STG_LOCKER lock(&mutex
, __FILE__, __LINE__
);
+STG_LOCKER lock(&mutex);
users.push_back(std::make_pair(user.GetIP(), user));
users.back().second.InitNetwork();
users.push_back(std::make_pair(user.GetIP(), user));
users.back().second.InitNetwork();
@@
-145,7
+153,7
@@
if (connect)
bool PROTO::Connect(uint32_t ip)
{
std::list<std::pair<uint32_t, USER> >::iterator it;
bool PROTO::Connect(uint32_t ip)
{
std::list<std::pair<uint32_t, USER> >::iterator it;
-STG_LOCKER lock(&mutex
, __FILE__, __LINE__
);
+STG_LOCKER lock(&mutex);
it = std::find_if(users.begin(), users.end(), HasIP(ip));
if (it == users.end())
return false;
it = std::find_if(users.begin(), users.end(), HasIP(ip));
if (it == users.end())
return false;
@@
-158,7
+166,7
@@
return RealConnect(&it->second);
bool PROTO::Disconnect(uint32_t ip)
{
std::list<std::pair<uint32_t, USER> >::iterator it;
bool PROTO::Disconnect(uint32_t ip)
{
std::list<std::pair<uint32_t, USER> >::iterator it;
-STG_LOCKER lock(&mutex
, __FILE__, __LINE__
);
+STG_LOCKER lock(&mutex);
it = std::find_if(users.begin(), users.end(), HasIP(ip));
if (it == users.end())
return false;
it = std::find_if(users.begin(), users.end(), HasIP(ip));
if (it == users.end())
return false;
@@
-174,7
+182,7
@@
while (running)
{
int res;
{
{
int res;
{
- STG_LOCKER lock(&mutex
, __FILE__, __LINE__
);
+ STG_LOCKER lock(&mutex);
res = poll(&pollFds.front(), pollFds.size(), timeout);
}
if (res < 0)
res = poll(&pollFds.front(), pollFds.size(), timeout);
}
if (res < 0)
@@
-197,7
+205,7
@@
stopped = true;
void PROTO::CheckTimeouts()
{
void PROTO::CheckTimeouts()
{
-STG_LOCKER lock(&mutex
, __FILE__, __LINE__
);
+STG_LOCKER lock(&mutex);
std::list<std::pair<uint32_t, USER> >::iterator it;
for (it = users.begin(); it != users.end(); ++it)
{
std::list<std::pair<uint32_t, USER> >::iterator it;
for (it = users.begin(); it != users.end(); ++it)
{
@@
-222,7
+230,7
@@
bool PROTO::RecvPacket()
bool result = true;
std::vector<struct pollfd>::iterator it;
std::list<std::pair<uint32_t, USER> >::iterator userIt;
bool result = true;
std::vector<struct pollfd>::iterator it;
std::list<std::pair<uint32_t, USER> >::iterator userIt;
-STG_LOCKER lock(&mutex
, __FILE__, __LINE__
);
+STG_LOCKER lock(&mutex);
for (it = pollFds.begin(), userIt = users.begin(); it != pollFds.end() && userIt != users.end(); ++it, ++userIt)
{
if (it->revents)
for (it = pollFds.begin(), userIt = users.begin(); it != pollFds.end() && userIt != users.end(); ++it, ++userIt)
{
if (it->revents)
@@
-381,11
+389,8
@@
bool PROTO::INFO_Proc(const void * buffer, USER * user)
return true;
}
return true;
}
-bool PROTO::ERR_Proc(const void *
buffer
, USER * user)
+bool PROTO::ERR_Proc(const void *
/*buffer*/
, USER * user)
{
{
-const ERR_8 * packet = static_cast<const ERR_8 *>(buffer);
-const char * ptr = static_cast<const char *>(buffer);
-
//uint32_t len = packet->len;
#ifdef ARCH_BE
//uint32_t len = packet->len;
#ifdef ARCH_BE
@@
-502,7
+507,6
@@
hdr.protoVer[0] = 0;
hdr.protoVer[1] = 8; // IA_PROTO_VER
unsigned char buffer[2048];
hdr.protoVer[1] = 8; // IA_PROTO_VER
unsigned char buffer[2048];
-memset(buffer, 0, sizeof(buffer));
memcpy(buffer, packet, length);
memcpy(buffer, &hdr, sizeof(hdr));
memcpy(buffer, packet, length);
memcpy(buffer, &hdr, sizeof(hdr));