Daniel Collins
2d5651350c
Fix a few compiler warnings.
2023-12-11 22:45:20 +00:00
Daniel Collins
6f9a8d32e3
Implement DllRegisterServer() and DllUnregisterServer() in dpnet.dll
2023-12-11 22:43:47 +00:00
Daniel Collins
c8fe35b819
Replace build.bat with VS projects and fix some compile errors.
2023-12-11 22:37:46 +00:00
Daniel Collins
25640cc67d
Merge pull request #1 from Lafikateh/master
...
Fix build error.
2022-05-27 08:19:34 +01:00
Lafika
8a39f8979e
Update DirectPlay8Address.cpp
...
Fixed build error C2664: 'PCSTR inet_ntop(INT,PVOID,PSTR,size_t)': cannot convert argument 2 from 'const IN_ADDR *' to 'PVOID'"
2022-05-26 22:10:53 +02:00
Daniel Collins
7170581117
Added email address to copyright notices.
...
Why didn't I do this initially? Its a mystery.
2019-03-17 14:42:02 +00:00
Daniel Collins
2d5b282dc1
Added README.
2019-03-17 14:31:19 +00:00
Daniel Collins
3c44ccf06e
Added GPL license and headers to sources.
2019-03-17 13:56:19 +00:00
Daniel Collins
fbfd8469f4
Optionally build with debug symbols.
2018-11-27 19:01:30 +00:00
Daniel Collins
638a52dcfd
IDirectPlay8Peer: Debug messages when connecting to peers.
2018-11-27 18:55:51 +00:00
Daniel Collins
7cc4e85f6d
IDirectPlay8Peer: Implement DPLITE_CONNECT_IP environment variable.
...
If set, this will override the host IP address to connect to in
IDirectPlay8Peer::Connect()
2018-11-27 18:53:59 +00:00
Daniel Collins
8d46ae9e9b
IDirectPlay8Peer: Complete asynchronous sends in the worker pool.
...
Starting threads is expensive, far too expensive to be doing it
on every asynchronous SendTo() call.
2018-11-27 18:50:44 +00:00
Daniel Collins
1837aa1915
Misc. fixes
...
- Honour DPNSEND_NOCOMPLETE flag to IDirectPlay8Peer::SendTo()
- Allow calling IDirectPlay8Peer::GetGroupInfo() in more states
so that it can be called when processing DPNMSG_GROUP_CREATE
during connection.
- Don't buffer log messages.
2018-11-14 01:33:35 +00:00
Daniel Collins
e1b51c22b1
IDirectPlay8Peer: Allow non-host peers to create groups.
2018-11-12 21:16:07 +00:00
Daniel Collins
7c75bf7f9b
IDirectPlay8Peer: Implement SendTo() on groups.
2018-11-11 14:44:10 +00:00
Daniel Collins
9c1345f44a
IDirectPlay8Peer: Randomly select dynamic ports in Connect() method.
...
It turns out disabling SO_LINGER on Windows doesn't /really/ make the
socket go away by the time closesocket() returns, just very shortly
afterwards, so rapidly destroying and re-creating connections on a slow
machine can fail due to a connect() address conflict.
2018-11-10 22:37:02 +00:00
Daniel Collins
6df47cee60
Handle group cleanups for session end etc
2018-11-10 21:34:31 +00:00
Daniel Collins
e8e35c1c45
IDirectPlay8Peer: Added more group tests based on reference behaviour.
2018-11-09 15:24:22 +00:00
Daniel Collins
5297110b12
IDirectPlay8Peer: Implement RemovePlayerFromGroup()
2018-11-09 10:34:54 +00:00
Daniel Collins
d68ba86da9
DirectPlay8Peer: Implement AddPlayerToGroup() and EnumGroupMembers()
2018-11-09 00:59:12 +00:00
Daniel Collins
89a3174ecd
IDirectPlay8Peer: Implement explicit group destruction.
...
Still TODO: Automatic destruction on disconnect.
2018-11-09 00:59:02 +00:00
Daniel Collins
2149caef53
IDirectPlay8Peer: Implement group creation and enumeration.
2018-11-08 21:51:04 +00:00
Daniel Collins
7cfb9b3a5a
Extended IDirectPlay8Peer group tests.
...
- IDirectPlay8Peer::DestroyGroup()
- IDirectPlay8Peer::RemovePlayerFromGroup()
- IDirectPlay8Peer::GetGroupInfo()
- IDirectPlay8Peer::GetGroupContext()
2018-11-08 01:07:48 +00:00
Daniel Collins
3b1e6d8b5e
Send guaranteed messages in soak/performance test.
2018-11-07 09:04:41 +00:00
Daniel Collins
a7a6a4a0da
Implement tests for CreateGroup() and AddPlayerToGroup()
...
They pass against DirectX, if not my code yet.
2018-11-06 23:53:33 +00:00
Daniel Collins
21c5340793
Run client soak test in phases
2018-11-01 09:07:41 +00:00
Daniel Collins
5c44ce26e0
Send messages and track statistics in soak test.
2018-10-31 23:31:25 +00:00
Daniel Collins
f3a3533660
Allow calling IDirectPlay8Peer::SendTo() during connection.
...
DirectX allows this.
2018-10-31 23:16:12 +00:00
Daniel Collins
685a6c27cf
Initial implementation of soak test client side.
2018-10-28 15:47:47 +00:00
Daniel Collins
988ea0c3b6
Initial implementation of soak testing framework
2018-10-28 14:00:20 +00:00
Daniel Collins
44423f4596
Avoid spinning the workers whenever a peer is connected.
...
Calling WSAEventSelect() causes the event to become signalled
even if there is nothing new, probably due to the socket being
writable.
Due to this, io_peer_recv() signals the event object whenever
claiming recv_busy just to check for pending data, and again
when releasing it, which leads to another worker immediately
waking up and claiming it to check for new messages, starting
the cycle again.
Only claim recv_busy and mask FD_RECV events if some data is
actually read from the socket.
2018-10-24 00:57:09 +01:00
Daniel Collins
14c78e506b
Raise maximum packet size.
...
The documentation for IDirectPlay8Peer::SendTo() makes no
mention of message size limits, so this may need more attention
if games are sending even bigger messages to each other.
2018-10-24 00:54:41 +01:00
Daniel Collins
56772c9813
Build dsound hook DLL.
2018-10-23 22:04:34 +01:00
Daniel Collins
8ffad7fbdd
Fix logging.
2018-10-23 22:04:06 +01:00
Daniel Collins
4b962954ef
Release lock when dispatching DPNMSG_CREATE_PLAYER in IDirectPlay8::Host()
2018-10-23 22:03:18 +01:00
Daniel Collins
a5ff5b9a09
Build dpnet.dll
2018-10-21 21:17:06 +01:00
Daniel Collins
780a37965b
Implement IDirectPlay8Peer::GetLocalHostAddresses() method
2018-10-21 21:17:01 +01:00
Daniel Collins
b04735e8ea
Don't crash if IDirectPlay8Peer::Host() is passed a NULL session name.
2018-10-21 20:50:35 +01:00
Daniel Collins
d9c78f14bf
Delete obsolete Makefile
2018-10-17 00:07:10 +01:00
Daniel Collins
5ccf66fceb
Implement cancelling of queued asynchronous sends.
2018-10-16 23:25:08 +01:00
Daniel Collins
5c8f19d5a8
Log failures in hookdll
2018-10-16 13:48:51 +01:00
Daniel Collins
dd6488969e
Track and wait for synchronous EnumHosts() calls in Close()
2018-10-16 13:23:48 +01:00
Daniel Collins
0239e5357d
Add missing lock uses in DirectPlay8Peer
2018-10-16 13:13:45 +01:00
Daniel Collins
9fc69d67ea
Remove code duplication in disconnect/cleanup paths.
2018-10-15 18:13:10 +01:00
Daniel Collins
b74b018ff2
Implement IDirectPlay8Peer::TerminateSession()
2018-10-15 13:29:07 +01:00
Daniel Collins
b44689b38f
Implement IDirectPlay8Peer::DestroyPeer()
2018-10-14 17:41:57 +01:00
Daniel Collins
7723fc04e3
Implement player enumeration in IDirectPlay8Peer::EnumPlayersAndGroups()
2018-10-14 13:42:07 +01:00
Daniel Collins
c88355efb9
DirectPlay8Peer: Support cancelling in-progress connections.
2018-10-14 11:18:56 +01:00
Daniel Collins
f753f42d44
Allocate async handles correctly.
2018-10-14 01:06:00 +01:00
Daniel Collins
56ab6ea75a
Destroy local player is connecting to a peer fails.
2018-10-12 16:41:49 +01:00