ooni / minivpn

A minimalistic OpenVPN implementation in Go
GNU General Public License v3.0
36 stars 6 forks source link

refactor: introduce tun #54

Closed ainghazal closed 6 months ago

ainghazal commented 6 months ago

This is the seventh (and in a sense, last) commit in the series of incremental refactoring of the current minivpn tree. With this package we have all the needed layers to start reasoning about the complete architecture.

TUN uses a similar strategy to the TLSBio in the tlssession package: it uses channels to communicate with the layer below (the data channel), and it buffers reads.

Reference issue: https://github.com/ooni/minivpn/issues/47