aboutsummaryrefslogtreecommitdiff
path: root/conn/bind_std.go (follow)
Commit message (Collapse)AuthorAgeFilesLines
* conn: reconstruct v4 vs v6 receive function based on symtabJason A. Donenfeld2021-04-121-4/+11
| | | | | | This is kind of gross but it's better than the alternatives. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* all: make conn.Bind.Open return a slice of receive functionsJosh Bleecher Snyder2021-04-021-31/+38
| | | | | | | | | | | | | | | | | Instead of hard-coding exactly two sources from which to receive packets (an IPv4 source and an IPv6 source), allow the conn.Bind to specify a set of sources. Beneficial consequences: * If there's no IPv6 support on a system, conn.Bind.Open can choose not to return a receive function for it, which is simpler than tracking that state in the bind. This simplification removes existing data races from both conn.StdNetBind and bindtest.ChannelBind. * If there are more than two sources on a system, the conn.Bind no longer needs to add a separate muxing layer. Signed-off-by: Josh Bleecher Snyder <josharian@gmail.com>
* conn: document retry loop in StdNetBind.OpenJosh Bleecher Snyder2021-03-301-0/+3
| | | | | | It's not obvious on a first read what the loop is doing. Signed-off-by: Josh Bleecher Snyder <josharian@gmail.com>
* conn: use local ipvN vars in StdNetBind.OpenJosh Bleecher Snyder2021-03-301-11/+9
| | | | | | | | | This makes it clearer that they are fresh on each attempt, and avoids the bookkeeping required to clearing them on failure. Also, remove an unnecessary err != nil. Signed-off-by: Josh Bleecher Snyder <josharian@gmail.com>
* conn: unify code in StdNetBind.SendJosh Bleecher Snyder2021-03-301-14/+13
| | | | | | | The sending code is identical for ipv4 and ipv6; select the conn, then use it. Signed-off-by: Josh Bleecher Snyder <josharian@gmail.com>
* conn: implement RIO for fast Windows UDP socketsJason A. Donenfeld2021-02-251-0/+2
| | | | Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
* conn: make binds replacableJason A. Donenfeld2021-02-231-0/+180
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>