Simple Async TLS Proxy
Support platform
- Mac Os X
- Linux
Contributing
If you'd like to contribute to the project, please read our Contributing guide.
License
This project is licensed under the Apache license.
Simple TLS Proxy
License: Apache License 2.0
If you'd like to contribute to the project, please read our Contributing guide.
This project is licensed under the Apache license.
A hook is needed for injecting logic to extract details from certificate and forward authorization context to target.
Currently tests are failing in CI because the cert has expired
similar to https://github.com/infinyon/future-aio
following log should not be error:
Nov 11 22:50:09.101 ERROR flv_tls_proxy::proxy: error handshaking: tls handshake eof from source: 192.168.49.1:53074
Nov 11 22:50:11.217 ERROR flv_tls_proxy::proxy: 0.0.0.0:9005->192.168.49.1:53086 error copying: Broken pipe (os error 32)
Currently rustls version of proxy only works within same thread:
make test-proxy
ct 20 21:44:59.209 DEBUG proxy: client: sleep to give server chance to come up
Oct 20 21:44:59.209 DEBUG proxy: server: binding
Oct 20 21:44:59.209 DEBUG proxy: server: successfully binding. waiting for incoming
Oct 20 21:44:59.409 DEBUG proxy: client: trying to connect
Oct 20 21:44:59.417 DEBUG proxy: client: got connection. waiting
Oct 20 21:44:59.418 DEBUG proxy: client: loop 0 sending test message: message0
Oct 20 21:44:59.418 DEBUG proxy: server: loop 0, received reply back bytes: 8
Oct 20 21:44:59.418 DEBUG proxy: server: loop 0, received message: message0
Oct 20 21:44:59.418 DEBUG proxy: sever: send back reply: message0reply
Oct 20 21:44:59.418 DEBUG proxy: client: loop 0, received reply back bytes: 13
Oct 20 21:44:59.418 DEBUG proxy: client: loop 0, received reply message: message0reply
Oct 20 21:44:59.418 DEBUG proxy: client: loop 1 sending test message: message1
Oct 20 21:44:59.419 DEBUG proxy: server: loop 1, received reply back bytes: 8
Oct 20 21:44:59.419 DEBUG proxy: server: loop 1, received message: message1
Oct 20 21:44:59.419 DEBUG proxy: sever: send back reply: message1reply
Oct 20 21:44:59.419 DEBUG proxy: client: loop 1, received reply back bytes: 13
Oct 20 21:44:59.419 DEBUG proxy: client: loop 1, received reply message: message1reply
Oct 20 21:44:59.419 DEBUG proxy: client: loop 2 sending test message: message2
Oct 20 21:44:59.420 DEBUG proxy: server: loop 2, received reply back bytes: 8
Oct 20 21:44:59.420 DEBUG proxy: server: loop 2, received message: message2
Oct 20 21:44:59.420 DEBUG proxy: sever: send back reply: message2reply
Oct 20 21:44:59.420 DEBUG proxy: client: loop 2, received reply back bytes: 13
Oct 20 21:44:59.420 DEBUG proxy: client: loop 2, received reply message: message2reply
Oct 20 21:44:59.420 DEBUG proxy: client: loop 3 sending test message: message3
Oct 20 21:44:59.420 DEBUG proxy: server: loop 3, received reply back bytes: 8
Oct 20 21:44:59.420 DEBUG proxy: server: loop 3, received message: message3
Oct 20 21:44:59.420 DEBUG proxy: sever: send back reply: message3reply
Oct 20 21:44:59.421 DEBUG proxy: client: loop 3, received reply back bytes: 13
Oct 20 21:44:59.421 DEBUG proxy: client: loop 3, received reply message: message3reply
Oct 20 21:44:59.421 DEBUG proxy: client: loop 4 sending test message: message4
Oct 20 21:44:59.421 DEBUG proxy: server: loop 4, received reply back bytes: 8
Oct 20 21:44:59.421 DEBUG proxy: server: loop 4, received message: message4
Oct 20 21:44:59.421 DEBUG proxy: sever: send back reply: message4reply
Oct 20 21:44:59.421 DEBUG proxy: client: loop 4, received reply back bytes: 13
Oct 20 21:44:59.422 DEBUG proxy: client: loop 4, received reply message: message4reply
Oct 20 21:44:59.422 DEBUG proxy: client: loop 5 sending test message: message5
Oct 20 21:44:59.422 DEBUG proxy: server: loop 5, received reply back bytes: 8
Oct 20 21:44:59.422 DEBUG proxy: server: loop 5, received message: message5
Oct 20 21:44:59.422 DEBUG proxy: sever: send back reply: message5reply
Oct 20 21:44:59.422 DEBUG proxy: client: loop 5, received reply back bytes: 13
Oct 20 21:44:59.422 DEBUG proxy: client: loop 5, received reply message: message5reply
Oct 20 21:44:59.422 DEBUG proxy: client: loop 6 sending test message: message6
Oct 20 21:44:59.423 DEBUG proxy: server: loop 6, received reply back bytes: 8
Oct 20 21:44:59.423 DEBUG proxy: server: loop 6, received message: message6
Oct 20 21:44:59.423 DEBUG proxy: sever: send back reply: message6reply
Oct 20 21:44:59.423 DEBUG proxy: client: loop 6, received reply back bytes: 13
Oct 20 21:44:59.423 DEBUG proxy: client: loop 6, received reply message: message6reply
Oct 20 21:44:59.423 DEBUG proxy: client: loop 7 sending test message: message7
Oct 20 21:44:59.423 DEBUG proxy: server: loop 7, received reply back bytes: 8
Oct 20 21:44:59.423 DEBUG proxy: server: loop 7, received message: message7
Oct 20 21:44:59.423 DEBUG proxy: sever: send back reply: message7reply
Oct 20 21:44:59.424 DEBUG proxy: client: loop 7, received reply back bytes: 13
Oct 20 21:44:59.424 DEBUG proxy: client: loop 7, received reply message: message7reply
Oct 20 21:44:59.424 DEBUG proxy: client: loop 8 sending test message: message8
Oct 20 21:44:59.424 DEBUG proxy: server: loop 8, received reply back bytes: 8
Oct 20 21:44:59.424 DEBUG proxy: server: loop 8, received message: message8
Oct 20 21:44:59.424 DEBUG proxy: sever: send back reply: message8reply
Oct 20 21:44:59.424 DEBUG proxy: client: loop 8, received reply back bytes: 13
Oct 20 21:44:59.425 DEBUG proxy: client: loop 8, received reply message: message8reply
Oct 20 21:44:59.425 DEBUG proxy: client: loop 9 sending test message: message9
Oct 20 21:44:59.425 DEBUG proxy: server: loop 9, received reply back bytes: 8
Oct 20 21:44:59.425 DEBUG proxy: server: loop 9, received message: message9
Oct 20 21:44:59.425 DEBUG proxy: sever: send back reply: message9reply
Oct 20 21:44:59.425 DEBUG proxy: server done
Oct 20 21:44:59.425 DEBUG proxy: client: loop 9, received reply back bytes: 13
Oct 20 21:44:59.425 DEBUG proxy: client: loop 9, received reply message: message9reply
Oct 20 21:44:59.425 DEBUG proxy: client done
It doesn't work with when spawning into task:
test-proxy-spawn
Oct 20 21:41:54.307 DEBUG proxy: client: sleep to give server chance to come up
Oct 20 21:41:54.307 DEBUG proxy: server: binding
Oct 20 21:41:54.307 DEBUG proxy: server: successfully binding. waiting for incoming
Oct 20 21:41:54.507 DEBUG proxy: client: trying to connect
Oct 20 21:41:54.516 DEBUG proxy: client: got connection. waiting
Oct 20 21:41:54.516 DEBUG proxy: client: loop 0 sending test message: message0
Oct 20 21:41:54.516 DEBUG proxy: server: loop 0, received reply back bytes: 8
Oct 20 21:41:54.516 DEBUG proxy: server: loop 0, received message: message0
Oct 20 21:41:54.517 DEBUG proxy: sever: send back reply: message0reply
Oct 20 21:41:54.517 DEBUG proxy: client: loop 0, received reply back bytes: 13
Oct 20 21:41:54.517 DEBUG proxy: client: loop 0, received reply message: message0reply
Oct 20 21:41:54.517 DEBUG proxy: client: loop 1 sending test message: message1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.