Commit Graph

191 Commits (master)

Author SHA1 Message Date
Christian Ulrich bf2fcc1602
use random source port to work around 'address in use' error 2020-09-25 20:58:04 +02:00
Christian Ulrich 56bfb253e5
more meaningful debug messages 2020-09-25 17:19:34 +02:00
Christian Ulrich 9b2e72d7dc
raise PunchdError for errors from punchd 2020-08-27 00:06:51 +02:00
Christian Ulrich 006ec73361
add timeouts 2020-08-27 00:03:14 +02:00
Christian Ulrich 0fe1b6ac06
FIXME was solved 2020-08-26 22:39:57 +02:00
Christian Ulrich 39921daf83
adapt examples to 7d2a92346d 2020-08-26 21:39:17 +02:00
Christian Ulrich 7b4f3b790e
only use one destination port for now 2020-08-26 21:34:35 +02:00
Christian Ulrich 7d2a92346d
don't force 3 ports / sequence numbers 2020-08-26 21:33:13 +02:00
Christian Ulrich 0125993ccd
include TCP window size and reuse parsed packet when resending 2020-08-23 22:48:34 +02:00
Christian Ulrich fe2b52f168
need TCP acknowledgment number 2020-08-23 22:38:10 +02:00
Christian Ulrich 255366c337
let initiator send ping 2020-08-23 16:28:38 +02:00
Christian Ulrich af9dedf75a
pass exact size to recv 2020-08-23 16:11:53 +02:00
Christian Ulrich 239131eae5
break both loop to stop packet flood 2020-08-23 16:02:28 +02:00
Christian Ulrich 7bc90f02b8
need a second socket for injecting 2020-08-23 15:52:50 +02:00
Christian Ulrich e745141b51
have to resend ACK, not SYN+ACK 2020-08-23 15:17:19 +02:00
Christian Ulrich ee2f95b72f
try other direction 2020-08-23 14:48:43 +02:00
Christian Ulrich 6836c54737
improve debug output 2020-08-23 14:41:38 +02:00
Christian Ulrich acfcb79108
resend SYN+ACK with normal TTL 2020-08-23 14:36:19 +02:00
Christian Ulrich 0f622c0953
remove debug output 2020-08-23 12:49:06 +02:00
Christian Ulrich 80c2c50d26
fix buffer size for control messages 2020-08-23 12:45:05 +02:00
Christian Ulrich 6f75ffb35c
workaround segfault (need to investigate later) 2020-08-22 13:11:55 +02:00
Christian Ulrich e23457a647
cleanup on SIGINT 2020-08-22 12:34:12 +02:00
Christian Ulrich 1dc7cf6676
try to implement clean firewall rule creation / destruction 2020-08-21 23:12:45 +02:00
Christian Ulrich f9f18ec3a4
remove debug output 2020-08-21 23:10:55 +02:00
Christian Ulrich f5d36f82d5
fix firewall logic 2020-08-18 00:34:21 +02:00
Christian Ulrich a1fbc27c54
fix compilation on arm64 2020-08-17 20:26:12 +02:00
Christian Ulrich a6d14a3b06
insert firewall rule at the head of the chain instead of appending 2020-08-16 15:45:18 +02:00
Christian Ulrich d02c0ddd82
decrease delay after failed connection 2020-08-16 12:42:04 +02:00
Christian Ulrich dcd2c03d45
introduce AcceptPort constant; add debug output 2020-08-16 12:41:07 +02:00
Christian Ulrich 2e09016b9c
add FIXME 2020-08-16 12:40:28 +02:00
Christian Ulrich 7f40ab0082
source port may take a bit to become available again, so retry binding three times 2020-07-29 20:15:01 +02:00
Christian Ulrich d1b104c666
set punchd socket file permissions to 0666 2020-07-28 00:18:27 +02:00
Christian Ulrich e8d06b5982
delete punchd socket on SIGINT 2020-07-28 00:17:45 +02:00
Christian Ulrich 5d08473d86
userSock may be closed in handleRequest, so check before recvLine 2020-07-27 23:51:16 +02:00
Christian Ulrich 7c010f9303
get-info -> get-peerinfo 2020-07-26 17:48:47 +02:00
Christian Ulrich 3d40ddec85
introduce get-endpoint: server sends endpoint info and closes connection (allows subsequent connections to the same server) 2020-07-26 17:46:17 +02:00
Christian Ulrich f23093fd69
cosmetic 2020-07-25 12:00:45 +02:00
Christian Ulrich 73a22c0816
actually store netmask 2020-07-25 12:00:21 +02:00
Christian Ulrich 4f64b7be53
implement primitive probing of the rendezvous server's public IP and provide it to LAN clients 2020-07-22 02:04:02 +02:00
Christian Ulrich 32ecd8074c
calling close causes AssertionError 2020-07-22 01:32:04 +02:00
Christian Ulrich 12ef92dfe9
use IpAddress instead of string 2020-07-22 01:28:55 +02:00
Christian Ulrich 44cc3955b5
provide netmask in NetworkInterface 2020-07-21 23:53:28 +02:00
Christian Ulrich 02a96ac412
make asyncExecCmd return the console output and raise an exception if exitcode != 0 2020-07-21 22:56:06 +02:00
Christian Ulrich 9ad26a76d9
fix compile error 2020-07-21 22:54:34 +02:00
Christian Ulrich 6e36b5addd
probe ports and use results to register and notify peer 2020-07-21 19:53:21 +02:00
Christian Ulrich 187b232162
use dynamic length of destination ports and captured sequence numbers (3 for now) 2020-07-21 11:10:56 +02:00
Christian Ulrich 301ca6c81d
sometimes recvLine returns "\r\n" when the peer disconnects (not documented). Handle that as a disconnect. 2020-07-21 10:17:36 +02:00
Christian Ulrich 41048dd8cd
must strip newline from punchd message 2020-07-20 10:08:28 +02:00
Christian Ulrich 3f9cb6a3b1
only accept once and only use one injection socket 2020-07-18 15:04:46 +02:00
Christian Ulrich ef68519eec
fix 'invalid argument' by using a separate socket for listening 2020-07-18 13:06:22 +02:00