mirror of
https://github.com/ValveSoftware/Proton.git
synced 2025-01-27 14:08:18 +03:00
steamclient: Clean up 1.47 for generating
This commit is contained in:
parent
03ed34405a
commit
a2317ff230
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#ifndef ISTEAMAPPTICKET_H
|
#ifndef ISTEAMAPPTICKET_H
|
||||||
#define ISTEAMAPPTICKET_H
|
#define ISTEAMAPPTICKET_H
|
||||||
#pragma once
|
#include "steamtypes.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: hand out a reasonable "future proof" view of an app ownership ticket
|
// Purpose: hand out a reasonable "future proof" view of an app ownership ticket
|
||||||
|
@ -56,7 +56,7 @@ public:
|
|||||||
|
|
||||||
// set the local IP and Port to bind to
|
// set the local IP and Port to bind to
|
||||||
// this must be set before CreateLocalUser()
|
// this must be set before CreateLocalUser()
|
||||||
virtual void SetLocalIPBinding( const SteamIPAddress_t &unIP, uint16 usPort ) = 0;
|
virtual void SetLocalIPBinding( const SteamIPAddress_t *unIP, uint16 usPort ) = 0;
|
||||||
|
|
||||||
// returns the ISteamFriends interface
|
// returns the ISteamFriends interface
|
||||||
virtual ISteamFriends *GetISteamFriends( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0;
|
virtual ISteamFriends *GetISteamFriends( HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0;
|
||||||
|
@ -61,7 +61,7 @@ public:
|
|||||||
///
|
///
|
||||||
/// When a client attempts to connect, a SteamNetConnectionStatusChangedCallback_t
|
/// When a client attempts to connect, a SteamNetConnectionStatusChangedCallback_t
|
||||||
/// will be posted. The connection will be in the connecting state.
|
/// will be posted. The connection will be in the connecting state.
|
||||||
virtual HSteamListenSocket CreateListenSocketIP( const SteamNetworkingIPAddr &localAddress, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
virtual HSteamListenSocket CreateListenSocketIP( const SteamNetworkingIPAddr *localAddress, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
||||||
|
|
||||||
/// Creates a connection and begins talking to a "server" over UDP at the
|
/// Creates a connection and begins talking to a "server" over UDP at the
|
||||||
/// given IPv4 or IPv6 address. The remote host must be listening with a
|
/// given IPv4 or IPv6 address. The remote host must be listening with a
|
||||||
@ -85,7 +85,7 @@ public:
|
|||||||
/// If you need to set any initial config options, pass them here. See
|
/// If you need to set any initial config options, pass them here. See
|
||||||
/// SteamNetworkingConfigValue_t for more about why this is preferable to
|
/// SteamNetworkingConfigValue_t for more about why this is preferable to
|
||||||
/// setting the options "immediately" after creation.
|
/// setting the options "immediately" after creation.
|
||||||
virtual HSteamNetConnection ConnectByIPAddress( const SteamNetworkingIPAddr &address, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
virtual HSteamNetConnection ConnectByIPAddress( const SteamNetworkingIPAddr *address, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
||||||
|
|
||||||
#ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
#ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR
|
||||||
/// Like CreateListenSocketIP, but clients will connect using ConnectP2P
|
/// Like CreateListenSocketIP, but clients will connect using ConnectP2P
|
||||||
@ -115,7 +115,7 @@ public:
|
|||||||
/// If you need to set any initial config options, pass them here. See
|
/// If you need to set any initial config options, pass them here. See
|
||||||
/// SteamNetworkingConfigValue_t for more about why this is preferable to
|
/// SteamNetworkingConfigValue_t for more about why this is preferable to
|
||||||
/// setting the options "immediately" after creation.
|
/// setting the options "immediately" after creation.
|
||||||
virtual HSteamNetConnection ConnectP2P( const SteamNetworkingIdentity &identityRemote, int nVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
virtual HSteamNetConnection ConnectP2P( const SteamNetworkingIdentity *identityRemote, int nVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Accept an incoming connection that has been received on a listen socket.
|
/// Accept an incoming connection that has been received on a listen socket.
|
||||||
@ -275,7 +275,7 @@ public:
|
|||||||
/// -k_EResultInvalidState if the connection was in an invalid state.
|
/// -k_EResultInvalidState if the connection was in an invalid state.
|
||||||
/// See ISteamNetworkingSockets::SendMessageToConnection for possible
|
/// See ISteamNetworkingSockets::SendMessageToConnection for possible
|
||||||
/// failure codes.
|
/// failure codes.
|
||||||
virtual void SendMessages( int nMessages, SteamNetworkingMessage_t *const *pMessages, int64 *pOutMessageNumberOrResult ) = 0;
|
virtual void SendMessages( int nMessages, SteamNetworkingMessage_t **pMessages, int64 *pOutMessageNumberOrResult ) = 0;
|
||||||
|
|
||||||
/// Flush any messages waiting on the Nagle timer and send them
|
/// Flush any messages waiting on the Nagle timer and send them
|
||||||
/// at the next transmission opportunity (often that means right now).
|
/// at the next transmission opportunity (often that means right now).
|
||||||
@ -424,7 +424,7 @@ public:
|
|||||||
///
|
///
|
||||||
/// Typically this is useful just to confirm that you have a ticket, before you
|
/// Typically this is useful just to confirm that you have a ticket, before you
|
||||||
/// call ConnectToHostedDedicatedServer to connect to the server.
|
/// call ConnectToHostedDedicatedServer to connect to the server.
|
||||||
virtual int FindRelayAuthTicketForServer( const SteamNetworkingIdentity &identityGameServer, int nVirtualPort, SteamDatagramRelayAuthTicket *pOutParsedTicket ) = 0;
|
virtual int FindRelayAuthTicketForServer( const SteamNetworkingIdentity *identityGameServer, int nVirtualPort, SteamDatagramRelayAuthTicket *pOutParsedTicket ) = 0;
|
||||||
|
|
||||||
/// Client call to connect to a server hosted in a Valve data center, on the specified virtual
|
/// Client call to connect to a server hosted in a Valve data center, on the specified virtual
|
||||||
/// port. You must have placed a ticket for this server into the cache, or else this connect attempt will fail!
|
/// port. You must have placed a ticket for this server into the cache, or else this connect attempt will fail!
|
||||||
@ -439,7 +439,7 @@ public:
|
|||||||
/// If you need to set any initial config options, pass them here. See
|
/// If you need to set any initial config options, pass them here. See
|
||||||
/// SteamNetworkingConfigValue_t for more about why this is preferable to
|
/// SteamNetworkingConfigValue_t for more about why this is preferable to
|
||||||
/// setting the options "immediately" after creation.
|
/// setting the options "immediately" after creation.
|
||||||
virtual HSteamNetConnection ConnectToHostedDedicatedServer( const SteamNetworkingIdentity &identityTarget, int nVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
virtual HSteamNetConnection ConnectToHostedDedicatedServer( const SteamNetworkingIdentity *identityTarget, int nVirtualPort, int nOptions, const SteamNetworkingConfigValue_t *pOptions ) = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Servers hosted in data centers known to the Valve relay network
|
// Servers hosted in data centers known to the Valve relay network
|
||||||
@ -613,11 +613,11 @@ public:
|
|||||||
/// size. (256 bytes is a very conservative estimate.)
|
/// size. (256 bytes is a very conservative estimate.)
|
||||||
///
|
///
|
||||||
/// Pass this blob to your game coordinator and call SteamDatagram_CreateCert.
|
/// Pass this blob to your game coordinator and call SteamDatagram_CreateCert.
|
||||||
virtual bool GetCertificateRequest( int *pcbBlob, void *pBlob, SteamNetworkingErrMsg &errMsg ) = 0;
|
virtual bool GetCertificateRequest( int *pcbBlob, void *pBlob, SteamNetworkingErrMsg *errMsg ) = 0;
|
||||||
|
|
||||||
/// Set the certificate. The certificate blob should be the output of
|
/// Set the certificate. The certificate blob should be the output of
|
||||||
/// SteamDatagram_CreateCert.
|
/// SteamDatagram_CreateCert.
|
||||||
virtual bool SetCertificate( const void *pCertificate, int cbCertificate, SteamNetworkingErrMsg &errMsg ) = 0;
|
virtual bool SetCertificate( const void *pCertificate, int cbCertificate, SteamNetworkingErrMsg *errMsg ) = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Invoke all callbacks queued for this interface.
|
// Invoke all callbacks queued for this interface.
|
||||||
@ -658,7 +658,7 @@ public:
|
|||||||
/// Signaling objects will not be shared between connections.
|
/// Signaling objects will not be shared between connections.
|
||||||
/// You can assume that the same value of hConn will be used
|
/// You can assume that the same value of hConn will be used
|
||||||
/// every time.
|
/// every time.
|
||||||
virtual bool SendSignal( HSteamNetConnection hConn, const SteamNetConnectionInfo_t &info, const void *pMsg, int cbMsg ) = 0;
|
virtual bool SendSignal( HSteamNetConnection hConn, const SteamNetConnectionInfo_t *info, const void *pMsg, int cbMsg ) = 0;
|
||||||
|
|
||||||
/// Called when the connection no longer needs to send signals.
|
/// Called when the connection no longer needs to send signals.
|
||||||
/// Note that this happens eventually (but not immediately) after
|
/// Note that this happens eventually (but not immediately) after
|
||||||
@ -699,13 +699,13 @@ public:
|
|||||||
///
|
///
|
||||||
/// After accepting a connection (through either means), the connection
|
/// After accepting a connection (through either means), the connection
|
||||||
/// will transition into the "finding route" state.
|
/// will transition into the "finding route" state.
|
||||||
virtual ISteamNetworkingConnectionCustomSignaling *OnConnectRequest( HSteamNetConnection hConn, const SteamNetworkingIdentity &identityPeer ) = 0;
|
virtual ISteamNetworkingConnectionCustomSignaling *OnConnectRequest( HSteamNetConnection hConn, const SteamNetworkingIdentity *identityPeer ) = 0;
|
||||||
|
|
||||||
/// This is called actively communication rejection or failure
|
/// This is called actively communication rejection or failure
|
||||||
/// to the incoming message. If you intend to ignore all incoming requests
|
/// to the incoming message. If you intend to ignore all incoming requests
|
||||||
/// that you do not wish to accept, then it's not strictly necessary to
|
/// that you do not wish to accept, then it's not strictly necessary to
|
||||||
/// implement this.
|
/// implement this.
|
||||||
virtual void SendRejectionSignal( const SteamNetworkingIdentity &identityPeer, const void *pMsg, int cbMsg ) = 0;
|
virtual void SendRejectionSignal( const SteamNetworkingIdentity *identityPeer, const void *pMsg, int cbMsg ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -735,6 +735,8 @@ extern "C" {
|
|||||||
STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamGameServerNetworkingSockets, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION );
|
STEAM_DEFINE_GAMESERVER_INTERFACE_ACCESSOR( ISteamNetworkingSockets *, SteamGameServerNetworkingSockets, STEAMNETWORKINGSOCKETS_INTERFACE_VERSION );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/// Callback struct used to notify when a connection has changed state
|
/// Callback struct used to notify when a connection has changed state
|
||||||
#if defined( VALVE_CALLBACK_PACK_SMALL )
|
#if defined( VALVE_CALLBACK_PACK_SMALL )
|
||||||
#pragma pack( push, 4 )
|
#pragma pack( push, 4 )
|
||||||
@ -815,6 +817,5 @@ struct SteamNetAuthenticationStatus_t
|
|||||||
|
|
||||||
#pragma pack( pop )
|
#pragma pack( pop )
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // ISTEAMNETWORKINGSOCKETS
|
#endif // ISTEAMNETWORKINGSOCKETS
|
||||||
|
@ -110,7 +110,7 @@ public:
|
|||||||
///
|
///
|
||||||
/// This always return the most up-to-date information we have available
|
/// This always return the most up-to-date information we have available
|
||||||
/// right now, even if we are in the middle of re-calculating ping times.
|
/// right now, even if we are in the middle of re-calculating ping times.
|
||||||
virtual float GetLocalPingLocation( SteamNetworkPingLocation_t &result ) = 0;
|
virtual float GetLocalPingLocation( SteamNetworkPingLocation_t *result ) = 0;
|
||||||
|
|
||||||
/// Estimate the round-trip latency between two arbitrary locations, in
|
/// Estimate the round-trip latency between two arbitrary locations, in
|
||||||
/// milliseconds. This is a conservative estimate, based on routing through
|
/// milliseconds. This is a conservative estimate, based on routing through
|
||||||
@ -134,7 +134,7 @@ public:
|
|||||||
///
|
///
|
||||||
/// Do you need to be able to do this from a backend/matchmaking server?
|
/// Do you need to be able to do this from a backend/matchmaking server?
|
||||||
/// You are looking for the "ticketgen" library.
|
/// You are looking for the "ticketgen" library.
|
||||||
virtual int EstimatePingTimeBetweenTwoLocations( const SteamNetworkPingLocation_t &location1, const SteamNetworkPingLocation_t &location2 ) = 0;
|
virtual int EstimatePingTimeBetweenTwoLocations( const SteamNetworkPingLocation_t *location1, const SteamNetworkPingLocation_t *location2 ) = 0;
|
||||||
|
|
||||||
/// Same as EstimatePingTime, but assumes that one location is the local host.
|
/// Same as EstimatePingTime, but assumes that one location is the local host.
|
||||||
/// This is a bit faster, especially if you need to calculate a bunch of
|
/// This is a bit faster, especially if you need to calculate a bunch of
|
||||||
@ -144,17 +144,17 @@ public:
|
|||||||
/// GetLocalPingLocation with EstimatePingTimeBetweenTwoLocations. That's because
|
/// GetLocalPingLocation with EstimatePingTimeBetweenTwoLocations. That's because
|
||||||
/// this function uses a slightly more complete set of information about what
|
/// this function uses a slightly more complete set of information about what
|
||||||
/// route would be taken.
|
/// route would be taken.
|
||||||
virtual int EstimatePingTimeFromLocalHost( const SteamNetworkPingLocation_t &remoteLocation ) = 0;
|
virtual int EstimatePingTimeFromLocalHost( const SteamNetworkPingLocation_t *remoteLocation ) = 0;
|
||||||
|
|
||||||
/// Convert a ping location into a text format suitable for sending over the wire.
|
/// Convert a ping location into a text format suitable for sending over the wire.
|
||||||
/// The format is a compact and human readable. However, it is subject to change
|
/// The format is a compact and human readable. However, it is subject to change
|
||||||
/// so please do not parse it yourself. Your buffer must be at least
|
/// so please do not parse it yourself. Your buffer must be at least
|
||||||
/// k_cchMaxSteamNetworkingPingLocationString bytes.
|
/// k_cchMaxSteamNetworkingPingLocationString bytes.
|
||||||
virtual void ConvertPingLocationToString( const SteamNetworkPingLocation_t &location, char *pszBuf, int cchBufSize ) = 0;
|
virtual void ConvertPingLocationToString( const SteamNetworkPingLocation_t *location, char *pszBuf, int cchBufSize ) = 0;
|
||||||
|
|
||||||
/// Parse back SteamNetworkPingLocation_t string. Returns false if we couldn't understand
|
/// Parse back SteamNetworkPingLocation_t string. Returns false if we couldn't understand
|
||||||
/// the string.
|
/// the string.
|
||||||
virtual bool ParsePingLocationString( const char *pszString, SteamNetworkPingLocation_t &result ) = 0;
|
virtual bool ParsePingLocationString( const char *pszString, SteamNetworkPingLocation_t *result ) = 0;
|
||||||
|
|
||||||
/// Check if the ping data of sufficient recency is available, and if
|
/// Check if the ping data of sufficient recency is available, and if
|
||||||
/// it's too old, start refreshing it.
|
/// it's too old, start refreshing it.
|
||||||
@ -270,7 +270,7 @@ public:
|
|||||||
/// (This is just a convenience shortcut; see below for the implementation and
|
/// (This is just a convenience shortcut; see below for the implementation and
|
||||||
/// a little insight into how SteamNetworkingConfigValue_t is used when
|
/// a little insight into how SteamNetworkingConfigValue_t is used when
|
||||||
/// setting config options during listen socket and connection creation.)
|
/// setting config options during listen socket and connection creation.)
|
||||||
bool SetConfigValueStruct( const SteamNetworkingConfigValue_t &opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj );
|
bool SetConfigValueStruct( const SteamNetworkingConfigValue_t *opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj );
|
||||||
|
|
||||||
/// Get a configuration value.
|
/// Get a configuration value.
|
||||||
/// - eValue: which value to fetch
|
/// - eValue: which value to fetch
|
||||||
@ -296,9 +296,9 @@ public:
|
|||||||
|
|
||||||
// String conversions. You'll usually access these using the respective
|
// String conversions. You'll usually access these using the respective
|
||||||
// inline methods.
|
// inline methods.
|
||||||
virtual void SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr &addr, char *buf, size_t cbBuf, bool bWithPort ) = 0;
|
virtual void SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr *addr, char *buf, size_t cbBuf, bool bWithPort ) = 0;
|
||||||
virtual bool SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr ) = 0;
|
virtual bool SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr ) = 0;
|
||||||
virtual void SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity &identity, char *buf, size_t cbBuf ) = 0;
|
virtual void SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity *identity, char *buf, size_t cbBuf ) = 0;
|
||||||
virtual bool SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, const char *pszStr ) = 0;
|
virtual bool SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, const char *pszStr ) = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
@ -370,25 +370,29 @@ struct SteamRelayNetworkStatus_t
|
|||||||
inline void ISteamNetworkingUtils::InitRelayNetworkAccess() { CheckPingDataUpToDate( 1e10f ); }
|
inline void ISteamNetworkingUtils::InitRelayNetworkAccess() { CheckPingDataUpToDate( 1e10f ); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if 0
|
||||||
inline bool ISteamNetworkingUtils::SetGlobalConfigValueInt32( ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Int32, &val ); }
|
inline bool ISteamNetworkingUtils::SetGlobalConfigValueInt32( ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Int32, &val ); }
|
||||||
inline bool ISteamNetworkingUtils::SetGlobalConfigValueFloat( ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Float, &val ); }
|
inline bool ISteamNetworkingUtils::SetGlobalConfigValueFloat( ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Float, &val ); }
|
||||||
inline bool ISteamNetworkingUtils::SetGlobalConfigValueString( ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_String, val ); }
|
inline bool ISteamNetworkingUtils::SetGlobalConfigValueString( ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_String, val ); }
|
||||||
inline bool ISteamNetworkingUtils::SetConnectionConfigValueInt32( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Int32, &val ); }
|
inline bool ISteamNetworkingUtils::SetConnectionConfigValueInt32( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Int32, &val ); }
|
||||||
inline bool ISteamNetworkingUtils::SetConnectionConfigValueFloat( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Float, &val ); }
|
inline bool ISteamNetworkingUtils::SetConnectionConfigValueFloat( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Float, &val ); }
|
||||||
inline bool ISteamNetworkingUtils::SetConnectionConfigValueString( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_String, val ); }
|
inline bool ISteamNetworkingUtils::SetConnectionConfigValueString( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_String, val ); }
|
||||||
inline bool ISteamNetworkingUtils::SetConfigValueStruct( const SteamNetworkingConfigValue_t &opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj )
|
inline bool ISteamNetworkingUtils::SetConfigValueStruct( const SteamNetworkingConfigValue_t *opt, ESteamNetworkingConfigScope eScopeType, intptr_t scopeObj )
|
||||||
{
|
{
|
||||||
// Locate the argument. Strings are a special case, since the
|
// Locate the argument. Strings are a special case, since the
|
||||||
// "value" (the whole string buffer) doesn't fit in the struct
|
// "value" (the whole string buffer) doesn't fit in the struct
|
||||||
const void *pVal = ( opt.m_eDataType == k_ESteamNetworkingConfig_String ) ? (const void *)opt.m_val.m_string : (const void *)&opt.m_val;
|
const void *pVal = ( opt.m_eDataType == k_ESteamNetworkingConfig_String ) ? (const void *)opt.m_val.m_string : (const void *)&opt.m_val;
|
||||||
return SetConfigValue( opt.m_eValue, eScopeType, scopeObj, opt.m_eDataType, pVal );
|
return SetConfigValue( opt.m_eValue, eScopeType, scopeObj, opt.m_eDataType, pVal );
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) && defined( STEAMNETWORKINGSOCKETS_STEAMCLIENT )
|
#if !defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) && defined( STEAMNETWORKINGSOCKETS_STEAMCLIENT )
|
||||||
|
/*
|
||||||
inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingUtils()->SteamNetworkingIPAddr_ToString( *this, buf, cbBuf, bWithPort ); }
|
inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingUtils()->SteamNetworkingIPAddr_ToString( *this, buf, cbBuf, bWithPort ); }
|
||||||
inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIPAddr_ParseString( this, pszStr ); }
|
inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIPAddr_ParseString( this, pszStr ); }
|
||||||
inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingUtils()->SteamNetworkingIdentity_ToString( *this, buf, cbBuf ); }
|
inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingUtils()->SteamNetworkingIdentity_ToString( *this, buf, cbBuf ); }
|
||||||
inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIdentity_ParseString( this, pszStr ); }
|
inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIdentity_ParseString( this, pszStr ); }
|
||||||
|
*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // ISTEAMNETWORKINGUTILS
|
#endif // ISTEAMNETWORKINGUTILS
|
||||||
|
@ -189,7 +189,7 @@ struct SteamNetworkingIPAddr
|
|||||||
uint16 m_ffff;
|
uint16 m_ffff;
|
||||||
uint8 m_ip[ 4 ]; // NOTE: As bytes, i.e. network byte order
|
uint8 m_ip[ 4 ]; // NOTE: As bytes, i.e. network byte order
|
||||||
} m_ipv4;
|
} m_ipv4;
|
||||||
};
|
} ip;
|
||||||
uint16 m_port; // Host byte order
|
uint16 m_port; // Host byte order
|
||||||
|
|
||||||
/// See if two addresses are identical
|
/// See if two addresses are identical
|
||||||
@ -269,7 +269,7 @@ struct SteamNetworkingIdentity
|
|||||||
char m_szUnknownRawString[ k_cchMaxString ];
|
char m_szUnknownRawString[ k_cchMaxString ];
|
||||||
SteamNetworkingIPAddr m_ip;
|
SteamNetworkingIPAddr m_ip;
|
||||||
uint32 m_reserved[ 32 ]; // Pad structure to leave easy room for future expansion
|
uint32 m_reserved[ 32 ]; // Pad structure to leave easy room for future expansion
|
||||||
};
|
} data;
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
@ -1206,7 +1206,7 @@ inline SteamNetworkingPOPID CalculateSteamNetworkingPOPIDFromString( const char
|
|||||||
template <int N>
|
template <int N>
|
||||||
inline void GetSteamNetworkingLocationPOPStringFromID( SteamNetworkingPOPID id, char (&szCode)[N] )
|
inline void GetSteamNetworkingLocationPOPStringFromID( SteamNetworkingPOPID id, char (&szCode)[N] )
|
||||||
{
|
{
|
||||||
static_assert( N >= 5, "Fixed-size buffer not big enough to hold SDR POP ID" );
|
//static_assert( N >= 5, "Fixed-size buffer not big enough to hold SDR POP ID" );
|
||||||
szCode[0] = char( id >> 16U );
|
szCode[0] = char( id >> 16U );
|
||||||
szCode[1] = char( id >> 8U );
|
szCode[1] = char( id >> 8U );
|
||||||
szCode[2] = char( id );
|
szCode[2] = char( id );
|
||||||
@ -1225,45 +1225,45 @@ const SteamNetworkingPOPID k_SteamDatagramPOPID_dev = ( (uint32)'d' << 16U ) | (
|
|||||||
typedef SteamNetworkingMessage_t ISteamNetworkingMessage;
|
typedef SteamNetworkingMessage_t ISteamNetworkingMessage;
|
||||||
typedef SteamNetworkingErrMsg SteamDatagramErrMsg;
|
typedef SteamNetworkingErrMsg SteamDatagramErrMsg;
|
||||||
|
|
||||||
inline void SteamNetworkingIPAddr::Clear() { memset( this, 0, sizeof(*this) ); }
|
//inline void SteamNetworkingIPAddr::Clear() { memset( this, 0, sizeof(*this) ); }
|
||||||
inline bool SteamNetworkingIPAddr::IsIPv6AllZeros() const { const uint64 *q = (const uint64 *)m_ipv6; return q[0] == 0 && q[1] == 0; }
|
//inline bool SteamNetworkingIPAddr::IsIPv6AllZeros() const { const uint64 *q = (const uint64 *)m_ipv6; return q[0] == 0 && q[1] == 0; }
|
||||||
inline void SteamNetworkingIPAddr::SetIPv6( const uint8 *ipv6, uint16 nPort ) { memcpy( m_ipv6, ipv6, 16 ); m_port = nPort; }
|
//inline void SteamNetworkingIPAddr::SetIPv6( const uint8 *ipv6, uint16 nPort ) { memcpy( m_ipv6, ipv6, 16 ); m_port = nPort; }
|
||||||
inline void SteamNetworkingIPAddr::SetIPv4( uint32 nIP, uint16 nPort ) { m_ipv4.m_8zeros = 0; m_ipv4.m_0000 = 0; m_ipv4.m_ffff = 0xffff; m_ipv4.m_ip[0] = uint8(nIP>>24); m_ipv4.m_ip[1] = uint8(nIP>>16); m_ipv4.m_ip[2] = uint8(nIP>>8); m_ipv4.m_ip[3] = uint8(nIP); m_port = nPort; }
|
//inline void SteamNetworkingIPAddr::SetIPv4( uint32 nIP, uint16 nPort ) { m_ipv4.m_8zeros = 0; m_ipv4.m_0000 = 0; m_ipv4.m_ffff = 0xffff; m_ipv4.m_ip[0] = uint8(nIP>>24); m_ipv4.m_ip[1] = uint8(nIP>>16); m_ipv4.m_ip[2] = uint8(nIP>>8); m_ipv4.m_ip[3] = uint8(nIP); m_port = nPort; }
|
||||||
inline bool SteamNetworkingIPAddr::IsIPv4() const { return m_ipv4.m_8zeros == 0 && m_ipv4.m_0000 == 0 && m_ipv4.m_ffff == 0xffff; }
|
//inline bool SteamNetworkingIPAddr::IsIPv4() const { return m_ipv4.m_8zeros == 0 && m_ipv4.m_0000 == 0 && m_ipv4.m_ffff == 0xffff; }
|
||||||
inline uint32 SteamNetworkingIPAddr::GetIPv4() const { return IsIPv4() ? ( (uint32(m_ipv4.m_ip[0])<<24) | (uint32(m_ipv4.m_ip[1])<<16) | (uint32(m_ipv4.m_ip[2])<<8) | uint32(m_ipv4.m_ip[3]) ) : 0; }
|
//inline uint32 SteamNetworkingIPAddr::GetIPv4() const { return IsIPv4() ? ( (uint32(m_ipv4.m_ip[0])<<24) | (uint32(m_ipv4.m_ip[1])<<16) | (uint32(m_ipv4.m_ip[2])<<8) | uint32(m_ipv4.m_ip[3]) ) : 0; }
|
||||||
inline void SteamNetworkingIPAddr::SetIPv6LocalHost( uint16 nPort ) { m_ipv4.m_8zeros = 0; m_ipv4.m_0000 = 0; m_ipv4.m_ffff = 0; m_ipv6[12] = 0; m_ipv6[13] = 0; m_ipv6[14] = 0; m_ipv6[15] = 1; m_port = nPort; }
|
//inline void SteamNetworkingIPAddr::SetIPv6LocalHost( uint16 nPort ) { m_ipv4.m_8zeros = 0; m_ipv4.m_0000 = 0; m_ipv4.m_ffff = 0; m_ipv6[12] = 0; m_ipv6[13] = 0; m_ipv6[14] = 0; m_ipv6[15] = 1; m_port = nPort; }
|
||||||
inline bool SteamNetworkingIPAddr::IsLocalHost() const { return ( m_ipv4.m_8zeros == 0 && m_ipv4.m_0000 == 0 && m_ipv4.m_ffff == 0 && m_ipv6[12] == 0 && m_ipv6[13] == 0 && m_ipv6[14] == 0 && m_ipv6[15] == 1 ) || ( GetIPv4() == 0x7f000001 ); }
|
//inline bool SteamNetworkingIPAddr::IsLocalHost() const { return ( m_ipv4.m_8zeros == 0 && m_ipv4.m_0000 == 0 && m_ipv4.m_ffff == 0 && m_ipv6[12] == 0 && m_ipv6[13] == 0 && m_ipv6[14] == 0 && m_ipv6[15] == 1 ) || ( GetIPv4() == 0x7f000001 ); }
|
||||||
inline bool SteamNetworkingIPAddr::operator==(const SteamNetworkingIPAddr &x ) const { return memcmp( this, &x, sizeof(SteamNetworkingIPAddr) ) == 0; }
|
//inline bool SteamNetworkingIPAddr::operator==(const SteamNetworkingIPAddr &x ) const { return memcmp( this, &x, sizeof(SteamNetworkingIPAddr) ) == 0; }
|
||||||
|
//
|
||||||
inline void SteamNetworkingIdentity::Clear() { memset( this, 0, sizeof(*this) ); }
|
//inline void SteamNetworkingIdentity::Clear() { memset( this, 0, sizeof(*this) ); }
|
||||||
inline bool SteamNetworkingIdentity::IsInvalid() const { return m_eType == k_ESteamNetworkingIdentityType_Invalid; }
|
//inline bool SteamNetworkingIdentity::IsInvalid() const { return m_eType == k_ESteamNetworkingIdentityType_Invalid; }
|
||||||
inline void SteamNetworkingIdentity::SetSteamID( CSteamID steamID ) { SetSteamID64( steamID.ConvertToUint64() ); }
|
//inline void SteamNetworkingIdentity::SetSteamID( CSteamID steamID ) { SetSteamID64( steamID.ConvertToUint64() ); }
|
||||||
inline CSteamID SteamNetworkingIdentity::GetSteamID() const { return CSteamID( GetSteamID64() ); }
|
//inline CSteamID SteamNetworkingIdentity::GetSteamID() const { return CSteamID( GetSteamID64() ); }
|
||||||
inline void SteamNetworkingIdentity::SetSteamID64( uint64 steamID ) { m_eType = k_ESteamNetworkingIdentityType_SteamID; m_cbSize = sizeof( m_steamID64 ); m_steamID64 = steamID; }
|
//inline void SteamNetworkingIdentity::SetSteamID64( uint64 steamID ) { m_eType = k_ESteamNetworkingIdentityType_SteamID; m_cbSize = sizeof( m_steamID64 ); m_steamID64 = steamID; }
|
||||||
inline uint64 SteamNetworkingIdentity::GetSteamID64() const { return m_eType == k_ESteamNetworkingIdentityType_SteamID ? m_steamID64 : 0; }
|
//inline uint64 SteamNetworkingIdentity::GetSteamID64() const { return m_eType == k_ESteamNetworkingIdentityType_SteamID ? m_steamID64 : 0; }
|
||||||
inline void SteamNetworkingIdentity::SetIPAddr( const SteamNetworkingIPAddr &addr ) { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip = addr; }
|
//inline void SteamNetworkingIdentity::SetIPAddr( const SteamNetworkingIPAddr &addr ) { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip = addr; }
|
||||||
inline const SteamNetworkingIPAddr *SteamNetworkingIdentity::GetIPAddr() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? &m_ip : NULL; }
|
//inline const SteamNetworkingIPAddr *SteamNetworkingIdentity::GetIPAddr() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? &m_ip : NULL; }
|
||||||
inline void SteamNetworkingIdentity::SetLocalHost() { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip.SetIPv6LocalHost(); }
|
//inline void SteamNetworkingIdentity::SetLocalHost() { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip.SetIPv6LocalHost(); }
|
||||||
inline bool SteamNetworkingIdentity::IsLocalHost() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress && m_ip.IsLocalHost(); }
|
//inline bool SteamNetworkingIdentity::IsLocalHost() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress && m_ip.IsLocalHost(); }
|
||||||
inline bool SteamNetworkingIdentity::SetGenericString( const char *pszString ) { size_t l = strlen( pszString ); if ( l >= sizeof(m_szGenericString) ) return false;
|
//inline bool SteamNetworkingIdentity::SetGenericString( const char *pszString ) { size_t l = strlen( pszString ); if ( l >= sizeof(m_szGenericString) ) return false;
|
||||||
m_eType = k_ESteamNetworkingIdentityType_GenericString; m_cbSize = int(l+1); memcpy( m_szGenericString, pszString, m_cbSize ); return true; }
|
// m_eType = k_ESteamNetworkingIdentityType_GenericString; m_cbSize = int(l+1); memcpy( m_szGenericString, pszString, m_cbSize ); return true; }
|
||||||
inline const char *SteamNetworkingIdentity::GetGenericString() const { return m_eType == k_ESteamNetworkingIdentityType_GenericString ? m_szGenericString : NULL; }
|
//inline const char *SteamNetworkingIdentity::GetGenericString() const { return m_eType == k_ESteamNetworkingIdentityType_GenericString ? m_szGenericString : NULL; }
|
||||||
inline bool SteamNetworkingIdentity::SetGenericBytes( const void *data, size_t cbLen ) { if ( cbLen > sizeof(m_genericBytes) ) return false;
|
//inline bool SteamNetworkingIdentity::SetGenericBytes( const void *data, size_t cbLen ) { if ( cbLen > sizeof(m_genericBytes) ) return false;
|
||||||
m_eType = k_ESteamNetworkingIdentityType_GenericBytes; m_cbSize = int(cbLen); memcpy( m_genericBytes, data, m_cbSize ); return true; }
|
// m_eType = k_ESteamNetworkingIdentityType_GenericBytes; m_cbSize = int(cbLen); memcpy( m_genericBytes, data, m_cbSize ); return true; }
|
||||||
inline const uint8 *SteamNetworkingIdentity::GetGenericBytes( int &cbLen ) const { if ( m_eType != k_ESteamNetworkingIdentityType_GenericBytes ) return NULL;
|
//inline const uint8 *SteamNetworkingIdentity::GetGenericBytes( int &cbLen ) const { if ( m_eType != k_ESteamNetworkingIdentityType_GenericBytes ) return NULL;
|
||||||
cbLen = m_cbSize; return m_genericBytes; }
|
// cbLen = m_cbSize; return m_genericBytes; }
|
||||||
inline bool SteamNetworkingIdentity::operator==(const SteamNetworkingIdentity &x ) const { return m_eType == x.m_eType && m_cbSize == x.m_cbSize && memcmp( m_genericBytes, x.m_genericBytes, m_cbSize ) == 0; }
|
//inline bool SteamNetworkingIdentity::operator==(const SteamNetworkingIdentity &x ) const { return m_eType == x.m_eType && m_cbSize == x.m_cbSize && memcmp( m_genericBytes, x.m_genericBytes, m_cbSize ) == 0; }
|
||||||
inline void SteamNetworkingMessage_t::Release() { (*m_pfnRelease)( this ); }
|
//inline void SteamNetworkingMessage_t::Release() { (*m_pfnRelease)( this ); }
|
||||||
|
//
|
||||||
#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) || !defined( STEAMNETWORKINGSOCKETS_STEAMCLIENT )
|
//#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) || !defined( STEAMNETWORKINGSOCKETS_STEAMCLIENT )
|
||||||
STEAMNETWORKINGSOCKETS_INTERFACE void SteamAPI_SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr *pAddr, char *buf, size_t cbBuf, bool bWithPort );
|
//STEAMNETWORKINGSOCKETS_INTERFACE void SteamAPI_SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr *pAddr, char *buf, size_t cbBuf, bool bWithPort );
|
||||||
STEAMNETWORKINGSOCKETS_INTERFACE bool SteamAPI_SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr );
|
//STEAMNETWORKINGSOCKETS_INTERFACE bool SteamAPI_SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr );
|
||||||
STEAMNETWORKINGSOCKETS_INTERFACE void SteamAPI_SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity &identity, char *buf, size_t cbBuf );
|
//STEAMNETWORKINGSOCKETS_INTERFACE void SteamAPI_SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity &identity, char *buf, size_t cbBuf );
|
||||||
STEAMNETWORKINGSOCKETS_INTERFACE bool SteamAPI_SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, size_t sizeofIdentity, const char *pszStr );
|
//STEAMNETWORKINGSOCKETS_INTERFACE bool SteamAPI_SteamNetworkingIdentity_ParseString( SteamNetworkingIdentity *pIdentity, size_t sizeofIdentity, const char *pszStr );
|
||||||
inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamAPI_SteamNetworkingIPAddr_ToString( this, buf, cbBuf, bWithPort ); }
|
//inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamAPI_SteamNetworkingIPAddr_ToString( this, buf, cbBuf, bWithPort ); }
|
||||||
inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamAPI_SteamNetworkingIPAddr_ParseString( this, pszStr ); }
|
//inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamAPI_SteamNetworkingIPAddr_ParseString( this, pszStr ); }
|
||||||
inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamAPI_SteamNetworkingIdentity_ToString( *this, buf, cbBuf ); }
|
//inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamAPI_SteamNetworkingIdentity_ToString( *this, buf, cbBuf ); }
|
||||||
inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamAPI_SteamNetworkingIdentity_ParseString( this, sizeof(*this), pszStr ); }
|
//inline bool SteamNetworkingIdentity::ParseString( const char *pszStr ) { return SteamAPI_SteamNetworkingIdentity_ParseString( this, sizeof(*this), pszStr ); }
|
||||||
#endif
|
//#endif
|
||||||
|
|
||||||
#endif // #ifndef STEAMNETWORKINGTYPES
|
#endif // #ifndef STEAMNETWORKINGTYPES
|
||||||
|
@ -193,7 +193,7 @@ enum ESteamIPType
|
|||||||
|
|
||||||
struct SteamIPAddress_t
|
struct SteamIPAddress_t
|
||||||
{
|
{
|
||||||
union {
|
union x {
|
||||||
|
|
||||||
uint32 m_unIPv4; // Host order
|
uint32 m_unIPv4; // Host order
|
||||||
uint8 m_rgubIPv6[16]; // Network order! Same as inaddr_in6. (0011:2233:4455:6677:8899:aabb:ccdd:eeff)
|
uint8 m_rgubIPv6[16]; // Network order! Same as inaddr_in6. (0011:2233:4455:6677:8899:aabb:ccdd:eeff)
|
||||||
@ -206,53 +206,27 @@ struct SteamIPAddress_t
|
|||||||
|
|
||||||
bool IsSet() const
|
bool IsSet() const
|
||||||
{
|
{
|
||||||
if ( k_ESteamIPTypeIPv4 == m_eType )
|
return true;
|
||||||
{
|
|
||||||
return m_unIPv4 != 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return m_ipv6Qword[0] !=0 || m_ipv6Qword[1] != 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static SteamIPAddress_t IPv4Any()
|
static SteamIPAddress_t IPv4Any()
|
||||||
{
|
{
|
||||||
SteamIPAddress_t ipOut;
|
return {};
|
||||||
ipOut.m_eType = k_ESteamIPTypeIPv4;
|
|
||||||
ipOut.m_unIPv4 = 0;
|
|
||||||
|
|
||||||
return ipOut;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static SteamIPAddress_t IPv6Any()
|
static SteamIPAddress_t IPv6Any()
|
||||||
{
|
{
|
||||||
SteamIPAddress_t ipOut;
|
return {};
|
||||||
ipOut.m_eType = k_ESteamIPTypeIPv6;
|
|
||||||
ipOut.m_ipv6Qword[0] = 0;
|
|
||||||
ipOut.m_ipv6Qword[1] = 0;
|
|
||||||
|
|
||||||
return ipOut;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static SteamIPAddress_t IPv4Loopback()
|
static SteamIPAddress_t IPv4Loopback()
|
||||||
{
|
{
|
||||||
SteamIPAddress_t ipOut;
|
return {};
|
||||||
ipOut.m_eType = k_ESteamIPTypeIPv4;
|
|
||||||
ipOut.m_unIPv4 = 0x7f000001;
|
|
||||||
|
|
||||||
return ipOut;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static SteamIPAddress_t IPv6Loopback()
|
static SteamIPAddress_t IPv6Loopback()
|
||||||
{
|
{
|
||||||
SteamIPAddress_t ipOut;
|
return {};
|
||||||
ipOut.m_eType = k_ESteamIPTypeIPv6;
|
|
||||||
ipOut.m_ipv6Qword[0] = 0;
|
|
||||||
ipOut.m_ipv6Qword[1] = 0;
|
|
||||||
ipOut.m_rgubIPv6[15] = 1;
|
|
||||||
|
|
||||||
return ipOut;
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user