︙ | | | ︙ | |
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
if (resolverqueries.empty()) {
SDL_UnlockMutex(resolvermutex);
continue;
}
rt->query = resolverqueries.pop();
rt->starttime = lastmillis;
SDL_UnlockMutex(resolvermutex);
ENetAddress address = {ENET_HOST_ANY, CUBE_SERVINFO_PORT};
enet_address_set_host(&address, rt->query);
SDL_LockMutex(resolvermutex);
resolverresult &rr = resolverresults.add();
rr.query = rt->query;
rr.address = address;
rt->query = NULL;
rt->starttime = 0;
SDL_UnlockMutex(resolvermutex);
};
return 0;
}
void
resolverinit(int threads, int limit)
{
resolverlimit = limit;
|
|
<
>
|
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
if (resolverqueries.empty()) {
SDL_UnlockMutex(resolvermutex);
continue;
}
rt->query = resolverqueries.pop();
rt->starttime = lastmillis;
SDL_UnlockMutex(resolvermutex);
ENetAddress address = { ENET_HOST_ANY, CUBE_SERVINFO_PORT };
enet_address_set_host(&address, rt->query);
SDL_LockMutex(resolvermutex);
resolverresult &rr = resolverresults.add();
rr.query = rt->query;
rr.address = address;
rt->query = NULL;
rt->starttime = 0;
SDL_UnlockMutex(resolvermutex);
}
return 0;
}
void
resolverinit(int threads, int limit)
{
resolverlimit = limit;
|
︙ | | | ︙ | |
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
resolverthread &rt = resolverthreads[i];
if (rt.query) {
if (lastmillis - rt.starttime > resolverlimit) {
resolverstop(rt, true);
*name = rt.query;
SDL_UnlockMutex(resolvermutex);
return true;
};
};
}
SDL_UnlockMutex(resolvermutex);
return false;
}
struct serverinfo {
string name;
|
<
<
>
>
|
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
resolverthread &rt = resolverthreads[i];
if (rt.query) {
if (lastmillis - rt.starttime > resolverlimit) {
resolverstop(rt, true);
*name = rt.query;
SDL_UnlockMutex(resolvermutex);
return true;
}
}
}
SDL_UnlockMutex(resolvermutex);
return false;
}
struct serverinfo {
string name;
|
︙ | | | ︙ | |
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
lastinfo = lastmillis;
}
void
checkresolver()
{
char *name = NULL;
ENetAddress addr = {ENET_HOST_ANY, CUBE_SERVINFO_PORT};
while (resolvercheck(&name, &addr)) {
if (addr.host == ENET_HOST_ANY)
continue;
loopv(servers)
{
serverinfo &si = servers[i];
if (name == si.name) {
|
|
|
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
lastinfo = lastmillis;
}
void
checkresolver()
{
char *name = NULL;
ENetAddress addr = { ENET_HOST_ANY, CUBE_SERVINFO_PORT };
while (resolvercheck(&name, &addr)) {
if (addr.host == ENET_HOST_ANY)
continue;
loopv(servers)
{
serverinfo &si = servers[i];
if (name == si.name) {
|
︙ | | | ︙ | |
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
|
void
servermenu()
{
if (pingsock == ENET_SOCKET_NULL) {
pingsock = enet_socket_create(ENET_SOCKET_TYPE_DATAGRAM, NULL);
resolverinit(1, 1000);
};
resolverclear();
loopv(servers) resolverquery(servers[i].name);
refreshservers();
menuset(1);
}
void
|
<
>
|
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
|
void
servermenu()
{
if (pingsock == ENET_SOCKET_NULL) {
pingsock = enet_socket_create(ENET_SOCKET_TYPE_DATAGRAM, NULL);
resolverinit(1, 1000);
}
resolverclear();
loopv(servers) resolverquery(servers[i].name);
refreshservers();
menuset(1);
}
void
|
︙ | | | ︙ | |