42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
enet_uint32 events = ENET_SOCKET_WAIT_RECEIVE;
if (enet_socket_wait(mssock, &events, 0) >= 0 && events) {
int len = enet_socket_receive(mssock, NULL, &buf, 1);
if (len <= 0) {
enet_socket_destroy(mssock);
mssock = ENET_SOCKET_NULL;
return;
};
buf.data = ((char *)buf.data) + len;
((char *)buf.data)[0] = 0;
buf.dataLength -= len;
};
}
uchar *
stripheader(uchar *b)
{
char *s = strstr((char *)b, "\n\r\n");
if (!s)
s = strstr((char *)b, "\n\n");
return s ? (uchar *)s : b;
}
ENetAddress masterserver = {ENET_HOST_ANY, 80};
int updmaster = 0;
string masterbase;
string masterpath;
uchar masterrep[MAXTRANS];
ENetBuffer masterb;
void
updatemasterserver(int seconds)
{
if (seconds >
updmaster) // send alive signal to masterserver every hour of uptime
{
sprintf_sd(path)("%sregister.do?action=add", masterpath);
httpgetsend(masterserver, masterbase, path, "cubeserver",
"Cube Server");
masterrep[0] = 0;
masterb.data = masterrep;
masterb.dataLength = MAXTRANS - 1;
updmaster = seconds + 60 * 60;
};
}
void
checkmasterreply()
{
bool busy = mssock != ENET_SOCKET_NULL;
httpgetrecieve(masterb);
|
<
>
<
>
|
<
|
<
>
<
>
|
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
enet_uint32 events = ENET_SOCKET_WAIT_RECEIVE;
if (enet_socket_wait(mssock, &events, 0) >= 0 && events) {
int len = enet_socket_receive(mssock, NULL, &buf, 1);
if (len <= 0) {
enet_socket_destroy(mssock);
mssock = ENET_SOCKET_NULL;
return;
}
buf.data = ((char *)buf.data) + len;
((char *)buf.data)[0] = 0;
buf.dataLength -= len;
}
}
uchar *
stripheader(uchar *b)
{
char *s = strstr((char *)b, "\n\r\n");
if (!s)
s = strstr((char *)b, "\n\n");
return s ? (uchar *)s : b;
}
ENetAddress masterserver = { ENET_HOST_ANY, 80 };
int updmaster = 0;
string masterbase;
string masterpath;
uchar masterrep[MAXTRANS];
ENetBuffer masterb;
void
updatemasterserver(int seconds)
{
// send alive signal to masterserver every hour of uptime
if (seconds > updmaster) {
sprintf_sd(path)("%sregister.do?action=add", masterpath);
httpgetsend(masterserver, masterbase, path, "cubeserver",
"Cube Server");
masterrep[0] = 0;
masterb.data = masterrep;
masterb.dataLength = MAXTRANS - 1;
updmaster = seconds + 60 * 60;
}
}
void
checkmasterreply()
{
bool busy = mssock != ENET_SOCKET_NULL;
httpgetrecieve(masterb);
|
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
if (!mid)
mid = master;
strcpy_s(masterpath, mid);
strn0cpy(masterbase, master, mid - master + 1);
serverdesc = sdesc;
if (listen) {
ENetAddress address = {
ENET_HOST_ANY, CUBE_SERVINFO_PORT};
pongsock = enet_socket_create(
ENET_SOCKET_TYPE_DATAGRAM, &address);
if (pongsock == ENET_SOCKET_NULL)
fatal(@"could not create server info socket\n");
}
}
}
|
|
|
|
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
if (!mid)
mid = master;
strcpy_s(masterpath, mid);
strn0cpy(masterbase, master, mid - master + 1);
serverdesc = sdesc;
if (listen) {
ENetAddress address = { ENET_HOST_ANY,
CUBE_SERVINFO_PORT };
pongsock = enet_socket_create(
ENET_SOCKET_TYPE_DATAGRAM, &address);
if (pongsock == ENET_SOCKET_NULL)
fatal(@"could not create server info socket\n");
}
}
}
|