mirror of
https://github.com/openmoh/openmohaa.git
synced 2025-04-28 21:57:57 +03:00
125 lines
3.2 KiB
C
125 lines
3.2 KiB
C
![]() |
/******
|
||
|
gcdkeys.h
|
||
|
GameSpy CDKey SDK Server Header
|
||
|
|
||
|
Copyright 1999-2007 GameSpy Industries, Inc
|
||
|
|
||
|
devsupport@gamespy.com
|
||
|
|
||
|
******
|
||
|
|
||
|
Please see the GameSpy CDKey SDK documentation for more
|
||
|
information
|
||
|
|
||
|
******/
|
||
|
|
||
|
|
||
|
#ifndef _GOACDKEYS_H_
|
||
|
#define _GOACDKEYS_H_
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#define GUSE_ASSERTS
|
||
|
|
||
|
/*****
|
||
|
QR2CDKEY_INTEGRATION: This define controls where the functions needed to integrate
|
||
|
the networking of the Query & Reporting 2 SDK and CDKey SDKs are available.
|
||
|
If you intend to use the integration option for these SDKs, you must uncomment the
|
||
|
define below, or provide it as an option to your compiler.
|
||
|
*******/
|
||
|
#define QR2CDKEY_INTEGRATION
|
||
|
|
||
|
typedef void (*AuthCallBackFn)(int gameid, int localid, int authenticated, char *errmsg, void *instance);
|
||
|
typedef void (*RefreshAuthCallBackFn)(int gameid, int localid, int hint, char *challenge, void *instance);
|
||
|
|
||
|
/* The hostname of the validation server.
|
||
|
If the app resolves the hostname, an
|
||
|
IP can be stored here before calling
|
||
|
gcd_init */
|
||
|
extern char gcd_hostname[64];
|
||
|
|
||
|
/********
|
||
|
gcd_init
|
||
|
Initializes the Server API and creates the socket
|
||
|
Should only be called once (unless gcd_shutdown has been called)
|
||
|
*********/
|
||
|
int gcd_init(int gameid);
|
||
|
|
||
|
/********
|
||
|
gcd_init_qr2
|
||
|
Initializes the Server API and integrates the networking of the CDKey SDK
|
||
|
with the Query & Reporting 2 SDK.
|
||
|
You must initialize the Query & Reporting 2 SDK with qr2_init or qr2_init_socket
|
||
|
prior to calling this. If you are using multiple instances of the QR2 SDK, you
|
||
|
can pass the specific instance information in via the "qrec" argument. Otherwise
|
||
|
you can simply pass in NULL.
|
||
|
*********/
|
||
|
#ifdef QR2CDKEY_INTEGRATION
|
||
|
|
||
|
#include "../qr2/qr2.h"
|
||
|
int gcd_init_qr2(qr2_t qrec, int gameid);
|
||
|
|
||
|
#endif
|
||
|
|
||
|
/********
|
||
|
gcd_shutdown
|
||
|
Frees the socket and client structures
|
||
|
Also calls gcd_disconnect_all to make sure all users are signaled as offline
|
||
|
*********/
|
||
|
void gcd_shutdown(void);
|
||
|
|
||
|
/********
|
||
|
gcd_authenticate_user
|
||
|
Creates a new client and sends a request for authorization to the
|
||
|
validation server.
|
||
|
*********/
|
||
|
void gcd_authenticate_user(int gameid, int localid, unsigned int userip, const char *challenge,
|
||
|
const char *response, AuthCallBackFn authfn, RefreshAuthCallBackFn refreshfn, void *instance);
|
||
|
|
||
|
/********
|
||
|
gcd_authenticate_user
|
||
|
Creates a new client and sends a request for authorization to the
|
||
|
validation server.
|
||
|
*********/
|
||
|
void gcd_process_reauth(int gameid, int localid, int hint, const char *response);
|
||
|
|
||
|
|
||
|
/********
|
||
|
gcd_disconnect_user
|
||
|
Notify the validation server that a user has disconnected
|
||
|
*********/
|
||
|
void gcd_disconnect_user(int gameid, int localid);
|
||
|
|
||
|
|
||
|
/********
|
||
|
gcd_disconnect_all
|
||
|
Calls gcd_disconnect_user for each user still online (shortcut)
|
||
|
*********/
|
||
|
void gcd_disconnect_all(int gameid);
|
||
|
|
||
|
/********
|
||
|
gcd_think
|
||
|
Processes any pending data from the validation server
|
||
|
and calls the callback to indicate whether a client was
|
||
|
authorized or not
|
||
|
*********/
|
||
|
void gcd_think(void);
|
||
|
|
||
|
/********
|
||
|
gcd_getkeyhash
|
||
|
Returns the key hash for the given user. This hash will always
|
||
|
be the same for that users, which makes it good for banning or
|
||
|
tracking of users (used with the Tracking/Stats SDK). Returns
|
||
|
an empty string if that user isn't connected.
|
||
|
*********/
|
||
|
char *gcd_getkeyhash(int gameid, int localid);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|
||
|
|