haproxy/contrib/debug/Makefile

18 lines
267 B
Makefile
Raw Normal View History

INCLUDE = -I../../include
CC = gcc
OPTIMIZE = -O2
DEFINE =
CONTRIB: debug: add new program "poll" to test poll() events 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 ####
2019-09-05 07:18:47 +00:00
OBJS = flags poll
all: $(OBJS)
flags: flags.c
$(CC) $(OPTIMIZE) $(DEFINE) $(INCLUDE) -o $@ $^
CONTRIB: debug: add new program "poll" to test poll() events 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 ####
2019-09-05 07:18:47 +00:00
poll: poll.c
$(CC) $(OPTIMIZE) $(DEFINE) $(INCLUDE) -o $@ $^
clean:
rm -f $(OBJS) *.[oas] *~