moved initial hello request from client to backend to immediate before first actual query

This commit is contained in:
Olof hagsand 2019-10-27 10:24:13 +01:00
parent 84c94b2c0e
commit 948e203a61
5 changed files with 36 additions and 11 deletions

View file

@ -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);

View file

@ -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)

View file

@ -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)

View file

@ -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=$?

View file

@ -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 "<hello/>" "<hello><session-id>1</session-id></hello>"
new "hello session-id 2"
expecteof "$clixon_util_socket -a $family -s $sock -D $DBG" 0 "<hello/>" "<hello><session-id>2</session-id></hello>"
new "hello session-id 2"
expecteof "$clixon_util_socket -a $family -s $sock -D $DBG" 0 "<hello/>" "<hello><session-id>3</session-id></hello>"
if [ $BE -ne 0 ]; then
new "Kill backend"
# Check if premature kill