diff options
author | Marcin Malagowski <marcin.malagowski@mobica.com> | 2013-03-26 19:25:04 +0100 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2013-04-04 10:38:44 +0200 |
commit | eb509d7b5c6da78fdf65a0399e699cc9f9c32b6f (patch) | |
tree | 78222a168b1e9cd300648f1e910b5ff3e64f59c9 | |
parent | d7374484b0ec9334dfe26099fc20a58ede9bf1e7 (diff) | |
download | neard-eb509d7b5c6da78fdf65a0399e699cc9f9c32b6f.tar.gz neard-eb509d7b5c6da78fdf65a0399e699cc9f9c32b6f.tar.bz2 neard-eb509d7b5c6da78fdf65a0399e699cc9f9c32b6f.zip |
unit: Support for SNEP REJECT request
-rw-r--r-- | src/snep.c | 19 | ||||
-rw-r--r-- | unit/test-snep-read.c | 9 |
2 files changed, 21 insertions, 7 deletions
@@ -425,6 +425,25 @@ static near_bool_t snep_core_process_request(int client_fd, } break; + case NEAR_SNEP_REQ_REJECT: + DBG("NEAR_SNEP_REQ_REJECT"); + if (snep_data->req->fragments == NULL) { + near_error("error: NEAR_SNEP_REQ_REJECT but no fragment"); + ret = FALSE; + } + else { + ret = TRUE; + } + + g_slist_free_full(snep_data->req->fragments, + free_snep_core_fragment); + g_slist_free(snep_data->req->fragments); + + g_hash_table_remove(snep_client_hash, + GINT_TO_POINTER(client_fd)); + + break; + case NEAR_SNEP_REQ_CONTINUE: /* * NEAR_SNEP_REQ_CONTINUE indicates that we have to send the diff --git a/unit/test-snep-read.c b/unit/test-snep-read.c index c008376..9ce2c1c 100644 --- a/unit/test-snep-read.c +++ b/unit/test-snep-read.c @@ -772,13 +772,8 @@ static void test_snep_read_get_req_frags_client_resp(gpointer context, g_free(req); if (client_resp == NEAR_SNEP_REQ_REJECT) { - /* - * TODO server shall not send any response: - * g_assert(ret); - * test_snep_read_no_response(); - */ - - TEST_SNEP_LOG("EXPECTED FAIL: REJECT not handled by SNEP\n"); + g_assert(ret); + test_snep_read_no_response(); } else if (client_resp == NEAR_SNEP_REQ_CONTINUE) { g_assert(ret); |