mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
DirtySDK (EA's Dirty Sockets library) will be used for the LiveAPI implementation, and depends on: EABase, EAThread.
6770 lines
325 KiB
Plaintext
6770 lines
325 KiB
Plaintext
EADP Game Services DirtySDK 15.1.6.0.5 - August 19, 2020
|
|
|
|
Framework 8.04.04
|
|
|
|
Android AndroidSDK 100.00.00-pr1
|
|
AndroidNDK 15.2.4203891
|
|
Capilano CapilanoSDK 180713-proxy
|
|
GDK GDK 200602-proxy
|
|
Kettle kettlesdk 7.508.021-proxy
|
|
PlayStation4AppContentEx 7.008.001
|
|
PlayStation4AudioInEx 7.008.001
|
|
PS5 ps5sdk 1.00.00.40-proxy
|
|
NX nx_config 1.00.05
|
|
nxsdk 9.0.0
|
|
Linux/Unix UnixClang 4.0.1
|
|
Stadia StadiaSDK 1.48-proxy
|
|
Win32 WindowsSDK 10.0.19041
|
|
|
|
New in this release:
|
|
|
|
DirtySDK (All)
|
|
DirtyNet
|
|
Added new SocketPacketQueueAdd2() which has a new bPartialAllowed parameter allowing for enqueueing of only
|
|
a portion of the submitted packet. (Only used from dirtynetnx for now)
|
|
|
|
Added new SocketPacketQueueGetHead() that can be used to get the data associated with the queue head,
|
|
without consuming the head and dequeueing it.
|
|
|
|
Added new SocketPacketQueueTouchHead() that can be used to update queue's head entry such that it no longer
|
|
includes successfully consumed portion of data previously queried with SocketPacketQueueGetHead().
|
|
|
|
ProtoSSL
|
|
Added the ability to set async receive on the SSL socket.
|
|
|
|
DirtySDK (GDK)
|
|
NetConnGDK
|
|
Added sandbox mapping for CERT.DEBUG to CERT environment which is used by MS internally when debugging
|
|
issues.
|
|
|
|
DirtySDK (GDK, XboxOne)
|
|
VoipHeadsetXboxOne
|
|
Added the ability to query the local user's STT preference from the system.
|
|
|
|
DirtySDK (NX)
|
|
DirtyNetNX
|
|
Added send queue and send thread for offloading send operations from main thread. (socket send system call
|
|
proved to block unreasonably long even with non-blocking sockets) - feature disabled by default
|
|
|
|
Added new 'asnd' global control selector that can be used to enable async send globally or on a per-socket
|
|
basis.
|
|
|
|
NetConnNX
|
|
Added new '-asyncsend' netconn startup param to turn on socket creation defaulting to async send being
|
|
used
|
|
|
|
Added new '-silent' to disable the display of any first party dialog as a result of handling network request
|
|
errors.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyWebApiPS4
|
|
Added DirtyWebApiUpdate and 'auto' selector to control where the updating of dirtywebapi happens from.
|
|
|
|
Added support for queueing event callbacks when the 'qcal' control is set to true.
|
|
|
|
DirtySDK (PS5)
|
|
DirtyWebApi2PS5
|
|
Added DirtyWebApiUpdate and 'auto' selector to control where the updating of dirtywebapi happens from.
|
|
|
|
Added support for queueing event callbacks when the 'qcal' control is set to true.
|
|
|
|
NetConnPS5
|
|
Added ability to query play-first trial status via 'pftr' status selector.
|
|
|
|
UserApiPS5/UserListApiPS5
|
|
Added rich presence support. On PS5 rich presence returns the most recent unhidden activity record.
|
|
* The activity name is returned in strData. For other field it is up to the game parse the raw json.
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Added sandbox mapping for CERT.DEBUG to CERT environment which is used by MS internally when debugging
|
|
issues.
|
|
|
|
Changes in this release:
|
|
|
|
DirtySDK (All)
|
|
DirtyNet
|
|
Fixed issues with using async receive on our TCP sockets by making several adjustments to our behavior.
|
|
The error conversion we were doing in SocketRecvfrom treated all zero error codes as a closed socket. To address this we
|
|
simplified the error conversion by changing the error codes when there is no data in the packet queue to fake the codes
|
|
the platform socket API would return. For UDP sockets we don't handle errors in the socket receive thread, which
|
|
doesn't work well for TCP sockets. To address this we only added open sockets to the poll list for TCP and other socket
|
|
types are unchanged. There is a race condition that is created by using the socket recv thread due to the use of the
|
|
'stat' selector. Due to the socket recv thread already handling these cases we just disable the portion of the 'stat'
|
|
selector when async receive is enabled.
|
|
|
|
DirtySDK (GDK)
|
|
Build
|
|
Updated to add the dependencies into the modules with in GDK package that give access to the GDK extensions.
|
|
|
|
ProtoHttpGDK
|
|
Fixed issue getting PROTOHTTP_RECVDONE from ProtoHttpRecv when passing in iBufMax = 0 by not early returning
|
|
if SocketRateThrottle returns zero.
|
|
|
|
Changed the setting of the init flags for winhttp to be a global control selector instead of setting it
|
|
based on if we are in a debug build or not.
|
|
|
|
Fixed state transition when calling WinHttpSendRequest by making state transition before the call in case
|
|
send completes (on a different thread) before the end of the call.
|
|
|
|
UserListApiGDK
|
|
Fixed issue with identifying response from the DATA callback for mute and block list queries by adding in
|
|
the type and user index into the data.
|
|
|
|
Fixed the xuid passed into the fill out profile function which was using the first index into the array
|
|
instead of the current index due to a typo.
|
|
|
|
DirtySDK (PC, XboxOne, GDK)
|
|
DirtyNetWin
|
|
Removed the direct recv from the socket when there is no data in the packet queue. In an attempt to align
|
|
the implementations of dirtynet, we will remove our attempted optimization in dirtynetwin.
|
|
|
|
DirtySDK (PS4, PS5)
|
|
NetConnPS4, NetConnPS5
|
|
Fixed an incorrect debug print statement that indicated failure to acquire PPPoE information when 'type'
|
|
status selector is used.
|
|
|
|
VoipHeadsetPS4
|
|
Changed the block list interval down to the same value we are using on stadia to try to keep the
|
|
implementations aligned.
|
|
|
|
DirtySDK (PS5)
|
|
NetConnPS5
|
|
Fixed duplicate NP platform termination on shutdown.
|
|
|
|
UserListApiPS5
|
|
Fixed problems with querying profiles of 100 friends (up to the page limit)
|
|
|
|
DirtySDK (Stadia)
|
|
UserListApiStadia
|
|
Fixed issue with identifying response from the DATA callback for mute and block list queries by adding in
|
|
the type and user index into the data.
|
|
|
|
VoipHeadsetStadia
|
|
Fixed the inability to get the hardware status by calling the status callback when we get state changes.
|
|
Using GgpAddMicAudioStateChangedHandler allows us to get the state changes of the microphone state. When the
|
|
microphone is not available for use we must convey the mute. DirtySDK already has an API to do this but we
|
|
weren't sending the right callbacks down to signal the changes.
|
|
|
|
DirtySDK (XboxOne)
|
|
VoipNarrateXboxOne
|
|
Changed the implementation to add exception handling to the speech api and prevent multiple asynchronous
|
|
reads at once.
|
|
|
|
EADP Game Services DirtySDK 15.1.6.0.4 - June 3, 2020
|
|
|
|
Framework 8.04.00
|
|
|
|
Android AndroidSDK 100.00.00-pr1
|
|
AndroidNDK 15.2.4203891
|
|
Capilano CapilanoSDK 180712-1-proxy
|
|
GDK GDK 200200-proxy
|
|
Kettle kettlesdk 7.508.001-proxy
|
|
PlayStation4AppContentEx 7.008.001
|
|
PlayStation4AudioInEx 7.008.001
|
|
PS5 ps5sdk 0.95.00.36-proxy
|
|
NX nx_config 1.00.05
|
|
nxsdk 9.0.0
|
|
iPhone ios_config 1.14.00
|
|
OSX osx_config 1.20.01
|
|
Linux/Unix UnixClang 4.0.1
|
|
Stadia StadiaSDK dev-proxy
|
|
Win32 WindowsSDK 10.0.18362
|
|
|
|
New in this release:
|
|
|
|
DirtySDK (All)
|
|
Base64
|
|
Added the ability to remove padding from url encoded via a new API Base64EncodeUrl2. Padding isn't required
|
|
by the spec in all cases and with JWT we do not wanted padding added.
|
|
|
|
DirtySDK (Sony)
|
|
VoipHeadsetPS4
|
|
Added support for querying the blocklist to auto-mute players on Sony platforms as required by TRC R5304.
|
|
|
|
DirtySDK (Stadia)
|
|
NetConnStadia
|
|
Added support for the 'chat' selector to check if the local user can use voice chat. This selector will be
|
|
used by the voip system like on other platforms to restrict voice chat.
|
|
|
|
PrivilegeApiStadia
|
|
Added support for checking the voice chat and multiplayer features on stadia allowing for showing the
|
|
overlay if necessary.
|
|
|
|
VoipHeadsetStadia
|
|
Added support for processing the blocklist to auto-mute players. Added tracking for the remote player ids
|
|
which is needed for processing the blocklist.
|
|
|
|
Added the checking of the voice chat restrictions for the transmission and playback of voice chat.
|
|
|
|
Added support for transcription and text chat accessibility features. This implementation is based on PS4
|
|
where we disable 'vdis' for transcription when narration is active. Like on other platforms we provide the
|
|
text chat narration features as a way to allow teams to use our voip features for text chat when voice chat
|
|
is inactive.
|
|
|
|
Added support for text-to-speech using the cloud based providers via voipnarrate. The narration module
|
|
supports a sample rate that differs of that in module. This is handled transparently in the codec (via
|
|
resampling) but we need to handle the data coming in with the differing sample rate.
|
|
|
|
VoipStadia
|
|
Added proper support for local input muting. We had preliminary for the local input muting in the voip
|
|
module but it was not implemented in the headset module.
|
|
|
|
Changes in this release:
|
|
|
|
DirtySDK (All)
|
|
DirtyNet
|
|
Removed the suppressions around the include of winsock2.h in dirtynet.h to fix issues with all warnings
|
|
being suppressed for complation units that include this header file. In previous versions of the WindowsSDK
|
|
these suppressions were needed due to warnings being generated by the header file. We no longer see this
|
|
behavior on current versions of the WindowSDK.
|
|
|
|
NetConn
|
|
Increased the number of idle handlers to 64 due to game team use cases where more than 32 need to be
|
|
registered. The number of idle handlers should not be the limiting factor to the amount of modules we can
|
|
have running at once.
|
|
|
|
QosClient
|
|
Changed the NetCritEnter to NetCritTry to prevent stalling the main thread waiting for the lock. If we can't
|
|
the lock then we can wait for the next frame to do the update.
|
|
|
|
VoipHeadset
|
|
Changed the headset modules to unify on how they detect a change in the first party mute list uisng the
|
|
'fpmu' selector. Previously on xbox we were using the 'fpmc' selector that returns the number of entries in
|
|
the first party mute list. Given that certain implementations could make multiple updates in an interval
|
|
that could mean no change in the count, we needed to use a different method. The new method will signal if
|
|
an update was made to the list which we signal in the places when we know a change has been made.
|
|
|
|
VoipNarrate
|
|
Updated the module to expose the sample rate that it uses internally. On system's with differing sample
|
|
rates it allows us to resample where necessary at the codec level.
|
|
|
|
VoipOpus
|
|
Refactored the resampler logic to prevent reallocation when switching sampling rate and update the
|
|
calculation the sample rate based on input samples. On Stadia when communicating without accessibility we
|
|
will be using a sample rate of 48kHz, our accessibility modules depend on 16kHz which we need to resample in
|
|
order to support. Given that we might switch the sampling rate we don't want to reallocate the same state
|
|
thus we will just remember what sampling rate the resampler is configured to.
|
|
|
|
UserList
|
|
Increased the size of the gamertag field to support the increases in the gdk and stadia gamertags.
|
|
|
|
DirtySDK (GDK)
|
|
NetConnGDK
|
|
Changed the implementation of the environment determination to default to production on cases where the
|
|
sandbox lookup failed or a valid mapping was not found. In these cases we want to ensure that the default
|
|
case of running in production still functions. If we would fall into these cases before these changes we
|
|
would be stuck in the environment determination state until the user tried to reconnect to the platform
|
|
network again.
|
|
|
|
UserListApiGDK
|
|
Fixed a build error UserListApiGDK. We now also include userlistapixboxone.h in userlistapi.h.
|
|
This matches what was done for userapi.h and fixes compliation issues.
|
|
|
|
DirtySDK (NX)
|
|
NetConnNX
|
|
Added 'eusr' selector support on NX. This selector returns the IEAUser interface given a user index.
|
|
|
|
DirtySDK (PS4)
|
|
DirtySessionManagerPS4
|
|
Removed Play together feature because it is not officially deprecated. All the assciated functionality will
|
|
only be avaliable if you are using SDK version lower than 7.5 SDK
|
|
|
|
NetConnPS4
|
|
Changed NetConnStartup to update the title id if it is called while the module is already started and
|
|
title id is NETCONNPS4_SAMPLE_TITLE_ID. This will allow the title id to be updated to the game title id
|
|
for cases where NetConnStartup is called early for BugSentry and NETCONNPS4_SAMPLE_TITLE_ID is used as
|
|
a default.
|
|
|
|
DirtySDK (PS5)
|
|
DirtyWebApi2PS5
|
|
Changed the way how DirtyWebApi callback is called when we encounter sce errors. The http status code is now also
|
|
supplied along with the sce error to help differentiate potential buffer size errors.
|
|
|
|
Fixed the unintended knock on of sharing dirtywebapi2. When modules sharing dirtywebapi2 they should only be allowed to
|
|
abort the requests made by themselves.
|
|
|
|
NetConnPS5
|
|
Changed NetConnStartup to update title id if it is called while the module is already started and
|
|
title id is NETCONNPS4_SAMPLE_TITLE_ID. This will allow the title id to be updated to the game title id
|
|
for cases where NetConnStartup is called early for BugSentry and NETCONNPS4_SAMPLE_TITLE_ID is used as
|
|
a default.
|
|
|
|
UserListApiPS5
|
|
Fixed Total item friends count not being set for a list end event.
|
|
|
|
Fixed callbacks not firing when using type mask with a user without friends. It will now also fire the callback if
|
|
the get account ids request returns zero items.
|
|
|
|
Removed an unecessary NetCritLeave in _UserListApiProcessRequest (). This extra NetCritLeave was causing strange
|
|
deadlocks because unlocking an unlocked mutex is undefined behavior.
|
|
|
|
Changed the restriction on the max blocked list size limit to 2000 per request (this is the max number supported by PSN).
|
|
Querying Blocked List with filters or mask parameter are also not supported.
|
|
|
|
Fixed the _UserListApiAddQueryParamsToRequest() function to ignore adding query parameters for blocked list reqauest
|
|
instead of the friends request.
|
|
|
|
DirtySDK (Sony)
|
|
VoipHeadsetPS4
|
|
Removed the uChatPrivileges field as it is no longer read out of due to changes in CL1329299.
|
|
|
|
DirtySDK (Stadia)
|
|
NetConnStadia
|
|
Changed the 'tick' selector to support retrieveing the raw JWT. Retrieving the JWT was missed during the
|
|
initial implementation of JWT support on stadia. This aligns with how the other platforms support retrieving
|
|
the JWT.
|
|
|
|
Voip
|
|
Enabled the speaker callback on stadia. We are following the PC implementation and this was already
|
|
supported at the headset level.
|
|
|
|
VoipHeadsetStadia
|
|
Fixed VoipHeadsetControl to return -1 when unhandled.
|
|
|
|
VoipStadia
|
|
Fixed a bug in that the correct user indices were not being passed to apply the mute on.
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Fixed for uncaught exception during environment determination when the TMS class is not enabled in the
|
|
appxmanifest. If the application was not setup to include the ability to access title storage an exception
|
|
will be thrown when we try to create that class. In this case we will catch the exception and default to the
|
|
production environment.
|
|
|
|
|
|
EADP Game Services DirtySDK 15.1.6.0.3 - April 21, 2020
|
|
|
|
Framework 8.03.02
|
|
|
|
Android AndroidSDK 100.00.00-pr1
|
|
AndroidNDK 15.2.4203891
|
|
android_config 5.00.00-pr1
|
|
Capilano CapilanoSDK 180712-1-proxy
|
|
GDK GDK 200200-proxy
|
|
Kettle kettlesdk 7.008.001-proxy
|
|
PlayStation4AppContentEx 6.508.010
|
|
PlayStation4AudioInEx 6.508.001
|
|
PS5 ps5sdk 0.95.00.36-proxy
|
|
NX nx_config 1.00.05
|
|
nxsdk 9.0.0
|
|
iPhone ios_config 1.14.00
|
|
OSX osx_config 1.20.01
|
|
Linux/Unix UnixClang 4.0.1
|
|
Stadia StadiaSDK dev-proxy
|
|
Win32 WindowsSDK 10.0.18362
|
|
|
|
*** Important - First release supporting Stadia ***
|
|
This is the first DirtySDK release that supports Stadia. Most but not all functionality is supported.
|
|
For more detailed information please please contact Gameplay Services.
|
|
|
|
New in this release:
|
|
|
|
DirtySDK (All)
|
|
DirtyGIF, DirtyGraph
|
|
Added support for multiframe GIF decoding. Frames may be decoded all at once or one at a time.
|
|
|
|
DirtyUser
|
|
Added a generic dirtyuser based on uint64_t identifiers and switched all our platforms to using it. Given
|
|
that all our platforms use uint64_t ids there is no reason to require the creation of a platform specific
|
|
version that is exactly the same.
|
|
|
|
ProtoHttp
|
|
Added a new error PROTOHTTP_EAGAIN to be used when we cannot make the request because a resource is not
|
|
available or not ready to be used.
|
|
|
|
ProtoSSL
|
|
Added a public API function to expose the pkcs1 verify features internal to protossl. This functionality
|
|
will allow us to verify the RSA signatures when used for cryptographic operations outside the context of a
|
|
TLS connection.
|
|
|
|
Added a public function to generate a PKCSv1.5 signature.
|
|
|
|
DirtySDK (PS5)
|
|
UserApiPS5, UserListApiPS5
|
|
Added PS5 support for UserApi and UserListApi
|
|
|
|
DirtySDK (Stadia)
|
|
NetConnStadia
|
|
Added initial support for the stadia platform. Other modules use the unix versions which work out of the
|
|
box.
|
|
|
|
Added a selector 'gpid' to get the player id for the user registered at a given index.
|
|
|
|
UserApiStadia, UserListApiStadia
|
|
Adding support for userapi and userlistapi on the stadia platform. For the profile data, stadia only
|
|
supports getting the gamertag and id. For the presence data, stadia only supports getting the availability
|
|
of the user.
|
|
|
|
VoipStadia
|
|
Added an implementation of the voip module for stadia. This implementation is generic and inspired from the
|
|
other platforms. It will be expected to change when we start implementing the headset functionality.
|
|
|
|
VoipHeadsetStadia
|
|
Added support for the headset module on stadia. Stadia only supports pulling PCM data from the microphone at
|
|
48kHz. For other platforms we normally only support 16kHz but we don't have the option to modify this on
|
|
stadia. Given that 20ms of audio data at 48kHz exceeds our MTU we must compress the audio. To do this we
|
|
have added support for the opus codec which is supported on other supported platforms. Opus is configured to
|
|
use 16kHz by default but for stadia we have modified the build scripts and source to allow bumping that up
|
|
to 48kHz.
|
|
|
|
Changes in this release:
|
|
|
|
DirtySDK (All)
|
|
Base64
|
|
Fixed decoding of non-padded base64. when no padding is present treat the data up to the quad as padded.
|
|
|
|
NetConn
|
|
Fixed the issue of NetConnDisconnect being called while the ref count is not zero.
|
|
|
|
NetGameDistServ
|
|
Moved some metrics sampling interval validation logic to where it belongs, from gameserveroimetrics.c to
|
|
netgamedistserv.c
|
|
|
|
Enhanced debug logging around calculation of idpps, odmpps and inputdrops metrics.
|
|
|
|
Replaced NetGamDistServT::bPrevFlowEnabled, NetGameDistServT::bPrevNoInputMode and
|
|
NetGameDistServT::uPrevStatClientCount with respective local variables in functions where their usage was
|
|
limited to. Fixed implementation of NetGameDistControl('rsta') such that it is now limited to reset the
|
|
following boolean variables used to flag if events happened during the sampling interval:
|
|
NetGameDistServT::bClientCountChanged, NetGameDistServT::bFlowEnabledChanged,
|
|
NetGameDistServT::bNoInputModeChanged.
|
|
|
|
Fixed implementation of 'ocnt' selector to now return 1 if sampling interval is invalid.
|
|
|
|
Fixed implementation of 'drop' and 'icnt' selector to now return 1 if sampling interval is invalid.
|
|
|
|
ProtoHttp
|
|
Deprecated the PROTOHTTP_NOTHREADS error (used on PS4/PS5) as the PROTOHTTP_EAGAIN can be used instead as a
|
|
general purpose error across the platforms.
|
|
|
|
ProtoSSL
|
|
Fixed an issue where a PSS signature scheme could be chosen when sending a CertificateVerify message for a
|
|
PKCS1 certificate. This would cause OpenSSL to abort the connection with an illegal parameter alert.
|
|
|
|
Fixed a possible null-pointer exception by aborting the handshake if we can't find a valid matching
|
|
signature scheme in RecvCertificateRequest; this situation could only happen with a non-compliant server.
|
|
|
|
Fixed SendCertificateRequest() to build the TLS1.2 SignatureAndHashAlgorithms from the available signature
|
|
schemes rather than hard-coding a subset of available signature schemes in the function itself.
|
|
|
|
Removing support for ECDSA-SHA512 as we are not looking to support SECP521R1 curves at this time.
|
|
|
|
VoipConnection
|
|
Changed the initial value (from 127 to 0) of the variable used to track the last received seq number for
|
|
reliable data messages on a specific voip connection. The previous value was used to make it clear that
|
|
the validity range is limited to [1,127] and that the next expected inbound sequence number at connection
|
|
start is 127 + 1 = 1. This had a knock on in a scenario where we need to send a ACK before inbound traffic
|
|
would have even been received. That scenario seems only possible in server-based connectivity using
|
|
the 1x upload Nx download optimiztion on MIC packets. Upon exercising that race condition, one end of
|
|
the connection would ACK seq nb 127 when in reality it has not yet received packet resulting in reliable
|
|
data traffic flow being broken. The bug fix consists in initializing the variable with 0 instead resulting
|
|
in the next expected inbound sequence number at connection start to be 0 + 1 = 1, and the usage of 0 when
|
|
ACKING before traffic comes in, where 0 means 'ignore this field, no sequence number acked'.
|
|
|
|
DirtySDK (GDK)
|
|
ProtoHttpGDK
|
|
Fixed the uri truncation by parsing the information directly from the request headers. If you had a uri
|
|
longer than 256 characters we would truncate the information causing the formatted request headers to fail
|
|
when making the call to WinHttpOpenRequest.
|
|
|
|
Changed the behavior on gdk to not automatically redirect before providing the caller with the redirection
|
|
header information. When redirects are enabled with WinHttp, you never get a chance to inspect the
|
|
intermediate header information. Their are certain customers (webkit) that depend on being able to pull out
|
|
the location headers before the redirect is complete.
|
|
|
|
Fixed the corruption of the download payload by only resetting the read and recv positions before doing a
|
|
new read. If the caller has read the entire available buffer using ProtoHttpRecv while we have a pending
|
|
WinHttpReadData call (due to having some available space in the buffer), our payload may get corrupted. The
|
|
iInpOff and iInpLen fields get reset to zero when everything is read in ProtoHttpRecv. This causes the
|
|
writes to happen to the wrong location.
|
|
|
|
Fixed the processing of the redirect from a POST to a GET by making sure the post size is set to zero. In
|
|
the GDK version of ProtoHttp to handle the state change to ST_HEAD we wait for all the data to be sent based
|
|
on the amount sent and post size.
|
|
|
|
Fixed redirect issue when we try to receive the body but a redirect happens by not trying to receive body
|
|
when redirecting. If we are redirecting we will be create a new request and by trying to receive the body
|
|
we put our request tracking in a bad state. We try to receive the response and then put our query async-op
|
|
into the pending state. This puts our async-op in a bad state for the next request that happens.
|
|
|
|
ProtoHttpManager
|
|
Fixed requests failing on the GDK platform if pipelining is enabled by disabling this pipelining feature at
|
|
the httpmanager level.
|
|
|
|
DirtySDK (Linux)
|
|
DirtyErrUnix
|
|
Fixed the parsing of the errorlist not to exit on an error of zero but use the list term as done on other
|
|
platforms.
|
|
|
|
DirtySDK (PC)
|
|
DirtyNetWin
|
|
Fixed local address resolution when using a full tunnel VPN by using an address in the public space to do
|
|
the routing query. With the work from home directive some teams have started trying to use their work PCs
|
|
at home using the full tunneled VPN. On the windows version of dirtynet, the local address resolution tries
|
|
to use 192.168.1.1 for routing query. On home networks you are likely to pick a 192.168.1.x address which
|
|
is the non-VPN adapter's address which will fail to be used for prototunnel connectivity purposes, even
|
|
when the connection does not leave the host.
|
|
|
|
DirtySDK (PS5)
|
|
DirtyContextManager
|
|
Added the cleanup of Http2 contexts during shutdown
|
|
|
|
DirtyWebApiPS5
|
|
Fixed a merge error. sceNpWebApi2AddHttpRequestHeader should be using the web request id instead.
|
|
|
|
NetConnPS5
|
|
Changed the default behavior of the shared dirtywebapi2ps5 to queue up the callbacks ('qcal' selector)
|
|
|
|
DirtySDK (XboxOne)
|
|
VoipHeadsetXboxOne
|
|
Changed _VoipHeadsetAddLocalTalker()/_VoipHeadsetRemoveLocalTalker() to no longer invoke
|
|
_VoipHeadsetDumpChatUsers() directly but to now flag a boolean that will result in the users being
|
|
dumped from VoipHeadsetProcess() instead. This is to avoid possible concurrent execution of
|
|
_VoipHeadsetDumpChatUsers() from the socket recv thread (not locking ThreadCrit) and other threads locking
|
|
ThreadCrit, i.e. voip thread and main thread.
|
|
|
|
|
|
EADP Game Services DirtySDK 15.1.6.0.2 - February 14, 2019
|
|
|
|
Framework 8.02.01
|
|
|
|
Android AndroidSDK 100.00.00-pr1
|
|
AndroidNDK 15.2.4203891
|
|
android_config 5.00.00-pr1
|
|
Capilano CapilanoSDK 180709-proxy
|
|
GDK GSDK 191100-proxy
|
|
Kettle kettlesdk 7.008.001-proxy
|
|
PlayStation4AppContentEx 6.508.010
|
|
PlayStation4AudioInEx 6.508.001
|
|
PS5 ps5sdk 0.90.00.24-proxy
|
|
NX nx_config 1.00.05
|
|
nxsdk 9.0.0
|
|
iPhone ios_config 1.14.00
|
|
OSX osx_config 1.20.01
|
|
Linux/Unix UnixClang 4.0.1
|
|
Win32 WindowsSDK 10.0.18362
|
|
|
|
*** Important - First Gen5 release supporting PS5 and GDK targets ***
|
|
This is the first DirtySDK release that supports Gen5 consoles. Most but not all functionality is supported.
|
|
For more detailed information please please contact Gameplay Services.
|
|
|
|
*** Important - Required framework version updated to 8.x line in support of Gen5 consoles ***
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
ConnApi
|
|
Added a debugging print to explain that we are connecting in passive mode and a comment explaining what that
|
|
is.
|
|
|
|
NetGameDist
|
|
Added support for client side metrics (rpacklost, lpacklost, odpps, idpps, dist wait time, dis proc time)
|
|
|
|
DirtySDK (GDK)
|
|
DirtyErrGDK
|
|
Added the WinHttp specific error mappings to the module.
|
|
|
|
Added the errors from xsapi to the file but given that c++ hardcoded the values.
|
|
|
|
Added errors that come from winerror that are also used in the xsapi's httpclient.
|
|
|
|
NetConnGDK
|
|
Added support for checking the trial information. In the GDK, the request is always asynchronous and thus
|
|
we needed to introduce a control call to kick off the request.
|
|
|
|
Added protoupnp support, strictly for informational purposes (no adding/removing port mapping as we rely on
|
|
Microsoft for that).
|
|
|
|
Added support for communications check for the 'chat' selector
|
|
|
|
PrivilegeApiGDK
|
|
Added support for privilege checks on the GDK
|
|
|
|
ProtoHttpGDK
|
|
Added support for the WinHttp library backed implementation of ProtoHttp.
|
|
|
|
Added support for send and recv rate throttles as supported on the socket and other protocols. These
|
|
throttles can be queried and controlled via the normal methods ProtoHttpStatus/ProtoHttpControl
|
|
respectively.
|
|
|
|
ProtoUpnp
|
|
Added new macro 'dscp' for Gemini use - discovers/describes and finds port mapping but does not attempt to
|
|
add/delete one.
|
|
|
|
Added new status flag PROTOUPNP_STATUS_FNDPORTMAP, used to indicate if a port mapping was found on the
|
|
device.
|
|
|
|
UserApiGDK
|
|
Added support for pulling profile(s), presence and rich presence information via the userapi module.
|
|
|
|
Added support for posting rich presence data.
|
|
|
|
Added support for specifying the size of the avatar urls based on what we do on xboxone.
|
|
|
|
UserListApiGDK
|
|
Added support for grabbing the social relationships on GDK without pulling any additional information.
|
|
|
|
Added support for the avoid and mute list APIs. For this support we are treating avoid list as blocking as
|
|
the closest thing available on that platform.
|
|
|
|
Added support for profile, presence and rich presence data lookup as part of the userlist.
|
|
|
|
Added handling for the rate limiting errors for retry time.
|
|
|
|
VoipHeadsetXboxOne
|
|
Added support for finding the audio endpoint on GDK builds for narration.
|
|
|
|
VoipNarrateGDK
|
|
Added support for using XSpeechSynthesizer for doing local narration on GDK builds.
|
|
|
|
DirtySDK (PS5)
|
|
DirtyWebApiPS5
|
|
Added support for NpWebApi2 calls.
|
|
|
|
DirtySDK (NX)
|
|
NetConnNX
|
|
Added support for setting the dirtysock thread's affinity using the startup param that is used on other
|
|
platforms. The 'affn' selector was also added like on other platforms to query our affinity.
|
|
|
|
Implemented NetConnQuery based on implementation of other console platforms. Using the information we have
|
|
already in the module we can query the index based on nickname, uid or first logged in user.
|
|
|
|
Changes in this release:
|
|
DirtySDK (All)
|
|
ConnApi
|
|
Fixed crash when the secure address on xboxone within our dirtyaddr is not properly set by checking the
|
|
validity of the getaddr call.
|
|
|
|
CryptRand
|
|
Changed the module to use a single cryptrand.c source where possible for our various platforms as the
|
|
complexity of the solution was unnecessary.
|
|
|
|
Changed the definitions of the CryptRandInit and CryptRandShutdown functions to be private
|
|
|
|
DirtyThread
|
|
Fixed race condition crash / assert when the dirtysock core threads shut down by moving the logging before
|
|
the shutdown indicator.
|
|
|
|
ProtoHttp2
|
|
Fixed the truncation of the formatted header by ensuring space for the null terminator in our temporary
|
|
buffer we use for HPACK compression
|
|
|
|
ProtoHttpManager
|
|
Fixed a crash in a print, because pHttpManager can be null after a disconnect in rare cases.
|
|
|
|
ProtoHttpServ
|
|
Fixed boundary issues with chunk headers and trailers not being fully available when receiving a chunked
|
|
transfer.
|
|
|
|
ProtoSSL
|
|
Fixed the behavior of the alerting when no certificate is received and one is required based on what is
|
|
specified by the spec.
|
|
|
|
VoipDef
|
|
Added VoipHeadsetPreferredDefaultDeviceTypeE enum for use with VoipHeadsetStatus() control selector 'odft'.
|
|
|
|
Changed comments to be platform agnostic for VOIP_LOCAL_USER_HEADSETOK, VOIP_LOCAL_USER_INPUTDEVICEOK and
|
|
VOIP_LOCAL_USER_OUTPUTDEVICEOK.
|
|
|
|
VoipCommon
|
|
Fixed wrong exit condition for FOR loop that could result in out-of-bound access of
|
|
VoipConnectionListT::bTranscribedTextRequested[] array.
|
|
|
|
VoipTranscribe
|
|
Fixed buffer resetting to be more consistently applied.
|
|
|
|
Fixed an issue where SendFinish could fail to send when using IBM Watson and websockets, which could result
|
|
in a session timeout from that transaction as the server waits for the close or trailing silence, neither
|
|
of which were being sent, to complete the request.
|
|
|
|
Fixed some cases that weren't going through ST_FAIL state properly.
|
|
|
|
Fixed to reset record buffer on fail; this resolves some issues with a request following a failure.
|
|
|
|
Fixed a rare case where the state machine could be stuck in ST_IDLE permanently.
|
|
|
|
Fixed STREAM_END for HTTP2 when finishing a submission (Amazon/Google).
|
|
|
|
DirtySDK (GDK)
|
|
DirtyCert
|
|
Fixed the port offset to use the correct one on all xbox platforms (xdk/gdk)
|
|
|
|
ProtoHttpGDK
|
|
Fixed incorrect copying of data from ProtoHttpRecvAll after back to back requests by making sure we reset
|
|
our state to default.
|
|
|
|
UserListGDK
|
|
Fixed a leak of the xbl context in the case we failed to kick off the async requests.
|
|
|
|
VoipHeadsetXboxOne
|
|
Fixed the setting of the bitrate for gdk based on the documentation.
|
|
game_chat_audio_encoding_type_and_bitrate was changed to game_chat_audio_encoding_bitrate on the GDK.
|
|
|
|
Fixed a bug where the users "text to speech conversion preference" was not being honored.
|
|
|
|
DirtySDK (GDK, XboxOne)
|
|
VoipHeadsetXboxOne
|
|
Changed User^ calls to use 'xuid' and 'gtag' for compatibility with both GDK and XDK
|
|
|
|
Removed the platform check for xboxone for bApplyRelFromMuting check on the voip thread.
|
|
|
|
VoipXboxOne
|
|
Changed User^ calls to use 'xuid' and 'gtag' for compatibility with both GDK and XDK
|
|
|
|
DirtySDK (NX)
|
|
DirtyNetNX
|
|
Fixed issues with NetConnStartup failures due no network connection on the switch
|
|
|
|
NetConnNX
|
|
Removed the to do in _NetConnGetPlatformEnvironment(). Note: On NX there is no way for the client to
|
|
determine the environment.
|
|
|
|
DirtySDK (PC)
|
|
VoipHeadsetPC
|
|
Changed VOIP_HEADSET_MAXDEVICES to 16 and updated some comments to no longer refer to only output
|
|
devices.
|
|
|
|
Changed VoipHeadsetStatus() with control selector 'odft' to take an iValue of enum
|
|
VoipHeadsetPreferredDefaultDeviceTypeE for specifying whether to retrieve the default audio device or
|
|
the default voice communications device, and whether to set the DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY
|
|
flag.
|
|
|
|
VoipPC
|
|
Changed print statements in voip status callback for consistency with changes in other platforms.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyErrPS4
|
|
Added more webapi 2 errors specific to PS5.
|
|
|
|
DirtyWebApiPS4
|
|
Added DirtyWebApiRequestEx to allow the addition of request headers
|
|
|
|
NetConnPS4
|
|
Added mapping for CZECH, HUNGARIAN, GREEK, ROMANIAN, THAI, VIETNAMESE and INDONESIAN from sony
|
|
SCE_SYSTEM_PARAM_LANG_* to our LOBBYAPI_LANGUAGE_*.
|
|
|
|
VoipHeadsetPS4
|
|
Changed _VoipHeadsetUpdateStatus() to send VOIP_HEADSET_STATUS_INPUT to pStatusCb and changed
|
|
headset references to mic in places where only input device was being checked.
|
|
|
|
VoipPS4
|
|
Fixed voip status calback to no longer toggle output device status when an input device is inserted
|
|
or removed. Output device status is now set when local talker is registered and is not updated.
|
|
|
|
DirtySDK (PS5)
|
|
NetConnPS5
|
|
Added the 'pscx' and 'pscd' status selector to create/return a user's push context id and to delete a users
|
|
push context id.
|
|
|
|
Fixed the gating of the chat restriction, the 'chat' selector returns FALSE when there is no restriction
|
|
instead of TRUE.
|
|
|
|
Added mapping for CZECH, HUNGARIAN, GREEK, ROMANIAN, THAI, VIETNAMESE and INDONESIAN from sony
|
|
SCE_SYSTEM_PARAM_LANG_* to our LOBBYAPI_LANGUAGE_*.
|
|
|
|
VoipOpus
|
|
Removed the hacks for building on PS5 for the speex package after we upgraded to the latest version.
|
|
|
|
DirtySDK (XboxOne)
|
|
DirtyAddrXboxOne
|
|
Modified the DirtyAddrGetInfoXboxOne to validate that the address has been properly set before trying to
|
|
retrieve data.
|
|
|
|
NetConnXboxOne
|
|
Added exception handling when adding a new NetworkStatusChanged event handler
|
|
|
|
VoipHeadsetXboxOne
|
|
Changed _VoipHeadsetUpdateStatus() to send VOIP_HEADSET_STATUS_INPUT to pStatusCb and changed
|
|
headset references to mic in places where only input device was being checked.
|
|
|
|
Changed _VoipHeadsetGetChatUserForVoipUser() to use to_wstring instead of snwprintf
|
|
|
|
Fixed gamechat 2 audio buffers not being returned when switching between crossplay modes.
|
|
|
|
Fixed first party mute to ignore adjuster none. Muting due to adjuster none is technically not a result of
|
|
first party settings.
|
|
|
|
Fixed the way how user chat status is being handled for crossplay.
|
|
|
|
VoipXboxOne
|
|
Fixed voip status calback to no longer toggle output device status when an input device is inserted
|
|
or removed. Output device status is now set when local talker is registered and is not updated.
|
|
|
|
EADP Game Services DirtySDK 15.1.6.0.1 - October 9, 2019
|
|
|
|
EA Config 5.14.04
|
|
Framework 7.19.00
|
|
|
|
Android AndroidSDK 28
|
|
AndroidNDK r15c-1
|
|
android_config 4.06.01
|
|
Capilano CapilanoSDK 180709-proxy
|
|
capilano_config 2.07.02
|
|
Kettle kettlesdk 6.508.001-proxy
|
|
kettle_config 2.11.00
|
|
PlayStation4AppContentEx 6.508.010
|
|
PlayStation4AudioInEx 6.508.001
|
|
NX nx_config 1.00.05
|
|
nxsdk 9.0.0
|
|
iPhone ios_config 1.14.00
|
|
OSX osx_config 1.20.01
|
|
Linux/Unix UnixClang 4.0.1
|
|
Win32 DotNet 4.0-2
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 15.4.27004.2002-2-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
DirtyPNG
|
|
Added paletted png decode support.
|
|
|
|
NetGameDist
|
|
Added new status selector 'drop' to return the total dropped packets
|
|
|
|
NetGameDistServ
|
|
Added a new NetGameDistServStatus2() function that takes more parameters.
|
|
|
|
Added 4 new status selector for reporting stats
|
|
'clnu': number of clients
|
|
'drop': total dropped input packet count
|
|
'idps': total input dist packet count
|
|
'odmp': total output dist multi packet count
|
|
|
|
Added new control selector 'rsta' to reset stat variables
|
|
|
|
ProtoSSL
|
|
Added new ECDSA Gameplay Services Root CA for future use.
|
|
|
|
VoipNarrate
|
|
Added VoipNarrateControl('ctsm') to clear text to speech metrics in VoipTextToSpeechMetricsT
|
|
This is used in a fix where incorrect tts metrics may be reported, to make use of this fix update BlazeSDK
|
|
to trama.1.
|
|
|
|
VoipTranscribe
|
|
Added VoipTranscribeControl('cstm') to clear speech to text metrics in VoipSpeechToTextMetricsT
|
|
This is used in a fix where incorrect stt metrics may be reported, to make use of this fix update BlazeSDK
|
|
to trama.1.
|
|
|
|
DirtySDK (XboxOne)
|
|
VoipConnection
|
|
Added VoipConnectionlistT::bApplyRelFromMuting.
|
|
|
|
Changes in this release:
|
|
DirtySDK (All)
|
|
DirtyJPG
|
|
Fixed a crash when attempting to decode an unsupported JPEG variant; an error is returned instead.
|
|
|
|
NetConnCommon
|
|
Fixed the external list processing potentially being processed by separate threads which can cause double
|
|
destroys by using a crit.
|
|
|
|
ProtoSSL
|
|
Fixed to add limited unicode support (truncation of 16bit ASCII characters to 8bit ASCII) to ASN.1
|
|
certificate string parsing.
|
|
|
|
Fixed bug that prevented an ECDSA root ca from working.
|
|
|
|
Voip
|
|
Fixed a bunch of status/control selector not retuning proper error codes causing log spam.
|
|
|
|
Fixed how local voip users set their crossplay flag, which prevents the receiving side from printing this
|
|
incorrect log:
|
|
voipconnection: [0] error, platform 2, persona 1000000517837 attempted to join, but cross play is not
|
|
enabled remotely.
|
|
|
|
VoipBlockList
|
|
Improved VoipBlockListIsBlocked, when passed a VOIP_SHARED_USER_INDEX it will check all the local users to
|
|
determine if iBlockedAccountId should be blocked.
|
|
|
|
Fixed destruction, by caching the memgroup information and use it on destruction instead of re-querying it.
|
|
|
|
VoipCodec
|
|
Added 'plvl' status selector to support querying of current audio power level as calculated for VAD.
|
|
|
|
VoipCommon
|
|
Removed superfluous conditions in VoipCommonUpdateRemoteStatus as the same conditions are being checked
|
|
in VoipConnectionSetSendMask() and VoipConnectionSetRecvMask()
|
|
|
|
Fixed default channel selection for the shared user. The default behavior is to have the shared user
|
|
have the most restrictive set of channels between all the local users and blocking communication on the
|
|
shared user if there are no channels shared by all of the local users.
|
|
|
|
VoipConnection
|
|
Changed remote user registration path to now flag that reapplying channel config is necessary
|
|
(for join-in-progress only).
|
|
|
|
Fixed invalid behavior in the voipconnection due to buffer overrun when making shared user updates by using
|
|
the correct shared user index.
|
|
|
|
DirtySDK (iOS)
|
|
NetConnIos
|
|
Fix crash in netconnios when attempting to call into netconn common, but it has no ref to do that.
|
|
|
|
DirtySDK (NX)
|
|
DirtyErrNX
|
|
Changed all the error codes to use Nintendo specific ones.
|
|
|
|
DirtyNetNX
|
|
Fixed the destruction of the hostname cache to happen after the last _SocketIdle call to ensure we don't
|
|
crash on shutdown.
|
|
|
|
DirtySDK (PC)
|
|
VoipHeadsetPC
|
|
Fixed _VoipHeadsetSendEncodedAudio() to use a memcleared voipUser for remoteUser instead of an empty string
|
|
when loopback is enabled.
|
|
|
|
Fixed 'aloc' selector incorrectly returning error code upon user going from 'participating' to
|
|
'not participating'.
|
|
|
|
VoipNarratePC
|
|
Fixed crash if CoInitialize failed by setting the failure state and not destroying the ref.
|
|
|
|
VoipPC
|
|
Removed dead code from _VoipActivateLocalTalker(): inappropriate error handling for 'aloc' selector
|
|
because it can't return a negative value.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyErrPS4
|
|
Removed the errors that no longer exist in SDK7.000 conditionally to maintain backwards compat with
|
|
SDK6.500
|
|
|
|
DirtySessionManagerPS4
|
|
Fixed an issue where the meta data on the available invites would not be updated if the invite was received
|
|
while we were in the console's REST state, this prevent the user from successfully joining the invite.
|
|
Now upon attempting to join an invite from the system software we will no longer assume the list is up to
|
|
date.
|
|
|
|
ProtoHttpPS4
|
|
Fixed redirects failing due to not being able to parse the location header.
|
|
|
|
DirtySDK (XboxOne)
|
|
ProtoMangelXboxOne
|
|
Fixed crash in the IncomingAssociationEventHandler by validating that the module ref is still valid and
|
|
unregistering the event handler like we do in other areas of DirtySock.
|
|
|
|
Fixed exception that gets thrown when trying to access a security association that was cleaned up by the
|
|
remote peer by not accessing the state.
|
|
|
|
Fixed crash when mutating the security association vector between the event handler and main thread by
|
|
protecting the writing with a crit.
|
|
|
|
Moved the manipulation of the list before we start the destruction and protect with the new global state
|
|
crit to ensure the operation has succeeded to prevent invalid access to a killed crit.
|
|
|
|
UserApiXboxOne
|
|
Added handling of http errors code in _UserApiProcessProfileResponse
|
|
|
|
VoipCommon
|
|
Fixed setting bApplyRelFromMuting whenever send masks have been altered, this makes it so the communication
|
|
relationship is reflected by the change of channels. Prior to this bApplyRelFromMuting was only being set
|
|
when a user was activated, which could result in updates for mute/unmute, not working.
|
|
|
|
Fixed the 'umic' and 'uspkr' control selector to set bApplyRelFromMuting to reflect changes in title code
|
|
mute.
|
|
|
|
VoipConnection
|
|
Changed remote user registration path to now flag that reapplying communication relationships is
|
|
necessary (for both initial connect and join-in-progress).
|
|
|
|
VoipConnection/VoipXboxOne
|
|
Code reapplying communication relationships was moved from VoipConnectionSetSendMask() and
|
|
VoipConnectionSetRecvMask() to the _VoipThread().
|
|
|
|
VoipHeadsetXboxOne
|
|
Fixed to capture sttEventCount and sttCharCountRecv metrics.
|
|
|
|
Removed the comment block around code dealing with first party mute. First party mute will now work as long
|
|
as you are on XDK July QFE 9.
|
|
|
|
Fixed to allow enabling/disabling STT functionality with the 'tran' control for crossplay mode, when you
|
|
are not yet in crossplay mode.
|
|
|
|
VoipXboxOne
|
|
Modified local user registration and activation paths to now flag that reapplying communication
|
|
relationships is necessary.
|
|
|
|
EADP Game Services DirtySDK 15.1.6.0.0 - July 24, 2019
|
|
|
|
EA Config 5.14.04
|
|
Framework 7.19.00
|
|
|
|
Android AndroidSDK 28
|
|
AndroidNDK r15c-1
|
|
android_config 4.06.01
|
|
Capilano CapilanoSDK 180702-proxy
|
|
capilano_config 2.07.02
|
|
Kettle kettlesdk 6.508.001-proxy
|
|
kettle_config 2.11.00
|
|
PlayStation4AppContentEx 6.508.010
|
|
PlayStation4AudioInEx 6.508.001
|
|
NX nx_config 1.00.04
|
|
nxsdk 7.2.1
|
|
iPhone ios_config 1.14.00
|
|
OSX osx_config 1.20.01
|
|
Linux/Unix UnixClang 4.0.1
|
|
Win32 DotNet 4.0-2
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 15.4.27004.2002-2-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
*** Important - First crossplay compatible release ***
|
|
This is the first DirtySDK release that supports crossplay. For more information please refer to our
|
|
crossplay integration guide : https://developer.ea.com/display/TEAMS/Cross+Play+Integration+Guide
|
|
https://developer.ea.com/display/dirtysock/VoIP+Tech#VoIPTech-CrossplayConstraints
|
|
Crossplay is NOT SHIPPABLE for this release.
|
|
|
|
New in this release:
|
|
Contrib (ALL)
|
|
VoipOpus
|
|
Changed VoipOpus to be available on pc, ps4 and xone platforms; for use in cross play mode.
|
|
|
|
Added speex resampler, to convert to a standard sample rate when needed (for xone).
|
|
|
|
Added the _VoipOpusControl selectors:
|
|
'infl' - Set if the input samples are float via iValue, (default int16)
|
|
'inin' - Set if the input samples are int32_t via iValue, (default int16)
|
|
'insr' - Set the input sample rate (default 16000)
|
|
|
|
DirtySDK (All)
|
|
NetGameDistServ
|
|
Added the ability to configure a logging callback which allows logging using a different mechanism.
|
|
This is used in cases where we want to log to a different logger on release builds that don't have debug
|
|
logging.
|
|
|
|
ProtoHttp
|
|
Added an explicit failure code to report a failure due to the maximum number of redirections being
|
|
exceeded.
|
|
|
|
ProtoSSL
|
|
Added the support for enabling and disabling of individual curves.
|
|
|
|
Added debug print of from/till times if a certifiicate is determined to be expired.
|
|
|
|
Voip
|
|
Added the ability to set the thread affinity for the VoIP thread when it differs from DirtySDK.
|
|
|
|
VoipBlockList
|
|
Added VoipBlockList, when integrated with Social's "Muting Web API" produces a cross platform persistent
|
|
muting feature. An example of its usage is found in BlazeSDK\samples\Ignition\Friends.cpp. The
|
|
VoipBlockList is created when VoipStartup is called, game code is responsible for calling VoipBlockListAdd,
|
|
VoipBlockListRemove, and VoipBlockListClear as needed to keep the DirtySDK representation of the mute list
|
|
up to date. It is possible to call VoipBlockListIsBlocked to validate if communication is blocked between
|
|
the two users. All of these functions operate on a local user index and an account id of the muted user.
|
|
|
|
DirtySDK (PC)
|
|
VoipHeadsetPC
|
|
Added '-pbk' and '+pbk' selectors which were available on PC and XOne, making muting functionality
|
|
consistent.
|
|
|
|
DirtySDK (PS4)
|
|
VoipHeadsetPS4
|
|
Added cross-play support.
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Added 'tsbx' selector, allowing override of test sandbox name. This obviates the need for hosting a file
|
|
to specify the sandbox name, although that capability remains.
|
|
|
|
VoipXboxOne, VoipHeadsetXboxOne
|
|
Added cross-play support.
|
|
|
|
Changes in this release:
|
|
DirtySDK (All)
|
|
CryptChaCha
|
|
Changed the implementation of Encrypt and Decrypt to skip Poly1305 if NULL is passed to pTag. In some cases
|
|
we just want to use ChaCha20 to encrypt and decrypt, while not needing to use Poly1305 for MAC.
|
|
|
|
Optimized the block operation by using memcpy to eliminate an unnecessary loop.
|
|
|
|
CryptNist
|
|
Changed the ECDSA signing operations to generate the signatures deterministically by generating k based on
|
|
the message hash, private key and curve parameters.
|
|
|
|
Decreased the size of the private key state, the largest we will need is 48 bytes.
|
|
|
|
CryptRand
|
|
Improved our PRNG implementation using CryptChaCha. Since each platform we target has a method to get random
|
|
bytes from their entropy pool and our fallback is not secure, we have opted to move to a new system of
|
|
generating random data. In this new system we use a small amount of random bytes fro the ChaCha cipher key
|
|
and IV (nonce) to generate pseudo random bytes.
|
|
|
|
DirtyThread
|
|
Suppressed the 4702 warning around our main thread which caused issues when LTCG is enabled.
|
|
|
|
Removed the call to ThreadEnd as the EAThread Mutex assert issue came back on newer versions. The call is
|
|
not needed for the trouble it has caused us.
|
|
|
|
NetConn
|
|
Added NetConnAccountInfo struct that stores user's nucleus account id and persona id. 'acid' and 'peid' control
|
|
selectors will be used to populate it.
|
|
|
|
ProtoHttpUtil
|
|
Fixed ProtoHttpUrlDecodeStrParm() to reserve space for terminating null character (preventing possible
|
|
overflow of the null). Also fixed to not read past the end of the input buffer if a percent character
|
|
was the second-to-last or last character.
|
|
|
|
ProtoHttp2
|
|
Enhanced the header formatting to use the available space in the output buffer for formatting. This allows
|
|
for formatting much larger headers without extra allocations.
|
|
|
|
ProtoSSL
|
|
Changed the module to use platform ds_strsplit and removed the _ProtoSSLSplitDelimitedString.
|
|
|
|
Removed CA certificates with < SHA-256 hash, with the exception of VeriSign Class 3 Public Primary
|
|
Certification Authority - G5 which is still required by C&I. Additionally removed VeriSign Universal Root
|
|
CA that never saw use.
|
|
|
|
Fixed server to not automatically enable all TLS1.3 ciphers if TLS1.3 is enabled and no TLS1.3 ciphers
|
|
are enabled.
|
|
|
|
Voip
|
|
Removed VoipRemove and VoipConnectionRemove, these functions are no longer called.
|
|
|
|
Moved internal functions in voip.h to voipcommon.h which is where our internal/private APIs are located.
|
|
|
|
Moved VoipActivateLocalUser to VoipCommon to make sure that customers are calling VoipGroupActivateUser.
|
|
|
|
VoipCommon
|
|
Removed the controls in voipcommon that are used internally to prevent customers from calling them. Instead
|
|
of calling the controls, functions were added that are accessible to the source layer of the voip subsystem.
|
|
|
|
Moved the VoIP memory function to be part of VoipCommon and removed the implementations for VoipPriv.
|
|
|
|
Removed the NULL check for voipcommon state in _VoipCommonTextDataCb as the state will always be valid.
|
|
Headset who calls this callback is owned by VoipCommon, thus it cannot be NULL when getting a callback. This
|
|
code trips coverity defects because it assumes if you check here you have to check in the later parts of the
|
|
function.
|
|
|
|
Removed VoipCommonStatus('ruid') and added 'rcvu', since this no longer returns the remote user id. 'rcvu'
|
|
returns the "remote connection voip user"
|
|
|
|
VoipConduit
|
|
Added support for multiple VoIP mixers.
|
|
|
|
Added support for controlling playback (used for muting) through a playback callback.
|
|
|
|
VoipConnection
|
|
Fixed crash when invalid user index is passed into VoipConnectionSend by early returning in this case.
|
|
|
|
Changed the shared user index sent to remote players to VOIP_SHARED_REMOTE_INDEX which -1.
|
|
|
|
VoipHeadset
|
|
Removed VoipHeadsetStatus('ruid') and added 'ruvu', since it does not operate on id's. 'ruvu' returns (TRUE)
|
|
if the "remote user voip user" is registered in voip headset.
|
|
|
|
VoipPriv
|
|
Removed VoipTimerT as it is no longer used.
|
|
|
|
Changed VoipUserT to contain only the NetConnAccountInfo, voip user flags and the platform type of
|
|
the voip user. It will no longer contain first party IDs.
|
|
|
|
Changed VOIP_NullUser and VOIP_SameUser macros to compare persona IDs.
|
|
|
|
DirtySDK (PC)
|
|
CryptRand
|
|
Switched PC to use BCrypt to align with XboxOne.
|
|
|
|
VoipHeadsetPC
|
|
Removed the default setting of the volume to 90 on the audio output device. This was interfering with game
|
|
settings.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyWebApiPS4
|
|
Fixed DirtyWebApiAddPushEventListener* so it returns a valid id to be passed back to
|
|
DirtyWebApiRemovePushEventListener.
|
|
|
|
DirtySDK (NX)
|
|
ZFileNX
|
|
Removed zfilenx as it is identical to unix outside of one function which we ifdef out on that platform.
|
|
|
|
DirtySDK (XboxOne)
|
|
ProtoHttpXboxOne
|
|
Enhanced implementation of _ProtoHttpXmlHttpWritingToOutstream() for more robustness. Previous
|
|
implementation assumed that iBlockingOpsThreadResult would always contain a number of bytes accumulated
|
|
equal to the number of bytes originally submitted. After reviewing the implementation of
|
|
SequentialStream::Write(), this assumption proved to be luckily correct (thus this CL being on ml only
|
|
and not being associated with a critical ticket). But it was decided to change the implementation of
|
|
_ProtoHttpXmlHttpWritingToOutstream() to avoid coding pattern based on an "implicit" assumption.
|
|
With the new implementation, things will still work in the future if SequentialStream::Write() is
|
|
modified and no longer behave the same (i.e. it could result in partial accumulation).
|
|
|
|
ProtoMangleXboxOne
|
|
Removed entering/leaving MangleCrit in the lambda executed upon completion of the creation of a security
|
|
association. It was left over from a previous implementation and it was no longer protecting any specific
|
|
thread safety access.
|
|
|
|
VoipCommon
|
|
Fixed an issue in _VoipCommonReceiveTextDataNativeCb preventing local user from seeing their own Speech To
|
|
Text, requires QFE5 of the July 2018 XDK
|
|
|
|
VoipDef, VoipGroup
|
|
Removed VoipCbTypeE::VOIP_CBTYPE_AMBREVENT (xboxone-only bad rep auto mute event). It had been unused
|
|
since rebasing voip xboxone to game chat 2 (i.e. since Shrike.0).
|
|
|
|
Removed xboxone-specific fields from VoipSynthesizedSpeechCfgT because the 'voic' control selector is
|
|
no longer usable on xboxone since the introduction of MS Game Chat 2 in Shrike.0.
|
|
|
|
VoipHeadsetXboxOne
|
|
Changed implementation to comply with game chat 2 reference doc (Xbox Live API Compiled HTML Help) and
|
|
MS sample code: only call synthesize_text_to_speech() if text_to_speech_conversion_preference_enabled()
|
|
is true for the originator.
|
|
|
|
Fixed XMA/audio issues experienced by customers by setting the DO_NOT_USE_SHAPE flag when initializing
|
|
XAudio2 for use with text narration. Based on the conversation with NHL and the Frostbite Audio team. By not
|
|
using DO_NOT_USE_SHAPE we cause the current xma allocations to have bad data.
|
|
|
|
EADP Game Services DirtySDK 15.1.5.0.2 - June 20, 2019
|
|
|
|
EA Config 5.14.04
|
|
Framework 7.19.00
|
|
|
|
Android AndroidSDK 28
|
|
AndroidNDK r15c-1
|
|
android_config 4.06.01
|
|
Capilano CapilanoSDK 180702-proxy
|
|
capilano_config 2.07.02
|
|
Kettle kettlesdk 6.508.001-proxy
|
|
kettle_config 2.11.00
|
|
PlayStation4AppContentEx 6.508.010
|
|
PlayStation4AudioInEx 6.508.001
|
|
NX nx_config 1.00.04
|
|
nxsdk 7.2.1
|
|
iPhone ios_config 1.14.00
|
|
OSX osx_config 1.20.01
|
|
Linux/Unix UnixClang 4.0.1
|
|
Win32 DotNet 4.0-2
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
DirtyNet
|
|
Added the 'poln' control to do a blocking poll specified in nanoseconds.
|
|
|
|
Added a SocktetHostnameCacheProcess function to allow us to expire entries from idle to fix entries never
|
|
expiring.
|
|
|
|
DirtySDK (PS4)
|
|
NetConnPS4
|
|
Added play-first trial check using NetConnStatus('pftr') selector. This capability is disabled by default,
|
|
use -D:dirtysdk-playfirsttrial=true when generating the solution to enable. Requires the
|
|
PlayStation4AppContentEx package.
|
|
|
|
Changed 'tria' selector to additionally return TRUE if play-first trial is enabled.
|
|
|
|
VoipHeadsetPS4
|
|
Added two new public api to be invoked from voipcommon: VoipHeadsetTranscribedTextPermissionCheck()
|
|
and VoipHeadsetSetTranscribedTextReceivedCallback().
|
|
|
|
Added a new callback synopsis: VoipHeadsetTranscribedTextReceivedCbT.
|
|
|
|
DirtySDK (XBoxOne)
|
|
ProtoHttpXboxOne
|
|
Added a period of time before we delete the XmlHttp state to prevent accessing invalid memory from the
|
|
HttpCallbacks. There is a small window after the COM memory has been released where callbacks can still
|
|
be fired. During this period we want to make sure that both the XmlHttp and HttpRef state is still valid
|
|
to prevent crashing. This change will increase the time it takes for the kill list to be cleared.
|
|
|
|
Changes in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Removed the vccorlib includes to the sample program module as this is no longer needed vs2015+.
|
|
|
|
ConnApi
|
|
Fixed the setup of demangling (and unsetting of addresses) when the game is server hosted but voip is not.
|
|
When Xbox Clients setup their dedicated server client in the client list, the address fields in the client
|
|
info are set to 0. This causes the connections to the dedicated server to failed because of the invalid IP
|
|
addresses.
|
|
|
|
ProtoHttpServ
|
|
Fixed incorrect linked list manipulations in _ProtoHttServUpdateListen(). Problem description: Upon
|
|
inserting a new httpthread entry in the httpthread list, if that list already has more than one entry,
|
|
the new entry would incorrectly be inserted after the first entry as the tail of the list... resulting
|
|
in the rest of the list being lost. As a knock-on of this bug, CCS-DirtyCast ssl connections would no
|
|
longer be cleaned up properly... resulting in stunnel spamming with:
|
|
LOG3[1301]: transfer: s_poll_wait: TIMEOUTclose exceeded: closing
|
|
|
|
ProtoSSL
|
|
Fixed TLS 1.3 client to return illegal_parameter alert instead of handshake_failure when no cipher is
|
|
selected.
|
|
|
|
Fixed TLS 1.3 client to validate server session id value is empty when the session id sent was empty.
|
|
|
|
Fixed TLS 1.3 client to support middlebox compatibility mode for session_id field.
|
|
|
|
Fixed TLS 1.3 client to validate Protocol Version or Supported Versions extension.
|
|
|
|
Fixed a client bug when a client cert was sent on a previous connection attempt; a subsequent connection
|
|
attempt where a client cert was not sent would result in the client trying to send a CertificateVerify
|
|
handshake message and crashing with a null-pointer exception.
|
|
|
|
Fixed TLS 1.3 client/server to abort on non-null compression value.
|
|
|
|
Fixed TLS 1.3 server to return unexpected_message alert instead of no_negotiation when receiving a Hello
|
|
Request message.
|
|
|
|
Fixed TLS 1.3 server to validate ClientHello version is at most TLS1.2 before parsing supported versions
|
|
extension, which previously could overwrite an invalid version before the version was validated.
|
|
|
|
Fixed to move bCertSent/bCertRecv from the state ref to the secure state ref, renamed to bSentCert/bRecvCert.
|
|
These state booleans make more sense being in the secure state, since they track the status of a specific
|
|
session, and also benefit from being automatically reset when a new connection is attempted, which is not
|
|
the case with the overall state.
|
|
|
|
Fixed to add handshake state transition validation to prevent invalid messages from causing exceptions,
|
|
e.g. if a KeyExchange message is sent before ClientHello.
|
|
|
|
Fixed to add protection for a server giving us an unsupported elliptic curve (a spec violation).
|
|
|
|
Fixed to add protection for a hello extension with an extension size extending past the end of the hello.
|
|
|
|
Fixed to remove SSL3_MSG_HELLO_RETRY_REQUEST define, as it is not an explicitly defined handshake message,
|
|
and add SSL3_MSG_END_OF_EARLY_DATA handshake define for future reference/use.
|
|
|
|
VoipCodec
|
|
Fixed VAD to consider all samples in a frame, instead of just the first. Found by inspection.
|
|
|
|
VoipGroup
|
|
Fixed incorrect low-level conn id to high-level conn id translation logic in
|
|
_VoipGroupManagerDisplayTranscribedTextCallback()
|
|
|
|
VoipTranscribe
|
|
Fixes for some possible sources of metrics issue observed in production.
|
|
|
|
DirtySDK (NX)
|
|
NetConnNX
|
|
Fixed the shutdown by properly clearing the global ref.
|
|
|
|
DirtySDK (PC)
|
|
VoipNarratePC
|
|
Suppressed the warnings from the windows headers which can cause issues on higher warning levels.
|
|
|
|
DirtySDK (PC, PS4)
|
|
VoipHeadsetPC,VoipHeadsetPS4
|
|
Fixed crash when TTS is enabled but STT is disabled when doing narration by checking for NULL before calling
|
|
the 'vdis' control.
|
|
|
|
DirtySDK (PS4)
|
|
NetConnPS4
|
|
Fixed _NetConnRequestAuthCode() and _NetConnNpAsyncRequest() not returning a negative when an error is
|
|
encountered.
|
|
|
|
ProtoHttpPS4
|
|
Removed the call to sceHttpAbortRequest which breaks following redirects in certain scenarios.
|
|
|
|
VoipCommon (PS4)
|
|
Fixed chat restriction not being properly enforced for inbound transcribed text (fix is inspired from
|
|
original MS game chat dll implementation). When inbound transcribed text is received from the network,
|
|
voipcommon now passes it to VoipHeadset with a call to VoipHeadsetTranscribedTextPermissionCheck().
|
|
If the permission check passes, then VoipHeadset passes the text back to VoipCommon by invoking the
|
|
new VoipHeadsetTranscribedTextReceivedCbT callback previously registered with
|
|
VoipHeadsetSetTranscribedTextReceivedCallback(). If the permission check fails, VoipHeadset
|
|
instead just drops the text and never invokes the VoipHeadsetTranscribedTextReceivedCbT callback.
|
|
|
|
DirtySDK (Unix)
|
|
DirtyNetUnix
|
|
Fixed _SocketPoll(), when processing ppoll result, incorrectly including sockets that were not originally
|
|
included in the poll. Potential knock-on: process showing 100% CPU usage caused by ppoll continuously
|
|
unblocking immediately.
|
|
|
|
VoipUnix
|
|
Changed implementation of VoipSetLocalUser() to initialize the local user with user id "dummy_voip_user"
|
|
instead of the string returned by NetConnMAC(). This change was done to work around NetConnMAC() not
|
|
always returning a valid string when used on a VM because the name of the NIC does not match what
|
|
NetConnMAC() is looking for (eth0, eth1 or wlan0). See implementation of _SocketGetMacAddress() in
|
|
dirtynetunix. NetConnMAC misbehaving results in VoipSetLocalUser() creating 'empty' voip user id, and
|
|
the stress client no longer sending voip traffic over established voip connection because the send mask
|
|
is incorrect as a result of the user id being NULL.
|
|
|
|
DirtySDK (XboxOne)
|
|
ProtoHttpXboxOne
|
|
Fixed use after free crash in _ProtoHttpProcessKillList by moving the _ProtoHttpUpdateXmlHttp to be the last
|
|
function that is called within the loop.
|
|
|
|
UserApiXboxOne
|
|
Fixed read access violation when growing the response buffer after the second PROTOHTTP_RECVBUFF by only
|
|
copying the exact amount of data in the source buffer.
|
|
|
|
VoipHeadsetXboxOne
|
|
Enhanced implementation of _VoipHeadsetSetRemotUserOutboundMute() and
|
|
_VoipHeadsetSetRemotUserInboundMute() to guard against the possibility of
|
|
pRemoteChatUser->custom_user_context() being NULL.
|
|
|
|
VoipNarrateXboxOne
|
|
Changed the AsyncStatus to be fully scoped which fixes build errors in certain conditions.
|
|
|
|
EADP Game Services DirtySDK 15.1.5.0.1 - April 9, 2019
|
|
|
|
EA Config 5.14.04
|
|
Framework 7.19.00
|
|
|
|
Android AndroidSDK 28
|
|
AndroidNDK r15c-1
|
|
android_config 4.06.01
|
|
Capilano CapilanoSDK 180702-proxy
|
|
capilano_config 2.07.02
|
|
Kettle kettlesdk 6.008.001-proxy
|
|
kettle_config 2.11.00
|
|
PlayStation4AudioInEx 6.008.001
|
|
NX nx_config 1.00.04
|
|
nxsdk 7.2.1
|
|
iPhone ios_config 1.14.00
|
|
OSX osx_config 1.20.01
|
|
Linux/Unix UnixClang 4.0.1
|
|
Win32 DotNet 4.0-2
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
*** Important - First DirtySDK release with NX Support ***
|
|
This is the first DirtySDK release with official NX support. Currently VoIP, UserApi and UserListApi are not
|
|
supported on this platform.
|
|
|
|
*** Important - API Breaking Change ***
|
|
The VoipDisplayTranscribeTextCallback function prototype has been changed to return an int32_t instead of
|
|
returning void. This enables the user callback to signal that text has been rendered, and prevent the text
|
|
from possibly being rendered again from a different VoipGroup.
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
Aws
|
|
Added keyPath to signing info.
|
|
|
|
Added reading and writing of signed binary events, used in transcription.
|
|
|
|
Voip
|
|
Added new VOIP_CBTYPE_TTOSEVENT event type to VoipCallback; this event signals the start and end of TTS.
|
|
It can be used to temporarily override a push-to-talk system to allow the audio to be sent to the other
|
|
player(s) without requiring push-to-talk to be manually activated by the user.
|
|
|
|
VoipPC,VoipPS4
|
|
Added auto-muting of audio input when send mask is zero. This prevents STT from taking place when the user
|
|
is muted, e.g. in a push-to-talk system when PTT is not engaged.
|
|
|
|
Added polling of TTOS status and updating the VoipCommon status variable that tracks it.
|
|
|
|
VoipCommon
|
|
Added tracking of ttos status, and triggering of VOIP_CBTYPE_TTOSEVENT when ttos status changes.
|
|
|
|
VoipHeadsetPC,VoipHeadsetPS4
|
|
Added 'ttos' status selector to indicate when text-to-speech is active.
|
|
|
|
Added 'mute' control and status selector to mute input audio, used to prevent transcription when
|
|
a player is not sending any audio.
|
|
|
|
Added 'spam' pass-through to VoipTranscribe, to allow setting debug level of that module.
|
|
|
|
VoipTranscribe
|
|
Added Amazon Transcribe support.
|
|
|
|
Added 'vdsc' control selector to enable/disable the short audio discard behavior that is enabled by
|
|
default. This is used by the VoipHeadset layer to disable short audio discard during TTS, which
|
|
would otherwise prevent STT of short TTS phrases from working.
|
|
|
|
DirtySDK (NX)
|
|
Build
|
|
Added NX support
|
|
|
|
DirtySDK (PC)
|
|
VoipHeadsetPC
|
|
Added support for 'txta' control which is used to control how text chat accessibility functions in the context of loopback.
|
|
|
|
DirtySDK (PS4)
|
|
VoipHeadsetPS4
|
|
Added support for the 'txta' control to change the behavior when using text chat accessibility features.
|
|
|
|
DirtySDK (XboxOne)
|
|
VoipNarrateXboxOne
|
|
Added the narrate module on xboxone to perform non-voip based narration that can be used for text chat.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
Aws
|
|
Fixed xcode build warnings due to truncation.
|
|
|
|
ProtoHttp2
|
|
Changed to increase header cache size from 1k to 2k; this allows sending and receiving larger headers.
|
|
|
|
Changed the implemention to ignore frames from untracked (closed) streams.
|
|
Per the spec: WINDOW_UPDATE can be sent by a peer that has sent a frame bearing the END_STREAM flag.
|
|
|
|
Fixed append header rejects new headers if the previous header values were appended to by switching to
|
|
strcmp from strncmp.
|
|
|
|
VoipDef
|
|
[API BREAKING] Changed VoipDisplayTranscribedTextCallback to return an int32_t instead of void. This
|
|
allows the application to indicate when it has displayed transcribed text, and prevent further callbacks
|
|
against other voipgroups with the same text.
|
|
|
|
VoipGroup
|
|
Changed the implementation such that the voipgroup layer registers its 'display transcribed text'
|
|
callback with the underlying voip sub-system as soon as the voipgroup manager gets created, and such
|
|
that the voipgroup layer only unregisters that callback upon destruction of the voipgroup manager.
|
|
This change is inspired from the way the 'event' callback is registered/unregistered and it is necessary
|
|
to avoid a possible situation where the 'display transcribed text' callback gets called from the
|
|
voip thread after the voipgroup manager got destroyed, which can happen if the voipgroup manager is
|
|
destroyed after text is submitted for transcription but before the transcription result is received.
|
|
|
|
Removed incorrect usage of critical section from VoipGroupSetDisplayTranscribedTextCallback(). Potential
|
|
deadlock before this fix:
|
|
--> voip thread locking pVoip->Common.ThreadCrit first from _VoipThread() and then blocking on
|
|
NetCritEnter(&pManager->crit) from _VoipGroupManagerEventCallback()
|
|
--> main thread locking pManager->crit first from VoipGroupSetDisplayTranscribedTextCallback()
|
|
and then blocking on NetCritEnter(&pVoipCommon->ThreadCrit) from
|
|
VoipSetDisplayTranscribedTextCallback()
|
|
|
|
Changed _VoipGroupManagerDisplayTranscribedTextCallback() to respond to the new
|
|
VoipDisplayTranscribedTextCallback return parameter and stop iterating through voipgroups if the callback
|
|
returns TRUE.
|
|
|
|
VoipNarrate
|
|
Fixed an issue formatting the Microsoft request body where the format string and parameter count didn't
|
|
match.
|
|
|
|
Fixed to release any queued requests on destroy.
|
|
|
|
Changed VOIPTRANSCRIBE_INPUT_MAX to VOIPNARRATE_INPUT_MAX based on coding standards.
|
|
|
|
VoipTranscribe
|
|
Fixed a bug where the STT uDurationMsSent metric was not set to the correct value, often being 0.
|
|
|
|
Fixed a bug with google+http encoding where the Base64 request could be terminated too early, resulting in
|
|
a 400 server error.
|
|
|
|
Fixed an issue parsing google error response.
|
|
|
|
Changed to increase the size of the JSON parse buffer to be able to handle large Amazon responses.
|
|
|
|
Changed to increase the ref response buffer substantially to be able to handle large Amazon responses.
|
|
|
|
Changed Watson parsing to use the ref parse buffer instead of allocating dynamically.
|
|
|
|
Fixed to allow specification of a non-encoded Watson apikey, as VoipNarrate does. Pre-encoded Watson
|
|
apikeys are still supported, but will be deprecated in the future.
|
|
|
|
Fixed Watson/Websockets transcription request failing if the server has timed us out since the last
|
|
request.
|
|
|
|
Added smart_formatting enable for Watson (e.g. "one two three" becomes "1 2 3").
|
|
|
|
Fixed to eat %HESITATION markers from Watson transcription result, if present.
|
|
|
|
Fixed a metrics issue where a buffer could be submitted every VoipTranscribeUpdate() execution while
|
|
receiving a response, if a very large untranscribable buffer was previously submitted. The impact of this
|
|
issue was that metrics would be ticked every frame and very quickly result in bogus metrics with hundreds
|
|
of imaginary transactions spanning thousands of minutes. The fix is to wait to submit until the ongoing
|
|
receive operation is complete. In practice, this situation is very hard to trigger and involves many
|
|
consecutive empty transaction results and a maximum backoff timer of 60s.
|
|
|
|
VoipTunnel
|
|
Fixed the voice "squelching" logic to not only release the appropriate rebroadcasting slot(s) when the
|
|
voice originator stops talking, but also when the voice originator mutes a subset of the players
|
|
(voice consumers) to which he is talking.
|
|
|
|
DirtySDK (PC)
|
|
VoipDef
|
|
Changed PC VOIP_MAXLOCALUSERS from 1 to 4, to match NETCONN_MAXLOCALUSERS
|
|
|
|
VoipHeadsetPC
|
|
Fixed the 'voic' selector and improved voipnarratepc to support other languages with the voic selector.
|
|
|
|
Changed PC voip to allow multiple local users, there is still only one device, so there may only be one
|
|
active user at a time. Recording, playback, transcription, STT/TTS metrics only function for the active
|
|
user index.
|
|
|
|
Changed VoipHeadsetControl 'aloc' which now takes and store the active user index.
|
|
|
|
Fixed transcription buffer size to use define instead of being hardcoded at 256.
|
|
|
|
Fixed assignment of iDebugLevel to be done only under DIRTYCODE_LOGGING=1
|
|
|
|
VoipPC
|
|
Changed so that all users on a PC will have the same headset status.
|
|
|
|
Changed VoipSetLocalUser to take user index into account (like other platforms).
|
|
|
|
Changed VoipActivateLocalUser to take user index into account (like other platforms) however with the added
|
|
limitation that only one user can be active at a time, if the active user becomes deactivated a new user
|
|
will be selected if possible.
|
|
|
|
DirtySDK (PS4)
|
|
VoipHeadsetPS4
|
|
Fixed severe stuttering audio issue with PS4 camera voip, broken in audio input pipeline refactor in
|
|
Raven.5.
|
|
|
|
DirtySDK (Unix)
|
|
DirtyNetUnix
|
|
Moved the SocketHost logging behind a verbosity check to reduce spam that is not helpful in most cases.
|
|
|
|
DirtySDK (XboxOne)
|
|
ConnApi
|
|
Fixed the voip server dedicated flow to not perform unnecessary demangling on Xbox One.
|
|
|
|
DirtyAuthXboxOne
|
|
Fixed potential deadlocks by adding the missing NetCritLeave calls when returning early due to errors.
|
|
|
|
ProtoHttpXboxOne
|
|
Fixed ProtoHttpSend() with an implicit call to ProtoHttpUpdate() to allow internal state machine to be
|
|
pumped when ProtoHttpSend() is called repeatedly without intermediate calls to ProtoHttpUpdate().
|
|
|
|
Changed implementation such that ProtoHttpPost(), ProtoHttpPut() and ProtoHttpPatch() can be used without
|
|
a mandatory subsequent call to ProtoHttpSend() as it used to be supported prior to Shrike.0. Fix consists
|
|
in buffering request data passed to ProtoHttpRequestCb2() into a new "pre-send" buffer. A new PRESEND state
|
|
is also introduced to accumulate the content of the pre-send buffer into the xmlhttp object's outbound
|
|
sequential stream before accepting any new data from the user subsequently calling ProtoHttpSend().
|
|
|
|
Fixed a bug introduced in Shrike.0 which included a ProtoHttpXboxone refactor to improve the way
|
|
potentially long blocking MS calls are being offloaded to worker threads. The new solution broke an edge
|
|
case involving request redirection. Upon some race conditions, a request redirection may be incorrectly failed.
|
|
|
|
Fixed the possibility of an xmlhttp req being stalled in state
|
|
ProtoHttpXmlReqStateE::REQ_ST_WAITING_RESPONSE when a race condition is exercised: xmlhttp req's event
|
|
handler modifying eNextState before the main thread initializes it to REQ_ST_INIT.
|
|
|
|
Fixed a crashed in OnError by adding a check for bWaitingForAsyncCompletion in _ProtoHttpProcessKillList().
|
|
bWaitingForAsyncCompletion must be false before xmlHttp can transition states
|
|
|
|
EADP Game Services DirtySDK 15.1.5.0.0 - January 23, 2019
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.14.04
|
|
Framework 7.19.00
|
|
|
|
Android AndroidSDK 26.0.2-3
|
|
AndroidNDK r13b-1
|
|
android_config 4.03.00
|
|
Capilano CapilanoSDK 180702-proxy
|
|
capilano_config 2.07.02
|
|
Kettle kettlesdk 6.008.001-proxy
|
|
kettle_config 2.11.00
|
|
PlayStation4AudioInEx 6.008.001
|
|
iPhone ios_config 1.14.00
|
|
OSX osx_config 1.20.01
|
|
Linux/Unix UnixClang 4.0.1
|
|
Win32 DotNet 4.0-2
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
*** Important - PUBLIC API IMPACTING - ***
|
|
|
|
Reference: https://developer.ea.com/display/dirtysock/DirtySock+Shrike+Upgrade+Guide
|
|
|
|
CryptMD2 has been removed as MD2 support is obsolete.
|
|
|
|
Removed VOIP_LOCAL_USER_MICON which has been unused since PS2 era.
|
|
|
|
DirtySDK voip for xboxone now use MS Game Chat 2
|
|
* Game chat 2 now needs to be added as a sdkreference in nant build scripts. This step is needed for the
|
|
game chat 2 dll to be copied to the deployment directory as a post build step.
|
|
<sdkreferences if="${config-system} == 'capilano'">
|
|
Xbox.Game.Chat.2.Cpp.API, Version=8.0
|
|
</sdkreferences>
|
|
|
|
* Because MS game chat 2 is internally dealing with retrieval of XBL accessibility settings for the user,
|
|
DirtySDK XboxOne voip no longer needs to be fed with that info by the game code.
|
|
|
|
* DirtySDK XboxOne voip is no longer displaying inbound transcribed text in system UI if
|
|
game code does not register a display transcribed text callback. (New behavior resulting from
|
|
VoipHeadsetXBoxOne being rebased from from windows::xbox::chat to MS game chat 2)
|
|
|
|
* DirtySDK XboxOne voip no longer supports the feature originally requested by the EA accessibility team: a
|
|
hearing-impaired person requesting transcribed text from other players also wants to see transcribed text
|
|
for his/her own speech. (New behavior resulting from VoipHeadsetXBoxOne being rebased from from
|
|
windows::xbox::chat to MS game chat 2)
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
AWS
|
|
Added new module to supply various utility functions in support of connecting to AWS services, starting
|
|
with AWS Signature Version 4.
|
|
|
|
ConnApi
|
|
Added the game / voip topology configuration to the module, which allows complexity that existed in the
|
|
network adapter to be moved down.
|
|
|
|
Added status selectors for the configured timeout values.
|
|
|
|
CryptBn
|
|
Added the CryptBnBitAnd and CryptBnBitXor which performs bitwise and; bitwise xor operations
|
|
|
|
CryptCurve
|
|
Introduced cryptcurve, an interface over the multiple curve modules we support.
|
|
|
|
CryptEcc
|
|
Added a new parameter to CryptEccPointFinal to let us know if we are encoding the shared secret into a
|
|
buffer.
|
|
|
|
CryptHash
|
|
Added the ability to lookup the hash based on the size.
|
|
|
|
CryptMont
|
|
Added support for X25519 and X448 curves based on RFC7748.
|
|
|
|
DirtyLib
|
|
Added the ability to set an option for crits via NetCritInit2 and added an option to enable a crit in
|
|
single-threaded mode for specific multi-threaded scenarios (SocketLookup).
|
|
|
|
Added NetLibCrc32 to calculate CRC32, with optional table parameter.
|
|
|
|
DirtyMem
|
|
Added new VOIP_PLATFORM_MEMID memory identifier.
|
|
|
|
Plat-Str
|
|
Added new string functions ds_fmtoctstring_lc, ds_strtolower, ds_strtoupper, ds_strtrim, and
|
|
ds_strlistinsert in support of AWSV4 signing.
|
|
|
|
Plat-Time
|
|
Added TIMETOSTRING_CONVERSION_ISO_8601_BASIC to supported ds_timetostr conversion options.
|
|
|
|
ProtoHttp2
|
|
Added the ability to decode the debug data in GOAWAY frames.
|
|
|
|
ProtoHttpUtil
|
|
Added ProtoHttpUtilParseRequest() for parsing the first line of an HTTP request, functionality refactored
|
|
from _ProtoHttpServParseHeader()
|
|
|
|
ProtoHttpServ
|
|
Added new ProtoHttpServControl2 API to allow setting SSL settings specific to a ProtoHttpServ thread.
|
|
|
|
Protomangle
|
|
Added the service name to the demangler query for better tracking
|
|
|
|
ProtoTunnel
|
|
Added control to allow setting the behavior for trying a random port on bind failure.
|
|
|
|
Added control selectors for maximum number of receive calls per update and idle callback rate.
|
|
|
|
VoipConnection
|
|
Added support for "reliable opaque" data type needed for sending/receiving MS game chat 2's reliable data
|
|
frames. (MS Game chat 2's unreliable data frames are sent as 'MIC' packets.)
|
|
|
|
Added a iConnId parameter to VoipConnectRecvVoiceCbT and VoipConnectRegUserCbT.
|
|
|
|
Added VoipConnectRecvOpaqueCbT.
|
|
|
|
Added a uSendMask parameter to VoipConnectionSend().
|
|
|
|
VoipHeadset
|
|
Added VoipHeadsetReceiveOpaqueDataCb().
|
|
|
|
VoipNarrate
|
|
Added Amazon Polly support.
|
|
|
|
DirtySDK (Apple)
|
|
Build
|
|
Added a warning for partial available so the build will fail when the deployment version is too low for the
|
|
APIs we reference.
|
|
|
|
Created an objectivec build type that imports all our C warnings that we enable.
|
|
|
|
ProtoSSLApple
|
|
Added support for the ALPN extension on versions of the OS that support it.
|
|
|
|
DirtySDK (PC)
|
|
VoipNarratePC
|
|
Added a new VoipNarrate PC module
|
|
*Separated TTS SAPI on PC into it own VoipNarratePC module
|
|
*Removed the need of copying the output of SAPI into wav buffers
|
|
*Aligned behavior with the generic VoipNarrate module
|
|
|
|
DirtySDK (XboxOne)
|
|
Build scripts
|
|
Added game chat 2 header file directory to include path. Added game chat 2 lib to set of external libs to
|
|
be linked with.
|
|
|
|
Added game chat 2 lib to set of external libs to be linked with.
|
|
|
|
PrivilegeApiXboxOne
|
|
Added exception handling around usage of xboxone user object methods.
|
|
|
|
UserApiXboxOne
|
|
Added exception handling around usage of xboxone user object methods.
|
|
|
|
UserListApiXboxOne
|
|
Added exception handling around usage of xboxone user object methods.
|
|
|
|
VoipHeadset
|
|
Added VoipHeadsetTranscribedTextReceivedCbT and VoipHeadsetSetTranscribedTextReceivedCallback().
|
|
|
|
VoipXboxOne
|
|
Added _VoipUpdateLocalStatus() in charge of polling VoipHeadsetStatus('talk') to detect if local players
|
|
are talking or not.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
CommUdp
|
|
Minor fix to use SockaddrInit instead of ds_memclr to make sure the address family is properly specified,
|
|
preventing possible warning in later sockaddr call.
|
|
|
|
ConnApi
|
|
Reduced the complexity of the implementation of connapi now that we have knowledge of the topologies and
|
|
hosts.
|
|
|
|
Fixed the initialization of the game / voip host, this needs to be happen before any other initialization
|
|
to make sure everything lands in the correct state.
|
|
|
|
Replaced usage of ConnApiClientInfoT.uId with uLocalClientId / uRemoteClientId where appropriate. uId is
|
|
used for identification purposes, in cases where we are establishing a connection the uLocalClientId and
|
|
uRemoteClientId are to be used.
|
|
|
|
CryptEcc/CryptNist
|
|
Changed the module to split up the DH and DSA states, which allows them to be used independently.
|
|
|
|
Changed the implementation to allocate the table on the fly instead of keep it in the state. This work
|
|
reduces the sitting memory consumption.
|
|
|
|
Changed the initialization of the curve state to use the curve identifier.
|
|
|
|
Renamed CryptEcc to CryptNist, CryptNist is more specific to the curves we support in the module.
|
|
|
|
CryptHmac
|
|
Fixed to work with keys longer than the block size.
|
|
|
|
CryptMont
|
|
Changed the implementation to return an error if passed an unsupported curve identifier.
|
|
|
|
DirtyLib
|
|
Changed the NetCritInit functions to return an error if the internal allocation fails.
|
|
|
|
DirtyNet
|
|
Changed SocketBind to fail if the virtual socket is already bound.
|
|
|
|
Improved the thread safety in SocketDestroy by protecting the calls to SocketClose. SocketClose may be
|
|
invoked at the same time that the DirtyNet subsystem is being destroyed which we must protect against.
|
|
|
|
Replaced the use of uCalllast = 0xFFFFFFFF to the boolean bInCallback to prevent the potential of colliding
|
|
with a valid tick value
|
|
|
|
DirtyThread
|
|
Changed the thread initialization to set the processor to any.
|
|
|
|
Hpack
|
|
Increased the temporary buffer for header parsing to prevent header value truncation.
|
|
|
|
Fixed the encoding of large header values (over 127 bytes) to properly encode the size by offsetting after
|
|
the value has been written.
|
|
|
|
JsonParse
|
|
Fixed an issue in JsonFind where parsing an incomplete object caused by invalid JSON could cause a crash.
|
|
|
|
NetGameDist
|
|
Fixed compilation errors inside the TIMING_DEBUG defines.
|
|
|
|
Platform
|
|
Removed unused undefs and defines in this module.
|
|
|
|
ProtoHttp
|
|
Changed the calling of the custom header callback to pass NULL and 0 to pData and iDataLen in preparation
|
|
for these parameters being deprecated.
|
|
|
|
ProtoHttp2
|
|
Changed the implementation to validate the frame header and the individual frame types payloads per the
|
|
spec.
|
|
|
|
Fixed documentation for some internal enumerations and fixed SETTINGS_NUM to use the correct value.
|
|
|
|
Enabled huffman coding for HTTP/2 header by default.
|
|
|
|
Fixed the content-length header to be all lower case.
|
|
|
|
Changed "not enough room" debug print in ProtoHttp2Send use verbosity level 1 so that it is not enabled at
|
|
the default logging level.
|
|
|
|
ProtoHttpUtil
|
|
Removed the call to ProtoHttpGetLocationheader via ProtoHttpGetHeaderValue as the functionality was
|
|
deprecated.
|
|
|
|
ProtoSSL
|
|
Fixed to send of empty renegotiation_info extension in ClientHello; there are a small number of
|
|
servers that require this or will fail the connection.
|
|
|
|
Fixed to send of empty renegotiation_info extension in ServerHello if the client sent one.
|
|
|
|
Changed to add no_renegotiation warning alert response by client if a server attempts to renegotiate.
|
|
|
|
Fixed a TLS1.3 issue where receiving a ChangeCipherSpec immediately following a HelloRetryRequest would not
|
|
be correctly ignored, because the supported_versions extension in the HRR was not being parsed.
|
|
|
|
Changed _RecvCertificate to simplify and clarify the certificate parsing, as well as do a better job
|
|
skipping certificates that aren't a part of the chain and might violate some of the other checks which
|
|
previously would have resulted in verification failure.
|
|
|
|
Removed TLS1.3 draft revision support, and updated all draft RFC links to reference the published final RFC
|
|
instead.
|
|
|
|
Removed SSLv3 version support (previously disabled by default).
|
|
|
|
Removed RC4 cipher suites (previously disabled by default).
|
|
|
|
Cleaned up some remaining unused MD2 signature algorithm definitions.
|
|
|
|
Reorganized/renamed most functions to provide better and more consistent readability. No functional
|
|
change.
|
|
|
|
Fixed some out-of-date curve defines that limited the 'crvd' selector to only choosing the first two
|
|
curves.
|
|
|
|
Added full support for RFC8446 style downgrade detection; added server support for setting random values,
|
|
added client support for detecting and aborting a TLS1.2 request being illegally downgraded).
|
|
|
|
Added server support for remembering HRR cipher we sent, and making sure it is selected when we send the
|
|
following ServerHello. Added client support for remembering HRR cipher we received, and making sure we get
|
|
it from the ServerHello, alerting if not.
|
|
|
|
Fixed to send an illegal_parameter alert when client parses a supported_versions extension with no versions
|
|
we support.
|
|
|
|
Changed debug output of connecting hostname to include "using TLSx".
|
|
|
|
ProtoStream
|
|
Fixed copy of error text to copy only the error text (was also copying leftover data from previous request).
|
|
|
|
ProtoWebSocket
|
|
Removed the Listen/Accept functions as we do not have plans on adding server functionality at this time.
|
|
|
|
Removed ProtoWebSocketConnect2 function as it is not used for anything. Please use ProtoWebSocketConnect
|
|
function instead.
|
|
|
|
VoipCommon
|
|
Enhanced implementation of VoipCommonContro('vcid') to support usage of client id 0.
|
|
|
|
VoipConnection
|
|
Changed resetting the VOIP_LOCAL_USER_SENDVOICE and VOIP_REMOTE_USER_RECVVOICE to be triggered if we have
|
|
not sent or recv a mic packet within the VOIP_PING RATE.
|
|
|
|
Enhanced implementation to support scenarios where blaze ends up exercising the solution in such a way
|
|
that VoipControl('vcid') gets called with a 0 value. A client id of 0 is now valid and a boolean is now
|
|
used to indicate whether the 'vcid' selector was used to set the local user id.
|
|
|
|
VoipDef
|
|
Removed VOIP_LOCAL_USER_MICON which has been unused since PS2 era.
|
|
|
|
Changed VOIP_MAXCONNECT from 30 to 32.
|
|
|
|
VoipNarrate
|
|
Changed VoipNarrateConfig() to no longer take a VoipNarrateRefT, the supplied configuration is stored
|
|
globally and used in all calls to VoipNarrateCreate(). VoipNarrateCreate() will fail if not configured
|
|
properly.
|
|
|
|
Changed VoipNarrateStatus() to have an additional argument 'iValue' to match the same function signature of
|
|
other status functions.
|
|
|
|
VoipSpeex
|
|
Changed speex codec to use the built-in VoipCodec VAD instead of re-implementing internally.
|
|
|
|
VoipTranscribe
|
|
Changed VoipTranscribeConfig() to no longer take a VoipTranscribeRefT, the supplied configuration is stored
|
|
globally and used by all calls to VoipTranscribeCreate(). VoipTranscribeCreate() will fail if not configured
|
|
properly.
|
|
|
|
Changed VoipTranscribeSubmit() to no longer take an iUserIndex argument, MLU was implemented above this api.
|
|
|
|
Changed VoipTranscribeGet() to no longer take an iUserIndex argument, MLU was implemented above this api.
|
|
|
|
Changed VoipTranscribeStatus() to have an additional argument 'iValue' to match the same function signature
|
|
of other status functions.
|
|
|
|
VoipTunnel
|
|
Changed the module to use the VoipPacketHeadT definition from voippacket.h
|
|
|
|
DirtySDK (Apple)
|
|
ProtoSSLApple
|
|
Moved the validation of the peer certificate to its own function and state. The validation of the peer
|
|
certificates plus the handshaking causes a performance spike. Moving this into a different state and
|
|
function makes it so it gets processed on the next update.
|
|
|
|
Removed RC4 cipher suites.
|
|
|
|
Fixed a crash when calling ProtoSSLClrCACerts before ProtoSSLShutdown by correctly offsetting the array in
|
|
the former function.
|
|
|
|
Changed the implementation to redirect our allocation to DirtyMem using a custom allocator.
|
|
|
|
DirtySDK (iOS)
|
|
NetConnIos
|
|
Fixed a strict prototypes build warning by removing prototypes that were not needed.
|
|
|
|
DirtySDK (PC)
|
|
VoipHeadsetPC
|
|
Moved the creation of the voice transcription module until it is needed, this saves memory when not in use.
|
|
|
|
Removed 'qual' selector from VoipControl; none of the codecs we support reference it.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyContextManagerPS4
|
|
Fixed DirtyContextManagerShareNetPool() to properly select the lowest slot ref counted NetContext that has a
|
|
context size that is greater or equal to the request iNetPoolSize
|
|
|
|
DirtyNetPS4
|
|
Removed the attempted optimization when receiving from the packet queue does not return any data. Given that
|
|
the clients and servers don't have a packet rate such that this would be necessary we felt that it is best
|
|
to remove it. In observed cases this extra call would result in EAGAIN.
|
|
|
|
DirtySessionManagerPS4
|
|
Changed the server driven session to be enabled by default.
|
|
|
|
Removed unused parameters from DirtySessionManagerCreate.
|
|
|
|
Added multi-threaded protection for global variable _ProtoHttp_State.
|
|
|
|
DirtyWebApiPS4
|
|
Changed to deleting the request after sceNpWebApiAbortRequest. This is following Sony guidance in ticket
|
|
https://ps4.siedev.net/forums/thread/115651.
|
|
|
|
ProtoHttpManager
|
|
Compiled out the 'pipe' control call on PS4 because the underlying implementation does not support it.
|
|
|
|
ProtoHttpPS4
|
|
Fixed the implementation so that the recv throttling doesn't incorrectly cause the request to finish
|
|
prematurely.
|
|
|
|
Fixed the header formatting to use the input buffer instead of our header cache to prevent truncation.
|
|
|
|
Fixed the parsing of large parsing values by increasing the buffer we used to parse.
|
|
|
|
Fixed the request functions to actually send the amount of payload data we sent.
|
|
|
|
Refactored the call to sceHttpSendRequest() to optionally be called on its own thread.
|
|
|
|
Fixed a truncation error with _ProtoHttpIsPEMFormat() function by changing the return type from a uint8_t to a int32_t.
|
|
|
|
VoipHeadsetPS4
|
|
Moved the creation of the voice transcription module until it is needed, this saves memory when not in use.
|
|
|
|
Moved the creation of the voice narration module until it is needed, this saves memory when not in use.
|
|
|
|
Changed VoipHeadsetStatus('sttm'), MLU is now supported; get VoipSpeechToTextMetricsT via pBuf, user index
|
|
is iValue.
|
|
|
|
Changed VoipHeadsetStatus('ttsm'), MLU is now supported; get VoipTextToSpeechMetricsT via pBuf, user index
|
|
is iValue.
|
|
|
|
Fixed the +-pbk to include the shared user
|
|
|
|
DirtySDK (Unix)
|
|
DirtyNetUnix
|
|
Removed the attempted optimization when receiving from the packet queue does not return any data. Given that
|
|
the clients and servers don't have a packet rate such that this would be necessary we felt that it is best
|
|
to remove it. In observed cases this extra call would result in EAGAIN.
|
|
|
|
Changed the implementation to allow 'poll' to be called when not in single-threaded mode.
|
|
|
|
Changed implementation of _SocketGetMacAddress() such that additional interfaces can easily be added to the
|
|
hardcoded default list of interfaces used for mac addr query attempts.
|
|
|
|
NetConnUnix
|
|
Fixed the order of operations in shutdown to make sure ProtoSSL is shutdown after its dependents.
|
|
|
|
VoipUnix
|
|
Fixed VoipActivateLocalUser() not properly forcing re-application of channel config.
|
|
|
|
DirtySDK (XboxOne)
|
|
ConnApi
|
|
Fixed XboxOne attempting to demangle the connection to the dedicated server when the voip topology is set to peer
|
|
web.
|
|
|
|
Changed the logic for setting up the connection state on XboxOne to always set our gameinfo / voipinfo to be
|
|
INIT / Demangled as we never connect to ourselves.
|
|
|
|
ProtoMangleXboxOne
|
|
Enhanced processing of entries in killlist that are in "listening" state. Because there is no system async
|
|
op in progress while in that state, we can immediately proceed with a final clean up as soon as the
|
|
association is on the killlist.
|
|
|
|
ProtoHttpXboxoOne
|
|
Changed the implementation to address the module potentially negatively impacting the performance of the
|
|
game thread using it. Refactored the way potentially long blocking MS calls are being offloaded to worker
|
|
threads. The new solution is involving a single dedicated thread (same lifetime as request object) to which
|
|
we offload as little as possible to minimize potential threading issues. As a result of this refactor,
|
|
usage of critical section has significantly been reduced.
|
|
|
|
ProtoWebSocketXboxOne
|
|
Switched back to the base implementation of ProtoWebSocket on XboxOne. The implementation that is provided on
|
|
XboxOne leaves out features that are required for our public API. There are no strict requirements on using
|
|
their implementation for WebSockets.
|
|
|
|
UserListApiXboxOne
|
|
Fixed typo in typdef for struct UserListApiPlatformUserContextT as it was colliding with types in
|
|
UserApiXboxOne.
|
|
|
|
Changed to be not case sensitive when checking for "retry-after:
|
|
|
|
VoipCommon
|
|
Changed implementation such that XboxOne is no longer displaying inbound transcribed text in system UI if
|
|
game code does not register a display transcribed text callback.
|
|
|
|
Changed the implementation such that transcribed text to be displayed is now received with a callback
|
|
registered with VoipHeadsetSetTranscribedTextReceivedCallback() instead of a callback registered with
|
|
VoipConnectionSetCallbacks().
|
|
|
|
VoipHeadsetXboxOne
|
|
Changed the implementation to now use MS game chat 2 instead of windows::xbox::chat.
|
|
|
|
Changed VoipHeadsetStatus('sttm') will no longer be able to provide metrics for speech to text, as this
|
|
info is hidden within game chat 2.
|
|
|
|
Changed VoipHeadsetStatus('ttsm'), MLU is now supported; get VoipTextToSpeechMetricsT via pBuf, user index
|
|
is iValue.
|
|
|
|
VoipPriv
|
|
Removed the specialized VoipUserExT. No longer needd after rebasing VoipHeadsetXboxOne from
|
|
windows::xbox::chat to MS game chat 2. DirtySDK XBoxOne voip now uses VoipUserT like all
|
|
other platforms.
|
|
|
|
VoipSerialization
|
|
Removed. No longer needed after rebasing VoipHeadsetXboxOne from windows::xbox::chat to MS game chat 2.
|
|
|
|
VoipXboxOne
|
|
Fixed the calculation of the length of time the voip thread took to be milliseconds and not microseconds.
|
|
|
|
Changed VOIP_THREAD_SLEEP_DURATION from 20 ms to 40 ms to meet MS game chat 2 requirements.
|
|
|
|
Removed code for auto muting of bad rep user. This is all handled internally by MS game chat 2 now.
|
|
|
|
|
|
EADP Game Services DirtySDK 15.1.4.0.5 - December 20, 2018
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.07.00
|
|
Framework 7.10.00
|
|
|
|
Android AndroidSDK 26.0.2-2
|
|
AndroidNDK r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 170608-proxy
|
|
capilano_config 2.07.00
|
|
Kettle kettlesdk 5.508.071-proxy
|
|
kettle_config 2.09.00
|
|
PlayStation4AudioInEx 5.508.001
|
|
iPhone ios_config 1.09.00
|
|
iphonesdk 10.0-proxy-1
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.15.00
|
|
Linux/Unix UnixClang 4.0.1
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
*** Important - This release includes full support for VoIP Accessibility on all platforms ***
|
|
VoIP Accessibility includes Transcription (Speech to Text or STT) and Narration (Text to Speech or TTS), in order to
|
|
fulfill the requirements of the Computer and Video Accessibility Act (CVAA) that will be enforced in the US starting
|
|
January 1st, 2019. Previous releases included support of both STT and TTS for the Xbox One and TTS for the PC; this
|
|
release adds support for STT on PC and TTS and STT on PS4.
|
|
|
|
Also includes feature request from EA accessibility team: a hearing-impaired person requesting transcribed text from
|
|
other players also wants to see transcribed text for her/his own speech. VoipDisplayTranscribedTextCallbackT
|
|
callback is invoked with iConnId parameter set to -1 when transcribed text is from a local user.
|
|
|
|
Integration requires the application to support rendering of STT text to the screen and acquisition of text from the
|
|
user for input into TTS. Please see https://developer.ea.com/pages/viewpage.action?pageId=183248884 or email
|
|
GS-DirtySock Support for more information.
|
|
|
|
*** Important - PUBLIC API IMPACTING - ***
|
|
With the addition of full support of PC and PS4 platforms for Accessibility, some API changes have been made to
|
|
present a more unified and consistent interface:
|
|
|
|
- Changed public STT interface to use a utf8-encoded char string instead of wchar_t string
|
|
- Changed synopsis of 'stot' control selector: iValue parameter used to be enable/disable, it is now local
|
|
user index; pValue parameter used to be local user index, it is now enable/disable.
|
|
- Renamed VoipSetTranscribedTextReceivedCallback() to VoipSetDisplayTranscribedTextCallback()
|
|
- Renamed VoipGroupSetTranscribedTextReceivedCallback() to VoipGroupSetDisplayTranscribedTextCallback()
|
|
- Renamed VoipTranscribedTextReceivedCallbackT to VoipDisplayTranscribedTextCallbackT
|
|
- VoipDisplayTranscribedTextCallbackT callback can now be invoked with iConnId parameter set to -1 when
|
|
transcribed text is from a local user
|
|
- XoneSynthesizedSpeechCfgT and PCSynthesizedSpeechCfgT have been unified into a single structure with
|
|
platform-specific elements and renamed to VoipSynthesizedSpeechCfgT
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
ConnApi
|
|
Added usage of the new VoipGroupControl('self') to inform the underlying voipgroup of the local slot
|
|
index in the game.
|
|
|
|
ProtoStream
|
|
Added ProtoStreamOpen2() to allow use of POST requests.
|
|
|
|
Added minimum buffer concept for callback; if specified, a callback will never provide less than this
|
|
minimum amount of data, unless it is the end of the stream.
|
|
|
|
Added cache of HTTP error response body and added 'serr' selector to return it.
|
|
|
|
Voip
|
|
Added STT/TTS metrics structures, VoipSpeechToTextMetricsT and VoipTextToSpeechMetricsT, which contain
|
|
fields used to track usage of the voip accessibility features.
|
|
|
|
VoipGroup
|
|
Added new VoipGroupControl('self') selector to be used by ConnApi to inform the underlying voipgroup of
|
|
the local slot index in the game.
|
|
|
|
DirtySDK (PC,PS4)
|
|
VoipTranscribe
|
|
Added new module to encapsulate cloud-based transcription (Speech to Text) services for the purpose of
|
|
transcribing VoIP audio. This module is fully integrated in DirtySDK VoIP and does not need to be accessed
|
|
directly. Configuration of this module happens via a Blaze server configuration. This version supports
|
|
local user indices but does not currently support multiple local users.
|
|
|
|
DirtySDK (PC)
|
|
VoipHeadsetPC
|
|
Added support for VoipTranscribe module.
|
|
|
|
Added VoipHeadsetStatus 'sttm', to get the VoipSpeechToTextMetricsT via the passed in buffer.
|
|
|
|
Added VoipHeadsetStatus 'ttsm', to get the VoipTextToSpeechMetricsT via the passed in buffer.
|
|
|
|
DirtySDK (PS4)
|
|
VoipHeadsetPS4
|
|
Added support for VoipNarrate and VoipTranscribe modules.
|
|
|
|
Added call to sceAudioInIsSharedDevice(), used to replace
|
|
sceVoiceGetPortAttr(SCE_VOICE_ATTR_AUDIOINPUT_DEVICE_CAMERA), supplied by the new AudioIn_03 library.
|
|
|
|
Added silence detection for discontinuous transmission (previously supplied by sceVoice) and transcription.
|
|
|
|
Added VoipHeadsetStatus 'sttm', to get the VoipSpeechToTextMetricsT via the passed in buffer.
|
|
|
|
Added VoipHeadsetStatus 'ttsm', to get the VoipTextToSpeechMetricsT via the passed in buffer.
|
|
|
|
VoipNarrate
|
|
Added new module to encapsulate cloud-based narration (Text to Speech) services for the purpose of producing
|
|
VoIP audio from text. This module is fully integrated in DirtySDK VoIP and does not need to be accessed
|
|
directly. Configuration of this module happens via a Blaze server configuration. This version supports
|
|
local user indices but does not currently support multiple local users.
|
|
|
|
DirtySDK (XboxOne)
|
|
VoipHeadsetXboxOne
|
|
Added VoipHeadsetStatus 'sttm', to get the VoipSpeechToTextMetricsT via the passed in buffer.
|
|
|
|
Added VoipHeadsetStatus 'ttsm', to get the VoipTextToSpeechMetricsT via the passed in buffer.
|
|
|
|
Changes/fixes in this release:
|
|
Contrib (PC)
|
|
VoipOpus
|
|
Changed sampling rate from 8khz to 16khz for improved audio quality, and to match transcription audio input
|
|
rate.
|
|
|
|
Fixed decoder not accumulating into the output buffer, which broke >2p VoIP.
|
|
|
|
DirtySDK (All)
|
|
Base64
|
|
Fixed _Base64Encode, which was erroring out if the encoded size plus null terminator would exactly fit the
|
|
output buffer size.
|
|
|
|
CryptEcc
|
|
Changed the definition of the number of iterations to allow teams to override it if they choose.
|
|
|
|
NetConn
|
|
Fixed the module startup to assign the global ref after the full startup is complete, this makes it so that
|
|
'open' reports correctly.
|
|
|
|
NetGameDist
|
|
Changed the _ProcessPacketType to prevent setting bRecvMulti on the server. bRecvMulti is only meant for
|
|
clients to tell if they are in 2-player peer-to-peer games or server based games.
|
|
|
|
ProtoHttp
|
|
Fixed to not abort streaming post on header response if the response is successful (in the 200 range).
|
|
|
|
ProtoHttp2
|
|
Changed the timer to be updated only when creating a new connection, instead of every time we create a new
|
|
request. We don't want to artificially update the timer when we have yet to send data. This could cause us to
|
|
get stuck in ST_CONN if we try to create new requests quicker than we can timeout.
|
|
|
|
Changed the send behavior to return zero bytes sent if we don't have space but are not sending a zero sized
|
|
payload (stream end). This aligns with how other modules handle similar cases.
|
|
|
|
ProtoSSL
|
|
Fixed an issue processing fragmented handshake packets found when testing TLS1.3 connections to servers
|
|
using Facebook's new TLS library ("fizz").
|
|
|
|
Fixed an issue where a private key file passed in without a signature was misidentified as ECDSA due to an
|
|
uninitialized variable in _FindPEMCertificateData. This would cause the key file to fail to load and the
|
|
subsequent connection request to fail.
|
|
|
|
ProtoStream
|
|
Changed some debug verbosity levels.
|
|
|
|
ProtoUpnp
|
|
Fixed the handling in cases that we might send zero bytes in a post. In this situation we need to make calls
|
|
to ProtoHttpSend to send the remaining data.
|
|
|
|
ProtoWebsocket
|
|
Changed to disable "append header is the same" debug spam at default verbosity, matching the behavior of
|
|
other protocols.
|
|
|
|
Voip
|
|
Renamed VoipTranscribedTextReceivedCallbackT to VoipDisplayTranscribedTextCallbackT.
|
|
|
|
Renamed VoipSetTranscribedTextReceivedCallback() to VoipSetDisplayTranscribedTextCallback().
|
|
|
|
Changed XoneSynthesizedSpeechCfgT and PCSynthesizedSpeechCfgT to be unified into a single structure with
|
|
platform-specific elements and renamed to VoipSynthesizedSpeechCfgT.
|
|
|
|
VoipCommon
|
|
Changed synopsis of 'stot' control selector: iValue parameter used to be enable/disable, it is now local
|
|
user index; pValue parameter used to be local user index, it is now enable/disable.
|
|
|
|
Renamed VoipTranscribedTextReceivedCallbackT to VoipDisplayTranscribedTextCallbackT.
|
|
|
|
Changed _VoipCommonTextDataCb (callback to handle locally generated transcribed text) to not only send
|
|
transcribed text to remote users, but to additionally display it locally if the local user has STT enabled.
|
|
|
|
Changed implementation to now enable text transcription locally if any local user is requesting text
|
|
transcription from remote users.
|
|
|
|
VoipGroup
|
|
Changed implementation of _VoipGroupManagerDisplayTranscribedTextCallback() such that it can now surface
|
|
up not only transcribed text from remote users, but also locally transcribed text from local users.
|
|
|
|
Renamed _VoipGroupManagerTranscribedTextReceivedCallback() to
|
|
_VoipGroupManagerDisplayTranscribedTextCallback().
|
|
|
|
Renamed VoipGroupSetTranscribedTextReceivedCallback() to VoipGroupSetDisplayTranscribedTextCallback().
|
|
|
|
VoipHeadset
|
|
Changed VoipHeadsetDisplayTranscribedText() to be an xboxone only api because all other platforms
|
|
had stubbed implementation for it. Also renamed it from VoipHeadsetDisplayTranscribedText() to
|
|
VoipHeadsetDisplayTranscribedTextInSystemUI() to avoid confusion with the new
|
|
VoipDisplayTranscribedTextCallbackT callback.
|
|
|
|
DirtySDK (PC)
|
|
VoipHeadsetPC
|
|
Changed sampling rate from 11.025khz to 16khz for improved audio quality, and to match transcription audio
|
|
input rate.
|
|
|
|
Fixed a crackle and pop issue with PC TTS.
|
|
|
|
Renamed VoipHeadsetControl('stot') to VoipHeadsetControl('tran') for enabling local transcription.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyErrPS4
|
|
Changed to include audio in/out errors.
|
|
|
|
Changed audio input path from sceVoice to use sceAudioIn, to gain access to the uncompressed voice audio for
|
|
the purpose of transcription.
|
|
|
|
VoipHeadsetPs4
|
|
Renamed VoipHeadsetControl('stot') to VoipHeadsetControl('tran') for enabling local transcription.
|
|
|
|
Removed deprecated SCE_VOICE_EVENT_AUDIOINPUT_MUTE_STATUS enum. It was never used by Sony.
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Fixed 'xusr' to early return when an error occurs
|
|
|
|
ProtoHttpXboxOne
|
|
Fixed a memory stomp when terminating our header buffer when the size of the header is larger than that of
|
|
the header cache by terminating the source instead of the destination.
|
|
|
|
UserApiXboxOne/UserListXboxOne
|
|
Fixed the module to correctly handle timeout errors. In CL1332066, we added a new recv error code to inform
|
|
users that a timeout had occurred. While doing this there were several modules that were not catching this
|
|
case.
|
|
|
|
UserApiXboxOne
|
|
Fixed the handling in cases that we might send zero bytes in a post. In this situation we need to make calls
|
|
to ProtoHttpSend to send the remaining data.
|
|
|
|
VoipHeadsetXboxone
|
|
Enhanced robustness with new exception handling around the retrieval of the encoder object to be used to
|
|
encode locally acquired voice samples. This is added to mitigate the impact of very low-rate prod crashes
|
|
reported by NBA.
|
|
|
|
Changed the handling of "bystanders". Adding bystanders to the chat session is no longer working with recent
|
|
XDK/recoveries. As soon as a "bystander" is added to the chat session all subsequent chat session updates
|
|
fail. After reporting the issue to Microsoft, we were told that Windows::Xbox::Chat is completely deprecated,
|
|
and that we could stop adding bystanders without any risk of certification failures.
|
|
|
|
Changed VoipHeadsetDisplayTranscribedTextInSystemUI() to support both local and remote originators for
|
|
transcribed text.
|
|
|
|
Renamed VoipHeadsetControl('stot') to VoipHeadsetControl('tran') for enabling local transcription.
|
|
|
|
EADP Game Services DirtySDK 15.1.4.0.4 - October 29, 2018
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.07.00
|
|
Framework 7.10.00
|
|
|
|
Android AndroidSDK 26.0.2-2
|
|
AndroidNDK r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 170608-proxy
|
|
capilano_config 2.07.00
|
|
Kettle kettlesdk 5.508.071-proxy
|
|
kettle_config 2.09.00
|
|
iPhone ios_config 1.09.00
|
|
iphonesdk 10.0-proxy-1
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.15.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
ProtoHttp2
|
|
Added support for checking if an idle connection is still active to prevent any unwanted issues if the
|
|
server silently goes away.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
ConnApi
|
|
Fixed a bug introduced in the context of GOSREQ-1975 (Refactored the DirtyCast/nonDirtyCast dedicated
|
|
server divergent code paths). To align with the DirtyCast implementation, the conn index passed to
|
|
VoipGroupConnect() is being decremented by 1 to save the spot unnecessarily used by the voipserver
|
|
in the voip sub-system (because there is no voipconnections to the voipserver itself). But the
|
|
call to VoipGroupControl('vcid') was not tailored in the same manner. It now is.
|
|
|
|
DirtyCert
|
|
Fixed deadlock when disconnecting from the redirector and updating at the same time by not waiting on the
|
|
module crit when updating. Given that the window that this can occur is rare, we can just try the lock in
|
|
the update case to prevent deadlocking in the future.
|
|
|
|
DirtyNet
|
|
Fixed logic used to decrement pPacketQueue->iPacketTail in SocketPacketQueueAllocUndo(). Upon an underflow
|
|
resulting from decrementing the tail when it is 0, the logic proved to only work when
|
|
pPacketQueue->iMaxPackets was a power of two. After the fix, the logic works for any value of
|
|
pPacketQueue->iMaxPackets.
|
|
|
|
ProtoHttpManager
|
|
Fixed the update so that we can process idle protohttp refs. ProtoHttp requires that we allow it to do idle
|
|
processing to handle connection wide events.
|
|
|
|
VoipGroup
|
|
Removed an early return in VoipGroupConnStatus and VoipGroupRemoteUserStatus which hid the correct status
|
|
information when a suspended connid is queried.
|
|
|
|
DirtySDK (PC)
|
|
VoipOpus
|
|
Fixed the accumulation of the output buffer as required by the voip mixer. Before if we received multiple
|
|
voice bundles we would only write one.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyWebApiPS4
|
|
Fixed a crash if initialization fails by checking for NULL and configuring the thread life correctly.
|
|
|
|
EADP Game Services DirtySDK 15.1.4.0.3 - August 24, 2018
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.06.00
|
|
Framework 7.10.00
|
|
|
|
Android AndroidSDK 26.0.2-2
|
|
AndroidNDK r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 170608-proxy
|
|
capilano_config 2.03.00
|
|
Kettle kettlesdk 5.008.071-proxy
|
|
kettle_config 2.06.03
|
|
iPhone ios_config 1.09.00
|
|
iphonesdk 10.0-proxy-1
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.15.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
VoipGroup
|
|
Added a selector to get the mute all status from the voipgroup.
|
|
|
|
QosClient
|
|
Added a new error code QOS_CLIENT_REQUEST_STATUS_ERROR_TIMEOUT_PARTIAL so we can distinguish a qos test
|
|
that wasn't successful getting any probes round trip, vs one that was at least partially successful.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
ConnApi
|
|
Fixed a crash if we try to abort demangling on xbox one when we are not currently demangling.
|
|
|
|
DirtyNet
|
|
Fixed size of internal structure (HostentT::name[]) used during DNS name lookup: increased size from 64
|
|
bytes to 256 bytes to support recent scenarios involving names longer than 64 chars. The maximum DNS name
|
|
length is 253 characters
|
|
|
|
ProtoHttp2
|
|
Fixed the 31-bit value parsing/decoding that caused incorrect behavior in the module. When decoding the
|
|
stream id and window update increments we were masking out the high bit after shifting instead of before,
|
|
which caused to get incorrect values.
|
|
|
|
QosClient
|
|
Fixed a potential issue where resources would not be freed on SocketLookup failure.
|
|
|
|
Enhanced error checking, so that received data is at least the size of a probe before processing it.
|
|
|
|
VoipCommon
|
|
Enhanced error handling around VoipHeadsetCreate()
|
|
|
|
VoipGroup
|
|
Changed the code to ignore mute all if it has already been done.
|
|
|
|
DirtySDK (iPhone/OSX)
|
|
ProtoSSLApple
|
|
Fixed being stuck in a bad state when an error occurs in setup by cleaning up the secure state in those
|
|
instances.
|
|
|
|
DirtySDK (PC)
|
|
VoipOpus
|
|
Changed the default for opus to use the built in voipcodec vad support to help with stuttering.
|
|
|
|
DirtySDK (PS4)
|
|
NetConnPS4
|
|
Removed the code terminate the UserService as this uninitentially left in. When we still supported
|
|
disabling IEAUser, we needed to use the user service to work how our legacy code worked.
|
|
|
|
DirtySDK (XboxOne)
|
|
ProtoHttpXboxOne
|
|
Fixed a crash in the suspend handler by refactoring the code to more careful in how we signal the invalidity
|
|
of the xmlhttp requests.
|
|
|
|
VoipHeadsetXboxone
|
|
Fixed possible crash conditions upon VoipHeadsetDestroy() being called from within VoipHeadsetCreate().
|
|
|
|
EADP Game Services DirtySDK 15.1.4.0.2 - July 12, 2018
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.06.00
|
|
Framework 7.10.00
|
|
|
|
Android AndroidSDK 26.0.2-2
|
|
AndroidNDK r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 170608-proxy
|
|
capilano_config 2.03.00
|
|
Kettle kettlesdk 5.008.071-proxy
|
|
kettle_config 2.06.03
|
|
iPhone ios_config 1.09.00
|
|
iphonesdk 10.0-proxy-1
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.15.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
UserApi
|
|
Added a new selector 'rrsp' to disable UserApi from returning First Party raw response.
|
|
|
|
DirtySDK (PC)
|
|
VoipHeadsetPC
|
|
Added Text-to-Speech functionality. You can now use the 'ttos' selector to send text as voice.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
CommUdp
|
|
Fixed the calculation of the packets we can fit in the buffer to account for the encoded subpacket size to
|
|
prevent prototunnel rejecting our packets.
|
|
|
|
ConnApi
|
|
Fixed crashes when creation of the protomangle ref fails on XboxOne by guarding calls to that module.
|
|
|
|
NetGameDist
|
|
Fixed _SetDataPtrTry to correctly identify uIndexB when we are looking at the server outbound queue.
|
|
|
|
ProtoHttp
|
|
Fixed failure to invoke the write callbacks with data when we received but have not processed the whole
|
|
chunked response.
|
|
|
|
ProtoTunnel
|
|
Fixed to not rematch on an OUTOFORDER decrypt result, which causes a stream desync and the connection to
|
|
fail.
|
|
|
|
QosClient
|
|
Fixed bug where in some error conditions a protohttp2 stream would be leaked.
|
|
|
|
Increased the logging level on protohttp2 used by QoS2.0 to potentially give insight into if the coordinator
|
|
is not responding to the client sending results.
|
|
|
|
DirtySDK (PS4)
|
|
ProtoHttpPs4
|
|
Fixed failure to invoke the write callbacks with data when we received but have not processed the whole
|
|
chunked response.
|
|
|
|
Fixed no content length downloads to properly calculate the body size when the download is complete.
|
|
|
|
DirtySDK (XboxOne)
|
|
ProtoHttpXboxOne
|
|
Fixed the write callback from not processing due to not correcting assessing if we have read the entire body
|
|
by tracking the amount read.
|
|
|
|
Fixed the processing of the kill list to allow for killing requests not yet in the in-progress state.
|
|
|
|
ProtoMangleXboxOne
|
|
Fixed a crash if there is a template load failure by moving the creation of the incoming security
|
|
association vector earlier.
|
|
|
|
UserApiXboxOne
|
|
Fixed the ability to fetch 100 profiles at a time by increasing the json buffer to 2048.
|
|
|
|
VoipHeadsetXboxOne
|
|
Fixed incorrect usage of the chat session in a scenario where the chat session creation previously failed.
|
|
|
|
Fixed incorrect inbound queue management in _VoipHeadsetProcessInboundQueues().
|
|
|
|
Fixed incorrect expection handling in _VoipHeadsetReputationQuery() that might cause a crash.
|
|
|
|
EADP Game Services DirtySDK 15.1.4.0.1 - June 1, 2018
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.06.00
|
|
Framework 7.10.00
|
|
|
|
Android AndroidSDK 26.0.2-2
|
|
AndroidNDK r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 170608-proxy
|
|
capilano_config 2.03.00
|
|
Kettle kettlesdk 5.008.071-proxy
|
|
kettle_config 2.06.03
|
|
iPhone ios_config 1.09.00
|
|
iphonesdk 10.0-proxy-1
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.15.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
DirtyNet
|
|
Added SocketPacketQueueAllocUndo() to be used to "undo" a recent call to SocketPacketQueueAlloc().
|
|
|
|
Added calls to SocketPacketQueueAllocUndo() in scenarios where the previous call to
|
|
SocketPacketQueueAlloc() needs to be undone because the allocated resources ended up not being used,
|
|
i.e. when WSARecvFrom() fails and when WSAGetOverlappedResult() fails.
|
|
|
|
DirtySDK (PS4)
|
|
ProtoHttpPS4
|
|
Added the 'ratr' and 'rats' selectors to the implementations for parity with the stock version of protohttp
|
|
|
|
Added ProtoHttpControl('mwrk') selector to control the maximum number of worker threads ProtoHttp will spawn.
|
|
Defaults to 0 to that the current behavior will not change unless the user changes this value.
|
|
Refactored the call to sceHttpSendRequest() to optionally be called in its own thread.
|
|
|
|
DirtySDK (XboxOne)
|
|
ProtoHttpXboxOne
|
|
Added the 'ratr' and 'rats' selectors to the implementations for parity with the stock version of protohttp
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
ConnApi
|
|
Restored the NetGameDistStatus('mplr') selector which will not account for the server index.
|
|
|
|
Refactored the ConnApiStatus('gsrv') selector to merge two different implementations. This
|
|
will now always return TRUE if the game is server hosted and FALSE otherwise, and if a buffer is
|
|
provided it will copy the server's ConnApiClientT there.
|
|
|
|
NetConn
|
|
Fixed the return code from NetConnCommonStartup when NetConn has already been started.
|
|
|
|
NetGameDist
|
|
Fixed incorrect "wraparound" logic for the OutBufData queue. This CL is fixing two things with the function
|
|
_SetDataPtrTry() which is used to identify where to write data into the respective ring buffers associated
|
|
with inbound and outbound queues.
|
|
#1 When used with OutBufData, the function was incorrectly initializing uIindexB with "OutBufData.iBeg"
|
|
instead of "InpBufData.iBeg+iIOOffset"... thus opening the door for overwriting the "pending entries"
|
|
when the queue is close to filling up.
|
|
#2 The iPosB variable was being initialized without considering whether uIndexB was pointing to a
|
|
"valid" entry or not... potentially resulting in the code executing with a busted iPosB
|
|
(specific to empty queue scenarios)
|
|
|
|
Refactored NetGameDistMultiSetup to not automatically remove 1 from the index on the clients. This offset
|
|
shall be performed by the user.
|
|
|
|
ProtoSSL
|
|
Fixed a bug introduced in Raven.0 skipping a certificate that is not a part of chain.
|
|
|
|
Fixed a bug introduced in Raven.0 where the client did not correctly handle a server downgrade when
|
|
formulating the ClientKeyExchange PreMasterSecret, triggering a downgrade detection on the server and
|
|
causing the server to fail the connection with a bad record mac alert.
|
|
|
|
QosClient
|
|
Fixed a bug, when compiling without logging, a timer variable would not be reset resulting in a spam of
|
|
callbacks reporting the Qos procedure has timed out.
|
|
|
|
Added a way to get module hResults from the callback structure QosCommonProcessedResultsT or via
|
|
QosClientStatus('hres').
|
|
|
|
QosCommon
|
|
Fixed building qoscommon so that we don't need to keep adding #ifdefs for new platforms to use strtok.
|
|
|
|
VoipConnection
|
|
Fixed an issue where the local client id was not being treated consistently in _VoipReliableDataUnpackDATA.
|
|
This led to Speech-To-Text data not being displayed in some cases.
|
|
|
|
VoipTunnel
|
|
Fixed the suspend logic so that if we are removing a suspended game at the end of the list we would clear
|
|
it out correctly. If we were to remove suspended data at the end and suspend logic hits later at the same
|
|
slot, the voiptunnel would incorrectly error because it believes there is already a game suspended there.
|
|
|
|
DirtySDK (iPhone/OSX)
|
|
ProtoSSLApple
|
|
Fixed an issue where we incorrectly don't process the received data when receiving a FIN in the same packet.
|
|
How the processing works we can make many read calls off the socket before the data gets returned back to
|
|
the caller. In the case that we get data and FIN, we just see this as the peer closing the connection.
|
|
Instead of doing it in this way we should always first process any data we received.
|
|
|
|
DirtySDK (PC)
|
|
DirtyNetWin
|
|
Enhanced tracking of pSocket->bRecvInp such that it gets flagged before WSARecvFrom is attempted. The goal
|
|
is to eliminate a theoritical race condition identified during code review: bRecvInp is checked in
|
|
SocketRecvFrom() which can be invoked from the main thread... and thus that opens the door for a race
|
|
condition with the socket recv thread updating that variable too late (after the call to WSARecvFrom().
|
|
|
|
NetConnWin
|
|
Fixed the cleanup when socket creation fails during NetConnStartup().
|
|
|
|
DirtySDK (PS4)
|
|
ProtoHttpPS4
|
|
Fixed the header parsing for large headers by using the input pointer to the `sceHttpGetAllResponseHeaders`.
|
|
In the parse header code we check if we have the entire header to allow us to continue parsing. If the
|
|
header is too large, we truncate the headers and the parse header function will always early return,
|
|
attempting to wait for more data.
|
|
|
|
DirtySDK (XboxOne)
|
|
ProtoHttpXboxOne
|
|
Fixed overallocating memory when receiving large responses from the server by resetting the offsets when the
|
|
entire buffer is read.
|
|
|
|
Fixed the logic so that we could kill any requests that we know will no longer receive callbacks. In
|
|
conditions such as suspend and disconnects we have observed that no callbacks will be fired which leaves
|
|
requests in XMLHTTP_STATE_INPROGRESS. This has the effect of leaving netconn in the ST_CLEANUP state while
|
|
waiting for the kill list to be cleared of all requests, which blocks NetConnConnect from connecting to the
|
|
first party network.
|
|
|
|
ProtoMangleXboxOne
|
|
Fixed the crash when template fails to load by failing the creation of the module, it will try to continue
|
|
without demangling at the higher levels.
|
|
|
|
Removed the concept of secure bypass which is not being used.
|
|
|
|
UserApiXboxOne
|
|
Fixed a crash when trying to parse the profiles response by ensuring that we received any data. If we didn't
|
|
receive any data it could mean that we had something misconfigured or that server just returned an error to
|
|
us. We should not have assumed that we would always have data waiting.
|
|
|
|
EADP Game Services DirtySDK 15.1.4.0.0 - March 28, 2018
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.06.00
|
|
Framework 7.10.00
|
|
|
|
Android AndroidSDK 26.0.2-2
|
|
AndroidNDK r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 170608-proxy
|
|
capilano_config 2.03.00
|
|
Kettle kettlesdk 5.008.071-proxy
|
|
kettle_config 2.06.03
|
|
iPhone ios_config 1.09.00
|
|
iphonesdk 10.0-proxy-1
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.15.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
*** Important - This release has not been tested with Xbox February XDK and Sony PS4 5.5 SDK ***
|
|
Official support for the newer February XDK and PS4 5.5 SDK will come in the next release.
|
|
|
|
*** Important - This is the first release of Qos2.0 ***
|
|
QosApi has been replaced with QosClient for Qos2.0. E-mail GS-Operations@ea.com to have a custom Qos profile
|
|
setup for your title, it specifies which ping sites to use, and what tests it should conducted.
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
CryptBn
|
|
Added a debug function to log the big number.
|
|
|
|
Added Added CryptBnByteLen to return number of bytes currently used by the big number.
|
|
|
|
CryptChaCha
|
|
Added ChaCha20-Poly1305 AEAD cipher implementation.
|
|
|
|
DirtyCert
|
|
Changed redirector endpoint name to gosca18.ea.com
|
|
|
|
Changed to add support for using port 44326 for DirtyCert on Xbox One.
|
|
|
|
DirtyErr
|
|
Added DirtyErrDecodeHResult which can split an hResult value into its component pieces, to better
|
|
understand what it represents.
|
|
|
|
ProtoSSL
|
|
Added TLS1.3 support. Default requested version remains TLS1.2, so TLS1.3 connections are not attempted
|
|
without being explicitly enabled.
|
|
|
|
Added DigiCert Global Root CA for EA-signed secure public endpoints (used in place of Symantec/VeriSign).
|
|
|
|
Added ECDSA support, including private key parsing, cipher suites, server and client certificates, and
|
|
signature algorithms for TLS1.2 and 1.3.
|
|
|
|
Added support for TLS_CHACHA20_POLY1305_SHA256 (TLS1.3), and TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
|
|
and TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (TLS1.2) cipher suites.
|
|
|
|
Added support for RSA-PSS client and server certificates.
|
|
|
|
Added ability for ProtoSSLControl 'scrt' control selector to pass in full .pem files with signatures not
|
|
already stripped. If no signature is present PKCS#1 is assumed, retaining previous functionality.
|
|
|
|
Added ProtoSSLStat('ladd'), selector. Is used to return a cached local client address, that was used
|
|
for the last connection. The address is copied into pBuffer, which must be at least sizeof(struct sockaddr)
|
|
|
|
QosClient
|
|
Added the new module QosClient, a part of the Qos2.0 system, it replaces all functionality of previous QosApi.
|
|
Qos2.0 manages the whole Qos process from start to finish, this management had been done by BlazeSDK in the
|
|
past. The basic usage of the QosClient module would be; call QosClientCreate() to initialize, regularly
|
|
call QosClientUpdate(), call QosClientStart() and wait for its callback with results. Look at the in code
|
|
documentation for additional details.
|
|
|
|
DirtySDK (XboxOne)
|
|
UserListApiXboxOne
|
|
Added support for 409 (Rate Limited) response code.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
ConnApi
|
|
Fixed size of dynamically allocated module ref. An unused client entry was always unnecessarily allocated
|
|
at the very end of the struture.
|
|
|
|
Removed the concept of the GameServer in ConnApi. This was only used for DirtyCast servers, which will now
|
|
be located at index 0 of the client list the same way it is for nonDirtyCast servers.
|
|
|
|
Removed 'mplr' control selector, which was deemed unneeded.
|
|
|
|
Removed the XBox One 'phxc' control selector, and replaced it with a generic 'gsrv' selector. This indicates
|
|
whether the host is a dedicated server or a console.
|
|
|
|
Refactored ConnApiControl('gsrv') usage for the new functionality.
|
|
|
|
Removed ConnApiControl('gsv2') .
|
|
|
|
Removed the gameflags and associated parameter in ConnApiConnect, this is leftover from Xenon.
|
|
|
|
CryptBn
|
|
Changed the CryptBnInverseMod function to be implemented using binary extended gcd. This new algorithm is
|
|
much faster than extended euclidean. The new algorithm is explained in the Handbook of Applied Cryptography
|
|
Chapter 14.4.3 (14.61).
|
|
|
|
Changed the CryptBnMod algorithm to skip trying to reduce or left shift until we have at least incremented
|
|
the number once. In our profiles we noticed that there was a lot of wasted time in the reduction checking
|
|
when the result was still zero.
|
|
|
|
CryptEcc
|
|
Optimized the point calculations in _CryptEccPointCalculate by multiplying over the modulus. Doing this
|
|
makes it so the final redunction happens on a smaller number.
|
|
|
|
Fixed the ECDSA sign and validation when the hash's bitsize is larger than the bitsize of the curve. Based
|
|
on the algorithm, when the bitsize of the hash is larger than the order of the curve the hash shall be
|
|
truncated.
|
|
|
|
Changed the ECDSA signing to be done given the new private key parameter. The private key used previously
|
|
was the wrong one and caused the validation to fail on the peer's end.
|
|
|
|
DirtyCert
|
|
Addressed a TODO to close the connection instead of abort when the work is complete.
|
|
|
|
DirtyErr
|
|
Changed the parameters to DirtyErrGetHResult(), so the sizes of the fields provided more accurately
|
|
represent the size of what is internally stored in the hResult.
|
|
|
|
DirtyNetUnix
|
|
Added the missing thread termination signal
|
|
|
|
JsonFormat
|
|
Addressed a TODO to use ds_timetostr instead of implementing it inline.
|
|
|
|
NetGameDist
|
|
Improved readability of code by renaming some variables.
|
|
|
|
NetGameDistServ
|
|
Fixed some coding standard issues in the module's InputQueryMulti and InputLocalMulti functions.
|
|
|
|
ProtoHttp2
|
|
Changed the frame size clamp macro to call DS_CLAMP.
|
|
|
|
Removed half-implemented proxy support until a time when we find a h2 proxy that supports CONNECT.
|
|
|
|
ProtoTunnel
|
|
Fixed a bug where a packet that could not be decrypted and had a negative stream offset could cause the
|
|
tunnel connection to be reset, breaking the stream. This fix includes changes to clarify behavior that
|
|
was previously difficult to ascertain without a very close inspection of the code:
|
|
|
|
ProtoSSL
|
|
Changed to disable RC4-MD5 cipher suite and SSLv3 by default.
|
|
|
|
Changed to enable ECDHE cipher suites by default.
|
|
|
|
Changed the certificate loading to use Base64Decode2. The implementation was assuming that Base64Decode
|
|
returned the amount of data needed in the output but in fact it just returns TRUE or FALSE. The
|
|
Base64Decode2 function returns the result that it intended to get.
|
|
|
|
Changed cipher preference order to be more in-line with current practices.
|
|
|
|
Changed signature schemes/algorithms preference order to be more like boringssl.
|
|
|
|
Changed execution of TLS1.3 handshake key generation in RecvServerHello, and signature verification in
|
|
RecvServerKeyExchange and RecvCertificateVerify to be async (blocking in smaller increments).
|
|
|
|
Changes to simplify certificate parsing and make it easier to read and follow, with a fix and two minor
|
|
functional improvements;
|
|
- fixed issue observed from inspection of skipping a cert that is not part of the chain not working
|
|
for tls1.3, due to the extensions field not being skipped
|
|
- moved validation bypass to be immediately after certificate parsing, before date validation
|
|
- moved leaf cert caching and cached cert bypass into block specific to parsing the leaf certificate,
|
|
simplifying main loop
|
|
|
|
Changed signature scheme and cipher selection to account for certificate signing algorithm, if a
|
|
certificate is available.
|
|
|
|
Changed to allocate certificate and private key buffers internally when using 'scrt' and 'skey' control
|
|
selectors, meaning these buffers no longer need to be persisted by the caller.
|
|
|
|
Changed signature verify buffer from 2048 bytes to SSL_SIG_MAX.
|
|
|
|
Changed signature verify failure alert from bad_record_mac to decrypt_error, as OpenSSL does.
|
|
|
|
Fixed ECDHE/SHA1 ciphers for TLS1.0/TLS1.1, and enabled them for those versions.
|
|
|
|
Fixed an issue with AES decrypt when a padding failure was detected, returning an immediate error instead
|
|
of resulting in a bad_record_mac alert as intended.
|
|
|
|
Fixed an issue in _ProtoSSLGenerateSecret() where the size of the PreMasterKey buffer (48) was being used
|
|
to build the master secret instead of the key length, which is not always 48.
|
|
|
|
Fixed a bug in RecvCertificateVerify in TLS1.3, which was dependent on the ECC context being left
|
|
initialized with the proper curve by RecvCertificate.
|
|
|
|
Fixed to not send signature_algorithms extension for connection attempts with a TLS version less than 1.2.
|
|
|
|
Fixed 'rsao' operator to cover new async crypto states, renamed 'crpt', and marked 'rsao' for deprecation.
|
|
|
|
Fixed a server issue processing the ChangeCipherSpec message.
|
|
|
|
Fixed a server bug from Raven-pr2 where the signature_algorithms extension would be sent in the ServerHello
|
|
by a TLS1.2 or earlier server, which is not legal.
|
|
|
|
Fixed a server bug that broke resume flow in tls1.2 and prior when tls1.3 server hello session echo was
|
|
implemented.
|
|
|
|
Fixed the server to select cipher based on session resume cipher if available, and to not attempt resume if
|
|
the ssl version or cipher of the previous session don't match those of the current session.
|
|
|
|
Fixed a server bug in ProtoSSLUpdateSendServerKeyExchange(), which was leaving bRSAContextInitialized TRUE.
|
|
This would cause a subsequent client certificate verify operation to fail.
|
|
|
|
Fixed a server bug when receiving a tls1.3 ClientHello but negotiating a tls1.2 or prior connection with an
|
|
ECDHE cipher; the key from the key_share extension would be used when sending the server key exchange,
|
|
causing the connection to fail.
|
|
|
|
Fixed server bug when verifying an ecdsa client certificate; the state was left initialized, which broke
|
|
subsequent encryption of Finished message.
|
|
|
|
Fixed SendCertificateRequest to transition to sending Certificate message when TLS1.3 is used.
|
|
|
|
Fixed RecvCertificateRequest to choose signature scheme in concert with certificate signing algorithm, if a
|
|
certificate is available.
|
|
|
|
Fixed SendFinished to transition to RECV_HELLO state if TLS1.3+server+client cert flow.
|
|
|
|
Fixed SendServerKeyExchange and RecvCertificateVerify for TLS1.1+server+rsa|ecdsa.
|
|
|
|
Fixed RecvCertificate to transition to RecvFinished if a TLS1.3 server receives an empty Certificate
|
|
message, and the client cert level is not two (client cert required).
|
|
|
|
Fixed SendCertificate to transition to SendFinished if a TLS1.3 client sends an empty Certificate message,
|
|
skipping CertificateVerify.
|
|
|
|
ProtoPing
|
|
Moved this module to the LegacyDirtySDK.
|
|
|
|
ProtoPingManager
|
|
Moved this module to the LegacyDirtySDK.
|
|
|
|
ProtoUdp
|
|
Moved this module to the LegacyDirtySDK.
|
|
|
|
ProtoUpnp
|
|
Changed the implementation to switch from using ProtoUdp to DirtyNet for UDP communication.
|
|
|
|
QosApi
|
|
Moved this module to the LegacyDirtySDK.
|
|
|
|
VoipGroup
|
|
Changed the VoipGroupManager to contain a variable length array of voipgroups. In multihub mode we require
|
|
more voipgroups due to the number of concurrent blazehubs running.
|
|
|
|
VoipTunnel
|
|
Refactored indexes for voip clients lists were offset by -1 so that the first console user in the list
|
|
would appear at index 0 of the voip client list. This helps to not waist one of the maximum 32 voip slots.
|
|
|
|
XmlFormat
|
|
Removed XmlValidate debug function that was never implemented. This fixes an outstanding TODO we had to
|
|
implement this functionality.
|
|
|
|
DirtySDK (Android)
|
|
CryptRand
|
|
Changed the Android implementation to read from /dev/urandom. This addresses an outstanding TODO we had to
|
|
add a native implementation for this platform.
|
|
|
|
DirtySDK (Linux)
|
|
DirtyNetUnix
|
|
Fixed the idle procs not being called when running in singlethreaded mode.
|
|
|
|
DirtySDK (macOS/iOS)
|
|
NetConnIos
|
|
Switched the implementation to use the non-deprecated Base64Decode2.
|
|
|
|
ProtoSSLApple
|
|
Enabled support for ECDSA and CHACHA20-POLY1305 ciphers.
|
|
|
|
DirtySDK (PC)
|
|
DirtyNetWin
|
|
Changed the implementation of 'poll' to fire the socket callback when we have data waiting. The previous
|
|
implementation would just notify that is a socket is waiting but would need to wait for the socket idle
|
|
thread for the socket callback to be invoked.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyLibPS4
|
|
Removed support for singlethreaded mode on PS4, this isn't a supported configuration. The implementation was
|
|
taken from unix when it was created.
|
|
|
|
ProtoHttpPS4
|
|
Fixed a write callback bug when all data is available immediately, in which case the write callback
|
|
completes the transition before the data can be read.
|
|
|
|
VoipHeadsetPS4
|
|
Fixed size of dynamically allocated module ref. An unused client entry was always unnecessarily allocated
|
|
at the very end of the struture.
|
|
|
|
DirtySDK (Unix)
|
|
NetConnUnix
|
|
Fixed bug (opt build only) inadvertently introduced in Raven-pr2. Body of _NetConnUpdateConnStatus() was
|
|
incorrectly made "logging only" by conditionnally compiling it in with DIRTYCODE_LOGGING but that broke
|
|
the functionality because the line "pRef->uConnStatus = uNewConnStatus" is not only for logging purposes
|
|
but is core functionality for internal state transitions.
|
|
|
|
VoipUnix
|
|
Changed voipunix to assume single-threaded usage: eliminates run-time threading issues (malformed
|
|
prototunnel packets) resulting from voipunix being used from the dirtycast stress client which implies
|
|
disabled critical sections.
|
|
|
|
DirtySDK (XboxOne)
|
|
ProtoHttpXboxOne
|
|
Fixed the ProtoHttpAbort behavior on XBox One to be similar to other platforms.
|
|
|
|
Fixed a write callback bug when all data is available immediately, in which case the write callback
|
|
completes the transition before the data can be read.
|
|
|
|
ProtoMangleXboxOne
|
|
Fixed size of dynamically allocated module ref. An unused client entry was always unnecessarily allocated
|
|
at the very end of the struture.
|
|
|
|
VoipXboxOne
|
|
Fixed copy and paste error, the code was set to set the priority and not the affinity.
|
|
|
|
EADP Game Services DirtySDK 15.1.4.0.0-pr2 - February 5, 2018
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.06.00
|
|
Framework 7.10.00
|
|
|
|
Android androidsdk 24.4.1-1-2
|
|
androidndk r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 170608-proxy
|
|
capilano_config 2.03.00
|
|
Kettle kettlesdk 5.008.051-proxy
|
|
kettle_config 2.06.02
|
|
iPhone ios_config 1.09.00
|
|
iphonesdk 10.0-proxy-1
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.15.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
ProtoHttpServ
|
|
Added ability to specify ALPN string for ProtoSSL.
|
|
|
|
ProtoSSL
|
|
Added support for rsassa-pss signed certificates.
|
|
|
|
Added support for draft22 and draft23 versions of TLS1.3.
|
|
|
|
Added client support for TLS1.3 session resumption.
|
|
|
|
Added safe reading for handshake receive functions and extension parsing.
|
|
|
|
Added client certificate support for TLS1.3.
|
|
|
|
QosApi
|
|
Added QosApiControl('stwi') - set the amount of ms before a stall is counted, if a stall is detected test
|
|
timeout will be extended (default 500ms).
|
|
|
|
UserListApiPS4
|
|
Added order directions for list queries
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Fixed the build scripts to correctly set the optionset for C++ files when building as a DLL.
|
|
|
|
ConnApi
|
|
Removed the empty ConnApiMigratePlatformHost function.
|
|
|
|
DirtyNet
|
|
Changed the implementation of the map address functions to return only -1 in error as negative numbers are
|
|
expect for real (non-virtual) IPv4 addresses. We do not want to return error when remapping an IPv4 address.
|
|
|
|
Changed the implementation of the remap address function to handle the case an IPv4 address was tried to be
|
|
remapped.
|
|
|
|
Fixed SockaddrInSetPort to not generate constant value truncation warning on Windows builds.
|
|
|
|
Hpack
|
|
Fixed crash in _HpackDecodeLiteralField if the indexed entry decode failed by stopping further processing.
|
|
|
|
Fixed crash in _HpackHuffmanTreeDecode if the huffman code lookup in the tree failed.
|
|
|
|
NetGameDist
|
|
Fixed parsing of the stat packet to prevent reading past the end of the buffer. The module reads and writes
|
|
to the stat packet based on the number of players. On the client this is a fixed value, while on the server
|
|
this is adjusted based on when players join and leave the game. Due to a mismatch between the both sides,
|
|
the server will write less than the client expects causing it to potentially read past the end of the
|
|
buffer.
|
|
|
|
Protobuf
|
|
Fixed reading and writing of non-packed repeated fields. When this was originally implemented, how I
|
|
understood the encoding documentation is that with proto3 all repeated fields were packed, which was
|
|
incorrect. How it actually works is that the primitive types (varint, 32-bit and 64-bit) are packed while
|
|
length delimited types are not. Due to this I needed to make a change in the APIs so it can account for the
|
|
behavior change in the implementation.
|
|
|
|
Refactored the functions dealing with reading packed repeated fields to be a bit more elegant to use.
|
|
|
|
Removed the output sizes for the fixed type functions (non-repeated) as this is implicit based on the
|
|
function.
|
|
|
|
Removed the unnecessary fixed writing functions at align with the reading size.
|
|
|
|
Refactored the error checking based on the expectations for each fixed function.
|
|
|
|
ProtoHttpUtil
|
|
Changed ProtoHttpUrlEncode functions to return the append point rather than always returning zero. Also
|
|
changed to mirror C99 vsnprintf() overflow semantics.
|
|
|
|
ProtoSSL
|
|
Fixed crash when parsing ASN.1 binary objects by preventing a negative size when zero sized data is parsed
|
|
from the header.
|
|
|
|
Fixed a memory leak when CryptRSAInit fails when verifying the signature and the context is heap allocated.
|
|
|
|
Removed support for md2-signed certificates.
|
|
|
|
Fixed a bug in sending of TLS1.3 HelloRetryRequest by server.
|
|
|
|
Fixed a bug receiving 0/n record split records introduced in Raven-pr1.
|
|
|
|
Fixed SendCertificateVerify to work with PSS encoded signatures when using TLS1.2. PSS signature support
|
|
was added along with TLS1.3 in Raven-pr1, which exposed the lack of support.
|
|
|
|
Fixed to increase ClientHello body format buffer to 2k to accomodate large session tickets in TLS1.3
|
|
resume flow.
|
|
|
|
Fixed to prevent ProtoSSL running as a server using DirtyCert.
|
|
|
|
Fixed two bugs introduced in DirtySDK 13.3.1.6.0 when code to check AES padding was added. First, in SSLv3
|
|
the block cipher padding value is not specified and therefore should not be checked. This would likely
|
|
break any SSLv3 connection negotiated with AES. Second, the padding check itself was biased one character
|
|
forward, meaning it missed checking the very first padding byte, instead comparing the last byte (the
|
|
length) to itself.
|
|
|
|
Fixed to support the full 64 bits of sequence number (previously, only 32 bits were supported).
|
|
|
|
QosApi
|
|
Changed http and probing timeouts, so they are treated separately and have their own error codes.
|
|
|
|
Fixed issue when the client stalls, it was possible to timeout without having had a chance to do the
|
|
probing. QosApi will detect client side stalls and will increase the timeout to compensate.
|
|
|
|
Changed QosApi to reject latency packets that are well beyond expected ranges, 20 seconds.
|
|
|
|
DirtySDK (Apple)
|
|
ProtoSSLApple
|
|
Changed the code to cleanup the secure state when we detect that the connection was closed.
|
|
|
|
DirtySDK (XboxOne)
|
|
UserApiXboxOne
|
|
Fixed a crash due to the UserApi ref being created before users are added to NetConn by creating
|
|
ProtoHttp refs for all possible users.
|
|
|
|
VoipHeadsetXboxOne
|
|
Changed the LoadLibraryEx input to be wrapped with a TEXT macro to ensure it works on non-UNICODE
|
|
environments.
|
|
|
|
EADP Game Services DirtySDK 15.1.4.0.0-pr1 - December 7, 2017
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.06.00
|
|
Framework 7.08.02
|
|
|
|
Android androidsdk 24.4.1-1-2
|
|
androidndk r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 170608-proxy
|
|
capilano_config 2.03.00
|
|
Kettle kettlesdk 5.008.051-proxy
|
|
kettle_config 2.06.02
|
|
iPhone ios_config 1.09.00
|
|
iphonesdk 10.0-proxy-1
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.15.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
*** Important - First DirtySDK release with Speech-To-Text (STT) and Text-To-Speech (TTS) support ***
|
|
Support available for XboxOne only. PS4 and PC not yet supported
|
|
|
|
*** Important - PS4 Random module required ***
|
|
With this version loading of the PS4 Random module is required
|
|
|
|
*** Important - Public API changes for NetConnXboxOne ***
|
|
Removed support for -nologin parameter with NetConnStartup() and NetConnConnect().
|
|
|
|
*** Important - Public API changes for NetGameDistServ ***
|
|
Removed the notion of a "started" game as it proved to be completely broken. NetGameDistServStartGame() and
|
|
NetGameDistServStopGame() were removed. When a game is started or stopped (like during a blaze match replay), the
|
|
game code running on the client is in charge of exercising the netgamedist flow control.
|
|
|
|
*** Important - Public API changes for Voip ***
|
|
Removed for good 'umic' and 'uspk' control selectors that had been deprecated for a long time already.
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
Base64
|
|
Added support for base64 url string encoding and decoding per RFC 4648 Section 5. Added new
|
|
internal functions to do the encoding / decoding to be shared between the various functions.
|
|
|
|
Build
|
|
Added a target for building full html docs.
|
|
|
|
CommUdpUtil
|
|
Added as a new file where code shared between commupd and dirtycast is located. Contains new util
|
|
functions with explicit names that improve readability and hide bit/byte level inspection in
|
|
commudp packets.
|
|
|
|
CryptBn
|
|
Added functions to left and right shift by more than 1 bit at a time. Defined a macro for right shift by 1
|
|
to mimic how left shift works.
|
|
|
|
CryptEcc
|
|
Added a function to the module to validate if a point is on the curve.
|
|
|
|
Added support for ECDSA signing and verification which can be used instead of RSA for those purposes.
|
|
|
|
CryptRSA
|
|
Added support for Chinese Remainder Theorem (CRT) algorithm to speed up RSA operations that use the private
|
|
key. Since the data and sate used for the different RSA computations are different, I introduced a union
|
|
that can represent the data we are working with.
|
|
|
|
DirtyNet
|
|
Added a minimum rate limit of 1460 bytes/sec to the SocketRate API. This also fixes the issue that
|
|
setting a rate lower than this will result in no data going through.
|
|
|
|
Added support for IPv6 address parsing from text.
|
|
|
|
DirtyThread
|
|
Added support for condition variables via the new dirtythread module which is powered by EAThread.
|
|
Added support for threads via the new dirtythread module which is powered by EAThread.
|
|
|
|
NetGameDistServ
|
|
Added a call to _NetGameDistServFlowControl() in NetGameDistServAddClient() such that a player
|
|
joining results in DirtyCast announcing "I no longer receive" until the joiner explicitly confirms
|
|
"I can receive" with a call to NetGameDistControl('lrcv').
|
|
|
|
NetGameLink
|
|
Added the number of naks sent to peer from us to the NetGameLinkStatT structure.
|
|
|
|
Moved 'slen' and 'sque' to be a status selector. We are keeping the control selector version of
|
|
these but they are now consider deprecated.
|
|
|
|
Platform
|
|
Added include to <wchar.t> to provide access to wchar_t
|
|
|
|
Protobuf
|
|
Added a reader and writer for the protobuf (version 3) wire format.
|
|
|
|
ProtoHttp
|
|
Added secure proxy support using HTTP CONNECT.
|
|
|
|
Added global proxy setting via new 'gpxy' ProtoHttpControl selector.
|
|
|
|
Added an additional request API to specify custom and receive header callbacks, which take priority over the
|
|
global callbacks.
|
|
|
|
ProtoHttpServ
|
|
Added a listen function to allow users to specify their own TCP backlog settings.
|
|
|
|
ProtoSSL
|
|
Added TLS1.3 protocol support, implementing draft-18 through draft-21 versions at compile-time (defaulting
|
|
to draft-18). TLS1.2 remains the default client-requested version.
|
|
|
|
Added support for sha512 handshake hash.
|
|
|
|
Added debug output of Master Secret in a form suitable for Wireshark decryption via (Pre)-Master Secret log
|
|
file.
|
|
|
|
ProtoWebSocket
|
|
Added message sending (ProtoWebSocketSendMessage) and receiving (ProtoWebSocketRecvMessage). Already
|
|
existing Send/Recv functions use a stream-like metaphor.
|
|
|
|
QosApi
|
|
Added QosApiControl('ncrt') - passed to ProtoHttpControl, if TRUE will proceed even if SSL cert errors
|
|
are detected (defaults FALSE), for debug purposes.
|
|
|
|
Added QosApiStatus('ncrt') - get the 'ncrt' setting, if TRUE we will ignore SSL errors for setup
|
|
communication.
|
|
|
|
Added QosApiControl('soli') - passed down to the socket as a SO_LINGER option if its >= 0, a 0 value
|
|
will abort the socket on disconnection with no TIME_WAIT state (ideal for stress testing).
|
|
|
|
Added QosApiStatus('soli') - get the value passed to ProtoHttp 'soli'.
|
|
|
|
Voip
|
|
Added VoipSetTranscribedTextReceivedCallback() for voipgroup layer to register a callback used by
|
|
lower-level voip to notify about inbound transcribed text over voip connections.
|
|
|
|
VoipConnection
|
|
Added a per-connection outbound sequence number instead of the global one, needed to support a
|
|
scenario where transcribed text is not sent on ALL connections.
|
|
|
|
Added a NULL check when setting bPeerIsAcking as based on code before it pConnection might be NULL.
|
|
|
|
VoipDef
|
|
Added XoneSynthesizedSpeechCfgT to be used with VoipControl('voic').
|
|
|
|
Added VoipTranscribedTextReceivedCallbackT which is the prototype of the callback registered with
|
|
VoipSetTranscribedTextReceivedCallback() and VoipGroupSetTranscribedTextReceivedCallback().
|
|
|
|
VoipGroup
|
|
Added VoipGroupSetTranscribedTextReceivedCallback() for game code to register a callback used by
|
|
DS to notify about inbound transcribed text over voip connections.
|
|
|
|
VoipPacket
|
|
Added new VOIP_PACKET_STATUS_FLAG_STT, flagging that at least one user on the originating side as requested
|
|
transcribed text to be sent.
|
|
|
|
Added aRemoteClientId field to ReliableDataInfoT. Required to uniquely identify who the reliable data is
|
|
for.
|
|
|
|
VoipTunnel
|
|
Added new events for adding and deleting games from the VoipTunnel.
|
|
|
|
VoipHeadset
|
|
Added VoipHeadsetDisplayTranscribedText() to display transcribed text in system overlay.
|
|
|
|
DirtySDK (Apple)
|
|
DirtyErrUnix
|
|
Added the errors from Apple's Security.framework headers SecBase.h and SecureTransport.h
|
|
|
|
ProtoSSLApple
|
|
Added an implementation of ProtoSSL that is driven by Apple's SecureTransport library.
|
|
|
|
DirtySDK (PC)
|
|
DirtyNetWin
|
|
Added SocketControl('soli') - set SO_LINGER On the specified socket, iData1 is timeout in seconds.
|
|
|
|
Added support for IPv4 sockets, required for Windows XP compatibility. Use SocketControl('afam') control
|
|
selector to set global address family to use for sockets.
|
|
|
|
VoipAux
|
|
Added support for the Opus VoIP codec. This codec uses the default settings and 8kHz sampling rate.
|
|
|
|
VoipHeadsetPc
|
|
Added support for variable length frames for PC codec's which is needed to add Opus support. To allow the
|
|
codec to choose if it can support variable length frames, have the headset status fallthrough down to the
|
|
codec. Due to the current codecs not supporting variable length frames, I put the unhandled logging message
|
|
at a higher verbosity to prevent spamming. Changed the voice data callback to only validate the size of the
|
|
frames when not using variable length frames. Changed the calculation of sub-packet size to work for both
|
|
variable and fixed frames.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyNetPS4
|
|
Added support for SO_LINGER socket option via the 'soli' control like on PC/Unix
|
|
|
|
NetConnPS4
|
|
Added NetConnStatus('locl') and NetConnStatus('locn') API to fetch locale.
|
|
|
|
Added support for -delaySEMD in NetConnStartup to ignore the state of SystemEventMessageDispatcher.
|
|
|
|
ProtoHttpPS4
|
|
Added rate limiting.
|
|
|
|
DirtySDK (Unix)
|
|
DirtyNetUnix
|
|
Added SocketControl('soli') - set SO_LINGER On the specified socket, iData1 is timeout in seconds.
|
|
|
|
VoipUnix
|
|
Added as a new file. Not real voice. Artificial voip data injection on voip connections. Injected
|
|
sub-packet rate and sub-packet size are controllable via voip control selectors ('psiz', 'prat').
|
|
|
|
DirtySDK (XboxOne)
|
|
UserApiXboxOne
|
|
Added support for retrieval of the TTS/STT settings that are a part of the profile data.
|
|
|
|
Added Accessibility field to UserApiProfileT.
|
|
|
|
VoipHeadsetXboxOne
|
|
Added support for leveraging new Text-to-speech (TTS) and Speech-to-text (STT) features in XboxOne XDK.
|
|
* Added 'ttos' control selector to be used by the game code to feed in text to be synthesized (from
|
|
a speech-impaired user).
|
|
* Added 'stot' control selector to be used by the game code to enable local generation of transcribed
|
|
text to be sent reliably to all remote peers that requested it (i.e. hearing-impaired user).
|
|
* Added 'voic' control selector with platform-specific params used for identifying "voice" used when
|
|
producing synthesized speech.
|
|
|
|
VoipSerializationXboxOne
|
|
Added "game display name" property to the remote user object because we need to feed that into.
|
|
Windows::Xbox::UI::Accessibility::SendSpeechToTextString(). So that information is now part of the
|
|
user serialization.
|
|
|
|
API Breaking Changes in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Removed support for non-namespaced include imports, you must use the full path.
|
|
For example: <DirtySDK/dirtysock/dirtynet.h> versus <dirtynet.h>
|
|
|
|
CommTcp
|
|
Removed CommTCP for good.
|
|
|
|
ConnApi
|
|
Renamed 'phcc' selector (PC Host Capilano Client) to 'phxc' (Pc Host Xboxone Client). ('phxc' used to
|
|
stand for "PC Host Xenon Client" but it was free now that xbox360 is no longer supported.)
|
|
|
|
Removed the option of using ConnApi as the owner of voip. Calling VoipStartup/VoipShutdown is now ALWAYS
|
|
required before using ConnApi with voip-enabled topologies.
|
|
|
|
DirtyLang
|
|
Removed LOBBYAPI_LANGUAGE_TEGULU, which was replaced with LOBBYAPI_LANGUAGE_TELUGU long time ago.
|
|
|
|
Removed LOBBYAPI_LANGUAGE_UIGUR, which was replaced with LOBBYAPI_LANGUAGE_UIGHUR long time ago.
|
|
|
|
Removed LOBBYAPI_LANGUAGE_WELCH, which was replaced with LOBBYAPI_LANGUAGE_WELSH long time ago.
|
|
|
|
Removed LOBBYAPI_COUNTRY_SLOVAKIA_, which was replaced with LOBBYAPI_COUNTRY_SLOVAKIA long time ago.
|
|
|
|
Removed LOBBYAPI_COUNTRY_ST_HELENA, which was replaced with
|
|
LOBBYAPI_COUNTRY_ST_HELENA_ASCENSION_AND_TRISTAN_DA_CUNHA long time ago.
|
|
|
|
NetGameDistServ
|
|
Removed the notion of a "started" game as it proved to be completely broken.
|
|
NetGameDistServStartGame()/NetGameDistServStopGame() were removed. When a game is started or stopped
|
|
(like during a blaze match replay), the game code running on the client is in charge of exercising the
|
|
netgamedist flow control.
|
|
|
|
Updated the stats structure to include more useful information and trimming the sizes down. There was no
|
|
need to include ping due to the fact that it can be derived from latency if needed. Added the send queue
|
|
length to allow detection when the queue is filling up at the lowest level. To allow us to get this I added
|
|
a fallthrough from NetGameDistStatus to NetGameLinkStatus. Added the packet loss and nak information as more
|
|
indicators to problems on the client->server connection.
|
|
|
|
NetGameLink
|
|
Renamed NETGAME_QOS_DURATION_MIN to NETGAMELINK_QOS_DURATION_MIN and moved it from public domain to private
|
|
domain.
|
|
|
|
Renamed NETGAME_QOS_DURATION_MAX to NETGAMELINK_QOS_DURATION_MAX and moved it from public domain to private
|
|
domain.
|
|
|
|
Renamed NETGAME_QOS_INTERVAL_MIN to NETGAMELINK_QOS_INTERVAL_MIN and moved it from public domain to private
|
|
domain.
|
|
|
|
Renamed NETGAME_QOS_PACKETSIZE_MIN to NETGAMELINK_QOS_PACKETSIZE_MIN and moved it from public domain to
|
|
private domain.
|
|
|
|
Changed the 'mwid' to a status from a control based on a v8 TODO we still had outstanding.
|
|
|
|
Voip
|
|
Removed for good 'umic' and 'uspk' control selectors that had been deprecated for a long time already.
|
|
|
|
Removed VoipDisconnect() and renamed VoipDisconnect2() to VoipDisconnect().
|
|
|
|
Removed the uAddress parameter from the VoipDisconnect() synopsis.
|
|
|
|
Removed VoipSpeaker and VoipMicrophone from the public interface. This API can be misused by customers and
|
|
given that it used to be the way to deal with muting we want to remove it to prevent incorrect use.
|
|
|
|
VoipGroup
|
|
Removed VoipGroupConnect() and renamed VoipGroupConnect2() to VoipGroupConnect().
|
|
|
|
Removed VoipGroupResume() and renamed VoipGroupResume2() to VoipGroupResume().
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Removed support for -nologin parameter with NetConnStartup() and NetConnConnect(). -nologin used to be
|
|
exercised by FIFA tools. Instead of using -nologin, tools can just call NetConnStartup() and not
|
|
call NetConnConnect(). Implicitly that means tools do not need to wait for netconn to reach +onl state
|
|
before doing generic networking activity.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Changed the documentation generation to use the headerfiles fileset which is updated to include the correct
|
|
files across platform. This allows us to reduce the complexity of our doxygen configuration generation as
|
|
it now works similarly to the sourcefiles fileset.
|
|
|
|
Fixed hack that gets a property that just equates to ${config-system} with just ${config-system}.
|
|
|
|
Changed the build scripts to explicitly build against the newest C standard (c11). We currently are not
|
|
supporting the older standards and don't want to assume a default. This fixes some issues with how some
|
|
1st Party APIs are defined.
|
|
|
|
Common
|
|
Removed the platform specific zlib functionality, instead we call into DirtySDK which implements it already
|
|
for all platforms.
|
|
|
|
ConnApi
|
|
Removed parameter validation from ConnApiControl('sqos') and ConnApiControl('lqos') to eliminate
|
|
code duplication with equivalent validation made in NetGameLinkControl('sqos') and
|
|
NetGameLinkControl('lqos').
|
|
|
|
Removed the ProtoUpnp code from ConnApi, which is already handled in NetConn. The ConnApi module would be
|
|
doing the UPnP operations too late for it to be of value as we want this to be available early so it can be
|
|
updated in the user's information.
|
|
|
|
Refactored the virtualisation of the VoIP ports to the module that owns the VoIP connection. In a dedicated
|
|
server scenario, ConnApi does not establish any VoIP connection as this is handled by the VoipTunnel owned
|
|
by the ConnApiVoipManager.
|
|
|
|
Refactored ConnApiRemoveClient to validate the index passed in to ensure that it is the valid range.
|
|
|
|
Removing code relating to increasing our connection timeout required to create a secure association used for
|
|
legacy failover mode (which was removed).
|
|
|
|
CommUdp
|
|
Enhanced internal implementation with major cosmetic fixes to re-align with coding standard. No functional
|
|
impact.
|
|
|
|
Removed code duplication between commudp and voipservercomm by moving shared code to a new file called
|
|
CommUDPUtil.
|
|
|
|
CryptBn
|
|
Changed the right shift operation to clear the memory when shrinking the width to match what we do in other
|
|
places.
|
|
|
|
CryptEcc
|
|
Changed the output of the functions CryptEccPublic, CryptEccSecret and CryptEccSign to be optional.
|
|
|
|
CryptRSA
|
|
Changed the internal exponentiation function so it can take in different data for different needs.
|
|
|
|
Refactored the RSA exponentiation code to use a sliding window algorithm as an optimization.
|
|
|
|
DirtyAddr
|
|
Changed DIRTYADDR_MACHINEADDR_MAXLEN from 127 to 372 for xboxone specifically to fix a rare issue demonstrated
|
|
in production where the SecureDeviceAddr blob would be clamped when stored in a DirtyAddrT because too large.
|
|
After discussing with MS, 372 was identified as the right size to avoid this kind of issue.
|
|
(See comment in the code for more details)
|
|
|
|
DirtyCert
|
|
Changed the 'prld' to use the correct variable when changing a value based on a control. It was using iControl
|
|
which tells us which control we are working on instead of iValue.
|
|
|
|
DirtyJpg
|
|
Fixed an unusual case where the huffman decoder was reading past the end of the input file.
|
|
|
|
DirtyLib
|
|
Removed some erroneous extra argument provided to NetPrintf.
|
|
|
|
Changed the array printing code to add the opening brace on its own log line. This allows the array to be
|
|
copied more easily from the log files.
|
|
|
|
Changed NetPrintfVerboseCode to only call ds_vsnprintf when the verbosity is over the check level.
|
|
|
|
Removed unused defines from the Gen3 era.
|
|
|
|
Refactored the NetCrit system to be driven by EAThread instead of being implemented in place.
|
|
|
|
DirtyNames
|
|
Removed unneeded extern for function declarations.
|
|
|
|
DirtyNet
|
|
Changed to refactor address conversion to text and address printing, moving some code from plat-str to
|
|
dirtynet, and consolidated and rearranged. Also updated for coding standards, and reordered address
|
|
functions to make more sense and align with header.
|
|
|
|
Cleaned up the ambiguity about what an INVALID_SOCKET descriptor means. Protect operations that
|
|
require a valid socket descriptor or that valid only when the socket has not been added to the kill
|
|
list. When shutting down a socket we want to make sure that we protect the socket for the short time
|
|
before it is actually released.
|
|
|
|
Changed the map translate print to level 3 verbosity based on how often we print this.
|
|
|
|
Fixed the code so we have the tick when we finish the receive into allocated packet queue entries. When
|
|
looking at the time between adding an entry to the packet queue and removing we were noticing that packets
|
|
off the physical socket were reporting misleading times.
|
|
|
|
MurmurHash3
|
|
Changed the code to use the EABase little endian define. The current code was not correctly applying the
|
|
little endian logic for all the support systems.
|
|
|
|
NetConnCommon
|
|
Moved implementation of netconn external cleanup mechanism to netconncommon to eliminate code duplication
|
|
in netconnxboxone and netconnps4.
|
|
_NetConnAddToExternalCleanupList() becomes NetConnCommonAddToExternalCleanupList().
|
|
_NetConnProcessExternalCleanupList() becomes NetConnCommonProcessExternalCleanupList().
|
|
|
|
Moved iRefCount from platform specific implementations to NetConnCommonStartup. Moved the associated printf
|
|
on PC and Unix for consistency in the logging.
|
|
|
|
Fixed an issue with NetConnStartup, NetConnShutdown and DirtyCert from the recent merging on NetConnCommon
|
|
into all platforms.
|
|
|
|
NetGameDist
|
|
Enhanced internal implementation with major cosmetic fixes to re-align with coding standard. No functional
|
|
impact.
|
|
|
|
Changed implementation of NetGameDistInputLocalMulti() to improve readability without impacting
|
|
functionality: rewrote a very complex if statement in a more explicit manner.
|
|
|
|
Removed the unused variable iStrmMaxPktSize, leftover from when dist owned the streams.
|
|
|
|
Moved the status selectors to the NetGameDistStatus function from NetGameDistControl to align with the rest
|
|
of DirtySDK
|
|
|
|
NetGameDistServ
|
|
Fixed flow control handling when Join-in-Progress is exercised.
|
|
|
|
Fixed usage of _NetGameDistServSanityCheckIn(). It is meant to be used after a call to
|
|
NetGameDistInputPeek(), but it was not used like that before this fix.
|
|
|
|
Removed unused NetGameDistServT::aInKeepAlive and NetGameDistServT::aOutKeepAlive.
|
|
|
|
Adjusted the send and peek timing logging to be a multiple of the configured fixed rate to prevent spamming
|
|
the logs when on higher fixed rate configurations.
|
|
|
|
NetGameLink
|
|
Enhanced internal implementation with major cosmetic fixes to re-align with coding standard. No functional
|
|
impact.
|
|
|
|
Renamed KEEP_ALIVE_TIME to NETGAMELINK_KEEPALIVE_TIME.
|
|
|
|
Enhanced the send packet code to prevent sync packets from appending to unreliable packets. The sync
|
|
packets are used to drive the stats we provide at the NetGameLink level, dropping one of these packets would
|
|
skew this information.
|
|
|
|
Changed NetGameLink to adjust the stream max packet size based on the CommUDP max width.
|
|
|
|
Plat-str
|
|
Added ds_fmtoctstring(), which formats hexadecimal text from an input binary blob of data.
|
|
|
|
ProtoHttp
|
|
Fixed a bug where the base url was not correctly processed when using a proxy server.
|
|
|
|
Changed ProtoHttpStatus() function to pass down unhandled selectors to ProtoSSLStat(), rather than directly
|
|
returning a -1 unhandled result.
|
|
|
|
Fixed crash in the instance we call ProtoHttpRecvAll with a NULL buffer but the response has no body.
|
|
Normally when a response has a body the use of a NULL buffer and size of zero will prompt ProtoHttp to tell
|
|
us that we need to allocate more space to be able to receive. If there is no body and we get a success right
|
|
away if will try to null-terminate that buffer which would lead to a crash.
|
|
|
|
ProtoHttp2
|
|
Changed ProtoHttp2Status() function to pass down unhandled selectors to ProtoSSLStat(), rather than
|
|
directly returning a -1 unhandled result.
|
|
|
|
Fixed a missing NetPrintf argument for [%p] print (pState).
|
|
|
|
Enhanced the logging for when we get an invalid stream id in a frame that requires one.
|
|
|
|
Changed the trigger for incrementing the flow control window to when it will be under the size of the window
|
|
to prevent pausing the download.
|
|
|
|
Fixed out of bound access when trying to print invalid frame types.
|
|
|
|
ProtoHttpManager
|
|
Changed the code to prevent a dereference of NULL when logging an error as the pHttpCmd variable might be
|
|
NULL.
|
|
|
|
ProtoHttpServ
|
|
Fixed crash in protohttpserv when a http2 client is used.
|
|
|
|
Increased the size of the URL data in the request structure to 128 bytes.
|
|
|
|
Fixed a bug with not setting the correct maximum buffer size for the write callback. The maximum needed to
|
|
account for the amount of data that was already written.
|
|
|
|
ProtoMangle
|
|
Removed unnecessary platform-specific code used while generating random port. From now on, a port range of
|
|
6000 is used on all platforms.
|
|
|
|
ProtoSSL
|
|
Changed TLS_ECDHE_RSA_WITH_AES_(128|256)_CBC_SHA to be TLS1.2+ only after testing revealed issues with
|
|
TLS1.1 and prior.
|
|
|
|
Fixed issue where _ProtoSSLRecvHandshakeFinish() was processing multiple handshake packets at once, which
|
|
could cause the handshake hash to be computed for more handshake packets than was correct. This did not
|
|
cause an issue prior to TLS1.3, but resulted in bad handshake hash calculations in the CertificateVerify
|
|
and Finished messages received from mozilla servers (which send the Certificate and CertificateVerify in
|
|
one SSL frame) when using TLS1.3.
|
|
|
|
Fixed _ProtoSSLRecvServerKeyExchange() to validate the RSA-PKCS1.5 signature padding (in addition to adding
|
|
RSASSA-PSS validation for TLS1.3).
|
|
|
|
Changed signature validation to use generated object comparison rather than parsing the included object.
|
|
This is generally understood to be better practice than ASN.1 parsing, which is error-prone.
|
|
|
|
Changed to consolidate some other code (debug printing of premaster and master secrets, clearing premaster
|
|
secret from memory) in _ProtoSSLBuildKey().
|
|
|
|
Fixed a possible issue in _ProtoSSLHandshakeHashGet() where an unknown hash result from CryptHashGetSize()
|
|
could fall through without error. Changed handling of a hash too large for the provided buffer by
|
|
truncating the size and continuing rather than returning an error.
|
|
|
|
Fixed an issue where a certificate date validation failure would not fail the connection IFF the signing
|
|
certificate was not available locally but was successfully installed on-demand by DirtyCert.
|
|
|
|
Changed to refactored secure data receive flow, and increased internal receive buffer. This allows
|
|
handshake messages that are larger than a single SSL record to be received successfully, as well as in
|
|
general simplifying and cleaning up the receive code. While fragmented SSL handshake messages are very
|
|
rare they can happen when a very large Certificate is sent by the server, for example.
|
|
|
|
Fixed _ProtoSSLUpdateRecvCertificate() to validate outer certificate envelope size.
|
|
|
|
Fixed to add validation of ChangeCipherSpec message size and content.
|
|
|
|
Changed the signature verification to heap allocate the CryptRSA state. The size of the CryptRSA state can
|
|
be rather large due to the number of CryptBnT structures that we use in certain conditions. This is the
|
|
only instance of us using a stack allocated CryptRSA state and we rather prevent stack overflow issues.
|
|
|
|
Fixed a crash by ensuring we successfully get the Hash ASN object before trying to generate a hash.
|
|
|
|
Changed the certification validity expiration prints to only be done when DEBUG_VAL_CERT is enabled.
|
|
|
|
Changed ProtoSSLShutdown to clear the stored CAs.
|
|
|
|
ProtoTunnel
|
|
Changed the send callback to early out when sending on the server socket used for xbox one. This socket
|
|
should be treated the same as the normal prototunnel socket, we will not try to match a tunnel.
|
|
|
|
Refactored the tunnel flush timeouts to check the last send time on individual tunnels instead of mass
|
|
flushing all tunnels regularly regardless of when the last send occurred. This should help improve packet
|
|
bundling behavior.
|
|
|
|
ProtoWebSocket
|
|
Fixed an issue where receiving an empty control frame (e.g. a ping) would cause the receiving to get stuck.
|
|
|
|
Added logging when we enforce the minimum keep-alive internal of 30s to let users know what is happening.
|
|
|
|
QosApi
|
|
Removed an unused function prototype.
|
|
|
|
Tools
|
|
Removed the mapparse and mpsummary tools as they are no longer used. The source code for these can be found
|
|
at //gos/tools/dirtyutils.
|
|
|
|
UserListApi
|
|
Added a comment to specify that a certain structure is only valid within the UserListApiCallbackT.
|
|
|
|
Voip
|
|
Changed VoipSetEventCallback() to now enter the ThreadCrit before proceeding. This is to avoid any
|
|
potential theoretical race condition where the voipthread would kick in and use the callback while the
|
|
main thread is in the middle of altering it.
|
|
|
|
VoipAux
|
|
Updated the build script's include to make sure that it adds the package.dir to the fromfile attribute.
|
|
The basedir only applies to the files in source.txt and not the fromfile call itself.
|
|
|
|
VoipCommon
|
|
Changed VoipCommonStartup() to now take a new input parameter called pTextDataCb() invoked internally
|
|
when the system notifies readiness of newly locally generated transcribed text (ready for transmission
|
|
over the network).
|
|
|
|
Fixed potential buffer overrun caused by trying to set channel settings on the shared audio input device
|
|
on a platform that doesn't support it.
|
|
|
|
Changed the logic to make sure that we have a valid index into LocalUsers/RemoteUsers for the 'luid'/'ruid'
|
|
status selectors.
|
|
|
|
Changed the check for support of the shared user index, checking negative does not work against 0xff when
|
|
checking against an int32_t type. Instead of checking for negative we want to check that the shared user
|
|
index is not set to the invalid value. When selecting the channel it did not seem as if the original check
|
|
was doing what was desired.
|
|
|
|
Changed the shared user index checks to compile time instead of runtime to prevent certain compilers
|
|
generating unreachable code warnings.
|
|
|
|
VoipConnection
|
|
Changed implementation to properly initialize the per-connection voice send timers used for sending at
|
|
a fixed 10hz rate. Prior to this change, there was a possibility for the first voip MIC packet being sent
|
|
to contain more than 100 ms of voice (i.e. the packet would keep filling up to the max sub-packet limit).
|
|
|
|
Fixed setting/testing of the VOIP_PACKET_STATUS_FLAG_STT flag.
|
|
|
|
Enhanced logics protecting against reliable data packing overflow.
|
|
|
|
Changed implementation to now pack and unpack target client id with reliable data. Allows for ignoring
|
|
inbound reliable data for which we are not the target when receiving voip MIC packet from the voipserver.
|
|
|
|
Fixed the name of the _VoipEncodeFlags and _VoipDecodeFlags function to _VoipEncodeLocalHeadsetStatus and
|
|
_VoipDecodeRemoteHeadsetStatus respectively to better reflect their purpose.
|
|
|
|
Changed how much channel configuration data we send in the ping packets. Added a channel user indices bitset
|
|
to flag which indices the channel configuration corresponds to. This allows us to send less channel
|
|
configuration data in the ping packets.
|
|
Removed the fixed channel configuration from the ping packet and use the variable data where the reliable
|
|
data used to live to write the needed channel configuration. This bumps the VoIP packet version to 'h'.
|
|
|
|
VoipGroup
|
|
Fixed a cleanup ordering issue in _VoipGroupManagerShutdown() that could result in a crash when
|
|
_VoipGroupManagerEVentCallback() is invoked from the voip thread.
|
|
|
|
Added support for VOIP_CONNID_ALL in the VoipGroupMuteByXXX methods to affects all users in the VoipGroup
|
|
at once.
|
|
|
|
Refactored the module ref logging to use %p instead of 0x%08x.
|
|
|
|
Added VoipGroupMuteByClientId3.
|
|
|
|
Added VoipGroupMuteAll, which stacks with the other VoipGroupMuteByXXX methods.
|
|
|
|
VoipHeadset
|
|
Changed VoipHeadsetCreate() to now take a new input parameter called pTextDataCb() invoked internally
|
|
when the system notifies readiness of newly generated transcribed text.
|
|
|
|
VoipMixer
|
|
Removed unused parameter iMixBufferUnused from VoipMixerAccumulate() synopsis.
|
|
|
|
VoipPacket
|
|
Removed VOIP_MAXSUBPKTS_PER_PKT. Had not been needed since _VoipConnectionIsSendPktReady() had
|
|
been added.
|
|
|
|
Removed the VOIP_PACKET_RELIABLE_FLAG_FIRST flag, no longer needed.
|
|
|
|
Changed the value of VOIP_PACKET_RELIABLE_FLAG_ACK_ACKCNF and VOIP_PACKET_RELIABLE_FLAG_DATA.
|
|
|
|
VoipTunnel
|
|
Fixed the client flags to properly reset the VOIPTUNNEL_CLIENTFLAG_RECVVOICE when a user leaves the game.
|
|
|
|
Enhanced the send logic to no longer call the user callback when send fails. We want to correctly represent
|
|
how much data we are sending, this could potentially misrepresent our metrics. This aligns with what we do
|
|
for game traffic.
|
|
|
|
Fixed missing NetPrintf argument.
|
|
|
|
XmlParse
|
|
Removed assignment of a variable that gets reassigned on the next line.
|
|
|
|
DirtySDK (PC)
|
|
CommUdp
|
|
Fixed an incorrect sizeof() in PC-specific portion of _CommUDPListen0().
|
|
|
|
DirtyNetWin
|
|
Fixed incorrect debug printfs for the 'keep' selector.
|
|
|
|
Switched to using a uintptr_t variable to store the temp handle when creating our threads so we don't need
|
|
to have a 32-bit / 64-bit check.
|
|
|
|
VoipPc
|
|
Changed implementation to align with new synopsis of VoipCommonStartup().
|
|
|
|
Fixed the duplicate check by checking the right most condition to use the correct define.
|
|
|
|
DirtySDK (PS4)
|
|
CryptRand
|
|
Refactored the PS4 implementation to use the random library provided by the SDK. Due to only being able to
|
|
generate 64 bytes at a time, we use it to seed our random. With this change you are now required to load the
|
|
Random module.
|
|
|
|
DirtyLibPS4
|
|
Refactored _NetTickCount to use sceKernelGetProcessTimeCounter function which stops while the system is
|
|
suspended.
|
|
|
|
DirtySessionManagerPs4
|
|
Refactored the control code to align more closely with other DirtySDK modules. We want to get rid of the
|
|
large switch statement in the beginning of the function as it is hard to maintain. Instead we will return an
|
|
error when we reach the end of the invitation controls if we are doing the sessions via the server.
|
|
|
|
NetConnPS4
|
|
Refactored internal implementation. Changed NetConnUserT to be a collection of fields belonging to a single
|
|
user instead of a collection of arrays indexed with the user index.
|
|
NetConnUserT::aNpid[] renamed to NetConnUserT::NpId.
|
|
NetConnUserT::aNpState[] renamed to NetConnUserT::NpState .
|
|
NetConnUserT::aUserServiceUserId[] renamed to NetConnUserT::UserServiceUserId.
|
|
NetConnUserT::aAuthCode[] renamed to NetConnUserT::AuthCode.
|
|
NetConnUserT::aParentalCtrls[] renamed to NetConnUserT::ParentalCtrls.
|
|
NetConnUserT::aPsPluss[] renamed to NetConnUserT::PsPlus.
|
|
NetConnUserT::aNpAvailability[] renamed to NetConnUserT::NpAvailability.
|
|
NetConnRefT::NpUsers renamed to NetConnRefT::aUsers[].
|
|
Created NetConnNpRequestTypeE. Needed for new synopsis of _NetConnUpdateNpRequests().
|
|
|
|
Enhanced internal implementation.
|
|
* For consistency with how things are done in other DirtySDK files, local variables declaration made in for
|
|
loops were moved to the beginning of the function.
|
|
* Renamed some local variables with more explicit names.
|
|
* Made debug logging more consistent across the files.
|
|
* Uniformized usage of i, iIndex, iUserIndex and iLocalUserIndex --> it is now iLocalUserIndex everywhere.
|
|
|
|
Refactored internal implementation: moved implementation of netconn external cleanup mechanism to
|
|
netconncommon to eliminate code duplication, and also slightly modified implementation details
|
|
such that the new common api is used in a more uniformed manner.
|
|
|
|
Changed from using IEAUser to KettleUser to align with the code used in netconnxboxone.
|
|
|
|
ProtoHttpPS4
|
|
Fixed a potential crash when running out of system resources.
|
|
|
|
Fixed the handling of an error when rate limiting reduced the number of bytes to send to 0.
|
|
|
|
Fixed an issue with rate throttling that prevented request with no payload from completing.
|
|
|
|
Refactored the timeout behavior to use the our own timeouts rather than the native PS4 timeout system to
|
|
better match what we do on other consoles.
|
|
|
|
Fixed the return value of the 'data' status selector to return the size of the header plus the currently
|
|
received size of the Http body.
|
|
|
|
VoipHeadsetPS4
|
|
Modified implementation to now unconditionally apply most restrictive voip settings to comply with Sony TRC
|
|
R4061 when there are multiple local users interacting with a game (note: that's different from EA MLU which
|
|
implies multiple users authenticated with Blaze). Under such conditions, we used to apply most restrictive
|
|
voip settings only if users were sharing output audio via TV and input audio via PS4 cam mic. If both
|
|
users were identified to be using dedicated headsets, we used to apply respective privileges on a
|
|
per-headset basis. Sony confirmed this being an incorrect strategy
|
|
(https://ps4.scedev.net/support/issue/131717/_Need_help_with_interpretation_of_TR_4061) as there is no way
|
|
to make sure that the restricted user is not hearing the voice even if headsets are detected because what
|
|
is detected as a headset connected to a controller can rather be a speaker.
|
|
|
|
VoipPS4
|
|
Changed implementation to align with new synopsis of VoipCommonStartup().
|
|
|
|
DirtySDK (Unix)
|
|
DirtyLibUnix
|
|
Removed the NetTickSet function which was previously used to workaround an issue with an older version of
|
|
the linux kernel.
|
|
|
|
Removed the _NetLib_bCritEnabled variable which has been replaced with a NetConn startup parameter.
|
|
|
|
DirtyNetUnix (All)
|
|
Moved global socket control 'spam' to _SocketControlGlobal while leaving per socket 'spam' control in
|
|
SocketControl(). This does not change any behavior but aligns the grouping of global controls and socket
|
|
specific controls.
|
|
|
|
Aligned with dirtynetwin regarding the logging in SocketConnect, we should be logging the remote address
|
|
after translation.
|
|
|
|
Changed SocketDestroy to wait for any current socket lookups to finish processing. If there is a current
|
|
socket lookup processing and we destroy the hostname cache, after the processing is finish it will segfault.
|
|
|
|
DirtyNetUnix (iOS/OSX)
|
|
Fixed a bug that broke iOS IPv6 compatibility, introduced in the 15.1.3.0.0 SDK release.
|
|
|
|
DirtySDK (XBoxOne)
|
|
NetConnXboxOne
|
|
Refactored internal implementation: moved implementation of netconn external cleanup mechanism to
|
|
netconncommon to eliminate code duplication, and also slightly modified implementation details
|
|
such that the new common api is used in a more uniformed manner.
|
|
|
|
Fixed an incorrect debug trace in _NetworkStatusThread().
|
|
|
|
Refactored to cache the value of NetConnStatus('tria') so avoid the performance hit from accessing the
|
|
1st party object.
|
|
|
|
ProtoHttpXboxOne
|
|
Refactored calls to 1st party API which take a long time to resolve so that they are run in a seperate
|
|
thread.
|
|
|
|
Refactored to move the Open() and initialization of the IXMLHttpRequest2 object into a task to prevent its
|
|
long execution time from causing visual glitches when an HTTP request is performed.
|
|
|
|
Refactored so that the request header callback would fire on the same thread as the http requestor thread.
|
|
This is a requirement for WebKit.
|
|
|
|
Fixed a potential crash when cleaning up the XMLHTTP object.
|
|
|
|
Fixed an issue for request requiring DirtyCert, the DirtyCert request was not complete at the time we were
|
|
trying to query the token which caused these operations to fail.
|
|
|
|
Refactored threads so that the custom header callback is triggered on the same thread as the caller of
|
|
ProtoHttpUpdate().
|
|
|
|
Refactored the process kill list to accomodate part of the clean up process occuring in a new thread.
|
|
|
|
Fixed an error that set the XmlHttp object to NULL incorrectly.
|
|
|
|
Fixed a race condition by forcing all XmlHttp objects to be destroyed via the kill list.
|
|
|
|
Moved a call to _ProtoHttpRequest on a thread inside the critical section.
|
|
|
|
Fixed an occasional Nucleus login issue by working around an error the MS api returns after reaching the
|
|
maximum number of redirections.
|
|
|
|
Fixed an issue where the protohttp reference can be destroyed while an asynchronous task is in progress.
|
|
|
|
Fixed an issue where a critical section was not left before an early return.
|
|
|
|
ProtoMangleXboxOne
|
|
Removed usage of the PROTOMANGLE_STATE_UNLOCK state for security associations. This state was an
|
|
unnecessary state because the "unlocking" step has never really been enforced by Microsoft.
|
|
It was a pre-gen4 launch concept that did not become real at gen4 launch.
|
|
|
|
ProtoTunnel
|
|
Fixed to track up to sixteen different remote server ports for the server socket.
|
|
|
|
Changes to status/control selectors:
|
|
-changed 'bnds' control selector to not recreate the server socket if it already exists.
|
|
-changed 'bnds' status selector to return if the specified port is in the list of server ports.
|
|
-changed 'bnds' status and control selectors to use iValue instead of iValue2 for the server port.
|
|
-added 'bndr' control selector to remove a mapped server port.
|
|
|
|
VoipHeadsetXboxOne
|
|
Removed while loop in _VoipHeadsetPollForVoiceData() because there is no good reason to read more
|
|
that one sample bundle per voip thread iteration. Moreover, the while loop proved to be problematic
|
|
with TTS specifically because the capture source suddenly has a lot of samples ready (... much more
|
|
that what typically is delivered in a 20 ms sampling window) and that resulted in the originator
|
|
filling up the inbound receive queues of consumers.
|
|
|
|
Changed implementation to use NetTickUsec() instead of NetTick() to get usec precision when logging
|
|
voice submission activity.
|
|
|
|
Fixed a vector by changing it to an immutable vector to prevent a possible crash.
|
|
|
|
VoipXboxOne
|
|
Changed implementation to align with new synopsis of VoipCommonStartup().
|
|
|
|
Changed implementation to properly support new Text-to-speech (TTS) and Speech-to-text (STT) features
|
|
in XboxOne. These changes became unavoidable with STT/TTS because without them it was nearly impossible
|
|
to play back successfully a very long input text. The inbound queue on the consumer side would just
|
|
continuously overflow.
|
|
* Changed VOIP_THREAD_SLEEP_DURATION from 18 ms to 20 ms. It used to be 18 ms because we had
|
|
problems pumping the voip thread at a sharp 20 ms rate. This problem was resolved by replacing
|
|
calls to NetTick() with calls to NetTickUsec() in _VoipThread(). NetTick() does use the high
|
|
res timer internally but it rounds up the result when it returns a ms value. The previous
|
|
implementation ended up not being able to create a sharp 20 ms pump rate because it was
|
|
subtracting two rounded up value. The new implementation is performing a single usec to
|
|
msec conversion at the last minute when it is about to call NetConnSleep().
|
|
* Also, the priority of the _VoipThread() was changed from THREAD_PRIORITY_HIGHEST to
|
|
THREAD_PRIORITY_TIME_CRITICAL. The new implementation is much closer to what MS does in the
|
|
GameChat DLL.
|
|
|
|
|
|
EADP Game Services DirtySDK 15.1.3.0.5 - October 10, 2017
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.01.00
|
|
Framework 7.01.00
|
|
|
|
Android androidsdk 24.4.1-1-2
|
|
androidndk r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 170302-proxy
|
|
capilano_config 1.05.07
|
|
Kettle kettlesdk 4.508.111-proxy
|
|
kettle_config 2.01.00
|
|
iPhone ios_config 1.07.00
|
|
iphonesdk 8.0-proxy-3
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.11.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
ProtoWebSocket
|
|
Added APIs to allow sending of text data to the server. Our other APIs only allowed sending binary data
|
|
but the protocol also supports text, for more information see: https://tools.ietf.org/html/rfc6455#section-5.6
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
ConnApi
|
|
Fixed negative indexing when updating connection timers for the DirtyCast client.
|
|
|
|
MurmurHash3
|
|
Changed the function name of the internal implementation of rotl64 to prevent colliding on other systems
|
|
that might provide it.
|
|
|
|
ProtoHttp
|
|
Fixed a write callback bug when all data is available immediately, in which case the write callback was
|
|
completing the transaction before the data could be read.
|
|
|
|
ProtoTunnel
|
|
Fixed an Xbox One specific issue when a player is in multiple meshes with more than one server, e.g. in a
|
|
situation where a user is in a CC-assisted game group while being in a dedicated server game. In such an
|
|
instance, the packets for the first server connected to would cease to flow when the second server
|
|
connection was established.
|
|
|
|
DirtySDK (PS4)
|
|
ProtoHttpPS4
|
|
Refactored the timeout behaviour to use our own timeouts rather than the native PS4 timeout system to better
|
|
match what we do on other systems.
|
|
|
|
DirtySDK (XboxOne)
|
|
ConnApi
|
|
Changed the size of a local variable used to store a SecureDeviceAddress as it could potentially be not
|
|
large enough for some theoretical networking conditions.
|
|
|
|
DirtyAddr
|
|
Changed DIRTYADDR_MACHINEADDR_MAXLEN from 127 to 372 for xboxone specifically to fix a rare issue
|
|
demonstrated in production where the SecureDeviceAddr blob would be clamped when stored in a DirtyAddrT
|
|
because too large. After discussing with MS, 372 was identified as the right size to avoid this kind
|
|
of issue. (See comment in the code for more details)
|
|
|
|
NetConnXboxOne
|
|
Fixed an issue with resume where if we didn't set the the status thread connectivity level to none will
|
|
cause netconn to skip the xbl_wait state causing connection failures
|
|
|
|
ProtoHttpXboxOne
|
|
Fixed an issue where a redirect request would never be killed when redirection is disabled due to it never
|
|
going into the completed state.
|
|
|
|
VoipHeadsetXboxOne
|
|
Fixed a potential crash in a race condition to create a chat participant for a bystander.
|
|
|
|
EADP Game Services DirtySDK 15.1.3.0.4 - August 30, 2017
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.01.00
|
|
Framework 7.01.00
|
|
|
|
Android androidsdk 24.4.1-1-2
|
|
androidndk r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 10.0.14393.2156-proxy
|
|
capilano_config 1.05.07
|
|
Kettle kettlesdk 4.508.031-proxy
|
|
kettle_config 2.01.00
|
|
iPhone ios_config 1.07.00
|
|
iphonesdk 8.0-proxy-3
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.11.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
ProtoHttp/ProtoHttp2
|
|
Added a timeout error (-7) when our module level timeout hits to allow the caller to differentiate between
|
|
errors at the lower protocols currently driven by HRESULT.
|
|
|
|
ProtoHttp2
|
|
Added support for HTTP/2 frame padding, see: https://tools.ietf.org/html/rfc7540#section-10.7
|
|
|
|
VoipTunnel
|
|
Added VoipTunnelStatus('talk') which returns the current count of "talking" clients, which is a client for
|
|
which the VoipTunnel detects inbound voip traffic.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Changed the optimized buildtype to correctly derive from what buildtype we are current building (static /
|
|
dynamic) using ${dirtysdk-buildtype}.
|
|
|
|
CommUDP
|
|
Fixed an issue in CommUDPSend() where a full reliable buffer would prevent unreliable packets from being
|
|
sent.
|
|
|
|
Hpack
|
|
Fixed the string decode function to initialize the output to NULL to prevent from freeing stack memory
|
|
when there is temporary data still being pointed to from previous functions.
|
|
|
|
ProtoWebSocket
|
|
Updated the initial handshake receive to be copied into a temporary buffer and changed how it detects we
|
|
have the complete handshake header. Previously, if we get the HTTP/1.1 header data and some of the websocket
|
|
data combined in a single receive call, we have trouble getting into the open state as expected.
|
|
|
|
DirtySDK (XboxOne)
|
|
ProtoHttpXboxOne
|
|
Fixed the header parsing to replace the final \r\n with NULL characters to align with our other protohttp
|
|
implementations. This is required for the headers to be compatible with the ProtoHttpUtil header parsing
|
|
functions.
|
|
|
|
Removed the memmove in recv that was causing performance issues. On Xbxone the memmove is not really necessary
|
|
since we always allocate a buffer big enough for the full response.
|
|
|
|
UserListApiXboxOne
|
|
Fixed a crash that happens when reading the XboxUserProfile results by adding null checks and exception handling.
|
|
|
|
EADP Game Services DirtySDK 15.1.3.0.3 - July 12, 2017
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.01.00
|
|
Framework 7.01.00
|
|
|
|
Android androidsdk 24.4.1-1-2
|
|
androidndk r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 10.0.14393.2156-proxy
|
|
capilano_config 1.05.07
|
|
Kettle kettlesdk 4.508.001-pr-proxy
|
|
kettle_config 2.01.00
|
|
iPhone ios_config 1.07.00
|
|
iphonesdk 8.0-proxy-3
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.11.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Updated the voipaux sourcefiles includes to make that it adds the package.dir to the fromfile attribute.
|
|
The basedir only applies to the files in source.txt and not the fromfile call itself.
|
|
|
|
ConnApi
|
|
Updated ConnApiRemoveClient to validate the passed in index to ensure it is in the valid range we
|
|
support.
|
|
|
|
Removed the virtualization of the voip port when voip is disabled.
|
|
This allows for virtualization to only be done by modules that own the voip connection.
|
|
|
|
DirtyNet
|
|
Updated the async receive code to cleanup the packet queue entry when receiving data into it results
|
|
in an error, allowing it to be used again.
|
|
|
|
NetGameDistServ
|
|
Removed the notion of a "started" game as it proved to be completely broken.
|
|
When a game is started or stopped, the game code running on the client is in charge of exercising the
|
|
netgamedist flow control.
|
|
|
|
ProtoHttp2
|
|
Updated the processing of the url when using a proxy server, we needed to update the url after doing our
|
|
parsing.
|
|
|
|
ProtoHttpServ
|
|
Updated the URL length in the request data to 128 bytes.
|
|
|
|
DirtySDK (Unix)
|
|
DirtyNet
|
|
Updated SocketConnect logging to align with dirtynetwin which logs the remote address after translation.
|
|
|
|
EADP Game Services DirtySDK 15.1.3.0.2 - June 1, 2017
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.01.00
|
|
Framework 7.01.00
|
|
|
|
Android androidsdk 24.4.1-1-2
|
|
androidndk r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 10.0.14393.2156-proxy
|
|
capilano_config 1.05.07
|
|
Kettle kettlesdk 4.508.001-pr-proxy
|
|
kettle_config 2.01.00
|
|
iPhone ios_config 1.07.00
|
|
iphonesdk 8.0-proxy-3
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.11.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
CommUDP
|
|
Added a reliable resend timer separate from our normal send timer to control when we resend reliable
|
|
packets. When customers mix reliable and unreliable packets, it didn't play well with the timer that
|
|
we had setup within commudp.
|
|
|
|
CryptBn
|
|
Updated the calculation of the big number bit length to use the correct builtin based on the
|
|
representation of uint64_t on our platform. On 32-bit platforms we were trying to calculate using
|
|
the unsigned long version when uint64_t is a unsigned long long on that platform.
|
|
|
|
CryptEcc
|
|
Updated the double and add operations for elliptic curve key generation to use a sliding window.
|
|
This algorithm is adapted from the one used for RSA Exponentiation which is discussed in the Handbook of
|
|
Applied Cryptography Chapter 14.6.
|
|
|
|
ProtoSSL
|
|
Updated the server handshake to make sure that we send the server key exchange for ECDHE ciphers
|
|
when client certs are enabled.
|
|
|
|
Fixed to add PKCS#1 1.5 padding validation to signature verification, added OBJ_sha384 and OBJ_sha512 to
|
|
ASN.1 parser table, now required for proper PKCS#1 signature validation.
|
|
|
|
Fixed to add overflow checking on ASN.1 length parsing.
|
|
|
|
Removed obsolete and unsafe OTG3 and GOS2011 CAs from trusted store.
|
|
|
|
DirtySDK (PS4)
|
|
ProtoHttpPS4
|
|
Fixed an issue when a POST must be changed to a GET.
|
|
|
|
Refactored the creation and destruction of 1st party http contexts objects so that they only exist during requests.
|
|
|
|
Refactored the maximum number of times the net context could be shared from a hardcoded constant to a variable
|
|
that can be set through ProtoHttpControl('mncs') or DirtyContextManagerControl('mncs').
|
|
|
|
Fixed an issue where a socket is potential left open after a sceEpoll is destroyed without being unset.
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Removed the use of the cached User^ and instead rely upon EAUser to provide the information we
|
|
previously relied upon the cached ref for.
|
|
|
|
EADP Game Services DirtySDK 15.1.3.0.1 - April 11, 2017
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.01.00
|
|
Framework 7.01.00
|
|
|
|
Android androidsdk 24.4.1-1-2
|
|
androidndk r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 10.0.14393.2156-proxy
|
|
capilano_config 1.05.07
|
|
Kettle kettlesdk 4.508.001-pr-proxy
|
|
kettle_config 2.01.00
|
|
iPhone ios_config 1.07.00
|
|
iphonesdk 8.0-proxy-3
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.11.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
CommUDP
|
|
Changed the #define for ESC_CAUSE_LOSS to not use the define statement as part of the PS4 4.5 SDK changes.
|
|
|
|
DirtySDK (PS4)
|
|
DirtySessionManagerPS4
|
|
Changed the constant SCE_NP_PLAY_TOGETHER_MAX_ONLINE_ID_LIST_NUM to SCE_NP_PLAY_TOGETHER_MAX_INVITEE_LIST_NUM as part of the PS4 4.5 SDK changes.
|
|
|
|
EADP Game Services DirtySDK 15.1.3.0.0 - March 31, 2017
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 5.01.00
|
|
Framework 7.01.00
|
|
|
|
Android androidsdk 24.4.1-1-2
|
|
androidndk r13b
|
|
android_config 4.00.00
|
|
Capilano CapilanoSDK 10.0.14393.2156-proxy
|
|
capilano_config 1.05.07
|
|
Kettle kettlesdk 4.008.131-proxy
|
|
kettle_config 1.14.00
|
|
iPhone ios_config 1.07.00
|
|
iphonesdk 8.0-proxy-3
|
|
OSX UnixGCC 0.10.00
|
|
osx_config 1.11.00
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32 DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 14.0.23107-1-proxy
|
|
WindowsSDK 10.0.10586-proxy
|
|
|
|
*** Important - DirtyCast Failover Mode has been removed ***
|
|
Support of DirtyCast Failover mode has been removed in this release.
|
|
This feature has now been replaced by Connection Concierge.
|
|
|
|
*** Important - Public API changes UserListApi PS4 ***
|
|
The profile mask is now not supported when querying for the block list.
|
|
Please specify a type mask of 0 instead.
|
|
|
|
*** Important - Public API changes for ConnApi ***
|
|
Removed ConnApiStart().
|
|
Removed ConnApiStop().
|
|
Removed ConnApiRematch().
|
|
Removed ConnApiSetPresence().
|
|
|
|
*** Important - PS4 User Identifier Changed ***
|
|
As part of Sony's SDK/API 4.0 Sony has deprecated APIs that use OnlineIds, in
|
|
favor of replacement versions using the PS4 account ids. All DirtySDK calls to
|
|
PSN have been switched to use PS4 account ids instead of OnlineIds.
|
|
|
|
*** Important - Public API changes for DirtyNet ***
|
|
Renamed SocketInfo('size') to SocketInfo('psiz')
|
|
Renamed SocketPacketQueueStatus('size') to SocketPacketQueueStatus('psiz')
|
|
Renamed SocketPacketQueueStatus('full') to SocketPacketQueueStatus('pful')
|
|
|
|
*** Important - WinRT/WinPRT ***
|
|
Removed WinRT and WinPRT support completely.
|
|
|
|
*** Important - Modules removed from DirtySDK ***
|
|
The following modules have been migrated to the new LegacyDirtySDK package
|
|
LobbyLan
|
|
Sort
|
|
Tagfield
|
|
NetResource
|
|
WebOffer
|
|
|
|
|
|
New in this release:
|
|
DirtySDK (ALL)
|
|
Build
|
|
Added exporting of the buildtype in our module's publicdata, which allowed dependent packages to easily find
|
|
our exported libs/dlls.
|
|
|
|
Enhanced build scripts to define headerfiles so the headers show correctly in Visual Studio.
|
|
|
|
CryptBn
|
|
Added a dedicated big number module based on the CryptRSA's implementation, this is used a basis for all
|
|
the crypto based math for RSA/ECC operations.
|
|
|
|
CryptEcc
|
|
Added this module to implement math for short Weierstrass curves using CryptBn. This is the basis for the
|
|
support of the P-256/P-384 curves we use within ProtoSSL.
|
|
|
|
ConnApi
|
|
Added more detail connection metrics which could be retrieved in the ConnApiInfoT struct as a ConnApiConnTimer with the following fields:
|
|
* uCreateSATime - time it takes to resolve secure association (xbox one)
|
|
* uConnectTime - time it takes for intial connection attempt
|
|
* uDemangleTime - time it takes to attempt demangling on the connection
|
|
* uDemangleConnectTime - time it takes to attempt a connection after demangling
|
|
|
|
Hpack
|
|
Added a module to implement HTTP/2 Header compression support based on
|
|
https://tools.ietf.org/html/rfc7541. This module is used primarily by the new ProtoHttp2 module.
|
|
|
|
JsonParse
|
|
Added new JsonParse2() API, which handles allocation of required memory internally.
|
|
|
|
Added new getters supporting an error flag (JsonGetString2, JsonGetInteger2, JsonGetDat2, JsonGetBoolean2,
|
|
JsonGetEnum2), which can be leveraged to simplify parsing code that wants to validate whether fields were
|
|
present or not. JsonGetInteger2 also supports min/max valudation.
|
|
|
|
Plat-str
|
|
Added new ds_memclr API that encapsulates memsetting memory to zero. In an attempt to prevent incorrect
|
|
uses of memsetting, we have introduced an API that encapsulates the more common case for memset. For cases
|
|
where memset to zero is not desired a ds_memset function was created so we can easily track conforming code.
|
|
|
|
ProtoHttp
|
|
Added support for http PATCH requests.
|
|
|
|
ProtoHttp2
|
|
Added a module to implement HTTP/2 based on https://tools.ietf.org/html/rfc7540.
|
|
|
|
ProtoHttpUtil
|
|
Added support for parsing the HTTP/2 style header which name begin with a leading ':' character.
|
|
|
|
ProtoSSL
|
|
Added support for setting TCP_NODELAY socket option on the ProtoSSL socket.
|
|
|
|
Added support for the elliptic curve client hello extension. This extension allows us to negotiate which
|
|
elliptic curves we support.
|
|
|
|
Added support for ECDHE Key Exchange and the following cipher suites:
|
|
PROTOSSL_CIPHER_ECDHE_RSA_WITH_AES_128_CBC_SHA256
|
|
PROTOSSL_CIPHER_ECDHE_RSA_WITH_AES_256_CBC_SHA256
|
|
PROTOSSL_CIPHER_ECDHE_RSA_WITH_AES_128_GCM_SHA256
|
|
PROTOSSL_CIPHER_ECDHE_RSA_WITH_AES_256_GCM_SHA384
|
|
PROTOSSL_CIPHER_ECDHE_RSA_WITH_AES_128_CBC_SHA
|
|
PROTOSSL_CIPHER_ECDHE_RSA_WITH_AES_256_CBC_SHA
|
|
Due to the performance of our configured elliptic curves, these cipher suites are currently disabled by
|
|
default.
|
|
|
|
ProtoTunnel
|
|
Added new status selector 'vers' that can be used to query the prototunnel version negotiated on a specific
|
|
tunnel.
|
|
|
|
VoipCommon
|
|
Enhanced debug logging for voip muting using 'umic' and 'uspk' control selectors. And fixed incorrect
|
|
prefix in some other already existing debug traces.
|
|
|
|
VoipGroup
|
|
Enhanced logging for the low level connectivity id when resuming a connection.
|
|
|
|
DirtySDK (iOS)
|
|
Build
|
|
Added an objective-c fileset / source text for adding multiple files to build as objective-c filetype.
|
|
|
|
Added the -Wno-deprecated-declarations flag to disable warnings cause by CHttp functions used in dirtynet.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyContextManagerPS4
|
|
Added a system to share sceNetPools to make it possible to create more concurrent ProtoHttpRefTs.
|
|
|
|
DirtyErrPS4
|
|
Added errors from the Sony SSL/HTTP libraries.
|
|
|
|
Added missing errors from the Sony WebApi library.
|
|
|
|
DirtyWebApiPS4
|
|
Added server error message reporting when dealing with errors. We previously only reported the SDK side
|
|
errors but not the errors reported by the server. The server errors are not defined in a manner that we
|
|
can get the data from DirtyErr so we need to rely upon the data returned by the response information
|
|
struct.
|
|
|
|
NetConnPS4
|
|
Enhanced NetConnShutdown() with implicit IEAUser entries cleanup in case the game team is not calling
|
|
NetConnRemoveLocalUser() before calling NetConnShutdown(), or in case recent remove requests are still
|
|
pending in the internal request list when calling NetConnShutdown().
|
|
|
|
ProtoHttpPS4
|
|
Added support for http POSTs with no payload.
|
|
|
|
Added additional printf messages for debugging http headers.
|
|
|
|
Added error logging so we know what the exact Sony errors were when any error occurs.
|
|
|
|
VoipPS4
|
|
Added VoipControl('+pri') to be used to by game code to signal that the specified local user shall be
|
|
included when internally calculating most restrictive voip privileges
|
|
|
|
Added VoipControl('-pri') to be used to by game code to signal that the specified local user shall not be
|
|
included when internally calculating most restrictive voip privileges.
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Enhanced NetConnShutdown() with implicit IEAUser entries cleanup in case the game team is not calling
|
|
NetConnRemoveLocalUser() before calling NetConnShutdown(), or in case recent remove requests are still
|
|
pending in the internal request list when calling NetConnShutdown().
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (ALL)
|
|
Build
|
|
Switched over to using Visual Studio 2015 by default.
|
|
|
|
Refactored contribs to unflatten the include structure. To prevent collisions with other libraries we
|
|
are adding extra directories to our include structure.
|
|
common/include -> common/include/libsample
|
|
voipaux/include -> voipaux/include/voipaux
|
|
|
|
General
|
|
Refactored locations that use memcpy/memcpy_s to use ds_memcpy/ds_memcpy_s.
|
|
|
|
ConnApi
|
|
Removed ConnApiStart(), ConnApiStop(), ConnApiRematch(), ConnApiSetPresence(). Those functions are
|
|
leftovers from the xbox360 times... they have been no-op for a long period. They no longer need to exist.
|
|
|
|
Fixed the setting of the GameServer's VoIP connection id by setting to VOIP_CONNID_NONE to prevent
|
|
incorrect teardowns of any active VoIP Connections. When in a Game Group and a DirtyCast hosted game,
|
|
if we leave the game the VoIP connection would have been incorrectly torn down. This causes our VoIP port
|
|
to be devirtualized, which caused our subsequent VoIP connections a higher chance of getting into a bad
|
|
state. So instead we needed to indicate that the DirtyCast GameServer does not own any VoIP connections and
|
|
that we will only devirtualize the VoIP port when tearing down the connection.
|
|
|
|
Changed the virtualization of ports to be at the ConnApi level instead of the connection level. When doing
|
|
virtualization of ports at a connection level we can quickly run out of available ports. Since we know that
|
|
the virtualized ports do not change we can easily move this. With this change I updated our documentation
|
|
of how the client level ports are assigned to be more clear of what is happening.
|
|
|
|
Removed gameserver mode concept used for fallback. Fallback mode has been replaced with connection concierge.
|
|
|
|
DirtyLib
|
|
Changed to move platform-specific time code from plat-time to dirtylib.
|
|
|
|
Changed NetPrintfCode() to initilize string buffer separately from instantiation. This is an optimization
|
|
to prevent the entire array from having to be memset at instantiation on every invocation.
|
|
|
|
DirtyMem
|
|
Removed these two external MEMIDs: PLAYERSYNCSERVICE_MEMID ('plss') & TELEMETRYAPI_MEMID ('telm')
|
|
Any external module using the dirtymem api is now assumed to be internally defining its own mem id.
|
|
|
|
Removed unused internal MEMIDS: PROTONAME_MEMID ('pnam') & PROTOARIES_MEMID ('pari') &
|
|
FRIENDAPI_MEMID ('frnd') & DIRTYLSP_MEMID ('dlsp') &
|
|
COMMSER_MEMID ('cser')
|
|
|
|
DirtyNet
|
|
Fixed error conversion logic in SockRecvfrom(). Socket type (stream vs dgram vs raw) is now taken
|
|
into account to determine what conversion to use. The incorrrect logic proved to be problematic with
|
|
TCP sockets using async recv thread and being explicitly polled for recv by the client code instead
|
|
of just relying on recv callback invocation by the DS layer.
|
|
|
|
Changed (renamed) SocketInfo('size') to SocketInfo('psiz')
|
|
|
|
Changed (renamed) SocketPacketQueueStatus('size') to SocketPacketQueueStatus('psiz')
|
|
|
|
Changed (renamed) SocketPacketQueueStatus('full') to SocketPacketQueueStatus('pful')
|
|
|
|
Fixed SocketPacketQueueStatus 'pdrp' and pmax' when using the SocketPacketQueueAlloc code path.
|
|
|
|
Changed SocketAddrMapTranslate to accept addresses of the same type without reporting an error.
|
|
|
|
DirtySock
|
|
Removed the LobbyLan, Sort, Tagfield, NetResource and WebOffer modules.
|
|
These can now be found in the LegacyDirtySDK package.
|
|
|
|
Fixed potential threading issues with modules with updates calling through NetConnIdle.
|
|
|
|
JsonParse
|
|
Fixed JsonFind() to prevent reading outside the parse buffer.
|
|
|
|
Fixed JsonParse() to return zero if the parse buffer is too small.
|
|
|
|
NetConn
|
|
Changed NetConn to track NetConnStartups and Shutdowns with a reference count. Copied the handling on some
|
|
NetConnStartup params over to NetConnConnect options.
|
|
|
|
NetGameUtil
|
|
Fixed NetGameUtilConnect() and NetGameUtilAdvert() to correctly handle failing calls to
|
|
_NetGameUtilAdvtConstruct().
|
|
|
|
Fixed local error codes possibly conflictig with COMM_* error codes in NetGameUtilConnect().
|
|
|
|
Changed implementation to eliminate code duplication: advt ref validation code
|
|
is now centralized in _NetGameUtilAdvtConstruct().
|
|
|
|
Plat-str
|
|
Changed to replace use of strncpy() with inline implementation in ds_strnzcpy(), for improved performance
|
|
when copying a string into a large buffer. The standard version will fill any unwritten parts of the
|
|
destination buffer with zeros.
|
|
|
|
ProtoHttpServ
|
|
Changed strLocation (redirection location) to ProtoHttpServeResponseT.
|
|
|
|
ProtoMangle
|
|
Updated logging to know what ports are bound and what currently module ref that logs belong to
|
|
|
|
QosApi
|
|
Removed unused tagfield include.
|
|
|
|
Changed the default packet queue length to 12 (up from 10), in testing this covers the most extreme case
|
|
of _QosApiRecvCB NetCritTry never succeeding.
|
|
|
|
Added logging describing packet queue health, a warning will be printed if the queue is close to being
|
|
full.
|
|
|
|
Fixed a print which indicated both FW probes were sent to the same address, when they in fact have not.
|
|
|
|
VoipCommon
|
|
Fixed a potential race condition between the main thread and the voip thread when altering the voip channel
|
|
config. The bApplyChannelConfig variable was being set to TRUE before propagating the change down to the
|
|
voip layer with VoipControl('chan'). Under some timing conditions, that could result in the voip thread
|
|
applying the voip channel config with the old values instead of the new values because the data structures
|
|
involved were not yet updated.
|
|
|
|
VoipGroup
|
|
Fixed some coding standard violations, arrays are required to be prefixed with "a"
|
|
|
|
VoipTunnel
|
|
Changed to using qsort for sorting our internal lookup table.
|
|
|
|
Changed suspended data not found logging to be at a higher verbosity as we assume this something that doesn't happen often and can be quite spammy
|
|
|
|
DirtySDK (PS4)
|
|
DirtyContextManagerPS4
|
|
Fixed a bug which prevented the manager from properly cleaning itself up on shutdown.
|
|
|
|
Changed to Sony API using PSN account ids.
|
|
|
|
DirtyLibPS4
|
|
Changed mutex creation to attempt to fallback to an unnamed mutex when create returns
|
|
SCE_KERNEL_ERROR_EAGAIN.
|
|
|
|
DirtyUserPS4
|
|
Removed unused tagfield include.
|
|
|
|
Changed to Sony API using PSN account ids.
|
|
|
|
DirtyWebApiPS4
|
|
Fixed DIRTYSESSMGR_MEMID being incorrectly used instead of DIRTYWEBAPI_MEMID.
|
|
|
|
Changed mutex creation to attempt to fallback to an unnamed mutex when create returns
|
|
SCE_KERNEL_ERROR_EAGAIN.
|
|
|
|
Removed the SDK 2.5 checks as we are long past the days of titles allowed to ship on those old SDKs.
|
|
|
|
Removed deferred delete list.
|
|
|
|
Changed to Sony API using PSN account ids.
|
|
|
|
NetConnPS4
|
|
Fixed multiple cosmetic issues to improve code readability and alignment with coding convention.
|
|
|
|
Fixed an inconsistent error code in NetConnShutdown.
|
|
|
|
Changed to Sony API using PSN account ids.
|
|
|
|
PrivilegeApiPS4
|
|
Changed to Sony API using PSN account ids.
|
|
|
|
ProtoHttpPS4
|
|
Fixed the dumping of the POST data payload, we needed to use the size instead of the result of send.
|
|
|
|
Changed the HTTP connection template creation to disable gzip decompression. ProtoHttp does not offer this
|
|
type of functionality which causes some isues when trying to read gzipped compressed bodies from the
|
|
server.
|
|
|
|
Fixed an issue where large headers were not processed properly.
|
|
|
|
Fixed a possible truncation of a url when formatting a request.
|
|
|
|
Fixed an issue with long urls getting truncated.
|
|
|
|
Refactored to deactivate the Sony library's automated handling of redirections and cookies in order to
|
|
provide the exact same behavior as other platforms.
|
|
|
|
Fixed the handling of binary certs.
|
|
|
|
Fixed the http headers to be associated with the sceRequest rather than the sceTemplate to make sure the
|
|
headers are cleared at the appropriate times. This prevents the http library from running out of memory
|
|
after a few uses of a protohttp reference.
|
|
|
|
UserApiPS4
|
|
Changed to Sony API using PSN account ids.
|
|
|
|
UserListApiPS4
|
|
Changed to Sony API using PSN account ids.
|
|
|
|
VoipPS4
|
|
Changed to Sony API using PSN account ids.
|
|
|
|
VoipHeadsetPS4
|
|
Fixed dirtysdk incorrectly requiring a voip user to be a member of a blaze mesh for his privacy settings
|
|
to contribute to the calculation of the most restrictive voip setting on the console in scenarios where
|
|
multiple users are locally signed-in. DirtySDK now only requires the user to be authenticated with blaz
|
|
for his privacy settings to contribute to the calculation of the most restrictive voip setting. The
|
|
rational being that a blaze authenticated user is implicitly a user interacting with the game UI and
|
|
therefore a "particiapting user" as defined by Sony.
|
|
|
|
Changed initialization of Sony voice lib to leverage the new sceVoiceSetThreadsParams() api
|
|
(introduced is SDK 3.50) to specify the priority and the affinity of the internal voice and audio port
|
|
threads. This replaces the usage of ephemeral high-priority threads for calling sceVoiceStart() and
|
|
sceVoiceCreatePort() such that internal threads inherit of the right attributes.
|
|
|
|
Changed _VoipHeadsetUpdateChatPrivileges() to now take the new +pri / -pri config into account when
|
|
calculating pHeadset->bSharedPrivilege.
|
|
|
|
DirtySDK (Unix)
|
|
DirtyNetUnix
|
|
Fixed to revert address selection to prefer IPv4 addresses on non-Apple platforms. Apple platforms
|
|
continue to prefer IPv6 addresses, a fix that was required for iOS10 compatibility.
|
|
|
|
NetConnUnix
|
|
Fixed an inconsistent error code in NetConnShutdown.
|
|
|
|
DirtySDK (XboxOne)
|
|
DirtyAddrXboxOne
|
|
Removed TagField usage as TagField will be moving to the LegacyDirtySDK.
|
|
|
|
Fixed an off-by-1 error for decoding binary7 Xbox One addresses.
|
|
|
|
DirtyUserXboxOne
|
|
Removed TagField usage as TagField will be moving to the LegacyDirtySDK.
|
|
|
|
ProtoHttpXboxone
|
|
Refactored implementation to use a request killlist where terminated requests are queued until they
|
|
complete for good. That is replacing the former explicit abort operations.
|
|
|
|
Changed the implementation with the introduction of a state machine to track asynchronous evolution
|
|
of a specific xmlhttp object.
|
|
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 2.3.0 - October 19, 2016
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 4.03.01
|
|
Framework 6.04.01
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.07
|
|
Capilano CapilanoSDK 10.0.14393.1058-proxy
|
|
capilano_config 1.05.03
|
|
Kettle kettlesdk 3.508.041-proxy
|
|
kettle_config 1.06.00
|
|
iPhone ios_config 1.03.00
|
|
iphonesdk 8.0-proxy-2
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.12.02-proxy
|
|
Win32/WinRT/WinPRT
|
|
DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 11.0.50727-1-proxy
|
|
WindowsSDK 8.0.50727-4-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
|
|
*** Important: The CommTAPI and CommSer modules have been removed ***
|
|
|
|
*** Important: The CryptSSC2 module has been removed, for string encrypt/decrypt please use CryptArc4 ***
|
|
|
|
*** Important: The SOCKET_ASYNCRECVTHREAD = 0 support has been removed ***
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
ConnApi
|
|
Added a new control selector 'dtif' that can be used to override the default timeout value for XB1
|
|
security association creation or the demangling timeout on other platforms (in a cc-assisted or failover
|
|
context).
|
|
|
|
DirtyNet
|
|
Added support for TCP keep-alive settings using the 'keep' control. In some environments we need to be able
|
|
to tweak the keep-alive settings to ensure that firewalls and other external parties do not close our
|
|
connections without notifying us.
|
|
|
|
Added SocketHostnameCacheDel, which deletes an entry from the hostname cache (internal use only).
|
|
|
|
Added debug print when a lookup is refcounted.
|
|
|
|
NetConn
|
|
Added ability to allow users to override the cpu affinity of our internal threads with a netconn startup
|
|
param "-affinity".
|
|
|
|
Platform
|
|
Added ds_strtoull function to convert strings to uint64_t.
|
|
|
|
Added support for using EABase to drive the platform.h defines.
|
|
|
|
ProtoSSL
|
|
Added support for the ALPN extension (Application Level Protocol Negotiation) on both the client & server
|
|
side. This extension helps negotiate a protocol between the client & server; see the spec at
|
|
https://tools.ietf.org/html/rfc7301.
|
|
|
|
Added ProtoSSLControl() 'resu' selector, to enable/disable SSL session resume (enabled by default,
|
|
preserving previous behavior).
|
|
|
|
Added support for setting the keep alive settings for the TCP socket. To support this I've added
|
|
an 'skep' option and followed the same pattern as the other socket options that we set for this module.
|
|
|
|
QosApi
|
|
Added ability to configure much of qosapi with QosApiControl, via the BlazeSDK util component this provides
|
|
us with many options to tweak QOS behaviors post ship. New selectors are:
|
|
'bpco' - if used overrides config from server, this will be the number of bandwidth probes used for tests
|
|
'bpso' - if used overrides config from server, this will be the size of bandwidth probes used for tests
|
|
'isyt' - sets the maximum number of ms to wait to initially synchronize all latency requests
|
|
'lpco' - if used overrides config from server, this will be the number of latency probes used for tests
|
|
'pque' - passed to SocketControl 'pque' if not 0, otherwise the numpackets will be passed to SocketControl
|
|
'pque'
|
|
'rbuf' - passed to SocketControl 'rbuf'
|
|
'repc' - sets the number of extra probes sent (in addition to those which received no response) on a re-issue
|
|
'sado' - set the override address to send the http requests to when issuing a service request, overrides
|
|
parameter passed to QosApiServiceRequest
|
|
'salp' - if TRUE use old logic of sending all latency probes at once (default FALSE)
|
|
'sbuf' - passed to SocketControl 'sbuf'
|
|
'sprt' - set the override port to send the http requests to when issuing a service request, overrides
|
|
parameter passed to QosApiServiceRequest
|
|
'tgbp' - sets the minimum number of ms between sending latency probes to the same site.
|
|
'ussl' - if TRUE use https else http for setup communication (defaults TRUE)
|
|
|
|
DirtySDK (PS4)
|
|
DirtySessionManagerPS4
|
|
Added new status selectors for PlayTogther support. New selectors are:
|
|
'pthe' - poll this selector to check if the client has received the PlayTogether event
|
|
'ptil' - if a PlayTogether event has been received use this selector to retrieve the invite list
|
|
|
|
NetConnPS4
|
|
Added a new startup parameter "-checktick" on PS4 to control how we initialize DirtyEventManager. The new
|
|
startup parameter will control if we fail our initialization of DirtyEventManager in the case that we have
|
|
potentially missed events because the EASystemEventMessageDispatcher has been ticked. By default we will
|
|
not check if the dispatcher has been ticked so teams don't need to worry about aligning the startup of the
|
|
two systems.
|
|
|
|
ProtoHttpPS4
|
|
Added protohttpps4 for native support of HTTP and SSL.
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Added extra mapping from sandbox to environment to prevent having the title download storage figure out the
|
|
environment:
|
|
* EARW.3 -> CERT
|
|
* XDP1.0 -> PROD (EA Access Testing)
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (ALL)
|
|
Build
|
|
Changed to set the optionset to the C++ build type when building those types of files. With newer packages
|
|
we see that our C++ files were trying to be built as C and causing us to generate some compiler errors due
|
|
to that.
|
|
|
|
ConnApi
|
|
Changed to move the virtualization of ports to be handled at the connapi layer instead of having the
|
|
network adapter deal with it.
|
|
|
|
DirtyCert
|
|
Changed to move DirtyCert updating to the internal NetLib idle thread. To make integration easier for our
|
|
customers, this makes it possible to use ProtoHttp without the need to poll NetConnIdle. The major
|
|
requirement that ProtoHttp depended on was DirtyCert, which needs to be updated in case we needed to pull
|
|
down any CA certs.
|
|
|
|
DirtyNet
|
|
Fixed to no longer refcount HostentT refs that are in the list but are in a done state.
|
|
|
|
JsonParse
|
|
Fixed crash issue parsing json with leading whitespace.
|
|
|
|
ProtoHttp
|
|
Fixed a bug in both ProtoHttpGetNextHeader() and ProtoHttpFindHeaderValue(), when dealing with an empty
|
|
header.
|
|
|
|
ProtoHttpServ
|
|
Fixed an issue which could lead an http client to hang indefinately or until timeout when the client
|
|
requested a keep-alive.
|
|
|
|
Fixed a cert cache issue where it was possible to reconnect to a server with a cached cert using IP address
|
|
instead of name.
|
|
|
|
ProtoTunnel
|
|
Fixed to initialize the sockaddr used in _ProtoTunnelRecvCallback to prevent address translation spam.
|
|
|
|
QosApi
|
|
Changed to improve latency tests accuracy in poor network conditions; latency is now done in parallel
|
|
across all ping sites, preventing random lag spikes from effecting one result.
|
|
|
|
Changed to improve logging by making it more configurable with QosApiControl('spam') - set the verbosity of
|
|
the module, default 1 (0 errors, 1 debug info, 2 extended debug info, 3 per probe info).
|
|
|
|
Changed public APIs QosApiCreate and QosApiServiceRequest to simplify API and better reflect data types
|
|
being passed.
|
|
|
|
Removed unused defines QOSAPI_STATUS_XB_*, QOSAPI_LISTENFL_*, and QOSAPI_RESPONSE_MAXSIZE.
|
|
|
|
Removed and replaced QOSAPI_REQUESTFL_* with QosApiRequestTypeE.
|
|
|
|
VoipConnection
|
|
Fixed coverity warning about potential out of bound access of pConnection->VoipMicrPacket[] array when
|
|
user index is VOIP_SHARED_USER_INDEX (0xFF on PC).
|
|
|
|
Fixed a bug in use of memset, which resulted in target buffer not being cleared.
|
|
|
|
VoipTunnel
|
|
Removed deprecated flags and fields that were set for deprecation since v9
|
|
* VOIPTUNNEL_CLIENTFLAG_BROADCASTING_VOICE
|
|
* VOIPTUNNEL_GAMEFLAG_MAX_VOICES_REACHED
|
|
* VoipTunnelGameT.iNumClientsBroadcasting
|
|
|
|
XmlFormat
|
|
Fixed access to unitialized variable coverity warning.
|
|
|
|
DirtySDK (PS4)
|
|
DirtySessionManagerPS4
|
|
Fixed to try to catch configuration errors with dirtysessionmanager as we want to send failures back to
|
|
bring it to the attention of integrators.
|
|
|
|
Fixed an issue where the return value was not properly being set because of a bad enclosure of assignment.
|
|
|
|
DirtySDK (Unix)
|
|
Build
|
|
Removed voiptunnel.c from unix specific sources as this is already part of main source list.
|
|
|
|
DirtyNetUnix
|
|
Fixed _SocketLookupThread to prefer IPv6 addresses, when available. This fixes compatibility with iOS10.
|
|
|
|
Fixed SocketConnect to scrub a hostname cache entry when connect() returns an EHOSTUNREACH error. This
|
|
type of error happens when switching from an IPv4 to an IPv6 connection or vice versa.
|
|
|
|
DirtySDK (XboxOne)
|
|
Build
|
|
Changed to use sdkreferences task when depending on any of the extension assemblies on XboxOne.
|
|
|
|
ProtoMangleXboxOne
|
|
Fixed a potential issue where an IPv6 user mapping might get updated instead of added.
|
|
|
|
NetConnXboxOne
|
|
Fixed to handle the AsyncStatus::Started case when calling DownloadBlobAsync. FIFA was seeing instances
|
|
where we would crash when getting a AsyncStatus::Started due to the fact that we don't handle and just kill
|
|
the async operation. After discussing this with Microsoft their suggestion was just to ignore this status
|
|
as you should expect to get another callback when the operation actually finishes.
|
|
|
|
Fixed an issue were a failed environment check would not properly trigger a retry, leaving netconn stuck in
|
|
~env state indefinitely.
|
|
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 2.2.3 - September 19, 2016
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 3.04.00
|
|
Framework 5.05.00
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.07
|
|
Capilano CapilanoSDK 10.0.10586.1203-proxy
|
|
capilano_config 1.03.03
|
|
Kettle kettlesdk 3.508.041-proxy
|
|
kettle_config 1.06.00
|
|
iPhone ios_config 1.03.00
|
|
iphonesdk 8.0-proxy-2
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.12.01-proxy
|
|
Win32/WinRT/WinPRT
|
|
DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 11.0.50727-1-proxy
|
|
WindowsSDK 8.0.50727-1-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
|
|
New in this release
|
|
DirtySDK (All)
|
|
DirtyNet
|
|
Added support for TCP keep-alive settings using the 'keep' control
|
|
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 2.2.2 - September 06, 2016
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 3.04.00
|
|
Framework 5.05.00
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.07
|
|
Capilano CapilanoSDK 10.0.10586.1203-proxy
|
|
capilano_config 1.03.03
|
|
Kettle kettlesdk 3.508.041-proxy
|
|
kettle_config 1.06.00
|
|
iPhone ios_config 1.03.00
|
|
iphonesdk 8.0-proxy-2
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.12.01-proxy
|
|
Win32/WinRT/WinPRT
|
|
DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 11.0.50727-1-proxy
|
|
WindowsSDK 8.0.50727-1-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
ProtoSSL
|
|
Added ProtoSSLStat() 'rsao' selector to signal that there is currently an RSA operation ongoing.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
ProtoTunnel
|
|
Fixed a knock-on in cl 1174902 when faced with discarding an out-of-order packet that could not be
|
|
recovered. This would cause a stream reset that broke the connection. This fix reverts part of that
|
|
change to make the out-of-order packet discard safe and not break the connection. In doing so it undoes
|
|
the original fix, meaning some other resolution for that issue will be required moving forward.
|
|
|
|
DirtySDK (PC)
|
|
VoipPC
|
|
Fixed intermittently broken voip on PC caused by bad initialization of the VoIP user identifier.
|
|
|
|
DirtySDK (Unix)
|
|
NetConnUnix
|
|
Fixed to check for NULL terminator when parsing /proc/cpuinfo in the case we have a truncated string
|
|
(does not include \n). This caused issues on newer hardware where the flags field grew larger than 512,
|
|
which caused a crash from the loop never exiting.
|
|
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 2.2.1 - July 13, 2016
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 3.04.00
|
|
Framework 5.05.00
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.07
|
|
Capilano CapilanoSDK 10.0.10586.1203-proxy
|
|
capilano_config 1.03.03
|
|
Kettle kettlesdk 3.508.041-proxy
|
|
kettle_config 1.06.00
|
|
iPhone ios_config 1.03.00
|
|
iphonesdk 8.0-proxy-2
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.12.01-proxy
|
|
Win32/WinRT/WinPRT
|
|
DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 11.0.50727-1-proxy
|
|
WindowsSDK 8.0.50727-1-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (PS4)
|
|
DirtySessionManagerPS4
|
|
Changed DirtySessionManager to better catch configuration errors and service it back to integrators.
|
|
|
|
VoipHeadsetPS4
|
|
Fixed _VoipHeadsetUpdateChatPrivileges() to ignore non-participating user. This fix is necessary to comply
|
|
with TRC R4061G in PS4-TestCase_for_TRC1.5_e stating: A non-voip-restricted user in a game should not see
|
|
his voip blocked because of a voip-restricted user signed-in on the console but not participating in the
|
|
game.
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Fixed potential crash in the lambda expression performed when the DownloadBlobAsync() operation completes
|
|
with completion status AsyncStatus::Canceled. The code incorrectly uses a reference that was invalidated
|
|
when the operation cancellation was initiated.
|
|
|
|
ProtoHttpXboxOne
|
|
Fixed a potential external cleanup issue by adding a timeout to stop waiting for the E_ABORT that might
|
|
never come. Instead after 5 second time we will fake the E_ABORT Event ourselves.
|
|
|
|
DirtySDK (Unix)
|
|
DirtyNetUnix
|
|
Removed the use of AI_V4MAPPED flag when ai_family is AF_UNSPEC.
|
|
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 2.2.0 - June 09, 2016
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 3.04.00
|
|
Framework 5.05.00
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.07
|
|
Capilano CapilanoSDK 10.0.10586.1203-proxy
|
|
capilano_config 1.03.03
|
|
Kettle kettlesdk 3.508.041-proxy
|
|
kettle_config 1.06.00
|
|
iPhone ios_config 1.03.00
|
|
iphonesdk 8.0-proxy-2
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.12.01-proxy
|
|
Win32/WinRT/WinPRT
|
|
DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 11.0.50727-1-proxy
|
|
WindowsSDK 8.0.50727-1-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
New in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Enabled shadow variable warnings on targets that doesn't set this by default.
|
|
|
|
DirtyLib
|
|
Added NetPrintRateLimit, implementing automated rate limiting of redundant lines of NetPrintf output.
|
|
Identical sequences of lines are suppressed for up to 100ms, or when a new line of text is printed.
|
|
The number of suppressions is appended to the line of text. Lines of text over 256 characters are
|
|
not rate-limited.
|
|
|
|
DirtyNet
|
|
Added SocketPacketQueueStatus('full') to query if socket inbound packet queue is full or not.
|
|
|
|
Added SocketPacketQueueStatus('size') to query current size (in packets) of socket inbound packet queue.
|
|
|
|
Added IPv6 support definitions and includes.
|
|
|
|
Added SocketAddressMap functionality, moved here from dirtynetxboxone, for general IPv6 support. IPv6
|
|
addresses are mapped to pseudo-IPv4 addresses for public consumption.
|
|
|
|
NetConn
|
|
Added standard error code for NetConnStartup.
|
|
|
|
ProtoHttpServ
|
|
Added function to log via the logging callback at varying verbosity levels.
|
|
|
|
ProtoSSL
|
|
Added debug output of certificate signature type when validating a certificate.
|
|
|
|
QosApi
|
|
Added code to leverage the new support for SocketControl('pque') on physical sockets (non-virtual). QosApi
|
|
is now using a socket with a 10-deep recv paquet queue to eliminate the possibility of inducing artificial
|
|
latency resulting from inbound latency probes remaining in the system socket receive buffer because the
|
|
1-deep queue was full. (Happens when the critical section cannot be entered in the recv callback registered
|
|
by qosapi - _QosApiRecvCB())
|
|
|
|
DirtySDK (Android/iOS/PC/Unix/XboxOne)
|
|
DirtyNetWin
|
|
Added IPv6 support, switched to using IPv6 sockets internally, leveraging dual-protocol stack functionality
|
|
to continue to support IPv4. Added IPv6 name resolution support to SocketLookup(). IPv4 names continue
|
|
to be preferred when available.
|
|
|
|
DirtySDK(WinRT)
|
|
DirtyNet
|
|
Added new define INADDR_LOOPBACK for WinRT configurations
|
|
|
|
DirtySDK(XboxOne)
|
|
NetConnXboxOne
|
|
Added a new XBLWait state so make sure we wait for the connectivity level to become xbox live.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Moved the contents of dirtysock-initialize.xml to Initialize.xml file and tell the package to
|
|
initializeself. This makes it so the package will include Initialize.xml automatically without us needing
|
|
to do it explicitly.
|
|
|
|
Changed implementation to now export the DIRTYCODE_LOGGING defines based on the
|
|
dirtysdk_debug_enable / dirtysdk_debug_disable build properties.
|
|
|
|
Removed hhc.exe from the SDK and depend on the userdoc package to provide this when building documentation.
|
|
|
|
Removed unused macro / defines
|
|
|
|
Removed unused release build scripts
|
|
|
|
ConnApi
|
|
Fixed the GameServer's bAllocated flag to be correctly set TRUE during client initialization.
|
|
|
|
CryptGCM
|
|
Fixed crash in _CryptGcmDecrypt() when passed a negative length. This condition is rare and has been seen
|
|
when an SSL server incorrectly sends an unencrypted alert message when aborting a connection.
|
|
|
|
DirtyLib
|
|
Changed to move/consolidate NetPrintfCode and NetPrintfHook to dirtylib from platform-specific files.
|
|
|
|
Moved DIRTY_TOKEN_PASTE and DIRTY_CONCATENATE_HELPER here from dirtynet.h as a better fit.
|
|
|
|
DirtyNet
|
|
Fixed implementation to skip empty hostname cache entries before checking for expiration, to eliminate
|
|
confusing debug output.
|
|
|
|
Refactored recv path for physical sockets (non-virtual):
|
|
* Replaced hard-coded 1-deep queue with configurable n-deep queue.
|
|
* Performed appropriate changes for all flavors (win, x1, ps4, unix) to be as close as possible
|
|
(eliminated unjustified platform specificities)
|
|
* Simplified recv path logic in terms of what is done in the context of SocketrecvFrom() vs in the
|
|
context of socketrecvthread
|
|
|
|
Standardized verbosity tracking and usage (spam levels).
|
|
|
|
JsonParse
|
|
Added handling for JSON strings inside of JsonSeekObjectEnd.
|
|
|
|
Plat-str
|
|
Cleanup and better support of IPv6 address printing.
|
|
|
|
ProtoAdvt
|
|
Fixed a couple of places that didn't initialize a sockaddr struct before use.
|
|
|
|
ProtoHttpServ
|
|
Changed all the logging to use the logging callback so we get in the applications that run this module.
|
|
|
|
ProtoSSL
|
|
Fixed a bug when requesting an SSLv3 connection where the requested cipher list would be empty, causing
|
|
the connection to fail. This is only relevant to test setups as DirtySDK clients do not request SSLv3
|
|
by default.
|
|
|
|
ProtoTunnel
|
|
Removed tunnel mode concept from prototunnel.
|
|
|
|
DirtySDK (PC)
|
|
DirtyNetWin
|
|
Removed DirtyNetXboxOne. Consolidated win and xboxone implementations in a single file called DirtyNetWin
|
|
to achieve reduction of code duplication.
|
|
|
|
VoipConnection
|
|
Fixed the voip data to not be processed if there is no listening device attached to prevent TTY spam on PC.
|
|
|
|
DirtySDK (PS4)
|
|
Build
|
|
Removed unsupported defines as part of the PS4 3.500 SDK upgrade. The ORBIS_SDK_VERSION was replaced by
|
|
SCE_ORBIS_SDK_VERSION.
|
|
|
|
Removed very old version checks that are no longer needed.
|
|
|
|
Removed the privilege checks for asynchronous multiplayer as this is not supported on the newer SDK.
|
|
|
|
Changed implementation to now set the config-vs-version on PS4 to support the use case of Frostbite titles.
|
|
Make sure to only set the VS2015 compiler flags for vc compilers.
|
|
|
|
Fixed PS4 compiler warnings introduced in the PS4 3.500 upgrade, reported by a customer (Unreachable code
|
|
and checking NULL on arrays).
|
|
|
|
DirtyNetPS4
|
|
Added handling of sceNpWebApiDeleteRequest failures.
|
|
|
|
DirtySessionManagerPS4
|
|
Fixed potential mem leaks caused by the changeable data never being released when it exists.
|
|
|
|
Fixed implementation of DirtySessionManagerControl('gchg') to invoke
|
|
_DirtySessionManagerSetChangeableSessionData() instead of _DirtySessionManagerSetSessionData().
|
|
|
|
DirtyWebApiPS4
|
|
Changed where iThreadLife is set to DirtyWebApiCreate (main thread).
|
|
|
|
NetConn
|
|
Fixed implementation to check the result code of sceAppContentAppParamGetInt() when querying for trial
|
|
status.
|
|
|
|
UserApiPS4
|
|
Fixed a double counting problem when a first party query fails.
|
|
|
|
DirtySDK (XboxOne)
|
|
Build
|
|
Fixed compiler warnings introduced by upgrading to the March XDK.
|
|
* Fixed shadow variable usage in 'poll' selector (dirtynetxboxone)
|
|
* Fixed an incorrect implementation of SocketRecvfrom the pBuf parameter is non-const (dirtynetxboxone)
|
|
* Remove unused variables on platforms they are not used on (connapi, user, privilege)
|
|
* Use a conditional instead of assigning an integer to a boolean in C++ (voipxboxone)
|
|
* Remove printing of serialization size as that was the only use of the variable and not very helpful to
|
|
logging.
|
|
* Suppress warning in T2Host relating to changing of sizes between compilers and alignment attributes
|
|
* Assign the enumeration to the correct value instead of treating it as an integer (privilege)
|
|
* Switch from while(1) to for (;;) to prevent a constant expression warning (SampleCore)
|
|
* Remove unused variable (connapi, SampleCore)
|
|
|
|
DirtyLibWin
|
|
Changed to statically initialize nettick frequency to a safe value, so any calls to NetTick() on Xbox One
|
|
before NetConnStartup() will not crash.
|
|
|
|
DirtyNetXboxOne
|
|
Switched to using DirtyNet functions for Address Map functionality that were previously internal.
|
|
|
|
Removed DirtyNetXboxOne. Consolidated win and xboxone implementations in a single file called DirtyNetWin
|
|
to achieve reduction of code duplication.
|
|
|
|
VoipHeadsetXboxOne
|
|
Refactored bad rep check query to use normal lambda expressions.
|
|
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 2.1.0 - March 31, 2016
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 3.04.00
|
|
Framework 5.05.00
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.07
|
|
Capilano CapilanoSDK 10.0.10586.1100.0-proxy
|
|
capilano_config 1.03.03
|
|
Kettle kettlesdk 3.008.211-proxy
|
|
kettle_config 1.05.00
|
|
iPhone ios_config 1.03.00
|
|
iphonesdk 8.0-proxy-2
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.12.01-proxy
|
|
Win32/WinRT/WinPRT
|
|
DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 11.0.50727-1-proxy
|
|
WindowsSDK 8.0.50727-1-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
|
|
*** Important - Xbox One XSAPI 2.0 Support ***
|
|
This version of DirtySDK supports XSAPI 2.0 which is not backwards compatible with XSAPI 1.0.
|
|
Integrators will need to build against XSAPI 2.0.
|
|
|
|
*** Important - ConnApi client uId of 0 is now considered invalid ***
|
|
ConnApi client with a uId of 0 will now be consider invalid and will be ignore by ConnApi.
|
|
|
|
*** Important - First DirtySDK version compatible with the Connection Concierge feature ***
|
|
This version of DirtySDK includes a large amount of changes that were introduced specifically for interoperability
|
|
with the Connection Concierge tech (https://docs.developer.ea.com/display/TEAMS/Connection+Concierge+Project).
|
|
Regardless of your game leveraging Connection Concierge or not, those changes should be transparent to you.
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
CommUdp
|
|
Added backwards-compatible update to protocol to allow versioning, defined previous version as 1.0 and new
|
|
version as 1.1.
|
|
|
|
Added larger subpacket support (increased from a maximum of 250 bytes to 1530 bytes) for connections
|
|
negotiated to commudp protocol version 1.1 or higher. Subpackets requiring 250 bytes or fewer continue to
|
|
use one byte of encoding, while larger subpackets require two bytes. This allows packet redundancy, when
|
|
combined with raising the default redundancy limit, for larger packets.
|
|
|
|
ConnApi
|
|
Added the ability to specify a user index when activating the P2P connection forced failure debug
|
|
option ('!res'). Setting the index to -1 will affect all users like the old behavior.
|
|
|
|
Added support for hosted connections (obtained from Connection Concierge). New code paths were added
|
|
to use connection IDs received from Connection Concierge when setting up game connections, voip
|
|
connections and tunnels. Related public api changes:
|
|
* Added multiple new fields to ConnApiClientInfoT.
|
|
* Added CONNAPI_CCMODE_* defines.
|
|
* Added a new 'ccmd' control selector to specify the Connection Concierge mode associated with
|
|
the connapi instance.
|
|
|
|
DirtyNet
|
|
Added prints to track virtual port addition and deletion.
|
|
|
|
Added packet drop and packet high water to packet queue.
|
|
|
|
Added SocketInfo() 'pdrp' and 'pmax' selectors.
|
|
|
|
JsonParse
|
|
Added support for JSON payloads greater than 64k.
|
|
|
|
Added support for JsonParse taking a length of -1, in which case strlen is used to calculate the size of
|
|
the input JSON buffer.
|
|
|
|
Added support for JsonParse to take a null parse buffer, in which case the size in bytes required for the
|
|
parse buffer are calculated and returned.
|
|
|
|
ProtoHttpServ
|
|
Added support for a 'spam' control to control the amount of logging with do within the module.
|
|
|
|
Added a request timeout to cover situations where the remote side stops sending or receiving, defaulting
|
|
to 30 seconds.
|
|
|
|
Added a ProtoHttpServControl('idle') selector to set the idle/keep-alive timeout.
|
|
|
|
Added PROTOHTTPSERV_FLAG_LOOPBACK.
|
|
|
|
Added ProtoHttpServCreate2() which has an additional uFlags parameter.
|
|
|
|
ProtoTunnel
|
|
Added a new 'actv' status selector to get the number of active tunnels on based on a specific prototunnel
|
|
version.
|
|
|
|
Added a new 'vset' status selector to get a comma delimited list of versions we support to report to the
|
|
CCS.
|
|
|
|
Added PROTOTUNNEL_VERSION, PROTOTUNNEL_VERSION_MIN, PROTOTUNNEL_VERSION_MAX to the public header file.
|
|
|
|
Voip
|
|
Added support for one way muting.
|
|
|
|
VoipCommon
|
|
Added a new 'vcid' control selector to assign a local 32-bit identifier to a specific voip connection.
|
|
|
|
VoipConnection
|
|
Added support for hosted connections (obtained from Connection Concierge). New code paths were added
|
|
to use connection IDs received from Connection Concierge when setting up voip connections.
|
|
Related public api changes:
|
|
* New uRemoteClientId field added to VoipConnectionT.
|
|
* Renamed uClientId field to uLocalClientId in VoipConnectionT.
|
|
|
|
VoipGroup
|
|
Added support for hosted connections (obtained from Connection Concierge). New code paths were added
|
|
to use connection IDs received from Connection Concierge when setting up voip connections.
|
|
Related public api changes:
|
|
* Added VOIPGROUP_CCMODE_* defines.
|
|
* Added a new 'ccmd' control selector to specify the Connection Concierge mode associated with
|
|
the voipgroup.
|
|
* Added VoipGroupConnect2() which takes an additional bIsConnectivityHosted input parameter and an
|
|
additional uLowLevelConnectivityId input parameter.
|
|
* Added VoipGroupResume2() which takes an additional uLowLevelConnectivityId input parameter. For
|
|
Connection Conncierge support specifically.
|
|
|
|
VoipTunnel
|
|
Added support for allowing voiptunnel clients to exist in multiple games. This functionality to used to
|
|
mimic how Blaze handles clients in Games and Game Groups. Related public api changes:
|
|
* Added VOIPTUNNEL_MAXSUSPENDED.
|
|
* Added VoipTunnelSuspendInfoT.
|
|
* Added iNumSuspended field to VoipTunnelClientT.
|
|
|
|
Added support for a unique game identifier that can be specified when creating the game in the
|
|
voiptunnel. New API functions were added to allow users to work with this identifier. Related public
|
|
api changes:
|
|
* Added VoipTunnelGameListAdd2().
|
|
* Added iGameIdx input param to VoipTunnelClientListDel().
|
|
* Added VoipTunnelGameListMatchIndex().
|
|
* Added VoipTunnelGameListMatchId().
|
|
|
|
DirtySDK (PS4)
|
|
DirtyNet
|
|
Added missing definition for INADDR_LOOPBACK for PS4, needed in protohttpserv.
|
|
|
|
VoipHeadsetPS4
|
|
Added the ability to configure voice lib thread attributes. You can override the settings with your
|
|
Blazeserver util.cfg.
|
|
|
|
DirtySDK (PS4/XboxOne)
|
|
NetConn
|
|
Added a new 'eusr' selector that returns the IEAUser object at a given index.
|
|
|
|
DirtySDK (XboxOne)
|
|
DirtyNetXboxOne
|
|
Added functionality to remap IPv6 addresses to existing IPv4 virtual addresses. It was demonstrated that
|
|
this update is possible in a cable pull scenario.
|
|
|
|
ProtoMangleXboxOne
|
|
Added processing for updates of secure associations which the are already in a completed state to update
|
|
the IPv6 address mappings.
|
|
|
|
Voip
|
|
Added bad reputation auto muting support in order to better satisfy XR-086. This feature will be on by default.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Fixed doc build errors.
|
|
|
|
Fixed warnings generated by VS2015 Update 1
|
|
|
|
Changed the build scripts to use the config-vs-version property to better handle changing between versions
|
|
of Visual Studio.
|
|
|
|
ConnApi
|
|
Fixed how we increment the client count.
|
|
|
|
Fixed the 'cadr' selector to return the prototunnel address used.
|
|
|
|
Removed CONNAPI_STATUS_CLSE as it is no longer used.
|
|
|
|
Fixed an issue that caused the previous mute settings not to be properly retained when resuming a voip
|
|
connection.
|
|
|
|
Fixed an issue where a game group would use the wrong voip port when joining a game session, then a
|
|
game group, then leaving the game session.
|
|
|
|
Fixed ConnApiControl 'adve' selector, when disabling advertising, to also destroy the NetGameUtil ref
|
|
if it has already been created.
|
|
|
|
DirtyCert
|
|
Fixed to not issue a redundant preload request if a preload request is already in the queue.
|
|
|
|
Fixed a bug where a successful preload triggered by a validation failure would result in a failed
|
|
transaction, because the subsequent on-demand request would be considered to fail due to adding a
|
|
redundant CA.
|
|
|
|
DirtyNet
|
|
Fixed to include missing return in 'pque' selector that caused misleading debug warning.
|
|
|
|
Changed packet queue max size from 127 to 1024.
|
|
|
|
JsonFormat
|
|
Fixed _JsonUpdateHeader() to prevent buffer offset from exceeding the buffer size during an overflow
|
|
condition. This fixes a possible memory stomp on a subsequent call to a JsonFormat method.
|
|
|
|
JsonParse
|
|
Fixed a bug when executing a JsonFind against an element in an unclosed array; the find would skip past the
|
|
end of the parse buffer data and access uninitialized memory.
|
|
|
|
Fixed a bug where executing a JsonFind against an unclosed element, containing a name but no value, would
|
|
result in returning a pointer to the beginning of the Json buffer.
|
|
|
|
Fixed some other cases where the parse buffer could be accessed after the terminator.
|
|
|
|
Fixed one issue each in the decode and escape lookup tables.
|
|
|
|
Fixed to ensure after calling JsonParse that the parse buffer is always zero terminated. If this is not
|
|
possible, zero is returned.
|
|
|
|
Changed name of JsonGetListItemEnd to JsonGetObjectEnd to better match JSON naming conventions. A #define
|
|
wrapper supporting the old name is included to maintain compatibility with previous code.
|
|
|
|
NetConn
|
|
Fixed documentation error in header for NetConnIdle.
|
|
|
|
Plat-time
|
|
Fixed a bug in weekday calculation in ds_secstotime.
|
|
|
|
ProtoHttpManager
|
|
Fixed to use consistent modulename as prefix to debug output.
|
|
|
|
ProtoHttpServ
|
|
Removed code in _ProtoHttpServUpdateRecvBody() that set the received body flag true when receiving a
|
|
chunked transfer without any initial data.
|
|
|
|
Changed the ProtoHttpServControl('time') selector to set the request timeout.
|
|
|
|
Fixed a typo in the default idle timeout value, which was supposed to be five minutes but was in fact much
|
|
longer.
|
|
|
|
Changed size of ProtoHttpServRequestT.strContentType[] from 32 to 64 to match what we use for
|
|
ProtoHttpServResponseT
|
|
|
|
Changed the code in the _ProtoHttpServParseHeader to skip all the URI / TYPE information that is in the header
|
|
This fixes an issue with skipping the first valid header value when parsing
|
|
|
|
ProtoTunnel
|
|
Fixed two issues when attempting to switch keys. The first issue was on the side receiving a packet
|
|
encrypted by the new key, in ProtoTunnelValidatePacket(), which was not using the new crypto state to try
|
|
decrypting the packet. The second issue was on the sending side, where a new HMAC was not being calculated
|
|
when the new key was chosen. These issues caused failures in scenarios with players in a game and a
|
|
gamegroup, when players left either the game or the gamegroup, and could not maintain their p2p
|
|
connections.
|
|
|
|
Fixed an issue where a large stream offset could cause a rematch to fail due to out-of-order discard. The
|
|
send stream offset is now reset to zero when a new key is selected, matching the behavior of the rematch
|
|
code on the receive side, which already assumes a stream offset of zero.
|
|
|
|
Fixed possible issues with crypto setup by making sure send/recv states are both initialized all of the
|
|
time when switching keys.
|
|
|
|
Fixed a bug which broke a reconnection scenario where one side of a connection was already active, while
|
|
the other was not. The bug was due to an incorrect change of hard-coded return values in
|
|
_ProtoTunnelDecryptAndValidatePacket2(), introduced along with the addition of ProtoTunnel 1.1 protocol
|
|
support.
|
|
|
|
Removed usage of hard-coded values. Replaced with explicit defines for packet decrypt flow.
|
|
|
|
Changed _ProtoTunnelDecryptAndValidatePacket() to return a VALIDATE error if an attempt to recover an out
|
|
of order packet fails.
|
|
|
|
Changed to implementation to simplify error returns from _ProtoTunnelRecvData() and error handling of
|
|
values returned by that function in _ProtoTunnelRecv().
|
|
|
|
Fixed a bug in _ProtoTunnelFindTunnel(), where a failed match of an inactive tunnel would print an error
|
|
message, but continue on with the tunnel index as if the match had succeeded. This would cause some
|
|
parameters (port, addr) to be updated incorrectly before the packet was subsequently rejected, which was
|
|
mostly harmless but could cause some confusing temporary side effects particularly in the debug printing.
|
|
|
|
Fixed various documentation and debug printing items.
|
|
|
|
ProtoWebSocket
|
|
Fixed some documentation errors regarding several TODOs in the code.
|
|
|
|
VoipCommon
|
|
Fixed a potential memory stomp when setting voip channel information for a user index which is out of range.
|
|
|
|
Fixed the channel selection functions to properly include attempts to modify the VOIP_SHARED_USER_INDEX.
|
|
|
|
VoipGroup
|
|
Fixed a bug during the transition from a gamegroup to a game so that the proper mute status from the game
|
|
group would transfer over into the game.
|
|
|
|
VoipTunnel
|
|
Remove support for the 'dcst' control which was used to set a DirtyCast hack. We now support this
|
|
functionality by default as there exists no configuration we were disable the hack.
|
|
|
|
Fixed a possible memory leak detected by Coverity, in a situation when trying to create a VoipTunnel object
|
|
and running out of memory.
|
|
|
|
DirtySDK (iOS)
|
|
Plat-time
|
|
Fixed broken NetPrintf time stamps.
|
|
|
|
DirtySDK (PC)
|
|
DirtyNetWin
|
|
Fixed the usage of the socket select() function to be compatible with Berkley sockets.
|
|
|
|
DirtySDK (XboxOne)
|
|
Build
|
|
Removed support for the XboxOne ADK
|
|
|
|
DirtyNetXboxOne
|
|
Fixed the usage of the socket select() function to be compatible with Berkley sockets.
|
|
|
|
NetConnXboxOne
|
|
Fixed an issue where token acquisition did not reset properly after a cable pull and a reconnect, leading
|
|
to a report that the token acquisition failed when it had not been attempted.
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 2.0.0 - October 22, 2015
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 2.25.03
|
|
Framework 3.32.02
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.07
|
|
Capilano CapilanoSDK 6.2.13332.0-proxy
|
|
capilano_config 1.02.00
|
|
Kettle kettlesdk 3.008.041-proxy
|
|
kettle_config 1.03.01
|
|
iPhone ios_config 1.01.05
|
|
iphonesdk 7.0-proxy-5
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.12.01-proxy
|
|
Win32/WinRT/WinPRT
|
|
DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 11.0.50727-1-proxy
|
|
WindowsSDK 8.0.50727-1-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
|
|
*** Important - DIRTYSDK_IEAUSER_ENABLED compile switch no longer supported ***
|
|
Deprecated DIRTYSDK_IEAUSER_ENABLED compile switch such that IEAUser integration can no longer be turned off at
|
|
compile time when using DirtySDK NetConn for PS4 or XboxOne.
|
|
|
|
*** Important - Gen 3 platform specific code has been removed ***
|
|
Gen3 support was deprecated in 15.1.1.1.0. The remaining Gen 3 specific code have now been removed.
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Added support for structured xml libs-external when Framework is version 3.33.00 or higher.
|
|
|
|
Added support for Visual Studio 2015. To enable support the vsversion property needs to be
|
|
set to "2015" when building as the new warning suppressions are not backwards compatible.
|
|
|
|
Added new build property dirtysdk-contrib that allows enabling the contribs to build Without
|
|
samples. If dirtysdk-contrib does not need to be specified when dirtysdk-samples is true.
|
|
|
|
CryptSTP1
|
|
Removed CryptSTP1 support.
|
|
|
|
Displist
|
|
Removed Displist support.
|
|
|
|
Hasher
|
|
Removed Hasher support.
|
|
|
|
NetGameLink
|
|
Added verbosity setting to reduce QoS data spam in the logs unless desired.
|
|
|
|
Added the reception time in ticks of the packet to NetGamePacketHeadT metadata.
|
|
|
|
ProtoHttpServ
|
|
Added a new callback for processing the incoming header. This callback allows us to opt out of further
|
|
processing if we know that request data is malformed based on header information.
|
|
|
|
Added support for handling the 'Expect: 100-continue' header if sent by clients. ProtoHttpServ will always
|
|
just send back the 100 status code and will not reject requests based on the expect header. If a payload is
|
|
too large it can be rejected using the new header processing callback.
|
|
|
|
ProtoAries
|
|
Removed ProtoAries support.
|
|
|
|
ProtoHttpUtil
|
|
Added support for decoding url-encoded strings.
|
|
|
|
Added support for parsing query parameters similar to what we use for parsing header information.
|
|
|
|
DirtySDK (Android)
|
|
Plat-time
|
|
Added Android implementation to ds_plattimetotime().
|
|
|
|
DirtySDK (PS4)
|
|
DirtySessionManagerPS4
|
|
Added support for ps4 session changeable data.
|
|
|
|
Added new server-driven mode (all operations that are executed from a server are now disabled, i.e.
|
|
everything except what is necessary for invitation). DirtySessionManagerBinaryHeaderT and
|
|
DirtySessionManagerChangeableBinaryHeaderT are now public (PS4 only). This is to enable a compile time
|
|
check to ensure the Blaze Server's structs are equivalent to those. C++ static assert are used in the
|
|
Blaze client code (game manager) and they rely on those structures being public.
|
|
|
|
Added new status selectors:
|
|
'gcda' - to get the active session's changeable binary data size
|
|
'gpcd' - to get the pending session's changeable binary data size
|
|
'gagm' - to get the active changeable data game mode
|
|
'gpgm' - to get the pending changeable data game mode
|
|
'gagt' - to get the active binary data game type
|
|
'gpgt' - to get the pending binary data game type
|
|
'lsts' - to get the last status code returned from the calls to the Sony APIs
|
|
|
|
Added new control selectors:
|
|
'gchg' - to queue getting the changeable binary data into the pending session
|
|
'serv' - to turn on server-driven session - in that mode, this client tech no longer honors any
|
|
client request for operations that are now owned by the server
|
|
'sess' - to set session identifier (server-driven mode only)
|
|
'spgm' - to set the pending session game mode
|
|
'spgt' - to set the pending session game type
|
|
|
|
DirtySDK (PS4/XboxOne)
|
|
NetConn
|
|
Added a new status selector 'eusr' which will return the IEAUser given a dirtysock user index.
|
|
|
|
VoipHeadset
|
|
Added new status selector 'sact' to determine if the shared device is active (Kinect/PS Camera).
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Removed the AddDirtySDKLibsToModule task, external libraries are now added to the
|
|
package.DirtySDK.dirtysock.libs.external fileset instead.
|
|
|
|
Fixed 'NULL is defined to be 0' warning in platform.h by using #if defined instead of #ifdef.
|
|
|
|
Removed the DIRTYCODE_API from typedefs, definitions do not need to be exported for dynamic libraries.
|
|
|
|
Fixed an issue with how our C++ filesets are organized which caused files to be built both static and
|
|
dynamic instead of based on the build configuration.
|
|
|
|
NetGameDist
|
|
Fixed NetGameDistInputQueryMulti() and NetGameDistInputCheck() to always poll NetGameDistUpdate() for
|
|
new packet data if no remote inputs are available. Previously, NetGameDistUpdate() would not be polled
|
|
if there were no local input packets queued for sending, but this behavior had a negative impact in
|
|
multi mode, requiring the caller poll NetGameDistUpdate() themselves if they had no inputs to send. To
|
|
fix that issue and simplify the code, the (minor) optimization of not calling NetGameDistUpdate() if no
|
|
local input packets are queued, when in non-multi mode, was removed.
|
|
|
|
Fixed NetGameDistInputQueryMulti() to be safer in the event the caller calling the function following a
|
|
queue overrun. In the event of a queue overrun it is possible to lose multi inputs that have a delta
|
|
value that is not one (the default) assigned. A delta greater than one that is lost will point the
|
|
paired input queue pointer into unallocated buffer space, resulting in an invalid input with a length
|
|
of zero. This would result in a memcpy of -1 bytes which would result in a memory stomp and subsequent
|
|
crash. This scenario is now detected and handled safely; although the caller should still detect the
|
|
overflow error and shut the game down, this condition will no longer cause a crash.
|
|
|
|
Fixed NetGameDistInputCheck() to return "ready to receive" in multi mode if remote inputs are
|
|
available, regardless of whether there are local inputs queued for sending or not. This issue would
|
|
cause titles calling NetGameDistInputCheck() to incorrectly not receive data that was available if they
|
|
were not sending a steady stream of inputs themselves.
|
|
|
|
ProtoHttpServ
|
|
Changed to update the data that is based through the various callbacks for handling the request and
|
|
responses. Instead of using the same type, specific request and response types have been created.
|
|
|
|
Changed the read/write callbacks to be receive/send to be clearer for integrators.
|
|
|
|
Changed the request callback to allow to be called continuously if more processing time is needed based on
|
|
the result.
|
|
|
|
Changed the logging callback to no longer return a result.
|
|
|
|
ProtoMangle
|
|
Fixed a Valgrind warning by initializing a variable and preventing the possibility of copying garbage data
|
|
to a buffer.
|
|
|
|
ProtoTunnel
|
|
Removed 1.0 protocol support and remaining Xbox 360 code.
|
|
|
|
Removed ability to conditionally compile out HMAC.
|
|
|
|
Fixed issue with _ProtoTunnelFindTunnel() not detecting a port change during handshake.
|
|
|
|
Voip
|
|
Removed Gen3 only parameter for VoipStartup().
|
|
|
|
Changed the way we update voip channel settings. We now update it right when we get a ping and mic packet
|
|
with the new channel information instead of in voip idle. This also addresses potential multi-threading
|
|
issue with applying channel configs.
|
|
|
|
VoipCommon
|
|
Fixed shared channel configs not being recalculated after a channel reset.
|
|
|
|
Fixed a situation where channel configs are applied before we have any registered user.
|
|
|
|
VoipConnection
|
|
Fixed a wrong usage of ds_memcpy.
|
|
|
|
VoipGroup
|
|
Fixed an issue with mute flags being inconsistent or reset when player join both a game group and a game
|
|
session.
|
|
|
|
Fixed an issues with mute flag consistency across multiple voip groups when a user is a part of more than
|
|
one at the same time.
|
|
|
|
Fixed an issue where joining a second voip group or leaving an additional voip group would mute or unmute
|
|
all players respectively.
|
|
|
|
Changed 'umic' and 'uspk' control selectors to deprecated.
|
|
|
|
WebOffer
|
|
Changed the signature of WebOfferGetBusy2 to take the strDefaultMessage as a const char * instead of char *
|
|
to prevent a writable strings warning on PS4.
|
|
|
|
DirtySDK (PC)
|
|
ProtoPingPC
|
|
Fixed an issue on Windows XP where the ProtoPingIcmpResponseT structure was too small (the size required
|
|
turns out to not be documented explicitly). Adding a 32 byte buffer to the structure resolved the issue.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyNetPS4
|
|
Changed implementation such that socket receive thread now runs at high priority.
|
|
|
|
DirtySessionManagerPS4
|
|
Changed the dirtysessionmanger callback not to block when we have dirtywebapi queuing enabled.
|
|
|
|
DirtyWebApiPS4
|
|
Fixed a race condition where the webapi thread sometimes would miss the signal to wake up.
|
|
|
|
NetConnPS4
|
|
Removed internal automatic detection of system users by NetConn. Usage of NetConnAddLocalUser() and
|
|
NetConnRemoveLocalUser() is now mandatory. Implicit: Also removed 'cuis' and 'csiu' status selectors
|
|
for converting system index into dirtysdk index (or opposite).
|
|
|
|
Changed the method to determine what error state NetConn enters to more accurately reflect the reason we
|
|
could not go online in a multiple user scenario.
|
|
|
|
VoipPS4
|
|
Changed implementation such that voip thread now runs at high priority.
|
|
|
|
VoipHeadsetPS4
|
|
Fixed initialization of voice lib thread priorities. sceVoiceStart() and sceVoiceCreatePort() are now
|
|
being called from dedicated ephemeral high-priority threads to force internal Sony threads to also
|
|
execute as high priority threads. This bug fix is required to eliminate crackling voice during heavy
|
|
processing scenarios (game play).
|
|
|
|
Changed voice lib initialization to comply with voice lib doc and to mimic what is done in Sony samples.
|
|
|
|
Fixed _VoipHeadsetUpdateDecoderConnections() not being called when pHeadset->bSharedPrivilege changes.
|
|
|
|
Changed implementation to flush the internal buffer of the decoder port when it is no longer connected to
|
|
any speaker port. This is required to avoid "old voice" being played back when the decoder port is being
|
|
reconnected to a speaker port.
|
|
|
|
DirtySDK (Unix)
|
|
DirtyNetUnix
|
|
Fixed to prevent the logging of ENOTCONN errors when shutting down the socket to prevent unnecessary spam.
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Removed internal automatic detection of system users by NetConn. Usage of NetConnAddLocalUser() and
|
|
NetConnRemoveLocalUser() is now mandatory. Implicit: Also removed 'cuis' and 'csiu' status selectors
|
|
for converting system index into dirtysdk index (or opposite).
|
|
|
|
Refactored NetConnXboxOne to reduced complexity.
|
|
|
|
ProtoHttpXboxOne
|
|
Refactored the status function to be consistent with other platforms. Certain selectors are only handled
|
|
when the state of the module is ST_BODY or ST_DONE.
|
|
|
|
ProtoMangleXboxOne
|
|
Fixed _ProtoMangleRemoteHostAddRef() and _ProtoMangleRemoteHostDelRef() such that multi-threaded usage of
|
|
refRemoteHostRefCountMap is now guarded by the critical section.
|
|
|
|
Fixed implementation to now try-catch around usage of method used to compare two secure device addresses to
|
|
gracefully handle rare cases where a COMException is thrown.
|
|
|
|
Fixed implementation to now try-catch around SecureDeviceAddress::FromBytes().
|
|
|
|
UserApiXboxOne
|
|
Changed to using the AsyncOp refs to track the progress of requests. This prevents an issue where the
|
|
previous bitfield might get stomped on in certain conditions and makes the code clearer to understand.
|
|
|
|
VoipXboxOne
|
|
Changed to move VoIP state destruction to NetConnIdle shutdown callback. This move is because the VoIP
|
|
thread can become blocked in Microsoft Chat code for over ten seconds in certain loss-of-network scenarios.
|
|
This was causing long stalls when trying to VoipShutdown() upon loss of network. Also added guard on
|
|
VoipStartup() to ensure it is not called in a state where the module has not been shut down (VoipShutdown()
|
|
already had the corresponding guard on the module having been started).
|
|
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 1.1.0 - July 09, 2015
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 2.25.01
|
|
Framework 3.32.02
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.07
|
|
Capilano CapilanoSDK 6.2.12999.0-1-proxy
|
|
capilano_config 1.01.02
|
|
Kettle kettlesdk 2.508.081-proxy
|
|
kettle_config 1.03.00
|
|
iPhone ios_config 1.01.05
|
|
iphonesdk 7.0-proxy-5
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.12.01-proxy
|
|
Win32/WinRT/WinPRT
|
|
DotNet 4.0
|
|
DotNetSDK 2.0-4
|
|
VisualStudio 11.0.50727-1-proxy
|
|
WindowsSDK 8.0.50727-1-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
|
|
*** Important - Gen3 platforms (PlayStation 3 and Xbox 360) no longer supported ***
|
|
The Winter 1.0.x stability branch should be used for any further development on these platforms.
|
|
|
|
New in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Removed Gen3 Support.
|
|
|
|
ConnAPI
|
|
Added support to gate the voip connection based on QoS validation. The 'estv' selector can be used to
|
|
ungate the voip connection.
|
|
|
|
ProtoHttp
|
|
Added returning of http status code as part of the 'hres' status selector.
|
|
|
|
ProtoSSL
|
|
Added signature_algorithms hello extension support, enabled by default. Some servers require this
|
|
extension to be present before accepting a connection request.
|
|
|
|
Added validation of supported signature algorithms upon receiving a CertificateRequest handshake message.
|
|
|
|
XmlParse
|
|
Added support for 64-bit integers via XmlContentGetInteger64 and XmlAttribGetInteger64.
|
|
|
|
DirtySDK (PC)
|
|
NetConnWin
|
|
Added support querying for MAC address with valid IP using the 'ethr'/'macx' when non-zero is passed into
|
|
iData.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyNetPS4
|
|
Added 'spam' selector support to change debug verbosity.
|
|
|
|
NetConnPS4
|
|
Added an error message for when PRX is not loaded for the sceNpAuthCreateAsyncRequest call.
|
|
|
|
VoipHeadsetPS4
|
|
Added support for the following bitrates: 14400, 16000 and 22533. The default bitrate has been increased
|
|
from 7300 to 16000.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
Build
|
|
Changed DirtySDK build scripts to use Framework Structured XML.
|
|
|
|
DirtyCert
|
|
Changed requesting certificates use format state field with "ST=" instead of "S=", which is the default
|
|
OpenSSL nomenclature.
|
|
|
|
NetConn
|
|
Changed NetConnDisconnect() to also abort UPnP operations.
|
|
|
|
ProtoHttp
|
|
Changed default PUT/POST behavior to not reuse a previous connection (keep-alive). When making a PUT or
|
|
POST request and utilizing a keep-alive connection, it is possible for the server to close the connection
|
|
and for that connection close to be "in flight" when issuing the request. This results in the request
|
|
being failed when the connection close is received. Because a PUT or POST request can result in modifying
|
|
server state, it may not be automatically re-issued. Not using keep-alive avoids this complication. A new
|
|
ProtoHttpControl('rput') selector has been added to disable this behavior if the caller is willing to deal
|
|
with this complication in trade for getting connection reuse on a PUT/POST.
|
|
|
|
ProtoSSL
|
|
Fixed incorrect CertificateVerify formatting when using TLS1.2. This fixes client certificate support that
|
|
was previously broken when connecting to a server supporting TLS1.2.
|
|
|
|
Fixed an error with 'hres' selector not returning the right hresult in some cases.
|
|
|
|
ProtoTunnel
|
|
Fixed diagnostic output in _ProtoTunnelFindTunnel(), when re-matching addr/port, to include correct tunnel
|
|
index instead of the max tunnel index.
|
|
|
|
DirtySDK (PC/XboxOne)
|
|
DirtyLibWin
|
|
Fixed debug print on QueryPerformanceCounter() failure that was comparing against the wrong result code.
|
|
|
|
DirtySDK (PS4)
|
|
PrivilegeApiPS4
|
|
Fixed a logical error that prevented a dialog from being appropriately terminated when aborted and the
|
|
reference is not destroyed.
|
|
|
|
DirtyWebApiPS4
|
|
Fixed an issue where we were using the wrong critical section for handling errors which ended up in a
|
|
deadlock if another request was made before the response was handled.
|
|
|
|
DirtySessionManagerPS4
|
|
Changed 'gses' control selector to now guard against passing in "INVALID".
|
|
|
|
VoipHeadsetPS4
|
|
Fixed the wrong user index being set when polling for voice.
|
|
|
|
DirtySDK (PS4/XboxOne)
|
|
NetConn
|
|
Added ability to pass -1 into NetConnRemoveLocalUser(), in which case an internal lookup will be performed.
|
|
|
|
Added a new selector 'iusr' than can be used to retrieve the index given the IEAUser UserId.
|
|
|
|
VoipHeadset
|
|
Fixed voipheadsetDeleteLocalUser() to also clear the last headset status.
|
|
|
|
Fixed a situation where channel configs are applied before we have any registered user with voipheadset.
|
|
|
|
DirtySDK (PS4/Unix)
|
|
DirtyNet
|
|
Fixed SocketConnect() to copy the remote address when performing an non-blocking connect
|
|
(SCE_NET_EINPROGRESS/SYS_NET_EINPROGRESS/EINPROGRESS) for ps4/ps3/unix.
|
|
|
|
DirtySDK (Unix)
|
|
DirtyLibUnix
|
|
Fixed NetTickUsec() to use proper scale for seconds.
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Changed the environment to be mapped to the sandbox ID. If it can't be mapped it will default back to TMS
|
|
RETAIL -> PROD
|
|
CERT -> CERT
|
|
EARW.1 -> TEST
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 1.0.1 - June 05, 2015
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 2.19.00
|
|
Framework 3.25.00
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.07
|
|
Capilano CapilanoSDK 6.2.12710.0-1-proxy
|
|
capilano_config 1.01.00
|
|
Kettle kettlesdk 2.508.051-proxy
|
|
kettle_config 1.02.00
|
|
iPhone ios_config 1.01.05
|
|
iphonesdk 7.0-proxy-5
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.07.00
|
|
PS3 ps3sdk 470.001-lite
|
|
PlayStation3NpEx 470.001
|
|
Win32/WinRT/WinPRT
|
|
DotNetSDK 4.0
|
|
VisualStudio 11.0.50727-proxy
|
|
WindowsSDK 8.0.50727-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
Xenon XenonSDK 2.0.21256.3-proxy
|
|
|
|
*** Important - ProtoTunnel format modified - backward compatibility broken ***
|
|
Th Winter 1.0 release of DirtySDK introduced a new ProtoTunnel protocol version - 1.1. By default, this
|
|
is the version used for all platforms except for Xbox 360. ProtoTunnel v1.1 is not compatible with v1.0,
|
|
and Xbox 360 is not compatible with v1.1. Please make sure to rebuild any game servers in addition to
|
|
game clients when upgrading to this release from a version older than Winter 1.0.
|
|
|
|
New in this release:
|
|
DirtySDK (PS4)
|
|
NetConnPS4
|
|
Added NetConnRegisterNpStateCallback() to receive callbacks directly from NP State events.
|
|
|
|
Changes/fixes in this release:
|
|
DirtySDK (All)
|
|
NetGameLink
|
|
Fixed a rare latency estimation issue at start of connection when local and remote clocks are close to but
|
|
not quite synchronized.
|
|
|
|
DirtySDK (PC)
|
|
VoipPC
|
|
Fixed VoipCommonUpdateRemoteStatus() not being invoked from the VoipThread.
|
|
|
|
Fixed bPrivileged not defaulting to TRUE.
|
|
|
|
VoipCommon
|
|
Removed unnecessary PC specificities.
|
|
|
|
DirtySDK (PS3)
|
|
VoipHeadsetPS3
|
|
Fixed implementation to no longer wait for the user to be in a participating state for acquiring and
|
|
playing voice. Without this change, there is some potential for garbled voice at connection establishment.
|
|
|
|
DirtySDK (PS4)
|
|
VoipHeadsetPS4
|
|
Changed VoIP muting based on privileges back to be the most restrictive between local users. It will
|
|
be reverted back to be muted on a per player basis once Sony provides us a way to check whether VoIP
|
|
is being played back on the TV or headsets.
|
|
|
|
DirtySDK (XboxOne)
|
|
ConnApi
|
|
Fixed _ConnApiInitClientConnectionState() to not reset ip address if it was already resolved (required for
|
|
host migration to succeed with peer hosted topology when p2p voip is active before host migration).
|
|
|
|
NetConnXboxOne
|
|
Fixed the value of the internet connectivity state to reset after a resume to prevent the user from getting
|
|
stuck in an offline state after a NetConnDisconnect()/NetConnConnect().
|
|
|
|
UserListApiXboxOne
|
|
Fixed the queueing of UserListApiIsFriendAsync() requests which return success codes but then behaved
|
|
strangely when more than one request was active.
|
|
|
|
Fixed a possible memory leak on shutdown.
|
|
|
|
DirtySDK (PC/PS3/Unix/XboxOne)
|
|
DirtyLib
|
|
Fixed a rare thread safety issue in SocketLookup around
|
|
refcounting
|
|
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 1.0.0 - April 9, 2015
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 2.19.00
|
|
Framework 3.25.00
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.07
|
|
Capilano CapilanoSDK 6.2.12128.0-proxy
|
|
capilano_config 1.01.00
|
|
Kettle kettlesdk 2.000.121-proxy
|
|
kettle_config 1.02.00
|
|
iPhone ios_config 1.01.05
|
|
iphonesdk 7.0-proxy-5
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.07.00
|
|
PS3 ps3sdk 450.001-lite
|
|
PlayStation3NpEx 450.001
|
|
Win32/WinRT/WinPRT
|
|
DotNetSDK 4.0
|
|
VisualStudio 11.0.50727-proxy
|
|
WindowsSDK 8.0.50727-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
Xenon XenonSDK 2.0.21256.3-proxy
|
|
|
|
*** Important - Please update your QOS servers from your Blaze server configurations ***
|
|
The changes to the qosapi requires the new version of the QOS servers in order to function properly.
|
|
Contact GOSOPS for information about the most up to date QOS servers.
|
|
|
|
*** Important - ProtoTunnel format modified - backward compatibility broken ***
|
|
This release of DirtySDK introduces a new ProtoTunnel protocol version - 1.1. By default, this is the
|
|
version used for all platforms except for Xbox 360. ProtoTunnel v1.1 is not compatible with v1.0, and
|
|
Xbox 360 is not compatible with v1.1. Please make sure to rebuild any game servers in addition to game
|
|
clients when upgrading to this release.
|
|
|
|
New in this release:
|
|
|
|
DirtySDK (All)
|
|
ProtoTunnel
|
|
Added support for the new 1.1 version of the ProtoTunnel protocol, with the following features:
|
|
- Introduces backwards compatibility for future protocol versions.
|
|
- Control packet data data used in handshaking is still authenticated, but is now unencrypted.
|
|
- Adds fast matching (and re-matching, when the source addr and/or port changes) of packet data to the
|
|
correct endpoint.
|
|
- Version 1.0 can still be selected and is the default for Xbox 360 operation. Xbox 360 is not
|
|
compatible with 1.1 or later versions of the protocol.
|
|
- Version 1.0 is compatible with the previous ProtoTunnel protocol.
|
|
|
|
CommUDP
|
|
Added a packet received flag which can be accessed through NetGameUtilStatus('pkrc'). The flag is stored in
|
|
ConnApiClientT GameInfo.uConnFlags. This part of the more specific join error task GOSREQ-184.
|
|
|
|
DirtySDK (PS3)
|
|
NetConnPS3
|
|
Added 'nper' selector to NetConnStatus() to allow the user to differentiate a user logging out from PSN
|
|
from PSN disconnect.
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Added a critical section to protect against NetConnStatus('xusr') being called from the voip thread.
|
|
|
|
VoipHeadsetXboxOne
|
|
Added support for MS voip bystanders (cert requirement).
|
|
|
|
DirtySDK (Xenon)
|
|
ConnApiXenon
|
|
Added ConnApiControl('xonl') which can be used to tell ConnApiXenon to no longer attempt game connectivity
|
|
but to only perform Xsession management.
|
|
|
|
Added _ConnApiMoveToNextState() for improved logging of ConnApiXenon state transitions.
|
|
|
|
Changes/fixes in this release:
|
|
|
|
DirtySDK (All)
|
|
CryptRSA
|
|
Refactored to make modular exponentiation an iterative process. This allows it to be spread out over
|
|
multiple updates, which is useful as the operation can take significant amounts of clock time and is
|
|
blocking. As part of this change, roughly 12k of temporary state that used to be on the stack is now
|
|
moved to the RSA state.
|
|
|
|
Switched to use 64-bit math on Linux and PS4, improving execution time on those platforms.
|
|
|
|
DirtyCert
|
|
Switched to new gosca.ea.com endpoint using certificate issued against GOS2015 CA.
|
|
|
|
DirtySessionManager
|
|
Renamed DirtySessionManagerComplete() to DirtySessionManagerGetSecureIp(), and made that new function
|
|
xenon-only.
|
|
|
|
NetConn
|
|
Changed UPnP initialization: if peerport netconn param is not specified, netconn now configures
|
|
protoupnp with default port 3659 instead of default port 0.
|
|
|
|
NetGameDist
|
|
Fixed _strNetGameDistDataType to also cover GMDIST_DATA_NODATA.
|
|
|
|
ProtoHttp
|
|
Changes to harden protohttp against multi-threaded calls into update, send, and recv functions from
|
|
interfering with one another.
|
|
|
|
ProtoSSL
|
|
Enabled ServerName Hello Extension by default.
|
|
|
|
Refactored to take advantage of iteratve modular exponentation for SendClientKeyExchange and
|
|
SendCertificateVerify operations.
|
|
|
|
Switched CA provider flag from GOS2013 CA to GOS2015 CA. This allows the new DirtyCert endpoint to
|
|
provision CA certificates.
|
|
|
|
QosApi
|
|
Refactored qosapi to improve maintainability, this is extensive changes throughout the
|
|
implementation.
|
|
|
|
Changed qosapi so that the different phases of the qos process (latency, bandwidth, firewall)
|
|
do not have dependencies on one another. In the past firewall could only be done after
|
|
bandwidth, and qos phases would have an impact on the error status of other qos phases.
|
|
|
|
Changed qosapi to use the new ip reported by the server rather than the IP address discovered
|
|
by the DNS lookup. The old behavior prevented XboxOne from successfully querying the NAT type,
|
|
due to DNS round robin issues.
|
|
|
|
Removed the client to client methods QosApiListen() and QosApiRequest() from the qosapi.
|
|
|
|
VoipConnection
|
|
Fixed incorrect array size for LocalUsers
|
|
|
|
DirtySDK (PS3)
|
|
DirtyNetPS3
|
|
Fixed a race condition that causes memory corruption when calling NetConnShutdown() while a
|
|
hostname lookup is in progress. NetConnShutdown() now waits until all hostname threads are
|
|
finished.
|
|
|
|
DirtySDK (PS4)
|
|
DirtySessionManagerPS4
|
|
Removed DirtySessionManagerComplete().
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Fixed a case where the connectivity level can be stuck because of a missing notification from
|
|
Microsoft. When logging out after a resume event it seems that we sometimes do not receive an
|
|
XboxLiveAccess notification when logging back in after the resume. This fix forces a check of
|
|
the network state after 5 seconds.
|
|
|
|
DirtySDK (Xenon)
|
|
ConnApiXenon
|
|
Changed implementation to guarantee that _ConnApiUpdateDemangle() will never be performed before
|
|
XSessionCreate() or XSesssionMigrateHost() completes (on both session host and session members).
|
|
Failure to enforce such a serialization can lead to 2 potential problems: secure address being
|
|
resolved with an invalid session id (if primary session creation is not complete) or connapi
|
|
exiting ST_MIGRATE state prematurely before firing SESSEVENT (if secondary session migration is
|
|
not complete).
|
|
|
|
Changed ConnApiUpdate() such that _ConnApiUpdateDemangle() cannot be called when a session
|
|
creation or a session migration is pending.
|
|
|
|
Removed usage of ConnApiSessionManagerStatus('idle') at the beginning of _ConnApiUpdateDemangle():
|
|
no longer required now that calls to _ConnApiUpdateDemangle() from ConnApiUpdate() are limited to
|
|
states where it is allowed.
|
|
|
|
Fixed _ConnApiInitClientList() to properly initialize pConnApi->GameServer.ClientInfo.strTunnelKey
|
|
(inspired from connapi.c) This fix is minor because the tunnel key is not used on xenon anyway.
|
|
|
|
ConnApiXenonSessionManager
|
|
Enhanced implementation of ConnApiXenonSessionManagerComplete() to make it clear that
|
|
ConnApiXenonSessionManagerGetSecureIp() CANNOT return "in-progress".
|
|
|
|
Fixed implementation of ConnApiXenonSessionManagerComplete() to return the right secure ip address for the
|
|
console specified as input. It used to return pRef->iAddrPrimary which is not guaranteed to match the
|
|
specified console.
|
|
|
|
Renamed ConnApiXenonSessionManagerComplete() to ConnApiXenonSessionManagerGetSecureIp()
|
|
|
|
Removed ConnApiXenonSessionManagerControl('conn') which was dead code because the 'conn' selector is no
|
|
longer supported in DirtySessionManager.
|
|
|
|
DirtySessionManagerXenon
|
|
Renamed DirtySessionManagerComplete() to DirtySessionManagerGetSecureIp().
|
|
|
|
VoipXenon
|
|
Fixed implementation of VoipSetLocalUser() to properly setup the VoipUserT to be passed to
|
|
_VoipRegisterLocalTalker(). Without this fix, wrong xuids are registered with XHV resulting
|
|
in calls to pXHVEngine->SubmitIncomingChatData() intermittently failing with ERROR_INVALID_FUNCTION.
|
|
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 0.3.0 - March 16, 2015
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 2.19.00
|
|
Framework 3.25.00
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.07
|
|
Capilano CapilanoSDK 6.2.12128.0-proxy
|
|
capilano_config 1.01.00
|
|
Kettle kettlesdk 2.000.121-proxy
|
|
kettle_config 1.02.00
|
|
iPhone ios_config 1.01.05
|
|
iphonesdk 7.0-proxy-5
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.07.00
|
|
PS3 ps3sdk 450.001-lite
|
|
PlayStation3NpEx 450.001
|
|
Win32/WinRT/WinPRT
|
|
DotNetSDK 4.0
|
|
VisualStudio 11.0.50727-proxy
|
|
WindowsSDK 8.0.50727-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
Xenon XenonSDK 2.0.21256.3-proxy
|
|
|
|
New in this release:
|
|
|
|
DirtySDK (All)
|
|
CommUDP
|
|
Added a metric to track packet loss prevented by a redundancy mechanic.
|
|
|
|
DirtyLib
|
|
Added new NetTickUsec() to return microsecond-precision tick counter for profiling purposes.
|
|
|
|
ProtoSSL
|
|
Added GOS2015 SHA2 CA.
|
|
|
|
Added VeriSign 2008 Universal SHA2 CA.
|
|
|
|
VoipConnection
|
|
Added support for piggy-backing reliable data over voip traffic (data packets and ping packets)
|
|
* Added VoipConnectionReliableBroadcastUser() and VoipConnectionReliableBroadcastOpaque().
|
|
* Added LinkedReliableDataT.
|
|
* Extended VoipConnectionT and VoipConnectionlistT for reliable data support.
|
|
* Changed synopsis of VoipConnectRecvVoiceCbT.
|
|
|
|
VoipHeadset
|
|
Added support for piggy-backing reliable data over voip traffic (data packets and ping packets)
|
|
* Changed to adapt to change in synopsis of VoipConnectRecvVoiceCbT.
|
|
|
|
VoipPacket
|
|
Added support for piggy-backing reliable data over voip traffic (data packets and ping packets)
|
|
* Added new constants, and ReliableDataInfoT, ReliableDataT, ReliableAckT.
|
|
|
|
VoipPriv
|
|
Added support for piggy-backing reliable data over voip traffic (data packets and ping packets)
|
|
* Changed implementation of VOIP_CopyUser() to use ds_memcpy_s() instead of ds_strnzcpy().
|
|
* Changed VoipUserExT to be conditionally compiled in for XBOXONE only.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyWebApiPS4
|
|
Added DirtyWebApiUpdate to issue callbacks from same thread as NetConnIdle. This feature can be enabled
|
|
or disabled with 'qcal' control selector. By default the feature is disabled.
|
|
|
|
DirtySDK (XboxOne)
|
|
VoipXboxOne
|
|
Added support for piggy-backing reliable data over voip traffic (data packets and ping packets)
|
|
* Added call to VoipConnectionReliableBroadcastUser() from VoipActivateLocalUser().
|
|
|
|
DirtySDK (Xenon)
|
|
ConnApiXenon
|
|
Removed the dependency of the CONNAPI_MAXCLIENT from the function ConnApiUpdateDemangle().
|
|
|
|
Changes/fixes in this release:
|
|
|
|
DirtySDK (iOS)
|
|
DirtyLib
|
|
Fixed incorrect critical section length for iOS64
|
|
|
|
DirtySDK (PC)
|
|
Build
|
|
Fixed compilation warnings for deprecated winsock2 calls with WindowsSDK 8.1
|
|
|
|
DirtySDK (PS3)
|
|
NetConnPS3
|
|
Fixed the processing of the SCE_NP_MANAGER_STATUS_OFFLINE event when we are early on in the connection
|
|
process to prevent us from becoming stuck in +con when PSN is down.
|
|
|
|
Fixed the handling of cellNetCtlNetStartDialogUnloadAsync() which was being treated as a synchronous
|
|
function.
|
|
|
|
DirtySDK (PS4)
|
|
VoipPS4
|
|
Changed the chat permission to applied on a player to player basis when not using the Playstation Camera
|
|
|
|
DirtySDK (WinRT)
|
|
DirtyLibWinRT
|
|
Fixed incorrect thread priority initialization in NetLibCreate().
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Fixed a build error that occurs when IEAUSER is not used.
|
|
|
|
PrivilegeApiXboxOne
|
|
Fixed a memory stomp.
|
|
|
|
DirtySDK (Xenon)
|
|
Build
|
|
Fixed a build break in the post build step of ATGFramework, which is used for the Xenon samples.
|
|
|
|
ConnApiXenon
|
|
Fixed secure address resolution not being done for new connections to be established after host migration.
|
|
|
|
FriendApiXenon
|
|
Fixed a potential issue where friend data could be populated in the incorrect slot.
|
|
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 0.2.0 - January 28, 2015
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 2.19.00
|
|
Framework 3.25.00
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.05-1
|
|
Capilano CapilanoSDK 6.2.11785.0-proxy
|
|
capilano_config 1.00.14
|
|
Kettle kettlesdk 2.000.091-proxy
|
|
kettle_config 1.01.08
|
|
iPhone ios_config 1.01.05
|
|
iphonesdk 7.0-proxy-5
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.07.00
|
|
PS3 ps3sdk 450.001-lite
|
|
PlayStation3NpEx 450.001
|
|
Win32/WinRT/WinPRT
|
|
DotNetSDK 4.0
|
|
VisualStudio 11.0.50727-proxy
|
|
WindowsSDK 8.0.50727-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
Xenon XenonSDK 2.0.21256.3-proxy
|
|
|
|
New in this release:
|
|
|
|
DirtySDK (All)
|
|
PrivilegeApi
|
|
Added PRIVILEGEAPI_PRIV_INVALID privilege for ease of use.
|
|
|
|
DirtySDK (PC)
|
|
VoipSpeex
|
|
Added the dll export tag to extern const VoipCodecDefT VoipSpeex_CodecDef.
|
|
|
|
DirtySDK (PS3)
|
|
NetConnPS3
|
|
Added logging for connection status changes.
|
|
|
|
DirtySDK (PS4)
|
|
DirtySessionMangerPS4
|
|
Added session lock support (prevent user from joining). A PS4 session can not be locked/unlocked
|
|
using the 'lock' selector.
|
|
|
|
NetConnPS4
|
|
Added logging for connection status changes.
|
|
|
|
DirtySDK (XboxOne)
|
|
NetConnXboxOne
|
|
Removed automatic reset user list support when IEAUSER is used.
|
|
|
|
Added logging for connection status changes
|
|
|
|
UserApiXboxOne
|
|
Added Support for ProfileChanged Event. Please use the new UserApiNotifyDataT::ProfileUpdateData type
|
|
and UserApiNotifyTypeE::USERAPI_NOTIFY_PROFILE_UPDATE to listen for the event.
|
|
|
|
DirtySDK (Xenon)
|
|
NetConnXenon
|
|
Added logging for connection status changes
|
|
|
|
Changes/fixes in this release:
|
|
|
|
DirtySDK (All)
|
|
ConnApi
|
|
Fixed a bug where ConnApi will tried to initialize clients with NULL machine address.
|
|
|
|
DirtyMem
|
|
Fixed to export DirtyMemAlloc and DirtyMemFree when building as a DLL.
|
|
|
|
Added include of <stdlib.h> to prevent malloc() and free() calls for default memory allocators compiling
|
|
out when building as a DLL.
|
|
|
|
DirtyPng
|
|
Fixed a wrong usage of ds_strnzcpy that leads to a memory stomp.
|
|
|
|
NetConn
|
|
Fixed NetConnStatus() not propagating the iData parameter to SocketInfo() for selectors that are passed
|
|
through.
|
|
|
|
ProtoHttp
|
|
Fixed a memory pointer issue when sending chunked http transaction faster than the network can keep up
|
|
that could lead to potentially sending parts of uninitialized memory over the network.
|
|
|
|
Changed to check status of open keep-alive connection in the DONE state, to detect server-closed
|
|
connections when they are closed, rather than waiting until the ProtoHttp ref is used in a new transaction
|
|
or destroyed.
|
|
|
|
VoipConnection
|
|
Fixed an integration error. VoipConnectionStartup() will now have a max player check. If for any reason
|
|
voip system is not started properly voip setup will be skipped by Blaze.
|
|
|
|
DirtySDK (iOS)
|
|
DirtyLib
|
|
Fixed wrong critical section length for iOS64.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyWebApiPS4
|
|
Changed priority and scheduling setting of internal threads in favor of less aggressive threading
|
|
patterns to avoid negatively impacting game with unnecessary thread switches during game play.
|
|
|
|
NetConnPS4
|
|
Fixed an error which prevents users from going online if PSN does not respond quickly to the parental
|
|
settings query.
|
|
|
|
PrivilegeApiPS4
|
|
Fixed an integration error, which caused _PrivilegeApiUpdateDialogStatus callback not to be removed properly.
|
|
|
|
DirtySDK (XboxOne)
|
|
ProtoMangleXboxOne
|
|
Fixed a potential crash if a client is removed and re-added while corresponding security association
|
|
creation is in progress.
|
|
|
|
|
|
EADP Game Services DirtySDK 2015 Winter 0.1.0 - December 4, 2014
|
|
|
|
This SDK release was built using the following compiler packages:
|
|
|
|
EA Config 2.19.00
|
|
Framework 3.25.00
|
|
|
|
Android androidsdk 18-2
|
|
androidndk r9c
|
|
android_config 1.06.05-1
|
|
Capilano CapilanoSDK 6.2.11785.0-proxy
|
|
capilano_config 1.00.14
|
|
Kettle kettlesdk 2.000.071-proxy
|
|
kettle_config 1.01.07
|
|
iPhone ios_config 1.01.05
|
|
iphonesdk 7.0-proxy-5
|
|
OSX UnixGCC 0.05.00
|
|
osx_config 1.00.01
|
|
Linux/Unix UnixClang 0.07.00
|
|
PS3 ps3sdk 450.001-lite
|
|
PlayStation3NpEx 450.001
|
|
Win32/WinRT/WinPRT
|
|
DotNetSDK 4.0
|
|
VisualStudio 11.0.50727-proxy
|
|
WindowsSDK 8.0.50727-proxy
|
|
WindowsPhoneSDK 8.0.9900-proxy
|
|
Xenon XenonSDK 2.0.21256.3-proxy
|
|
|
|
*** Important - Complementary integration guidelines available on Confluence ***
|
|
DirtySDK 2015 Winter Upgrade available here:
|
|
https://docs.developer.ea.com/display/dirtysock/DirtySDK+2015+Winter+Upgrade+Guide
|
|
|
|
New in this release:
|
|
|
|
DirtySDK (All)
|
|
ProtoSSL
|
|
Added support for AES-128-GCM-SHA256 and AES-256-GCM-SHA384 cipher suites.
|
|
|
|
Added two obsolete alternate definitions for sha1withRSAEncryption for compatibility with some software
|
|
that generates certificates using these object IDs, for example makecert.exe in WindowsSDK.
|
|
|
|
ProtoTunnel
|
|
Enhanced debug logging for the 'bnds' selector.
|
|
|
|
Voip
|
|
Enhanced API for user registration to better support MLU (Multiple Local Users) scenarios. Every local user
|
|
should now be registered with the voip sub-system using VoipSetLocalUser() in order for its headset status
|
|
info to be available for queries. To additionally get fully functional voip, local users must be further
|
|
activated with VoipActivateLocalUser(), which promotes the user to a "participating" state. Basically any
|
|
user being pulled into the game should be a participating user. Associated public api impact:
|
|
* New synopsis for VoipSetLocalUser()
|
|
* New function to promote local users to "participating" state: VoipActivateLocalUser()
|
|
|
|
VoipGroup
|
|
Enhanced VoipGroup api. It was re-aligned with changes to the voip api called out above.
|
|
* New function to promote local users to "participating" state: VoipGroupActivateLocalUser()
|
|
|
|
DirtySDK (PC)
|
|
DirtyErrPC
|
|
Added DirtyErrPC implementation with pc-specific errors.
|
|
|
|
ProtoPingPC
|
|
Added a new version of protoping for PC, using ICMPSendEcho2() API. This API allows use of ICMP when an
|
|
application is run without administrator privilege, which is required for use of RAW sockets employed with
|
|
protoping.c.
|
|
|
|
DirtySDK (PS4)
|
|
VoipHeadsetPS4
|
|
Enhanced _VoipHeadsetIsLocalVoiceFrameReady() to detect voice readiness quicker.
|
|
|
|
Added '-pbk' and '+pbk' selectors to better support our voip channel feature under MLU scenarios.
|
|
|
|
DirtySDK (WinRT/WintPRT)
|
|
DirtyLibWinRT
|
|
Enhanced NetPrintfCode() to use OutputDebugStringA() instead of OutputDebugStringW().
|
|
|
|
DirtySDK (XboxOne)
|
|
UserApiXboxOne
|
|
Added support for the 'avsz' selector. Now different profile pictures sizes can be fetched.
|
|
|
|
VoipXboxOne
|
|
Added selectors:
|
|
VoipStatus 'pcac' - returns true if party chat is active
|
|
VoipStatus 'pcsu' - returns true if party chat is currently suspended
|
|
VoipControl 'pcsu' - takes iValue as a bool, TRUE suspend party chat, FALSE resume it
|
|
In order for VoipControl 'pcsu' to work you must add to the appxmanifest.xml:
|
|
<mx:Extension Category="xbox.multiplayer">
|
|
<mx:XboxMultiplayer CanSuppressPartyChat="true" />
|
|
</mx:Extension>
|
|
|
|
Changes/fixes in this release:
|
|
|
|
DirtySDK (All)
|
|
General
|
|
Replaced APIs deprecated by Microsoft with generic equivalents.
|
|
|
|
ConnApi
|
|
Changed synopsis of ConnApiOnline(): it no longer has a pSelfAddr parameter.
|
|
|
|
Changed ConnApiUserInfoT.uClientFlags to ConnApiUserInfoT.uFlags.
|
|
|
|
Changed ConnApiClientInfoT.uMachineId to ConnApiCLientInfoT.uId.
|
|
|
|
Removed multiple virtual machine mode: connapi 'mvtm' status and control selectors no longer exist.
|
|
The implementation is now multiple-virtual-machine capable by default.
|
|
|
|
Removed ConnApiUserInfoT, ConnApiAddUser() and ConnApiRemoveUser() for all platforms except xbox360.
|
|
|
|
Removed ConnApiFindClient(), then renamed ConnApiFindClientById() to ConnApiFindClient().
|
|
|
|
Removed ConnApiClientInfoT.strUniqueId
|
|
|
|
Removed _ConnApiDefaultCallback() and made the debug logging client-centric instead of user-centric.
|
|
|
|
DirtyNet
|
|
Changed all dirtynet files to log unsupported status selectors the same way.
|
|
|
|
NetGameLink
|
|
Changed implementation to avoid code duplication: moved packet loss calculation logics into a static
|
|
function.
|
|
|
|
Changed the names of several member variables in the NetGameLinkStatT structure. The changes are listed below:
|
|
bps to outbps
|
|
rps to outrps
|
|
nps to outnps
|
|
pps to outpps
|
|
rpps to outrpps
|
|
|
|
ProtoSSL
|
|
Changed to request TLS1.2 instead of TLS1.1. Servers are still allowed to select any version from TLS1.2
|
|
down to SSLv3.
|
|
|
|
Changed to use 64-bit time for certificate expiration checking, so certificates created with expiration
|
|
times far in the future won't fail validation.
|
|
|
|
Changed to harden protossl against multi-threaded use causing obscure secure failures.
|
|
|
|
VoipConnection
|
|
Removed platform specificities in _VoipConnectionInit().
|
|
|
|
VoipPacket
|
|
Changed value of VOIP_PACKET_STATUS_FLAG_METADATA from 2 to 1.
|
|
|
|
DirtySDK (PS4)
|
|
DirtyWebApiPS4
|
|
Removed DirtyWebApiCreate()/DirtyWebApiCreateEx() and renamed DirtyWebApiCreateEx2() to
|
|
DirtyWebApiCreate().
|
|
|
|
Changed WebApi threads to only wakeup when there are jobs queued.
|
|
|
|
VoipHeadsetPS4
|
|
Fixed establishment of connections between a decoder port and all local speaker ports when a user is added
|
|
after a decoder was created.
|
|
|
|
DirtySDK (XboxOne)
|
|
DirtyNetXboxOne
|
|
Fixed _SocketAddrMapGet() to no longer include the port value when trying to match an input ipv6 address
|
|
with an existing mapping. This change is required for multi-hub test bench to be functional on xboxone:
|
|
because hubs all bind to different game port, the inbound traffic source port may not be same as the ipv6
|
|
address mapped when resolving secure device address for the local console.
|
|
|
|
VoipHeadsetXboxOne
|
|
Deprecated support for pre-March2014 XDKs (_XDK_VER < 10698).
|
|
|
|
Replaced VOIPHEADSET_VOICELIB_DEBUG with VOIPHEADSET_DEBUG.
|
|
|
|
DirtySDK (Xenon)
|
|
ConnnApiXenon
|
|
Changed internal usage of some control selectors: moved call to ConnApiXenonManagerControl('self')
|
|
and VoipGroupControl('lusr') from ConnApiOnline() to _ConnApiInitClientList()
|
|
|
|
Fixed connapixenon to properly update the remote tunnel port with the peer's internally bound port
|
|
when the internal address (i.e. internal to NAT scope) is used to reach that peer.
|
|
|
|
Fixed a logical error forcing the voip connection attempt to fail early.
|