Manevolent
ca869089cf
Reconnection works now
2018-08-13 09:48:30 -04:00
Manevolent
89c483d3b9
Fragments which wrap around 65536 and cause the packet ID to ascend more than once will crash the code
2018-08-13 09:20:27 -04:00
Manevolent
aad790c146
Packet reassembly would fail if the server sent packets out of order. Now, it is resilient to this.
2018-08-13 01:03:44 -04:00
Manevolent
7d195439b8
Send a zero-length byte array when the audio thread is done sending audio, as Teamspeak does. this is to prevent interpolation
2018-08-12 15:39:55 -04:00
Manevolent
fb7923b63b
Change HighPrecisionRecurrentTask to 0.01 instead of 0.02
2018-08-12 15:13:21 -04:00
Manevolent
9d37b982d5
Packet fragmentation had a bug
2018-08-12 15:07:49 -04:00
Manevolent
69024381de
It would help if I pasted it after a packet has its ID assigned wouldn't it?
2018-08-12 12:45:27 -04:00
Manevolent
3f873f7ef5
Merge remote-tracking branch 'origin/master'
2018-08-12 12:15:37 -04:00
Manevolent
555f6a56d6
Mic packet ID was wrongly generated, changed some tests and increased verbosity of the reassembly exceptions
2018-08-12 12:14:29 -04:00
Manevolent
bc37491328
Created a new test for fragments. If a packet fragment is received which wraps around the generation, it is lost. Also, packet fragmentation outgoing would cause a desync in the packet IDs.
2018-08-11 18:44:44 -04:00
Manevolent
04299b5c77
More tests for packet generations. Compression test also exists now to test compression into the future. QuickLZ first checks the level on decompression, and also throws a diagnostic error with full Base64 byte array on issue. Disconnections will actually fully reset and free the client for valid re-use. There is now a Consumer for Throwables for the abstract client socket for error handling.
2018-08-11 15:50:22 -04:00
Manevolent
5a440c890f
Round ping to nearest whole number
2018-08-11 12:36:37 -04:00
Manevolent
2666e940e8
Undo debugging stuff
2018-08-10 23:38:07 -04:00
Manevolent
7f6f6c79d2
Bitmasks were wrong
2018-08-10 23:37:45 -04:00
Manevolent
798f84689f
get rid of JavaFX
2018-08-10 22:46:03 -04:00
Manevolent
a6a263cae1
get rid of JavaFX
2018-08-10 22:42:44 -04:00
Manevolent
de6b4b370b
Trying maven compiler target
2018-08-10 22:35:58 -04:00
Manevolent
2d21b701c5
Jitpack failed...
2018-08-10 22:28:39 -04:00
Manevolent
7aa0f864a0
Handle throwable
2018-08-10 22:20:27 -04:00
Manevolent
83b2f5c46f
Network reader should close if it has to exit
2018-08-10 22:20:03 -04:00
Manevolent
2f7b5a376b
Facepalm, nanoTime
2018-08-10 19:56:53 -04:00
Manevolent
d3a157672b
More accurate ping and handling all packet types properly
2018-08-10 19:27:46 -04:00
Manevolent
844e3e6e75
More accurate ping and handling all packet types properly
2018-08-10 19:01:06 -04:00
Manevolent
4072b19f09
Fix total
2018-08-10 16:30:58 -04:00
Manevolent
99961d84aa
notifyconnectioninforequest
2018-08-10 16:28:55 -04:00
Manevolent
3d09c5ef21
Disconnected and leave events were not on the proper handlers
2018-08-05 19:47:35 -04:00
Manevolent
a316b76d70
Channel subscription, getting channel info, and multithreaded event handling
2018-08-05 19:20:02 -04:00
Manevolent
fffd19cf9b
Microphone changes
2018-08-05 02:21:33 -04:00
Manevolent
582daddf67
Microphone changes
2018-08-05 01:57:12 -04:00
Manevolent
68dcaa35c3
Microphone changes
2018-08-05 01:24:10 -04:00
Manevolent
836a952a6d
Need actual byte length for characters
2018-08-05 00:58:21 -04:00
Manevolent
e7beee972d
Nickname changing
2018-08-05 00:17:02 -04:00
Manevolent
44edb80431
Nickname changing
2018-08-05 00:02:16 -04:00
Manevolent
0c2f4c0341
Must get client ID properly there
2018-08-04 23:58:34 -04:00
Manevolent
07ca284851
Client info call
2018-08-04 23:10:14 -04:00
Manevolent
95adfc6e3d
Ignore compressed packets for voice, there is an issue
2018-08-04 23:01:03 -04:00
Manevolent
8f9cc3cdd8
Merge remote-tracking branch 'origin/master'
2018-08-04 22:39:03 -04:00
Manevolent
a535724a4b
Ignore compressed packets for voice, there is an issue
2018-08-04 22:38:44 -04:00
Manevolent
80a57784ef
Any kind of proper acknowledgement constitutes an alive connection for 30 seconds.
2018-08-04 20:08:41 -04:00
Manevolent
7239f3f7ef
Needed virtual server id
2018-08-04 19:31:51 -04:00
Manevolent
1ed4e0c4da
Channel list event is back, adding chat to client commands.
2018-08-04 19:22:08 -04:00
Manevolent
1236221f6b
Commands now spool sequentially. Command ACK queues no longer collide with pings or ack_low. Getter more stable.
2018-08-02 19:52:44 -04:00
Manevolent
964936abdf
Working on commands, having trouble with acks right now
2018-08-01 16:29:31 -04:00
Manevolent
401f00c83d
Added events that were needed
2018-08-01 12:46:14 -04:00
Manevolent
f50ada0888
Working quickly to finish packet generation following. I've implemented my own counter now, using the same window system as the previous Java rewrite, using just an integer array and one array copy call. Hopefully this is good for performance.
...
Also, there was a breaking issue with the computeParameters() call that the test did not account for. Once you reached packet ID 128, the encryption keys were all off. This was due to the packet ID byte shifting: it worked for the first 127 bytes. We can thank Java's lack of unsigned primitives, and a little bit of my own ignorance for that issue.
At this point, I believe all we need now are the clientQuery commands. Several events must be added, and the responding commands must be typed out as well. More to come. Home stretch.
2018-08-01 12:27:09 -04:00
Manevolent
1bdffc8634
Update test
2018-07-31 16:30:22 -04:00
Manevolent
f794c23391
Merge remote-tracking branch 'origin/master'
2018-07-31 16:19:17 -04:00
Manevolent
7b457c97c2
Possibly at the point where we can send audio into a channel now.
2018-07-31 16:19:05 -04:00
Manevolent
44a18ad7a0
Beginning to work on audio stuff now. Lots of changes.
2018-07-31 15:39:03 -04:00
Manevolent
e93b0dee6f
Moving more towards a serverquery look.
2018-07-30 16:32:50 -04:00
Manevolent
f533e2e918
Moving further along with the connection-level commands that are received, and now have model objects to store variables. No callbacks to the server yet, but that will happen soon. Right now I have channel listings and basic client information done.
2018-07-28 22:34:18 -04:00
Manevolent
f124583fa6
Merge remote-tracking branch 'origin/master'
2018-07-28 13:32:29 -04:00
Manevolent
c121202735
We can now connect to servers, get the welcome message, handle pings, properly decompress fragments, etc. I have also added CommandLow/AckLow support. We need to implement data objects now to recognize command objects, and then implement the voice protocol.
2018-07-28 13:32:01 -04:00
Manevolent
ab4cb12010
Command processing started
2018-07-27 16:30:49 -04:00
Manevolent
e4bb886d64
Set state to connected. We may want an interim state for this step of the protocol.
2018-07-27 16:12:06 -04:00
Manevolent
6007b24b5f
Client authentication is done. It will now put an API client in a server, however we clearly need to work on decompression, and we also need to accept and handle ping packets appropriately.
...
Then we can start working on the text-based protocol Teamspeak uses.
2018-07-27 16:07:29 -04:00
Manevolent
146f2b6564
Clientinit is finally being accepted
...
[DEBUG] error id=525 msg=client\sis\smodified
2018-07-27 13:27:40 -04:00
Manevolent
7c1d0dfa4e
Add QuickLZ for compression/decompression, this should finish up the protocol I/O unless I have made mistakes
2018-07-27 09:54:52 -04:00
Manevolent
2c9a6505c0
More tests; I identified two issues. First, the temp key generation was wrong and the clientek would have been wrong. Second, the clientek packet ID is incorrect. It needs to start at 1.
2018-07-27 09:54:01 -04:00
Manevolent
5cdedba51c
Still not getting the last packet to work.
2018-07-26 22:07:05 -04:00
Manevolent
a0009693e2
License hash is failing. Need to fix that
2018-07-26 00:02:36 -04:00
Manevolent
1043a4112c
Getting there.
2018-07-25 23:04:45 -04:00
Manevolent
e941a89c55
Huge refactor
2018-07-25 21:54:28 -04:00
Manevolent
567ee472d6
Trying more things. I think clientek is being rejected.
2018-07-25 12:20:24 -04:00
Manevolent
2dd96d39f3
Mostly done in theory now. Not responding to last packet however.
2018-07-25 11:38:22 -04:00
Manevolent
4c7d011b01
Getting rid of unused imports
2018-07-24 16:27:46 -04:00
Manevolent
4a5bdcd03f
We're now up to the point where we need to work with EdDSA. More to come
2018-07-24 16:23:10 -04:00
Manevolent
24e6e366e5
Got past encryption. Further refactoring as the scope of the project comes into view. Packet fragment reassembly in progress, can ACK commands right now and reassemble clientinitiv2
2018-07-24 12:02:51 -04:00
Manevolent
66cd3d6116
Working on encryption
2018-07-23 22:44:38 -04:00
Manevolent
932fd69769
SimpleCommand object
2018-07-23 16:31:06 -04:00
Manevolent
8067888400
Readme
2018-07-23 16:03:33 -04:00
Manevolent
307cc7be61
Adding missing files
2018-07-23 15:47:21 -04:00
Manevolent
11f5acd60f
I've refactored most of the code. Init1 handshake is basically done, all we have to do now is send the clientinitiv command and we'll be in the higher level authentication steps.
...
I've made the code more server-ready as well since I plan to implement a server API at some point.
2018-07-23 15:45:42 -04:00
Manevolent
c2dc7087ec
Brought in my code and set up some unit tests to start out
2018-07-23 09:53:43 -04:00
Manevolent
c96a2ef0a0
Merge branch 'master' of https://github.com/Manevolent/ts3j
2018-07-23 09:40:54 -04:00
Manevolent
3cff219b7b
Initial commit
2018-07-23 09:38:28 -04:00