mistotebe / skeeter Goto Github PK
View Code? Open in Web Editor NEWA small libevent based reverse proxy
License: Other
A small libevent based reverse proxy
License: Other
The server banner and response to the CAPABILITY command are currently hardcoded. This manifests as several quirks:
This is a blocker for #7 where all supported SASL mechanisms have to be advertised in the CAPABILITY string
And any other useful information.
Skeeter should be able to act the server part of a SASL authentication and then if that was successful, authenticate to the backend separately using its own credentials and the user's authorization identity.
Skeeter should be able to at least snoop the beginning of a client-first SASL conversation to retrieve the user identity to guide the mailhost resolution.
#4 depends on it
README is not mentioning the dependency on libconfig. It also does not mention, that bufferevent_trigger is needed thus the latest released libevent 2.1.3 alpha is not sufficient.
Skeeter should be able to handle literal and quoted username and password arguments to the LOGIN command. The resolution of #3 was written with this in mind.
As imtest, the cyrus' IMAP utility, uses literals in these arguments by default, this belongs in the first alpha.
The infrastructure is undergoing a sizeable rework, it would be good to have some tests in place to keep the development on track.
When connecting to the remote server, we should verify that the certificate is valid and matches the proper name in CommonName or DNSname.
Currently, the proxy callbacks make up a naive read/write pair, never limiting the amount of data buffered inside skeeter. This can easily get out of hand with asymmetric connections where one side is able to generate data faster than the other can receive.
Possibly a small state machine interacting with the watermarks should be able to fix this. Not sure about the buffering properties and the verifiability of that code.
The process should call daemon() unless asked not to, also it should create a pid file in this case.
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.