diff --git a/apps/cli/cli_main.c b/apps/cli/cli_main.c
index 4860f637..a9e2f7bf 100644
--- a/apps/cli/cli_main.c
+++ b/apps/cli/cli_main.c
@@ -599,7 +599,11 @@ main(int argc, char **argv)
/* Go into event-loop unless -1 command-line */
if (!once){
- /* send hello request from backend hello */
+ /* Send hello request to backend to get session-id back
+ * This is done once at the beginning of the session and then this is
+ * used by the client, even though new TCP sessions are created for
+ * each message sent to the backend.
+ */
if (clicon_hello_req(h, &id) < 0)
goto done;
clicon_session_id_set(h, id);
diff --git a/apps/netconf/netconf_main.c b/apps/netconf/netconf_main.c
index e9e9a89b..02e8d94e 100644
--- a/apps/netconf/netconf_main.c
+++ b/apps/netconf/netconf_main.c
@@ -562,11 +562,16 @@ main(int argc,
clicon_session_id_set(h, getpid());
#endif
- /* send hello request from backend hello */
+ /* Send hello request to backend to get session-id back
+ * This is done once at the beginning of the session and then this is
+ * used by the client, even though new TCP sessions are created for
+ * each message sent to the backend.
+ */
if (clicon_hello_req(h, &id) < 0)
goto done;
clicon_session_id_set(h, id);
+ /* Send hello to northbound client */
if (!quiet)
send_hello(h, 1, id);
if (event_reg_fd(0, netconf_input_cb, h, "netconf socket") < 0)
diff --git a/apps/restconf/restconf_main.c b/apps/restconf/restconf_main.c
index 663d6041..1bcadbfd 100644
--- a/apps/restconf/restconf_main.c
+++ b/apps/restconf/restconf_main.c
@@ -584,7 +584,8 @@ main(int argc,
yang_stmt *yspec = NULL;
yang_stmt *yspecfg = NULL; /* For config XXX clixon bug */
char *stream_path;
- int finish;
+ int finish = 0;
+ int start = 1;
char *str;
clixon_plugin *cp = NULL;
uint32_t id = 0;
@@ -781,10 +782,6 @@ main(int argc,
clicon_err(OE_CFG, errno, "FCGX_OpenSocket");
goto done;
}
- /* send hello request from backend hello */
- if (clicon_hello_req(h, &id) < 0)
- goto done;
- clicon_session_id_set(h, id);
if (clicon_socket_set(h, sock) < 0)
goto done;
@@ -805,6 +802,19 @@ main(int argc,
goto done;
}
clicon_debug(1, "------------");
+
+ if (start == 0){
+ /* Send hello request to backend to get session-id back
+ * This is done once at the beginning of the session and then this is
+ * used by the client, even though new TCP sessions are created for
+ * each message sent to the backend.
+ */
+ if (clicon_hello_req(h, &id) < 0)
+ goto done;
+ clicon_session_id_set(h, id);
+ start++;
+ }
+
if ((path = FCGX_GetParam("REQUEST_URI", r->envp)) != NULL){
clicon_debug(1, "path: %s", path);
if (strncmp(path, "/" RESTCONF_API, strlen("/" RESTCONF_API)) == 0)
diff --git a/test/sum.sh b/test/sum.sh
index c3a556b7..dce42c68 100755
--- a/test/sum.sh
+++ b/test/sum.sh
@@ -7,8 +7,11 @@ if [ $# -gt 0 ]; then
exit -1
fi
+# Pattern to run tests, default is all, but you may want to narrow it down
+: ${pattern:=test_*.sh}
+
err=0
-for testfile in test*.sh; do # For lib.sh the variable must be called testfile
+for testfile in $pattern; do # For lib.sh the variable must be called testfile
echo "Running $testfile"
./$testfile > /dev/null 2>&1
errcode=$?
diff --git a/test/test_sock.sh b/test/test_sock.sh
index d82c53bd..ca702790 100755
--- a/test/test_sock.sh
+++ b/test/test_sock.sh
@@ -57,15 +57,18 @@ EOF
start_backend -s init -f $cfg
fi
+ new "waiting"
+ wait_backend
+
new "$clixon_cli -1f $cfg show version"
expectfn "$clixon_cli -1f $cfg show version" 0 "$version."
- new "hello session-id 1"
- expecteof "$clixon_util_socket -a $family -s $sock -D $DBG" 0 "" "1"
-
new "hello session-id 2"
expecteof "$clixon_util_socket -a $family -s $sock -D $DBG" 0 "" "2"
+ new "hello session-id 2"
+ expecteof "$clixon_util_socket -a $family -s $sock -D $DBG" 0 "" "3"
+
if [ $BE -ne 0 ]; then
new "Kill backend"
# Check if premature kill