47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
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;
|
<
>
<
>
|
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
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;
|
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
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);
if (busy && mssock == ENET_SOCKET_NULL)
printf("masterserver reply: %s\n", stripheader(masterrep));
};
uchar *
retrieveservers(uchar *buf, int buflen)
{
sprintf_sd(path)("%sretrieve.do?item=list", masterpath);
httpgetsend(
masterserver, masterbase, path, "cubeserver", "Cube Server");
ENetBuffer eb;
buf[0] = 0;
eb.data = buf;
eb.dataLength = buflen - 1;
while (mssock != ENET_SOCKET_NULL)
httpgetrecieve(eb);
return stripheader(buf);
};
ENetSocket pongsock = ENET_SOCKET_NULL;
static OFString *serverdesc;
void
serverms(int mode, int numplayers, int minremain, OFString *smapname,
int seconds, bool isfull)
|
<
>
<
>
<
>
|
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
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);
if (busy && mssock == ENET_SOCKET_NULL)
printf("masterserver reply: %s\n", stripheader(masterrep));
}
uchar *
retrieveservers(uchar *buf, int buflen)
{
sprintf_sd(path)("%sretrieve.do?item=list", masterpath);
httpgetsend(
masterserver, masterbase, path, "cubeserver", "Cube Server");
ENetBuffer eb;
buf[0] = 0;
eb.data = buf;
eb.dataLength = buflen - 1;
while (mssock != ENET_SOCKET_NULL)
httpgetrecieve(eb);
return stripheader(buf);
}
ENetSocket pongsock = ENET_SOCKET_NULL;
static OFString *serverdesc;
void
serverms(int mode, int numplayers, int minremain, OFString *smapname,
int seconds, bool isfull)
|