mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2024-12-22 12:30:07 +00:00
616c1cf774
This simple program prepares a TCP connection between two ends and allows to perform various operations on them such as send, recv, poll, shutdown, close, reset, etc. It takes care of remaining particularly silent to help inspection via strace, though it can also be verbose and report status, errno, and poll events. It delays acceptation of the incoming server-side connection so that it's even possible to test the poll status on a listener with a pending connection, or to close the connection without accepting it and inspect the effect on the client. Actions are executed in the command line order as they are parsed, they may be grouped using commas when they are performed on the same socket. Example showing a successful recv() of pending data before a pending error: $ ./poll -v -l pol,acc,pol -c snd,shw -s pol,rcv,pol,rcv,pol,snd,lin,clo -c pol,rcv,pol,rcv,pol #### BEGIN #### cmd #1 stp #1: do_pol(3): ret=1 ev=0x1 (IN) cmd #1 stp #2: do_acc(3): ret=5 cmd #1 stp #3: do_pol(3): ret=0 ev=0 cmd #2 stp #1: do_snd(4): ret=3 cmd #2 stp #2: do_shw(4): ret=0 cmd #3 stp #1: do_pol(5): ret=1 ev=0x2005 (IN OUT RDHUP) cmd #3 stp #2: do_rcv(5): ret=3 cmd #3 stp #3: do_pol(5): ret=1 ev=0x2005 (IN OUT RDHUP) cmd #3 stp #4: do_rcv(5): ret=0 cmd #3 stp #5: do_pol(5): ret=1 ev=0x2005 (IN OUT RDHUP) cmd #3 stp #6: do_snd(5): ret=3 cmd #3 stp #7: do_lin(5): ret=0 cmd #3 stp #8: do_clo(5): ret=0 cmd #4 stp #1: do_pol(4): ret=1 ev=0x201d (IN OUT ERR HUP RDHUP) cmd #4 stp #2: do_rcv(4): ret=3 cmd #4 stp #3: do_pol(4): ret=1 ev=0x201d (IN OUT ERR HUP RDHUP) cmd #4 stp #4: do_rcv(4): ret=-1 (Connection reset by peer) cmd #4 stp #5: do_pol(4): ret=1 ev=0x2015 (IN OUT HUP RDHUP) #### END ####
18 lines
282 B
Makefile
18 lines
282 B
Makefile
INCLUDE = -I../../include -I../../ebtree
|
|
|
|
CC = gcc
|
|
OPTIMIZE = -O2
|
|
DEFINE =
|
|
OBJS = flags poll
|
|
|
|
all: $(OBJS)
|
|
|
|
flags: flags.c
|
|
$(CC) $(OPTIMIZE) $(DEFINE) $(INCLUDE) -o $@ $^
|
|
|
|
poll: poll.c
|
|
$(CC) $(OPTIMIZE) $(DEFINE) $(INCLUDE) -o $@ $^
|
|
|
|
clean:
|
|
rm -f $(OBJS) *.[oas] *~
|