aboutsummaryrefslogtreecommitdiff
path: root/steamworks-sys/src/lib.rs
diff options
context:
space:
mode:
authorMatthew Collins <[email protected]>2018-02-28 16:12:31 +0000
committerMatthew Collins <[email protected]>2018-02-28 16:12:31 +0000
commit844887aea84cb17a135d070304726a33f17b30b7 (patch)
treedd26d34956283c9ef261fbae9c7e56c9992ea2ce /steamworks-sys/src/lib.rs
parentImplement user authentication session methods (diff)
downloadsteamworks-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.rs28
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);
}