Commit Graph

198 Commits

Author SHA1 Message Date
Kleissner
5d9d1bf838 File transfer: New API /file/read 2021-10-27 14:16:13 +02:00
Kleissner
b0f98fdd4f UDT: Simplify closing behavior - removing multiplexer level for reporting close of listener/socket back to upstream provided closer. 2021-10-25 09:56:28 +02:00
Kleissner
13ef42ac39 UDT: Reduce complexity of multiplexer, removes a race condition, increases stability. pktOut was not needed. 2021-10-25 09:46:36 +02:00
Kleissner
e476c7e40b UDT: Remove unnecessary shutdownEvent waiting in udtSocket.Close. permitLinger only allowed for server, unless closed by client. 2021-10-25 09:36:59 +02:00
Kleissner
7afc61edef UDT: Remove unnecessary and confusing sockShutdown. Elevate linger mode to full listen/send mode, which is necessary to combat the shutdown message race condition. Close #47 close #45 2021-10-25 09:12:33 +02:00
Kleissner
0c80eb2e3d UDT: Fix ddos in ackEvent. It sets ackTimerEvent which triggers ackEvent ... an endless loop. ackTimerEvent is actually not needed at all. 2021-10-25 08:42:24 +02:00
Kleissner
1ec20e6386 UDT: Fix critical bug in multiplexer.goWrite. It was overwriting packets on the fly. A new buffer is needed for each outgoing packet. 2021-10-25 07:56:35 +02:00
Kleissner
a8592e9975 Fix #46: Transfer receive data function must be started in go routine since it is blocking. 2021-10-25 06:10:12 +02:00
Kleissner
2984dc6b79 UDT: Fix another critical bug. udtSocketRecv.farNextPktSeq was not incremented.
Note: The open bug #43 is still pending, although it will give a warning now. The warning can be used as debugging point.
2021-10-25 04:50:40 +02:00
Kleissner
2df8dba4fe UDT: Temporary bush fix for buggy code #43. Packet loss is currently ignored, but at least it works now. The function udtSocketRecv.sendNAK is an endless loop and needs a rewrite. 2021-10-25 04:12:44 +02:00
Kleissner
57450e506f UDT: Fix another critical new bug in getRcvSpeeds. CC #43 2021-10-25 04:05:53 +02:00
Kleissner
b0d71c2dc7 UDT: Fix critical bug in reevalSendState 2021-10-25 03:42:04 +02:00
Kleissner
b5266b1c52 File Transfer: Add header to file transfer to indicate file size and transfer size. This is important to know when to stop reading. It will also help when reading only ranges (which is important for video streaming).
New function FileTransferReadHeaderUDT to read the header.
Warehouse: ReadFile return count bytes read
2021-10-25 03:34:28 +02:00
Kleissner
39bc255007 Minor cleanup 2021-10-24 06:31:36 +02:00
Kleissner
f6bbd02a01 Transfer: Change virtual connection from net.PacketConn to channels which is faster and less complex.
Improve termination behavior and documentation of it.
2021-10-24 06:27:23 +02:00
Kleissner
153ca78ed7 UDT: Removing MTU in favor of MaxPacketSize. 2021-10-24 04:59:14 +02:00
Kleissner
75e3d9a42e Initial UDT implementation for file transfer.
New function RequestFileTransferUDT to download files from other peers.
2021-10-24 04:26:30 +02:00
Kleissner
6c2d526251 Protocol sequences: Add support for bidirectional responses. 2021-10-24 02:28:33 +02:00
Kleissner
7b732e1232 Create initial virtual net.PacketConn code for embedding other transfer protocols. This is likely going to be replaced with direct channel I/O.
Create swarm readme! Swarms are to be introduced soon!
2021-10-24 00:18:04 +02:00
Kleissner
789d177052 New function sendTransfer 2021-10-23 06:53:34 +02:00
Kleissner
f1e30c942f webapi: /blockchain/file/add and /blockchain/file/update now always overwrite file size field. Update file now fails if ID is not provided. 2021-10-22 16:55:03 +02:00
Kleissner
0c4562e1d3 Protocol: Fixes in Transfer code. Add IsLast convenience functions. 2021-10-22 06:23:56 +02:00
Kleissner
89f9e3a563 New function PublicKeyFromPeerID 2021-10-22 06:17:28 +02:00
Kleissner
2659921cb8 warehouse: Minor refactoring. Use native hash encoding for FileExists. 2021-10-22 00:21:59 +02:00
Kleissner
c7b9facc10 webapi: /search/result always return stats if requested 2021-10-21 16:18:20 +02:00
Kleissner
d2899a4378 Initial Transfer message encoding. Embedded UDT implementation to follow.
Documentation of file transfer to follow in upcoming Whitepaper update.
2021-10-20 10:20:56 +02:00
Kleissner
fb9944aaed Update readme 2021-10-20 09:00:33 +02:00
Kleissner
e45d6fe888 New function to delete account. Create deletion functions for blockchain and warehouse. Add function /account/delete to webapi. Close #42 2021-10-20 08:46:53 +02:00
Kleissner
285bed59e3 webapi: Document time zone behavior. 2021-10-19 17:36:18 +02:00
Kleissner
f954c4777b Refactor message encoding code into separate files. No code changes. 2021-10-18 04:57:54 +02:00
Kleissner
c9d9be2972 Refactor message encoding into protocol package. User Agent must be now provided in the Init function. 2021-10-18 04:37:02 +02:00
Kleissner
f1e8e0cab8 Finally moving Sequence code into protocol package 2021-10-18 02:41:55 +02:00
Kleissner
5d93a74981 Collecting network vars and functions in networks structure 2021-10-18 02:12:36 +02:00
Kleissner
e2542b3a4d Create struct ipList from ip listening list 2021-10-18 01:10:40 +02:00
Kleissner
1b9151d6fd Refactor sequence code into SequenceManager 2021-10-17 21:34:30 +02:00
Kleissner
767181620e Prepare refactoring of sequence code 2021-10-17 20:02:35 +02:00
Kleissner
be7b596551 Rename field sequence in MessageRaw due to name collision in PacketRaw 2021-10-17 19:42:19 +02:00
Kleissner
77579a8866 Simplify EncodeAnnouncement. Return generic packetsRaw.
Fixes also a theoretical bug in announcement encoding for multicast/broadcast.
2021-10-17 19:30:24 +02:00
Kleissner
b51579fb3f Untangle function IsBadQuality 2021-10-17 18:29:21 +02:00
Kleissner
42ff6d926e Change msgNewSequence function to use parameters 2021-10-17 17:53:48 +02:00
Kleissner
1b93eac17a Moving FeatureSupport() and UserBlockchain.Header() calls out of Message Encoding.
This paves the way for refactoring the message code into the protocol package.
2021-10-17 17:40:22 +02:00
Kleissner
4d3caaf567 Move message sending code into separate file (no code changes) 2021-10-17 17:20:21 +02:00
Kleissner
7be31a9e34 Refactoring code. Use protocol.HashData and HashSize. Move PublicKey2NodeID into protocol. 2021-10-17 17:15:22 +02:00
Kleissner
39217ab5ef Untangle connection parameters from msgEncodeTraverseSetAddress 2021-10-17 16:55:31 +02:00
Kleissner
93f10fd3b5 Untangle connection from MessageRaw, paving the way for refactoring the message code into the protocol package. 2021-10-17 16:39:41 +02:00
Kleissner
0c7b1e0e03 Start refactoring protocol code into sub package. Move Packet Encoding and list of Commands. Change SetSelfReportedPorts parameters.
More related commits to follow!
2021-10-17 16:28:19 +02:00
Kleissner
2476146949 Add info about other UPnP packages 2021-10-16 13:32:43 +02:00
Kleissner
0dc383e767 Moving blockchain code into separate files (no code changes). 2021-10-14 02:40:28 +02:00
Kleissner
e78ca02af7 Housekeeping! Renaming /blockchain functions for simplicity 2021-10-13 22:26:30 +02:00
Kleissner
1c0406dc60 Housekeeping! Removing unnecessary "blockchain" prefix of status codes within the blockchain package. 2021-10-13 21:22:17 +02:00