summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Malagowski <marcin.malagowski@mobica.com>2013-03-26 19:25:04 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2013-04-04 10:38:44 +0200
commiteb509d7b5c6da78fdf65a0399e699cc9f9c32b6f (patch)
tree78222a168b1e9cd300648f1e910b5ff3e64f59c9
parentd7374484b0ec9334dfe26099fc20a58ede9bf1e7 (diff)
downloadneard-eb509d7b5c6da78fdf65a0399e699cc9f9c32b6f.tar.gz
neard-eb509d7b5c6da78fdf65a0399e699cc9f9c32b6f.tar.bz2
neard-eb509d7b5c6da78fdf65a0399e699cc9f9c32b6f.zip
unit: Support for SNEP REJECT request
-rw-r--r--src/snep.c19
-rw-r--r--unit/test-snep-read.c9
2 files changed, 21 insertions, 7 deletions
diff --git a/src/snep.c b/src/snep.c
index 4db47a5..e1bbe81 100644
--- a/src/snep.c
+++ b/src/snep.c
@@ -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);