summaryrefslogtreecommitdiffstats
path: root/tests/conf/test-handshakes.cfg
diff options
context:
space:
mode:
Diffstat (limited to 'tests/conf/test-handshakes.cfg')
-rw-r--r--tests/conf/test-handshakes.cfg135
1 files changed, 135 insertions, 0 deletions
diff --git a/tests/conf/test-handshakes.cfg b/tests/conf/test-handshakes.cfg
new file mode 100644
index 0000000..247b38b
--- /dev/null
+++ b/tests/conf/test-handshakes.cfg
@@ -0,0 +1,135 @@
+# This config tries to involve the various possible combinations of connection
+# handshakes, on the accept side and on the connect side. It also produces logs
+# indicating the handshake time.
+#
+# May be tested with tcploop as the server, both for TCP and HTTP mode :
+# - accept new connection
+# - pause 100ms
+# - send what looks like an HTTP response
+# - wait 500ms and close
+#
+# Starting log server (mainly to check timers) :
+# $ socat udp-recvfrom:5514,fork -
+#
+# Starting server :
+# $ tcploop 8000 L N A W P100 S:"HTTP/1.0 200 OK\r\nConnection: close\r\n\r\n" P500
+#
+# Testing all combinations with server-speaks-first (tcp) :
+# $ nc 0 8007
+#
+# Testing all combinations with client-speaks-first (tcp) :
+# $ (printf "GET / HTTP/1.0\r\n\r\n";sleep 1) | nc 0 8007
+#
+# Testing all combinations with client-speaks-first after pause (tcp) :
+# $ (usleep 0.05 ; printf "GET / HTTP/1.0\r\n\r\n";sleep 1) | nc 0 8007
+#
+# Testing all combinations with client-speaks-first (http) :
+# $ (printf "GET / HTTP/1.0\r\n\r\n";sleep 1) | nc 0 8017
+#
+# Testing all combinations with client-speaks-first after pause (http) :
+# $ (usleep 0.05 ; printf "GET / HTTP/1.0\r\n\r\n";sleep 1) | nc 0 8017
+#
+# Same tests must be redone after surrounding connect() in tcp_connect_server()
+# with fcntl(fd, F_SETFL, 0) and fcntl(fd, F_SETFL, O_NONBLOCK) for sycnhronous
+# connect().
+
+global
+ stats socket /tmp/sock1 level admin
+ stats timeout 1h
+ ssl-server-verify none
+ tune.ssl.default-dh-param 2048
+ log 127.0.0.1:5514 local0 debug debug
+
+#################################################################
+## TCP instances connect to port 8000 and listen to 8001..8007
+#################################################################
+defaults TCP
+ timeout client 5s
+ timeout server 4s
+ timeout connect 3s
+ log global
+ log-format "%ci:%cp %ft %b/%s h=%Th/w=%Tw/c=%Tc/t=%Tt %ST %B %tsc %ac/%fc/%bc/%sc/%rc %sq/%bq %hr %hs"
+
+# connects to port local 8000
+listen tcp-none-in-none-out
+ bind :8001
+ server s 127.0.0.1:8000
+
+# takes ssl+pp on input, nothing on output
+listen tcp-sslpp-in-none-out
+ bind :8002 ssl crt rsa2048.pem accept-proxy
+ server s 127.0.0.1:8001
+
+# takes nothing on input, sends ssl+pp
+listen tcp-none-in-sslpp-out
+ bind :8003
+ server s 127.0.0.1:8002 ssl send-proxy-v2
+
+# takes pp on input, nothing on output
+listen tcp-pp-in-none-out
+ bind :8004 accept-proxy
+ server s 127.0.0.1:8003
+
+# takes nothing on input, sends pp
+listen tcp-none-in-pp-out
+ bind :8005
+ server s 127.0.0.1:8004 send-proxy-v2
+
+# takes ssl on input, sends nothing
+listen tcp-ssl-in-none-out
+ bind :8006 ssl crt rsa2048.pem
+ server s 127.0.0.1:8005
+
+# takes nothing on input, sends ssl
+listen tcp-none-in-ssl-out
+ bind :8007
+ server s 127.0.0.1:8006 ssl
+
+
+#################################################################
+## HTTP instances also connect to port 8000 but they listen to
+## 8011..8017
+#################################################################
+
+defaults HTTP
+ timeout client 5s
+ timeout server 4s
+ timeout connect 3s
+ mode http
+ log global
+ log-format "%ci:%cp [%tr] %ft %b/%s h=%Th/i=%Ti/R=%TR/w=%Tw/c=%Tc/r=%Tr/a=%Ta/t=%Tt %ST %B %CC %CS %tsc %ac/%fc/%bc/%sc/%rc %sq/%bq %hr %hs %{+Q}r"
+
+# connects to port local 8000
+listen http-none-in-none-out
+ bind :8011
+ server s 127.0.0.1:8000
+
+# takes ssl+pp on input, nothing on output
+listen http-sslpp-in-none-out
+ bind :8012 ssl crt rsa2048.pem accept-proxy
+ server s 127.0.0.1:8011
+
+# takes nothing on input, sends ssl+pp
+listen http-none-in-sslpp-out
+ bind :8013
+ server s 127.0.0.1:8012 ssl send-proxy-v2
+
+# takes pp on input, nothing on output
+listen http-pp-in-none-out
+ bind :8014 accept-proxy
+ server s 127.0.0.1:8013
+
+# takes nothing on input, sends pp
+listen http-none-in-pp-out
+ bind :8015
+ server s 127.0.0.1:8014 send-proxy-v2
+
+# takes ssl on input, sends nothing
+listen http-ssl-in-none-out
+ bind :8016 ssl crt rsa2048.pem
+ server s 127.0.0.1:8015
+
+# takes nothing on input, sends ssl
+listen http-none-in-ssl-out
+ bind :8017
+ server s 127.0.0.1:8016 ssl