扩容
This commit is contained in:
parent
76aa2999c2
commit
fdc82633e4
@ -12,6 +12,8 @@
|
||||
#include "ss_proto.pb.h"
|
||||
#include "handlermgr.h"
|
||||
|
||||
const int PACK_MAX = 1024 * 1024 * 10;
|
||||
|
||||
class GSClientSession: public a8::MixedSession
|
||||
{
|
||||
public:
|
||||
@ -24,10 +26,10 @@ public:
|
||||
is_activite = true;
|
||||
#endif
|
||||
bool warning = false;
|
||||
while (buflen - offset >= sizeof(f8::PackHead)) {
|
||||
f8::PackHead* p = (f8::PackHead*)&buf[offset];
|
||||
while (buflen - offset >= sizeof(f8::BigPackHead)) {
|
||||
f8::BigPackHead* p = (f8::BigPackHead*)&buf[offset];
|
||||
if (p->magic_code == f8::MAGIC_CODE) {
|
||||
if (buflen - offset < sizeof(f8::PackHead) + p->packlen) {
|
||||
if (buflen - offset < sizeof(f8::BigPackHead) + p->packlen) {
|
||||
break;
|
||||
}
|
||||
App::Instance()->AddSocketMsg(SF_GameServer,
|
||||
@ -35,9 +37,9 @@ public:
|
||||
saddr,
|
||||
p->msgid,
|
||||
p->seqid,
|
||||
&buf[offset + sizeof(f8::PackHead)],
|
||||
&buf[offset + sizeof(f8::BigPackHead)],
|
||||
p->packlen);
|
||||
offset += sizeof(f8::PackHead) + p->packlen;
|
||||
offset += sizeof(f8::BigPackHead) + p->packlen;
|
||||
} else {
|
||||
warning = true;
|
||||
offset++;
|
||||
@ -75,6 +77,7 @@ public:
|
||||
static void CreateGameClientSocket(a8::TcpSession **p)
|
||||
{
|
||||
*p = new GSClientSession();
|
||||
(*p)->SetMaxPacketLen(PACK_MAX);
|
||||
}
|
||||
|
||||
static void GSListeneron_error(a8::TcpListener*, int type, int errorid)
|
||||
@ -101,18 +104,18 @@ void GSListener::UnInit()
|
||||
|
||||
void GSListener::ForwardTargetConnMsg(f8::MsgHdr& hdr)
|
||||
{
|
||||
char* buff = (char*)malloc(sizeof(f8::PackHead) + hdr.buflen);
|
||||
f8::PackHead* head = (f8::PackHead*)buff;
|
||||
char* buff = (char*)malloc(sizeof(f8::BigPackHead) + hdr.buflen);
|
||||
f8::BigPackHead* head = (f8::BigPackHead*)buff;
|
||||
head->packlen = hdr.buflen;
|
||||
head->msgid = hdr.msgid;
|
||||
head->seqid = hdr.seqid;
|
||||
head->magic_code = f8::MAGIC_CODE;
|
||||
head->rpc_error_code = 0;
|
||||
if (hdr.buflen > 0) {
|
||||
memmove(buff + sizeof(f8::PackHead), hdr.buf, hdr.buflen);
|
||||
memmove(buff + sizeof(f8::BigPackHead), hdr.buf, hdr.buflen);
|
||||
}
|
||||
|
||||
tcp_listener_->SendClientMsg(hdr.socket_handle, buff, sizeof(f8::PackHead) + head->packlen);
|
||||
tcp_listener_->SendClientMsg(hdr.socket_handle, buff, sizeof(f8::BigPackHead) + head->packlen);
|
||||
free(buff);
|
||||
}
|
||||
|
||||
|
2
third_party/a8engine
vendored
2
third_party/a8engine
vendored
@ -1 +1 @@
|
||||
Subproject commit bc1e1e002cdfbbac07abdf14151afb0bbd8025a8
|
||||
Subproject commit ff8c00652d5367595c4adee8f95306ae1a46236b
|
2
third_party/framework
vendored
2
third_party/framework
vendored
@ -1 +1 @@
|
||||
Subproject commit 18133846b6672634219c080064b7a24720d17588
|
||||
Subproject commit fd72ea56059dc8545920e33d436dad5a1d3700fb
|
Loading…
x
Reference in New Issue
Block a user