Commit Graph
29 Commits
Author SHA1 Message Date
David Fifield b0f99e72bb Handle other unknown response status codes the same as 429. 2020-04-18 16:02:14 -06:00
David Fifield e501935578 Handle 429 Too Many Requests. 2020-04-18 16:02:14 -06:00
David Fifield 973f6310c5 Don't expire ClientMap if timeout is zero. 2020-04-18 16:02:14 -06:00
David Fifield 317c2c43d0 Don't send User-Agent.
HTTP header now looks like
```
POST / HTTP/1.1
Host: 127.0.0.1:8000
Content-Length: 221
Accept: application/dns-message
Content-Type: application/dns-message
Accept-Encoding: gzip
```
2020-04-18 16:02:14 -06:00
David Fifield 087d3b25dd Refactor HTTP response handling. 2020-04-18 16:02:14 -06:00
David Fifield e772e7bf2f Add a timeout to HTTP requests and follow redirects. 2020-04-18 16:02:14 -06:00
David Fifield 5350ea1e68 Increase initPollDelay to 500 ms. 2020-04-18 16:02:14 -06:00
David Fifield 7cbddf5fd9 Rework polling.
Give priority to data-carrying packets over polling packets.
Discard a polling packet whenever sending a data-carrying packet.
2020-04-18 16:02:14 -06:00
David Fifield 06144f76ae -dot mode. 2020-04-18 16:02:11 -06:00
David Fifield 1907daeba0 Simplify HTTPPacketConn. 2020-04-18 14:34:10 -06:00
David Fifield be9c3f1ac7 Refactor PacketConn handling. 2020-04-18 14:34:10 -06:00
David Fifield 7f3e9e4571 Overlay a noise layer atop KCP. 2020-04-18 14:34:10 -06:00
David Fifield 3f98c62207 Log when there's an error opening a stream. 2020-04-18 14:34:10 -06:00
David Fifield a6c891c5ae -doh mode. 2020-04-18 14:33:39 -06:00
David Fifield aefe4f9971 Factor out a pattern for different kinds of remote address. 2020-04-18 14:33:39 -06:00
David Fifield 45c44e1c33 Factor out udp.go. 2020-04-18 14:33:39 -06:00
David Fifield 2cf79b1763 Log stream begin/end. 2020-04-18 14:33:39 -06:00
David Fifield 700291d6a1 MTU to log, not stdout. 2020-04-18 14:33:39 -06:00
David Fifield ea824f3658 Check for error from SetMtu. 2020-04-18 14:33:39 -06:00
David Fifield 584dc3950d Advertise EDNS(0) in client. 2020-04-18 14:33:39 -06:00
David Fifield 410dafa29c Packetization server→client direction. 2020-04-18 14:29:30 -06:00
David Fifield ffcea8b633 Logging in client. 2020-04-18 14:29:30 -06:00
David Fifield 0ebbe21789 Don't explicitly send 0-length packets. 2020-04-18 14:29:30 -06:00
David Fifield 933f17de78 Packetization and padding in the client→server direction. 2020-04-18 14:29:29 -06:00
David Fifield bf609a4cf8 Set MTU based on domain length. 2020-04-18 14:29:13 -06:00
David Fifield f47fa9781b Increasing poll interval. 2020-04-18 14:28:55 -06:00
David Fifield 1a630ef92f Automatic polling. 2020-04-18 14:28:55 -06:00
David Fifield 3b48d1aee1 Send full 8-byte ClientID
Sending just 4 bytes and relying on the convid for the remaining bytes
doesn't work for empty polling requests. Could probably just eliminate
the convid and make it a static constant before feeding to KCP.
2020-04-18 14:28:55 -06:00
David Fifield 9f72a8a87d client 2020-04-18 14:28:53 -06:00