)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"9ab18961c27a31ef26993e806de96c3e25281b61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5a94d8c2_7189878e","updated":"2025-01-08 13:05:44.000000000","message":"All issues resolved.","commit_id":"8cd993c09e074937acfa64f3a978881309660f24"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"3a506977cf55747526eb78301a41904d0b46513c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"030769e0_13081e68","updated":"2025-01-09 12:13:08.000000000","message":"I believe all the issues have now been fixed.","commit_id":"eef94c5bcf884a21ee90ab54d1241790edfd98ff"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"2e7171e9a6ec3de8612a3c87bb8597fd01034b27","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"9e284785_6e8dad4b","updated":"2025-01-09 14:56:37.000000000","message":"What is the point of backgrounding stuff from an `--up` script that waits on an (unrelated) foreground process to then kill the openvpn process from within the script?  This looks very... weird, also `ps axwu |grep fping` is a very good way to find arbitrary processes running on the system, but not *your* fping.\n\nThe `--up` script should do what an up script does well - save the IP address.  The `wait for fping to terminate` already happens, by nature of a synchronous call, in `ping_lwip_clients()` - so killing the processes should be done from there, when the *correct* fping test is done.\n\nThere\u0027s more comments inline...","commit_id":"9dd299b9282843159c2277302518a816c3367f0c"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"2b6a34132059e92506d911a29fc08cc48965fcf3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6a6d75ca_03c8c097","in_reply_to":"7bcd9a8a_86d52e95","updated":"2025-01-23 14:11:07.000000000","message":"Implemented in patchset 10.","commit_id":"9dd299b9282843159c2277302518a816c3367f0c"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"fdc533947d9c5addd22233137340857f385c58ed","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"7bcd9a8a_86d52e95","in_reply_to":"9e284785_6e8dad4b","updated":"2025-01-23 05:12:58.000000000","message":"Yeah, I think that is definitely a better approach. Even better, it seems possible to do what you propose by changing the .ips file format to include the PID for the client. That way ping_lwip_clients() has the information it needs to kill the lwip openvpn processes. I also don\u0027t see any obvious ways this restructuring could break the rest of the logic in t_server_null_client.sh.\n\nSo, in normal cases ping_lwip_clients() would kill the lwip openvpn clients. A fallback would the self-termination in lwip_client_up.sh.\n\nI\u0027ll start working on this.","commit_id":"9dd299b9282843159c2277302518a816c3367f0c"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"f1d43fbbc4dabd16a2014ccd51f11c80b9ead89e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"83a3bfec_6c9adac1","updated":"2025-01-28 06:22:01.000000000","message":"I\u0027ll mark this as done with the assumption that its not a blocker.","commit_id":"f393c46cc6876b0077ec78587552f0a5fa2f8d19"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"3e4b0588f90a18b09da197a6d5f5ba44b76fc01b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"8a5b2ddc_791df8ef","updated":"2025-03-05 13:41:06.000000000","message":"Note that this is already supported by buildbot docker workers, so the builds for this patch already test the feature.","commit_id":"abd0f6633f907b705eb274af32359ceb81d09ae9"}],"doc/t_server_null.rst":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e2278a8d24d64ca346e36a08692d7c84db01a769","unresolved":true,"context_lines":[{"line_number":126,"context_line":"  CLIENT_EXEC_9L\u003d\"${CLIENT_EXEC}\""},{"line_number":127,"context_line":"  CLIENT_CONF_9L\u003d\"${CLIENT_CONF_BASE_LWIP} --remote 127.0.0.1 1194 udp --proto udp\""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Note that all ovpnlwip test names need to include a \"_lwip\" suffix: without if"},{"line_number":130,"context_line":"ping tests won\u0027t get activated. Also note that the *tests* directory needs to"},{"line_number":131,"context_line":"have the lwipovpn executable or ovpnlwip tests will get skipped. The ovpnlwip"},{"line_number":132,"context_line":"ping tests get the IP addresses to ping from the \\*.ips files created by the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"cfcc4062_edab2a5a","line":129,"updated":"2025-01-08 14:56:05.000000000","message":"\"without it\"","commit_id":"8cd993c09e074937acfa64f3a978881309660f24"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"3a506977cf55747526eb78301a41904d0b46513c","unresolved":false,"context_lines":[{"line_number":126,"context_line":"  CLIENT_EXEC_9L\u003d\"${CLIENT_EXEC}\""},{"line_number":127,"context_line":"  CLIENT_CONF_9L\u003d\"${CLIENT_CONF_BASE_LWIP} --remote 127.0.0.1 1194 udp --proto udp\""},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Note that all ovpnlwip test names need to include a \"_lwip\" suffix: without if"},{"line_number":130,"context_line":"ping tests won\u0027t get activated. Also note that the *tests* directory needs to"},{"line_number":131,"context_line":"have the lwipovpn executable or ovpnlwip tests will get skipped. The ovpnlwip"},{"line_number":132,"context_line":"ping tests get the IP addresses to ping from the \\*.ips files created by the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"2d1c9ea4_216d5c5f","line":129,"in_reply_to":"cfcc4062_edab2a5a","updated":"2025-01-09 12:13:08.000000000","message":"Fixed.","commit_id":"8cd993c09e074937acfa64f3a978881309660f24"}],"tests/lwip_client_up.sh":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"db0b83b931f8d40ab168ccaddda827dad622478c","unresolved":true,"context_lines":[{"line_number":17,"context_line":"maxcount\u003d15"},{"line_number":18,"context_line":"while [ $count -le $maxcount ]; do"},{"line_number":19,"context_line":"    if pgrep fping \u003e /dev/null 2\u003e\u00261; then"},{"line_number":20,"context_line":"\techo \"Waiting for fping to exit ($count/$maxcount)\""},{"line_number":21,"context_line":"        count\u003d$(( count + 1))"},{"line_number":22,"context_line":"\tsleep 1"},{"line_number":23,"context_line":"    else"}],"source_content_type":"text/x-sh","patch_set":2,"id":"1843a1b0_52ead016","line":20,"updated":"2024-11-21 17:20:21.000000000","message":"mixed indent over the next three lines","commit_id":"936a39a7cc5670756279a780baa2fc4fb9e127a2"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"9ab18961c27a31ef26993e806de96c3e25281b61","unresolved":false,"context_lines":[{"line_number":17,"context_line":"maxcount\u003d15"},{"line_number":18,"context_line":"while [ $count -le $maxcount ]; do"},{"line_number":19,"context_line":"    if pgrep fping \u003e /dev/null 2\u003e\u00261; then"},{"line_number":20,"context_line":"\techo \"Waiting for fping to exit ($count/$maxcount)\""},{"line_number":21,"context_line":"        count\u003d$(( count + 1))"},{"line_number":22,"context_line":"\tsleep 1"},{"line_number":23,"context_line":"    else"}],"source_content_type":"text/x-sh","patch_set":2,"id":"e5dfa19e_fca0a793","line":20,"in_reply_to":"1843a1b0_52ead016","updated":"2025-01-08 13:05:44.000000000","message":"Done","commit_id":"936a39a7cc5670756279a780baa2fc4fb9e127a2"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e2278a8d24d64ca346e36a08692d7c84db01a769","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/bin/sh"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Add this client\u0027s IP to a file"},{"line_number":4,"context_line":"if ! grep \"$ifconfig_local\" ./$test_name.ips; then"},{"line_number":5,"context_line":"    echo -n \"$ifconfig_local \" \u003e\u003e ./$test_name.ips"},{"line_number":6,"context_line":"fi"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-sh","patch_set":4,"id":"a46c4c72_23d0241a","line":4,"updated":"2025-01-08 14:56:05.000000000","message":"Should use grep -q","commit_id":"8cd993c09e074937acfa64f3a978881309660f24"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"3a506977cf55747526eb78301a41904d0b46513c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/sh"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Add this client\u0027s IP to a file"},{"line_number":4,"context_line":"if ! grep \"$ifconfig_local\" ./$test_name.ips; then"},{"line_number":5,"context_line":"    echo -n \"$ifconfig_local \" \u003e\u003e ./$test_name.ips"},{"line_number":6,"context_line":"fi"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-sh","patch_set":4,"id":"d09bbc1c_eac12c14","line":4,"in_reply_to":"a46c4c72_23d0241a","updated":"2025-01-09 12:13:08.000000000","message":"Fixed.","commit_id":"8cd993c09e074937acfa64f3a978881309660f24"}],"tests/t_server_null_client.sh":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"db0b83b931f8d40ab168ccaddda827dad622478c","unresolved":true,"context_lines":[{"line_number":3,"context_line":"should_run_test() {"},{"line_number":4,"context_line":"    test_name\u003d\"$1\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    if echo \"$test_name\"|grep _lwip \u003e /dev/null 2\u003e\u00261; then"},{"line_number":7,"context_line":"        if [ \"$has_lwipovpn\" \u003d \"no\" ]; then"},{"line_number":8,"context_line":"\t    return 1"},{"line_number":9,"context_line":"        fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"c505db89_06e4ea15","line":6,"updated":"2024-11-21 17:20:21.000000000","message":"is \"grep -q\" portable? That would be nicer here.","commit_id":"936a39a7cc5670756279a780baa2fc4fb9e127a2"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"9ab18961c27a31ef26993e806de96c3e25281b61","unresolved":false,"context_lines":[{"line_number":3,"context_line":"should_run_test() {"},{"line_number":4,"context_line":"    test_name\u003d\"$1\""},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    if echo \"$test_name\"|grep _lwip \u003e /dev/null 2\u003e\u00261; then"},{"line_number":7,"context_line":"        if [ \"$has_lwipovpn\" \u003d \"no\" ]; then"},{"line_number":8,"context_line":"\t    return 1"},{"line_number":9,"context_line":"        fi"}],"source_content_type":"text/x-sh","patch_set":2,"id":"1acb5cc3_d3a479e7","line":6,"in_reply_to":"c505db89_06e4ea15","updated":"2025-01-08 13:05:44.000000000","message":"Done","commit_id":"936a39a7cc5670756279a780baa2fc4fb9e127a2"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"db0b83b931f8d40ab168ccaddda827dad622478c","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    if echo \"$test_name\"|grep _lwip \u003e /dev/null 2\u003e\u00261; then"},{"line_number":7,"context_line":"        if [ \"$has_lwipovpn\" \u003d \"no\" ]; then"},{"line_number":8,"context_line":"\t    return 1"},{"line_number":9,"context_line":"        fi"},{"line_number":10,"context_line":"    fi"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"81b73860_900e7d09","line":8,"updated":"2024-11-21 17:20:21.000000000","message":"tab indent","commit_id":"936a39a7cc5670756279a780baa2fc4fb9e127a2"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"9ab18961c27a31ef26993e806de96c3e25281b61","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    if echo \"$test_name\"|grep _lwip \u003e /dev/null 2\u003e\u00261; then"},{"line_number":7,"context_line":"        if [ \"$has_lwipovpn\" \u003d \"no\" ]; then"},{"line_number":8,"context_line":"\t    return 1"},{"line_number":9,"context_line":"        fi"},{"line_number":10,"context_line":"    fi"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"c6345891_2ea42088","line":8,"in_reply_to":"81b73860_900e7d09","updated":"2025-01-08 13:05:44.000000000","message":"Done","commit_id":"936a39a7cc5670756279a780baa2fc4fb9e127a2"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"db0b83b931f8d40ab168ccaddda827dad622478c","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    fi"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    if [ $lwip_client_count -eq 0 ]; then"},{"line_number":41,"context_line":"\treturn 0"},{"line_number":42,"context_line":"    fi"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    count\u003d0"}],"source_content_type":"text/x-sh","patch_set":2,"id":"2d16907b_24ca5a14","line":41,"updated":"2024-11-21 17:20:21.000000000","message":"tab indent","commit_id":"936a39a7cc5670756279a780baa2fc4fb9e127a2"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"9ab18961c27a31ef26993e806de96c3e25281b61","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    fi"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    if [ $lwip_client_count -eq 0 ]; then"},{"line_number":41,"context_line":"\treturn 0"},{"line_number":42,"context_line":"    fi"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    count\u003d0"}],"source_content_type":"text/x-sh","patch_set":2,"id":"7d51432a_fcba8233","line":41,"in_reply_to":"2d16907b_24ca5a14","updated":"2025-01-08 13:05:44.000000000","message":"Done","commit_id":"936a39a7cc5670756279a780baa2fc4fb9e127a2"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"db0b83b931f8d40ab168ccaddda827dad622478c","unresolved":true,"context_lines":[{"line_number":159,"context_line":"done"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"# Check for presence of the lwipovpn executable"},{"line_number":162,"context_line":"if test -r ./lwipovpn; then"},{"line_number":163,"context_line":"    has_lwipovpn\u003d\"yes\""},{"line_number":164,"context_line":"else"},{"line_number":165,"context_line":"    has_lwipovpn\u003d\"no\""}],"source_content_type":"text/x-sh","patch_set":2,"id":"ae1b215d_2f625303","line":162,"updated":"2024-11-21 17:20:21.000000000","message":"Would be nice to be able to override this with something like `$LWIPOVPN`. Definitely do not want to copy that executable around all the time.","commit_id":"936a39a7cc5670756279a780baa2fc4fb9e127a2"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"9ab18961c27a31ef26993e806de96c3e25281b61","unresolved":false,"context_lines":[{"line_number":159,"context_line":"done"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"# Check for presence of the lwipovpn executable"},{"line_number":162,"context_line":"if test -r ./lwipovpn; then"},{"line_number":163,"context_line":"    has_lwipovpn\u003d\"yes\""},{"line_number":164,"context_line":"else"},{"line_number":165,"context_line":"    has_lwipovpn\u003d\"no\""}],"source_content_type":"text/x-sh","patch_set":2,"id":"55e97910_8cd840bb","line":162,"in_reply_to":"ae1b215d_2f625303","updated":"2025-01-08 13:05:44.000000000","message":"It is now possible to do\n\n    LWIPOVPN_PATH\u003d/some/path/to/lwipovpn make check\n    \nTo use a custom location.\n\nIt would have been nicer to be able to override it it t_server_null.rc, but that file gets loaded too late for it to have any practical effect on the actual client command-lines.","commit_id":"936a39a7cc5670756279a780baa2fc4fb9e127a2"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"db0b83b931f8d40ab168ccaddda827dad622478c","unresolved":true,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    test_names\u003d\"${test_names} ${test_name}\""},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    if echo \"$test_name\"|grep _lwip \u003e /dev/null; then"},{"line_number":190,"context_line":"        lwip_test_names\u003d\"${lwip_test_names} ${test_name}\""},{"line_number":191,"context_line":"    fi"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"b99be658_67323adc","line":189,"updated":"2024-11-21 17:20:21.000000000","message":"another case for grep -q","commit_id":"936a39a7cc5670756279a780baa2fc4fb9e127a2"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"9ab18961c27a31ef26993e806de96c3e25281b61","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    test_names\u003d\"${test_names} ${test_name}\""},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"    if echo \"$test_name\"|grep _lwip \u003e /dev/null; then"},{"line_number":190,"context_line":"        lwip_test_names\u003d\"${lwip_test_names} ${test_name}\""},{"line_number":191,"context_line":"    fi"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-sh","patch_set":2,"id":"1078467a_e03e2968","line":189,"in_reply_to":"b99be658_67323adc","updated":"2025-01-08 13:05:44.000000000","message":"Done","commit_id":"936a39a7cc5670756279a780baa2fc4fb9e127a2"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"509ad72521347695adc3e25bb17c3e406499f9cd","unresolved":true,"context_lines":[{"line_number":58,"context_line":"    LWIP_CLIENTS\u003d$(cat ./*.ips 2\u003e/dev/null)"},{"line_number":59,"context_line":"    if [ \"$LWIP_CLIENTS\" ]; then"},{"line_number":60,"context_line":"        if ! fping -c 5 $LWIP_CLIENTS; then"},{"line_number":61,"context_line":"            echo \"ERROR: pinging one or more openvpnlwip client IP addresses failed!\""},{"line_number":62,"context_line":"            retval\u003d1"},{"line_number":63,"context_line":"        fi"},{"line_number":64,"context_line":"    fi"}],"source_content_type":"text/x-sh","patch_set":4,"id":"a5f55c92_88fca412","line":61,"updated":"2025-01-08 14:57:17.000000000","message":"This should use FAIL since it actually causes the test to fail. And should issue a \"PASS\" message if it succeeds.","commit_id":"8cd993c09e074937acfa64f3a978881309660f24"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"3a506977cf55747526eb78301a41904d0b46513c","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    LWIP_CLIENTS\u003d$(cat ./*.ips 2\u003e/dev/null)"},{"line_number":59,"context_line":"    if [ \"$LWIP_CLIENTS\" ]; then"},{"line_number":60,"context_line":"        if ! fping -c 5 $LWIP_CLIENTS; then"},{"line_number":61,"context_line":"            echo \"ERROR: pinging one or more openvpnlwip client IP addresses failed!\""},{"line_number":62,"context_line":"            retval\u003d1"},{"line_number":63,"context_line":"        fi"},{"line_number":64,"context_line":"    fi"}],"source_content_type":"text/x-sh","patch_set":4,"id":"05185aa6_2c43584f","line":61,"in_reply_to":"a5f55c92_88fca412","updated":"2025-01-09 12:13:08.000000000","message":"Fixed.","commit_id":"8cd993c09e074937acfa64f3a978881309660f24"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"10460c9c96d95c9b1c3f337200fd0f3dfb74cf51","unresolved":true,"context_lines":[{"line_number":135,"context_line":"    # While inactive server configurations may get checked they won\u0027t increase"},{"line_number":136,"context_line":"    # the active server count as the processes won\u0027t be running."},{"line_number":137,"context_line":"    for i in $(set|grep \u0027SERVER_NAME_\u0027|cut -d \"\u003d\" -f 2|tr -d \"[\\\u0027]\"); do"},{"line_number":138,"context_line":"        server_pid\u003d$(cat \"$i.pid\" 2\u003e /dev/null)"},{"line_number":139,"context_line":"        if [ -z \"$server_pid\" ] ; then"},{"line_number":140,"context_line":"            continue"},{"line_number":141,"context_line":"        fi"}],"source_content_type":"text/x-sh","patch_set":8,"id":"5bcb7010_986383b7","line":138,"updated":"2025-01-09 15:00:02.000000000","message":"this looks like an unrelated change...?","commit_id":"9dd299b9282843159c2277302518a816c3367f0c"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"f1d43fbbc4dabd16a2014ccd51f11c80b9ead89e","unresolved":false,"context_lines":[{"line_number":135,"context_line":"    # While inactive server configurations may get checked they won\u0027t increase"},{"line_number":136,"context_line":"    # the active server count as the processes won\u0027t be running."},{"line_number":137,"context_line":"    for i in $(set|grep \u0027SERVER_NAME_\u0027|cut -d \"\u003d\" -f 2|tr -d \"[\\\u0027]\"); do"},{"line_number":138,"context_line":"        server_pid\u003d$(cat \"$i.pid\" 2\u003e /dev/null)"},{"line_number":139,"context_line":"        if [ -z \"$server_pid\" ] ; then"},{"line_number":140,"context_line":"            continue"},{"line_number":141,"context_line":"        fi"}],"source_content_type":"text/x-sh","patch_set":8,"id":"bb4c0ea7_9138308c","line":138,"in_reply_to":"20dab47b_dd38af2d","updated":"2025-01-28 06:22:01.000000000","message":"Done","commit_id":"9dd299b9282843159c2277302518a816c3367f0c"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"37b2cb3ec1ee8e353e8ee638107d64b1515954b8","unresolved":true,"context_lines":[{"line_number":135,"context_line":"    # While inactive server configurations may get checked they won\u0027t increase"},{"line_number":136,"context_line":"    # the active server count as the processes won\u0027t be running."},{"line_number":137,"context_line":"    for i in $(set|grep \u0027SERVER_NAME_\u0027|cut -d \"\u003d\" -f 2|tr -d \"[\\\u0027]\"); do"},{"line_number":138,"context_line":"        server_pid\u003d$(cat \"$i.pid\" 2\u003e /dev/null)"},{"line_number":139,"context_line":"        if [ -z \"$server_pid\" ] ; then"},{"line_number":140,"context_line":"            continue"},{"line_number":141,"context_line":"        fi"}],"source_content_type":"text/x-sh","patch_set":8,"id":"20dab47b_dd38af2d","line":138,"in_reply_to":"5bcb7010_986383b7","updated":"2025-01-22 15:20:06.000000000","message":"Yes, that seems to be the case. I recall the extra \"tr\" was required on one of the BSDs which added whitespace before or after \"wc -w\" output. Why it worked before (or maybe it did not?) I do not know.\n\nThe latter part was probably just me fixing a small inconsistency when I saw it.\n\nBoth can be split into a separate, trivial patch if we want.","commit_id":"9dd299b9282843159c2277302518a816c3367f0c"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"10460c9c96d95c9b1c3f337200fd0f3dfb74cf51","unresolved":true,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"# Remove existing LWIP client IP files. This is to avoid pinging non-existent"},{"line_number":172,"context_line":"# IP addresses when tests are disabled."},{"line_number":173,"context_line":"$RUN_SUDO rm -f ./*.ips"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"# Wait a while to let server processes to settle down"},{"line_number":176,"context_line":"sleep 1"}],"source_content_type":"text/x-sh","patch_set":8,"id":"0527ab4d_5f6a61dd","line":173,"updated":"2025-01-09 15:00:02.000000000","message":"running `sudo rm -f` gives me the creeps, tbh, though I see no obvious way this could explode (today).  `sudo` is not needed here, anyway, as we have write access to the directory so we can remove whatever files there are.  `-f` is needed (because non-writeable files might otherwise make rm start asking).","commit_id":"9dd299b9282843159c2277302518a816c3367f0c"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"37b2cb3ec1ee8e353e8ee638107d64b1515954b8","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"# Remove existing LWIP client IP files. This is to avoid pinging non-existent"},{"line_number":172,"context_line":"# IP addresses when tests are disabled."},{"line_number":173,"context_line":"$RUN_SUDO rm -f ./*.ips"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"# Wait a while to let server processes to settle down"},{"line_number":176,"context_line":"sleep 1"}],"source_content_type":"text/x-sh","patch_set":8,"id":"c6b7e77a_aaf98854","line":173,"in_reply_to":"0527ab4d_5f6a61dd","updated":"2025-01-22 15:20:06.000000000","message":"I believe you\u0027re correct. If RUN_SUDO was needed for some corner-case I would probably have added a comment explaining that.\n\nI removed RUN_SUDO and ran the code through Buildbot and manually on FreeBSD 14 and NetBSD 10. It still behaved as one would expect.","commit_id":"9dd299b9282843159c2277302518a816c3367f0c"}],"tests/t_server_null_default.rc":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e2278a8d24d64ca346e36a08692d7c84db01a769","unresolved":true,"context_lines":[{"line_number":19,"context_line":"SERVER_CERT\u003d\"${sample_keys}/server.crt\""},{"line_number":20,"context_line":"SERVER_KEY\u003d\"${sample_keys}/server.key\""},{"line_number":21,"context_line":"TA\u003d\"${sample_keys}/ta.key\""},{"line_number":22,"context_line":"LWIPOVPN_PATH\u003d\"${LWIPOVPN_PATH:-lwipovpn}\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# Used to detect if graceful kill of any server instance failed during the test"},{"line_number":25,"context_line":"# run"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"d4f73210_6228eae2","line":22,"updated":"2025-01-08 14:56:05.000000000","message":"This is extremely misleading. This seems to indicate that you can override `LWIPOVPN_PATH`. However you can definitely not do so in t_server_null.rc since that is loaded after t_server_null_default.rc and it is too late. Even more when you set LWIPOVPN_PATH in t_server_null.rc it actually allows to start the lwip tests since the test whether lwipovpn is available does use the updated LWIPOVPN_PATH.\n\nWe either need to clearly define that LWIPOVPN_PATH can not be overridden or we need to fix it so that it can.","commit_id":"8cd993c09e074937acfa64f3a978881309660f24"},{"author":{"_account_id":1000038,"name":"mattock","display_name":"Samuli Seppänen","email":"sasepp@proton.me","username":"mattock","status":"Community member"},"change_message_id":"3a506977cf55747526eb78301a41904d0b46513c","unresolved":false,"context_lines":[{"line_number":19,"context_line":"SERVER_CERT\u003d\"${sample_keys}/server.crt\""},{"line_number":20,"context_line":"SERVER_KEY\u003d\"${sample_keys}/server.key\""},{"line_number":21,"context_line":"TA\u003d\"${sample_keys}/ta.key\""},{"line_number":22,"context_line":"LWIPOVPN_PATH\u003d\"${LWIPOVPN_PATH:-lwipovpn}\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# Used to detect if graceful kill of any server instance failed during the test"},{"line_number":25,"context_line":"# run"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"ab8689e8_99bd56fe","line":22,"in_reply_to":"d4f73210_6228eae2","updated":"2025-01-09 12:13:08.000000000","message":"I actually mentioned this in my comment to patchset 2, quoted below in full:\n\n---\n\nIt is now possible to do\n\nLWIPOVPN_PATH\u003d/some/path/to/lwipovpn make check\n\nTo use a custom location.\n\nIt would have been nicer to be able to override it it t_server_null.rc, but that file gets loaded too late for it to have any practical effect on the actual client command-lines.\n\n---\n\nThis override mechanism is already used in openvpn-buildbot, see\n\nhttps://github.com/OpenVPN/openvpn-buildbot/blob/master/buildbot-host/buildmaster/master.cfg#L506\n\nI\u0027ve added a comment to the file that explains how this works.\n\nThe details are already lost in the mists of time, but I remember not seeing an obvious alternative solution to this that would not have involved a fair amount of refactoring. Hence I opted for this simple solution which I agree was misleading, especially when not documented.","commit_id":"8cd993c09e074937acfa64f3a978881309660f24"}]}
