Updated README.md

This commit is contained in:
Joseph Henry 2015-10-27 17:41:51 -07:00
parent 18db95d0e9
commit 21889305e0

View File

@ -94,23 +94,23 @@ To run a simple RX/TX test:
Network Containers have been tested with the following: Network Containers have been tested with the following:
sshd [ WORKS as of 20151022] Long ~15-20s delay for client during connect sshd [ WORKS as of 20151022] Long ~15-20s delay for client during connect
ssh [ WORKS as of 20151022] ssh [ WORKS as of 20151022]
sftp [ WORKS as of 20151022] sftp [ WORKS as of 20151022]
curl [ WORKS as of 20151021] Sometimes "tcp_input: pcb->next != pcb (before cache)" is seen curl [ WORKS as of 20151021] Sometimes "tcp_input: pcb->next != pcb (before cache)" is seen
apache (debug mode) [ WORKS as of 20150810] apache (debug mode) [ WORKS as of 20150810]
apache (prefork MPM) [ WORKS as of 20151021] apache (prefork MPM) [ WORKS as of 20151021]
nginx [ WORKS as of 20151022] nginx [ WORKS as of 20151022]
nodejs [ WORKS as of 20151021] nodejs [ WORKS as of 20151021]
java [ WORKS as of 20151010] java [ WORKS as of 20151010]
tomcat [ WORKS as of 2015xxxx] tomcat [ WORKS as of 2015xxxx]
thttpd [ WORKS as of 2015xxxx] thttpd [ WORKS as of 2015xxxx]
vsftpd [BROKEN as of 20151021] Server sends 500 when 220 is expected vsftpd [BROKEN as of 20151021] Server sends 500 when 220 is expected
mysql [BROKEN as of 20151021] mysql [BROKEN as of 20151021]
postresql [BROKEN as of 20151021] postresql [BROKEN as of 20151021]
MongoDB [BROKEN as of 20151021] MongoDB [BROKEN as of 20151021]
Redis-server [ WORKS as of 20151027] Redis-server [ WORKS as of 20151027]
pure-ftpd [BROKEN as of 20151021] Socket operation on non-socket pure-ftpd [BROKEN as of 20151021] Socket operation on non-socket
To Test: To Test:
@ -125,26 +125,30 @@ To Test:
### Extended Version Notes ### Extended Version Notes
20151027 Added Redis-server support 20151027 Added Redis-server support:
Notes:
- Added extra logic to detect socket re-issuing and consequent service-side double mapping. - Added extra logic to detect socket re-issuing and consequent service-side double mapping.
Redis appears to try to set its initial listen socket to IPV6 only, this currently fails. As Redis appears to try to set its initial listen socket to IPV6 only, this currently fails. As
a result, Redis will close the socket and re-open it. The server will now test for closures a result, Redis will close the socket and re-open it. The server will now test for closures
during mapping and will eliminate any mappings to broken pipes. during mapping and will eliminate any mappings to broken pipes.
20151021 Added Node.js support 20151021 Added Node.js support:
Notes:
- syscall(long number, ...) is now intercepted and re-directs the __NR_accept4 call to our intercepted accept4() function - syscall(long number, ...) is now intercepted and re-directs the __NR_accept4 call to our intercepted accept4() function
- accept() now returns -EAGAIN in the case that we cannot read a signal byte from the descriptor linked to the service. This
is because the uv__server_io() function in libuv used by Node.js looks for this return value upon failure, without it we - accept() now returns -EAGAIN in the case that we cannot read a signal byte from the descriptor linked to the service. This
were observing an innfinite loop in the I/O polling code in libuv. is because the uv__server_io() function in libuv used by Node.js looks for this return value upon failure, without it we
- accept4() now correctly sets given flags for descriptor returned by accept() were observing an innfinite loop in the I/O polling code in libuv.
- setsockopt() was modified to return success on any call with the following conditions:
level == IPPROTO_TCP || (level == SOL_SOCKET && option_name == SO_KEEPALIVE) - accept4() now correctly sets given flags for descriptor returned by accept()
This might be unnecessary or might need a better workaround
- Careful attention should be given to how arguments are passed in the intercepted syscall() function, this differs for - setsockopt() was modified to return success on any call with the following conditions:
32/64-bit systems level == IPPROTO_TCP || (level == SOL_SOCKET && option_name == SO_KEEPALIVE)
This might be unnecessary or might need a better workaround
- Careful attention should be given to how arguments are passed in the intercepted syscall() function, this differs for
32/64-bit systems