1
0
mirror of https://github.com/solemnwarning/ipxwrapper synced 2024-12-30 16:45:37 +01:00

Updated changelog and added some notes to service provider.

This commit is contained in:
Daniel Collins 2011-11-08 22:01:32 +00:00
parent b3db46de40
commit aa36058c1d
2 changed files with 17 additions and 8 deletions

View File

@ -1,3 +1,11 @@
Version 0.3.2:
Cleanup: Cleaned up Send/SendEx functions in DirectPlay service provider.
Bugfix: Added workaround for Hamachi bug.
Bugfix: Correctly return single interfaces from get_interfaces when some
are disabled in ipxconfig.
Version 0.3.1:
Bugfix: Fixed deadlock in DirectPlay service provider.

View File

@ -235,6 +235,11 @@ static HRESULT WINAPI IPX_Send(LPDPSP_SENDDATA data) {
return DP_OK;
}
/* This function is completely untested. It ignores the DPSEND_ASYNC flag and
* part of the interface has been guessed. Attempts at testing have failed as
* the DirectPlay builds on my test machine (XP _AND_ 7) call SP_Send, even
* when SP_SendEx is implemented and DPSEND_ASYNC is used.
*/
static HRESULT WINAPI IPX_SendEx(LPDPSP_SENDEXDATA data) {
CALL("SP_SendEx");
@ -248,11 +253,6 @@ static HRESULT WINAPI IPX_SendEx(LPDPSP_SENDEXDATA data) {
return DPERR_UNSUPPORTED;
}
if(data->dwFlags & DPSEND_ASYNC) {
log_printf("SendEx called with DPSEND_ASYNC flag, not implemented");
return DPERR_UNSUPPORTED;
}
/* NOTE: The buffer arrangement is entirely guessed and currently untested.
* TODO: TEST!
*/
@ -276,8 +276,6 @@ static HRESULT WINAPI IPX_SendEx(LPDPSP_SENDEXDATA data) {
return DP_OK;
}
/* TODO: Support DPSEND_ASYNC */
struct sp_data *sp_data = get_sp_data(data->lpISP);
if(sendto(sp_data->sock, buf, off, 0, (struct sockaddr*)&addr, sizeof(addr)) == -1) {
@ -348,9 +346,12 @@ static HRESULT WINAPI IPX_GetCaps(LPDPSP_GETCAPSDATA data) {
/* Most values are incorrect/inaccurate, copied from the MS implementation
* for compatibility.
*
* No async support is implemented at this time, DirectPlay itself seems
* to handle it.
*/
data->lpCaps->dwFlags = 0;
data->lpCaps->dwFlags = DPCAPS_ASYNCSUPPORTED;
data->lpCaps->dwMaxBufferSize = 1024;
data->lpCaps->dwMaxQueueSize = 0;
data->lpCaps->dwMaxPlayers = 65536;