diff options
| author | Matthew Collins <[email protected]> | 2018-02-27 23:38:35 +0000 |
|---|---|---|
| committer | Matthew Collins <[email protected]> | 2018-02-27 23:38:35 +0000 |
| commit | 90ddf720704fcafbd7d333d81e81ae712e25072f (patch) | |
| tree | 7c70bf8b6bdc682b6d9e8160bcfa4d23be682ac6 /steamworks-sys/src/lib.rs | |
| parent | Fix the author in the Cargo.toml (diff) | |
| download | steamworks-rs-90ddf720704fcafbd7d333d81e81ae712e25072f.tar.xz steamworks-rs-90ddf720704fcafbd7d333d81e81ae712e25072f.zip | |
Implement user authentication session methods
Diffstat (limited to 'steamworks-sys/src/lib.rs')
| -rw-r--r-- | steamworks-sys/src/lib.rs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/steamworks-sys/src/lib.rs b/steamworks-sys/src/lib.rs index e7bd2dc..e84848b 100644 --- a/steamworks-sys/src/lib.rs +++ b/steamworks-sys/src/lib.rs @@ -1,3 +1,4 @@ +#![allow(non_camel_case_types)] extern crate libc; @@ -22,6 +23,7 @@ pub struct ISteamUser(c_void); pub type HSteamPipe = i32; pub type HSteamUser = i32; +pub type HAuthTicket = u32; pub type AppId = u32; pub type SteamAPICall = u64; @@ -53,6 +55,19 @@ pub struct PersonaStateChange_t { } #[repr(C)] +pub struct GetAuthSessionTicketResponse_t { + pub auth_ticket: HAuthTicket, + pub result: SResult, +} + +#[repr(C)] +pub struct ValidateAuthTicketResponse_t { + pub steam_id: u64, + pub response: AuthSessionResponse, + pub owner_steam_id: u64, +} + +#[repr(C)] pub struct LobbyCreated { pub result: SResult, pub lobby_steam_id: u64, @@ -71,6 +86,30 @@ pub enum NotificationPosition { } #[repr(C)] +pub enum BeginAuthSessionResult { + Ok = 0, + InvalidTicket = 1, + DuplicateRequest = 2, + InvalidVersion = 3, + GameMismatch = 4, + ExpiredTicket = 5, +} + +#[repr(C)] +pub enum AuthSessionResponse { + Ok = 0, + UserNotConnectedToSteam = 1, + NoLicenseOrExpired = 2, + VACBanned = 3, + LoggedInElseWhere = 4, + VACCheckTimedOut = 5, + AuthTicketCancelled = 6, + AuthTicketInvalidAlreadyUsed = 7, + AuthTicketInvalid = 8, + PublisherIssuedBan = 9, +} + +#[repr(C)] #[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, PartialEq)] pub enum SResult { Ok = 1, @@ -260,4 +299,8 @@ extern "C" { pub fn SteamAPI_ISteamMatchmaking_GetLobbyByIndex(instance: *mut ISteamMatchmaking, lobby: c_int) -> u64; pub fn SteamAPI_ISteamUser_GetSteamID(instance: *mut ISteamUser) -> u64; + pub fn SteamAPI_ISteamUser_GetAuthSessionTicket(instance: *mut ISteamUser, ticket: *mut c_void, max_ticket: c_int, ticket_size: *mut u32) -> HAuthTicket; + 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); } |