vtest "Basic test for peers protocol over SSL/TLS with stick-table declared in peers sections"
feature ignore_unknown_macro

#REQUIRE_VERSION=2.0
#REQUIRE_OPTIONS=OPENSSL
#REGTEST_TYPE=slow

haproxy h1 -arg "-L A" -conf {
    defaults
        timeout client  1s
        timeout connect 1s
        timeout server  1s

    peers peers
        table stkt type string size 10m store server_id,gpc0,conn_cur,conn_rate(50000)
        default-server ssl crt ${testdir}/common.pem verify none
        bind "fd@${A}" ssl crt ${testdir}/common.pem
        server A
        server B ${h2_B_addr}:${h2_B_port}
        server C ${h3_C_addr}:${h3_C_port}
        server D ${h4_D_addr}:${h4_D_port}

    frontend fe
        bind "fd@${fe}"
	tcp-request inspect-delay 100ms
        tcp-request content track-sc0 url table peers/stkt
        tcp-request content sc-inc-gpc0(0)
}

haproxy h2 -arg "-L B" -conf {
    defaults
        mode http
        timeout client  1s
        timeout connect 1s
        timeout server  1s

    peers peers
        table stkt type string size 10m store server_id,gpc0,conn_cur,conn_rate(50000)
        default-server ssl crt ${testdir}/common.pem verify none
        bind "fd@${B}" ssl crt ${testdir}/common.pem
        server A ${h1_A_addr}:${h1_A_port}
        server B
        server C ${h3_C_addr}:${h3_C_port}
        server D ${h4_D_addr}:${h4_D_port}

    frontend fe
        bind "fd@${fe}"
        http-request track-sc0 url table peers/stkt
        http-request sc-inc-gpc0(0)
}

haproxy h3 -arg "-L C" -conf {
    defaults
        mode http
        timeout client  1s
        timeout connect 1s
        timeout server  1s

    peers peers
        table stkt type string size 10m store server_id,gpc0,conn_cur,conn_rate(50000)
        default-server ssl crt ${testdir}/common.pem verify none
        bind "fd@${C}" ssl crt ${testdir}/common.pem
        server A ${h1_A_addr}:${h1_A_port}
        server B ${h2_B_addr}:${h2_B_port}
        server C
        server D ${h4_D_addr}:${h4_D_port}

    frontend fe
        bind "fd@${fe}"
        http-request track-sc0 url table peers/stkt
        http-request sc-inc-gpc0(0)
}

haproxy h4 -arg "-L D" -conf {
    defaults
        mode http
        timeout client  1s
        timeout connect 1s
        timeout server  1s

    backend stkt

    peers peers
        table stkt type string size 10m store server_id,gpc0,conn_cur,conn_rate(50000)
        bind "fd@${D}"
        server A ${h1_A_addr}:${h1_A_port}
        server B ${h2_B_addr}:${h2_B_port}
        server C ${h3_C_addr}:${h3_C_port}
        server D

    frontend fe
        bind "fd@${fe}"
        http-request track-sc0 url table peers/stkt
        http-request sc-inc-gpc0(0)
}

client c1 -connect ${h1_fe_sock} {
    txreq -url "/c1_client"
    expect_close
} -start

client c2 -connect ${h1_fe_sock} {
    txreq -url "/c2_client"
    expect_close
} -start

client c3 -connect ${h1_fe_sock} {
    txreq -url "/c3_client"
    expect_close
} -start

client c4 -connect ${h1_fe_sock} {
    txreq -url "/c4_client"
    expect_close
} -start

haproxy h1 -start
delay 0.02
haproxy h2 -start
delay 0.02
haproxy h3 -start
delay 0.02
haproxy h4 -start
delay 0.02

client c1 -wait
client c2 -wait
client c3 -wait
client c4 -wait

delay 3

haproxy h1 -cli {
    send "show table peers/stkt"
    expect ~ "# table: peers/stkt, type: string, size:1048[0-9]{4}, used:4(\n0x[0-9a-f]*: key=/c[1-4]_client use=0 exp=0 server_id=0 gpc0=1 conn_rate\\(50000\\)=1 conn_cur=0){4}"
}

haproxy h2 -cli {
    send "show table peers/stkt"
    expect ~ "# table: peers/stkt, type: string, size:1048[0-9]{4}, used:4(\n0x[0-9a-f]*: key=/c[1-4]_client use=0 exp=0 server_id=0 gpc0=1 conn_rate\\(50000\\)=1 conn_cur=0){4}"
}

haproxy h3 -cli {
    send "show table peers/stkt"
    expect ~ "# table: peers/stkt, type: string, size:1048[0-9]{4}, used:4(\n0x[0-9a-f]*: key=/c[1-4]_client use=0 exp=0 server_id=0 gpc0=1 conn_rate\\(50000\\)=1 conn_cur=0){4}"
}

haproxy h4 -cli {
    send "show table peers/stkt"
    expect ~ "# table: peers/stkt, type: string, size:1048[0-9]{4}, used:0\n"
}

