16#ifndef _SB_SERVERBROWSING_H
17#define _SB_SERVERBROWSING_H
19#include "../common/gsCommon.h"
38typedef enum {SBFalse, SBTrue} SBBool;
50 sbe_duplicateupdateerror
67 sbc_serverupdatefailed,
71 sbc_serverchallengereceived
79} SBConnectToServerState;
82typedef void (*ServerBrowserCallback)(ServerBrowser sb, SBCallbackReason reason, SBServer server,
void *instance);
85typedef void (*SBConnectToServerCallback)(ServerBrowser sb, SBConnectToServerState
state, SOCKET gamesocket,
struct sockaddr_in *remoteaddr,
void *instance);
88#define MAX_FILTER_LEN 256
99#define ServerBrowserNew ServerBrowserNewA
100#define ServerBrowserUpdate ServerBrowserUpdateA
101#define ServerBrowserLimitUpdate ServerBrowserLimitUpdateA
102#define ServerBrowserAuxUpdateIP ServerBrowserAuxUpdateIPA
103#define ServerBrowserRemoveIP ServerBrowserRemoveIPA
104#define ServerBrowserSendNatNegotiateCookieToServer ServerBrowserSendNatNegotiateCookieToServerA
105#define ServerBrowserSendMessageToServer ServerBrowserSendMessageToServerA
106#define ServerBrowserSort ServerBrowserSortA
107#define SBServerGetStringValue SBServerGetStringValueA
108#define SBServerGetIntValue SBServerGetIntValueA
109#define SBServerGetFloatValue SBServerGetFloatValueA
110#define SBServerGetBoolValue SBServerGetBoolValueA
111#define SBServerGetPlayerStringValue SBServerGetPlayerStringValueA
112#define SBServerGetPlayerIntValue SBServerGetPlayerIntValueA
113#define SBServerGetPlayerFloatValue SBServerGetPlayerFloatValueA
114#define SBServerGetTeamStringValue SBServerGetTeamStringValueA
115#define SBServerGetTeamIntValue SBServerGetTeamIntValueA
116#define SBServerGetTeamFloatValue SBServerGetTeamFloatValueA
117#define ServerBrowserListQueryError ServerBrowserListQueryErrorA
118#define ServerBrowserErrorDesc ServerBrowserErrorDescA
119#define ServerBrowserGetServerByIP ServerBrowserGetServerByIPA
121#define ServerBrowserNew ServerBrowserNewW
122#define ServerBrowserUpdate ServerBrowserUpdateW
123#define ServerBrowserLimitUpdate ServerBrowserLimitUpdateW
124#define ServerBrowserAuxUpdateIP ServerBrowserAuxUpdateIPW
125#define ServerBrowserRemoveIP ServerBrowserRemoveIPW
126#define ServerBrowserSendNatNegotiateCookieToServer ServerBrowserSendNatNegotiateCookieToServerW
127#define ServerBrowserSendMessageToServer ServerBrowserSendMessageToServerW
128#define ServerBrowserSort ServerBrowserSortW
129#define SBServerGetStringValue SBServerGetStringValueW
130#define SBServerGetIntValue SBServerGetIntValueW
131#define SBServerGetFloatValue SBServerGetFloatValueW
132#define SBServerGetBoolValue SBServerGetBoolValueW
133#define SBServerGetPlayerStringValue SBServerGetPlayerStringValueW
134#define SBServerGetPlayerIntValue SBServerGetPlayerIntValueW
135#define SBServerGetPlayerFloatValue SBServerGetPlayerFloatValueW
136#define SBServerGetTeamStringValue SBServerGetTeamStringValueW
137#define SBServerGetTeamIntValue SBServerGetTeamIntValueW
138#define SBServerGetTeamFloatValue SBServerGetTeamFloatValueW
139#define ServerBrowserListQueryError ServerBrowserListQueryErrorW
140#define ServerBrowserErrorDesc ServerBrowserErrorDescW
141#define ServerBrowserGetServerByIP ServerBrowserGetServerByIPW
157ServerBrowser ServerBrowserNew(
const gsi_char *queryForGamename,
const gsi_char *queryFromGamename,
const gsi_char *queryFromKey,
int queryFromVersion,
int maxConcUpdates,
int queryVersion, SBBool lanBrowse, ServerBrowserCallback callback,
void *instance);
163void ServerBrowserFree(ServerBrowser sb);
187SBError ServerBrowserUpdate(ServerBrowser sb, SBBool async, SBBool disconnectOnComplete,
const unsigned char *basicFields,
int numBasicFields,
const gsi_char *serverFilter);
188SBError ServerBrowserLimitUpdate(ServerBrowser sb, SBBool async, SBBool disconnectOnComplete,
const unsigned char *basicFields,
int numBasicFields,
const gsi_char *serverFilter,
int maxServers);
195SBError ServerBrowserThink(ServerBrowser sb);
209SBError ServerBrowserLANUpdate(ServerBrowser sb, SBBool async,
unsigned short startSearchPort,
unsigned short endSearchPort);
226SBError ServerBrowserAuxUpdateIP(ServerBrowser sb,
const gsi_char *ip,
unsigned short port, SBBool viaMaster, SBBool async, SBBool fullUpdate);
241SBError ServerBrowserAuxUpdateServer(ServerBrowser sb, SBServer server, SBBool async, SBBool fullUpdate);
249void ServerBrowserDisconnect(ServerBrowser sb);
255SBState ServerBrowserState(ServerBrowser sb);
260void ServerBrowserRemoveIP(ServerBrowser sb,
const gsi_char *ip,
unsigned short port);
265void ServerBrowserRemoveServer(ServerBrowser sb, SBServer server);
271void ServerBrowserHalt(ServerBrowser sb);
276void ServerBrowserClear(ServerBrowser sb);
281const gsi_char *ServerBrowserErrorDesc(ServerBrowser sb, SBError error);
288const gsi_char *ServerBrowserListQueryError(ServerBrowser sb);
293SBServer ServerBrowserGetServer(ServerBrowser sb,
int index);
298SBServer ServerBrowserGetServerByIP(ServerBrowser sb,
const gsi_char* ip,
unsigned short port);
304int ServerBrowserCount(ServerBrowser sb);
310int ServerBrowserPendingQueryCount(ServerBrowser sb);
317char *ServerBrowserGetMyPublicIP(ServerBrowser sb);
322unsigned int ServerBrowserGetMyPublicIPAddr(ServerBrowser sb);
328SBError ServerBrowserSendNatNegotiateCookieToServer(ServerBrowser sb,
const gsi_char *ip,
unsigned short port,
int cookie);
334SBError ServerBrowserSendMessageToServer(ServerBrowser sb,
const gsi_char *ip,
unsigned short port,
const char *data,
int len);
339SBError ServerBrowserConnectToServer(ServerBrowser sb, SBServer server, SBConnectToServerCallback callback);
347typedef enum {sbcm_int, sbcm_float, sbcm_strcase, sbcm_stricase} SBCompareMode;
355void ServerBrowserSort(ServerBrowser sb, SBBool ascending,
const gsi_char *sortkey, SBCompareMode comparemode);
360void ServerBrowserLANSetLocalAddr(ServerBrowser sb,
const char* theAddr);
369typedef void (*SBServerKeyEnumFn)(gsi_char *key, gsi_char *value,
void *instance);
384SBBool SBServerGetConnectionInfo(ServerBrowser gSB, SBServer server, gsi_u16 PortToConnectTo,
char *ipstring_out);
390SBBool SBServerHasPrivateAddress(SBServer server);
395SBBool SBServerDirectConnect(SBServer server);
401int SBServerGetPing(SBServer server);
408char *SBServerGetPublicAddress(SBServer server);
409char *SBServerGetPrivateAddress(SBServer server);
414unsigned int SBServerGetPublicInetAddress(SBServer server);
415unsigned int SBServerGetPrivateInetAddress(SBServer server);
421unsigned short SBServerGetPublicQueryPort(SBServer server);
422unsigned short SBServerGetPrivateQueryPort(SBServer server);
429SBBool SBServerHasBasicKeys(SBServer server);
435SBBool SBServerHasFullKeys(SBServer server);
440SBBool SBServerHasValidPing(SBServer server);
447const gsi_char *SBServerGetStringValue(SBServer server,
const gsi_char *keyname,
const gsi_char *def);
448int SBServerGetIntValue(SBServer server,
const gsi_char *key,
int idefault);
449double SBServerGetFloatValue(SBServer server,
const gsi_char *key,
double fdefault);
450SBBool SBServerGetBoolValue(SBServer server,
const gsi_char *key, SBBool bdefault);
460const gsi_char *SBServerGetPlayerStringValue(SBServer server,
int playernum,
const gsi_char *key,
const gsi_char *sdefault);
461int SBServerGetPlayerIntValue(SBServer server,
int playernum,
const gsi_char *key,
int idefault);
462double SBServerGetPlayerFloatValue(SBServer server,
int playernum,
const gsi_char *key,
double fdefault);
464const gsi_char *SBServerGetTeamStringValue(SBServer server,
int teamnum,
const gsi_char *key,
const gsi_char *sdefault);
465int SBServerGetTeamIntValue(SBServer server,
int teamnum,
const gsi_char *key,
int idefault);
466double SBServerGetTeamFloatValue(SBServer server,
int teamnum,
const gsi_char *key,
double fdefault);
473void SBServerEnumKeys(SBServer server, SBServerKeyEnumFn KeyFn,
void *instance);
Definition sb_internal.h:273
Definition sb_internal.h:316