From 46b43f4ed1210f7f1d624194b68e7089b2173add Mon Sep 17 00:00:00 2001 From: Pekka Ervasti <pekka.ervasti@haltian.com> Date: Tue, 18 Aug 2015 09:38:39 +0300 Subject: [PATCH] ts_engine/connectors: pass negative error code to process function Signed-off-by: Pekka Ervasti <pekka.ervasti@haltian.com> --- apps/ts_engine/kii-connector/conn_comm.c | 13 +++++++++++-- apps/ts_engine/meshblu-connector/conn_comm.c | 13 +++++++++++-- apps/ts_engine/ts-connector/conn_comm.c | 13 +++++++++++-- 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/apps/ts_engine/kii-connector/conn_comm.c b/apps/ts_engine/kii-connector/conn_comm.c index 4f2d565e..7dd228c8 100644 --- a/apps/ts_engine/kii-connector/conn_comm.c +++ b/apps/ts_engine/kii-connector/conn_comm.c @@ -251,18 +251,24 @@ static int execute_task_conn_request(struct conn_network_task_s *task) if (ret == OK) { - int status_code; + int status_code = INT_MIN; char *content = NULL; ret = execute_http_request(&con->srv_ip4addr, con->port, hdr, hdrlen, data, datalen, &status_code, &content, task->context); - if (ret == OK) + if (ret < 0) + { + status_code = ret; + } + + if (status_code != INT_MIN) { next_task = task->process(task->context, status_code, content); if (next_task != NULL) ret = conn_network_give_new_conn_task(next_task); } + conn_free_pointer((void**)&content); conn_free_pointer((void**)&hdr); } @@ -322,6 +328,9 @@ static void *conn_network_thread(void *param) if (ret < 0) { con_dbg("request_connection on failed, skipping task\n"); + + task.conn->process(task.conn->context, NETWORK_ERROR, NULL); + conn_complete_task_workflow(task.conn->context, ret); conn_destroy_task(task.conn); break; } diff --git a/apps/ts_engine/meshblu-connector/conn_comm.c b/apps/ts_engine/meshblu-connector/conn_comm.c index 945dda8c..45f993c2 100644 --- a/apps/ts_engine/meshblu-connector/conn_comm.c +++ b/apps/ts_engine/meshblu-connector/conn_comm.c @@ -251,18 +251,24 @@ static int execute_task_conn_request(struct conn_network_task_s *task) if (ret == OK) { - int status_code; + int status_code = INT_MIN; char *content = NULL; ret = execute_http_request(&con->srv_ip4addr, con->port, hdr, hdrlen, data, datalen, &status_code, &content, task->context); - if (ret == OK) + if (ret < 0) + { + status_code = ret; + } + + if (status_code != INT_MIN) { next_task = task->process(task->context, status_code, content); if (next_task != NULL) ret = conn_network_give_new_conn_task(next_task); } + conn_free_pointer((void**)&content); conn_free_pointer((void**)&hdr); } @@ -322,6 +328,9 @@ static void *conn_network_thread(void *param) if (ret < 0) { con_dbg("request_connection on failed, skipping task\n"); + + task.conn->process(task.conn->context, NETWORK_ERROR, NULL); + conn_complete_task_workflow(task.conn->context, ret); conn_destroy_task(task.conn); break; } diff --git a/apps/ts_engine/ts-connector/conn_comm.c b/apps/ts_engine/ts-connector/conn_comm.c index 9b215b79..d3660596 100644 --- a/apps/ts_engine/ts-connector/conn_comm.c +++ b/apps/ts_engine/ts-connector/conn_comm.c @@ -251,18 +251,24 @@ static int execute_task_conn_request(struct conn_network_task_s *task) if (ret == OK) { - int status_code; + int status_code = INT_MIN; char *content = NULL; ret = execute_http_request(&con->srv_ip4addr, con->port, hdr, hdrlen, data, datalen, &status_code, &content, task->context); - if (ret == OK) + if (ret < 0) + { + status_code = ret; + } + + if (status_code != INT_MIN) { next_task = task->process(task->context, status_code, content); if (next_task != NULL) ret = conn_network_give_new_conn_task(next_task); } + conn_free_pointer((void**)&content); conn_free_pointer((void**)&hdr); } @@ -322,6 +328,9 @@ static void *conn_network_thread(void *param) if (ret < 0) { con_dbg("request_connection on failed, skipping task\n"); + + task.conn->process(task.conn->context, NETWORK_ERROR, NULL); + conn_complete_task_workflow(task.conn->context, ret); conn_destroy_task(task.conn); break; } -- GitLab