diff options
| author | Matthew Collins <[email protected]> | 2018-02-28 16:12:31 +0000 |
|---|---|---|
| committer | Matthew Collins <[email protected]> | 2018-02-28 16:12:31 +0000 |
| commit | 844887aea84cb17a135d070304726a33f17b30b7 (patch) | |
| tree | dd26d34956283c9ef261fbae9c7e56c9992ea2ce /steamworks-sys/src/lib.rs | |
| parent | Implement user authentication session methods (diff) | |
| download | steamworks-rs-844887aea84cb17a135d070304726a33f17b30b7.tar.xz steamworks-rs-844887aea84cb17a135d070304726a33f17b30b7.zip | |
Initial support for servers
Diffstat (limited to 'steamworks-sys/src/lib.rs')
| -rw-r--r-- | steamworks-sys/src/lib.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/steamworks-sys/src/lib.rs b/steamworks-sys/src/lib.rs index e84848b..42b5049 100644 --- a/steamworks-sys/src/lib.rs +++ b/steamworks-sys/src/lib.rs @@ -20,6 +20,8 @@ pub struct ISteamFriends(c_void); pub struct ISteamMatchmaking(c_void); #[repr(C)] pub struct ISteamUser(c_void); +#[repr(C)] +pub struct ISteamGameServer(c_void); pub type HSteamPipe = i32; pub type HSteamUser = i32; @@ -110,6 +112,14 @@ pub enum AuthSessionResponse { } #[repr(C)] +pub enum ServerMode { + Invalid = 0, + NoAuthentication = 1, + Authentication = 2, + AuthenticationAndSecure = 3, +} + +#[repr(C)] #[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, PartialEq)] pub enum SResult { Ok = 1, @@ -235,6 +245,7 @@ extern "C" { run_func: extern "C" fn (*mut c_void, *mut c_void), dealloc: extern "C" fn (*mut c_void), callback_id: c_int, + game_server: c_int, ) -> *mut c_void; pub fn unregister_rust_steam_callback( ty: *mut c_void, @@ -257,12 +268,19 @@ extern "C" { pub fn steam_rust_get_apps() -> *mut ISteamApps; pub fn steam_rust_get_friends() -> *mut ISteamFriends; pub fn steam_rust_get_user() -> *mut ISteamUser; + pub fn steam_rust_get_server() -> *mut ISteamGameServer; + pub fn steam_rust_get_server_apps() -> *mut ISteamApps; + + pub fn steam_rust_game_server_init(ip: u32, steam_port: u16, game_port: u16, query_port: u16, server_mode: ServerMode, version: *const c_char) -> c_int; // pub fn SteamAPI_Init() -> u8; pub fn SteamAPI_Shutdown(); pub fn SteamAPI_RunCallbacks(); + pub fn SteamGameServer_Shutdown(); + pub fn SteamGameServer_RunCallbacks(); + pub fn SteamAPI_ISteamClient_CreateSteamPipe(instance: *mut ISteamClient) -> HSteamPipe; pub fn SteamAPI_ISteamClient_BReleaseSteamPipe(instance: *mut ISteamClient, pipe: HSteamPipe) -> u8; pub fn SteamAPI_ISteamClient_ConnectToGlobalUser(instance: *mut ISteamClient, pipe: HSteamPipe) -> HSteamUser; @@ -303,4 +321,14 @@ extern "C" { pub fn SteamAPI_ISteamUser_BeginAuthSession(instance: *mut ISteamUser, ticket: *const c_void, ticket_size: *mut u32, steam_id: u64) -> BeginAuthSessionResult; pub fn SteamAPI_ISteamUser_EndAuthSession(instance: *mut ISteamUser, steam_id: u64); pub fn SteamAPI_ISteamUser_CancelAuthTicket(instance: *mut ISteamUser, auth_ticket: HAuthTicket); + + pub fn SteamAPI_ISteamGameServer_LogOnAnonymous(instance: *mut ISteamGameServer); + pub fn SteamAPI_ISteamGameServer_SetProduct(instance: *mut ISteamGameServer, product: *const c_char); + pub fn SteamAPI_ISteamGameServer_SetGameDescription(instance: *mut ISteamGameServer, description: *const c_char); + pub fn SteamAPI_ISteamGameServer_SetDedicatedServer(instance: *mut ISteamGameServer, dedicated: u8); + pub fn SteamAPI_ISteamGameServer_GetSteamID(instance: *mut ISteamGameServer) -> u64; + pub fn SteamAPI_ISteamGameServer_GetAuthSessionTicket(instance: *mut ISteamGameServer, ticket: *mut c_void, max_ticket: c_int, ticket_size: *mut u32) -> HAuthTicket; + pub fn SteamAPI_ISteamGameServer_BeginAuthSession(instance: *mut ISteamGameServer, ticket: *const c_void, ticket_size: *mut u32, steam_id: u64) -> BeginAuthSessionResult; + pub fn SteamAPI_ISteamGameServer_EndAuthSession(instance: *mut ISteamGameServer, steam_id: u64); + pub fn SteamAPI_ISteamGameServer_CancelAuthTicket(instance: *mut ISteamGameServer, auth_ticket: HAuthTicket); } |