diff options
Diffstat (limited to 'tinyHTTP/test/test_stack.h')
-rwxr-xr-x | tinyHTTP/test/test_stack.h | 384 |
1 files changed, 190 insertions, 194 deletions
diff --git a/tinyHTTP/test/test_stack.h b/tinyHTTP/test/test_stack.h index 7ae015b..82a5b49 100755 --- a/tinyHTTP/test/test_stack.h +++ b/tinyHTTP/test/test_stack.h @@ -2,19 +2,19 @@ * Copyright (C) 2009 Mamadou Diop. * * Contact: Mamadou Diop <diopmamadou(at)doubango.org> -* +* * This file is part of Open Source Doubango Framework. * * DOUBANGO is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. -* +* * DOUBANGO is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. -* +* * You should have received a copy of the GNU General Public License * along with DOUBANGO. * @@ -24,47 +24,43 @@ int test_stack_callback(const thttp_event_t *httpevent) { - thttp_session_id_t id = thttp_session_get_id(httpevent->session); - switch(httpevent->type){ - case thttp_event_message: /* New HTTP message */ - { - TSK_DEBUG_INFO("sid=%llu", id); - if(THTTP_MESSAGE_IS_RESPONSE(httpevent->message)){ - const thttp_header_ETag_t* etag; - TSK_DEBUG_INFO("=== %d ==> %s", THTTP_RESPONSE_CODE(httpevent->message), THTTP_MESSAGE_CONTENT(httpevent->message)); - // You can use - if((etag = (const thttp_header_ETag_t*)thttp_message_get_header(httpevent->message, thttp_htype_ETag))){ - TSK_DEBUG_INFO("Etag=%s", etag->value); - } - } - else{ - if(THTTP_MESSAGE_IS_RESPONSE(httpevent->message)){ - TSK_DEBUG_INFO("=== code ==> %u", THTTP_RESPONSE_CODE(httpevent->message)); - } - } - break; - } - - case thttp_event_auth_failed: - { - TSK_DEBUG_INFO("auth failed sid=%llu", id); - break; - } - - case thttp_event_closed: /* HTTP connection closed (informational) */ - { - TSK_DEBUG_INFO("closed sid=%llu", id); - break; - } - - case thttp_event_transport_error: /* HTTP connection closed (informational) */ - { - TSK_DEBUG_INFO("Transport sid=%llu", id); - break; - } - } - - return 0; + thttp_session_id_t id = thttp_session_get_id(httpevent->session); + switch(httpevent->type) { + case thttp_event_message: { /* New HTTP message */ + TSK_DEBUG_INFO("sid=%llu", id); + if(THTTP_MESSAGE_IS_RESPONSE(httpevent->message)) { + const thttp_header_ETag_t* etag; + TSK_DEBUG_INFO("=== %d ==> %s", THTTP_RESPONSE_CODE(httpevent->message), THTTP_MESSAGE_CONTENT(httpevent->message)); + // You can use + if((etag = (const thttp_header_ETag_t*)thttp_message_get_header(httpevent->message, thttp_htype_ETag))) { + TSK_DEBUG_INFO("Etag=%s", etag->value); + } + } + else { + if(THTTP_MESSAGE_IS_RESPONSE(httpevent->message)) { + TSK_DEBUG_INFO("=== code ==> %u", THTTP_RESPONSE_CODE(httpevent->message)); + } + } + break; + } + + case thttp_event_auth_failed: { + TSK_DEBUG_INFO("auth failed sid=%llu", id); + break; + } + + case thttp_event_closed: { /* HTTP connection closed (informational) */ + TSK_DEBUG_INFO("closed sid=%llu", id); + break; + } + + case thttp_event_transport_error: { /* HTTP connection closed (informational) */ + TSK_DEBUG_INFO("Transport sid=%llu", id); + break; + } + } + + return 0; } #define PAYLOAD "<entry uri=\"sip:samba@micromethod.com\" xmlns=\"urn:ietf:params:xml:ns:resource-lists\">" \ @@ -73,159 +69,159 @@ int test_stack_callback(const thttp_event_t *httpevent) void test_stack() { - thttp_session_handle_t *session = tsk_null; - int ret; - - thttp_stack_handle_t* stack = thttp_stack_create(test_stack_callback, - THTTP_STACK_SET_TLS_ENABLED(tsk_true), - //THTTP_STACK_SET_TLS_CERTS_VERIFY(tsk_false), - //THTTP_STACK_SET_LOCAL_IP("0.0.0.0"), - //THTTP_STACK_SET_LOCAL_PORT(8080), - //THTTP_STACK_SET_PROXY("msp.f-secure.com", 443), - - THTTP_STACK_SET_NULL()); - - if((ret = thttp_stack_start(stack))){ - TSK_DEBUG_ERROR("Failed to start the HTTP/HTTPS stack."); - goto bail; - } - - - // http://ipv6.google.com/ - //op = THTTP_OPERATION_CREATE(stack, - // THTTP_OPERATION_SET_PARAM("method", "GET"), - // THTTP_OPERATION_SET_PARAM("URL", "http://siptest.doubango.org:8080/services/resource-lists/users/sip:mercuro1@doubango.org/index"), - // - // THTTP_OPERATION_SET_HEADER("Content-Type", "application/resource-lists+xml"), - // THTTP_OPERATION_SET_HEADER("Pragma", "No-Cache"), - // THTTP_OPERATION_SET_HEADER("Connection", "Keep-Alive"), - // THTTP_OPERATION_SET_HEADER("User-Agent", "XDM-client/OMA1.1"), - // THTTP_OPERATION_SET_HEADER("X-3GPP-Intended-Identity", "sip:mercuro1@doubango.org"), - // - // THTTP_OPERATION_SET_NULL()); - //thttp_operation_perform(op); - - /* creates session */ - session = thttp_session_create(stack, - // session-level options - THTTP_SESSION_SET_OPTION(THTTP_SESSION_OPTION_TIMEOUT, "6000"), - - // session-level headers - THTTP_SESSION_SET_HEADER("Pragma", "No-Cache"), - THTTP_SESSION_SET_HEADER("Connection", "Keep-Alive"), - // THTTP_SESSION_SET_HEADER("Connection", "close"), - THTTP_SESSION_SET_HEADER("User-Agent", "doubango 1.0"), - - THTTP_SESSION_SET_NULL()); /* MUST always be present */ - - //ret = thttp_action_GET(session, "http://siptest.doubango.org:8080/services/resource-lists/users/sip:mercuro1@doubango.org/index", - // THTTP_ACTION_SET_HEADER("Content-Type", "application/resource-lists+xml"), - // - // tsk_null); - - //getchar(); - - //thttp_action_GET(session, "http://siptest.doubango.org:8080/services/resource-lists/users/sip:mercuro1@doubango.org/index", - // THTTP_ACTION_SET_HEADER("Content-Type", "application/resource-lists+xml"), - // - // tsk_null); - - //getchar(); - - // HTTPS - thttp_action_GET(session, "https://msp.f-secure.com/web-test/common/test.html", - // action-level options - THTTP_ACTION_SET_OPTION(THTTP_ACTION_OPTION_TIMEOUT, "2500"), - - // action-level headers - THTTP_ACTION_SET_HEADER("User-Agent", "Doubango"), - THTTP_ACTION_SET_HEADER("Connection", "Keep-Alive"), - - THTTP_ACTION_SET_NULL()); - getchar(); - - - // IPv6 - /*thttp_action_GET(session, "http://ipv6.google.com", - // action-level options - THTTP_ACTION_SET_OPTION(THTTP_ACTION_OPTION_TIMEOUT, "2500"), - - // action-level headers - THTTP_ACTION_SET_HEADER("User-Agent", "XDM-client/OMA1.1"), - THTTP_ACTION_SET_HEADER("Connection", "Keep-Alive"), - - THTTP_ACTION_SET_NULL()); - getchar();*/ - - /*ret = thttp_action_GET(session, "http://doubango.org", - // action-level options - THTTP_ACTION_SET_OPTION(THTTP_ACTION_OPTION_TIMEOUT, "2500"), - - THTTP_ACTION_SET_NULL()); - - getchar();*/ - - //thttp_action_GET(session, "http://www.google.com", - //THTTP_ACTION_SET_HEADER("Content-Type", "application/resource-lists+xml"), - - // THTTP_ACTION_SET_NULL()); - - //thttp_action_GET(session, "http://www.doubango.org", - - // THTTP_ACTION_SET_NULL()); - - /* Gets resource-lists document */ - /*thttp_action_GET(session, "http://siptest.doubango.org:8080/services/resource-lists/users/sip:mercuro1@doubango.org/index", - THTTP_ACTION_SET_HEADER("Content-Type", "application/resource-lists+xml"), - - tsk_null); - - getchar();*/ - - //TSK_OBJECT_SAFE_FREE(session); - - //getchar(); - - /* Gets xcap-caps document */ - /*thttp_action_GET(session, "http://siptest.doubango.org:8080/services/xcap-caps/global/index", - THTTP_ACTION_SET_HEADER("Content-Type", "application/xcap-caps+xml"), - - tsk_null); - - getchar();*/ - - /*thttp_action_GET(session, "http://siptest.doubango.org:8080/services/resource-lists/users/sip:mercuro1@doubango.org/properties-resource-list.xml", - THTTP_ACTION_SET_HEADER("Content-Type", "application/resource-lists+xml"), - - tsk_null); - - getchar();*/ - - //thttp_operation_perform(op); + thttp_session_handle_t *session = tsk_null; + int ret; -/* - op = THTTP_OPERATION_CREATE(stack, - THTTP_OPERATION_SET_PARAM("method", "GET"), - //THTTP_OPERATION_SET_PARAM("URL", "https://msp.f-secure.com/web-test/common/test.html"), - THTTP_OPERATION_SET_PARAM("URL", "http://www.doubango.org"), - - THTTP_OPERATION_SET_HEADER("Pragma", "No-Cache"), - THTTP_OPERATION_SET_HEADER("Connection", "Keep-Alive"), - THTTP_OPERATION_SET_HEADER("User-Agent", "XDM-client/OMA1.1"), - - THTTP_OPERATION_SET_NULL()); - thttp_operation_perform(op); -*/ - /*thttp_operation_set(op, - THTTP_OPERATION_SET_PARAM("method", "HEAD"), - - THTTP_OPERATION_SET_NULL()); - thttp_operation_perform(op);*/ + thttp_stack_handle_t* stack = thttp_stack_create(test_stack_callback, + THTTP_STACK_SET_TLS_ENABLED(tsk_true), + //THTTP_STACK_SET_TLS_CERTS_VERIFY(tsk_false), + //THTTP_STACK_SET_LOCAL_IP("0.0.0.0"), + //THTTP_STACK_SET_LOCAL_PORT(8080), + //THTTP_STACK_SET_PROXY("msp.f-secure.com", 443), + + THTTP_STACK_SET_NULL()); + + if((ret = thttp_stack_start(stack))) { + TSK_DEBUG_ERROR("Failed to start the HTTP/HTTPS stack."); + goto bail; + } + + + // http://ipv6.google.com/ + //op = THTTP_OPERATION_CREATE(stack, + // THTTP_OPERATION_SET_PARAM("method", "GET"), + // THTTP_OPERATION_SET_PARAM("URL", "http://siptest.doubango.org:8080/services/resource-lists/users/sip:mercuro1@doubango.org/index"), + // + // THTTP_OPERATION_SET_HEADER("Content-Type", "application/resource-lists+xml"), + // THTTP_OPERATION_SET_HEADER("Pragma", "No-Cache"), + // THTTP_OPERATION_SET_HEADER("Connection", "Keep-Alive"), + // THTTP_OPERATION_SET_HEADER("User-Agent", "XDM-client/OMA1.1"), + // THTTP_OPERATION_SET_HEADER("X-3GPP-Intended-Identity", "sip:mercuro1@doubango.org"), + // + // THTTP_OPERATION_SET_NULL()); + //thttp_operation_perform(op); + + /* creates session */ + session = thttp_session_create(stack, + // session-level options + THTTP_SESSION_SET_OPTION(THTTP_SESSION_OPTION_TIMEOUT, "6000"), + + // session-level headers + THTTP_SESSION_SET_HEADER("Pragma", "No-Cache"), + THTTP_SESSION_SET_HEADER("Connection", "Keep-Alive"), + // THTTP_SESSION_SET_HEADER("Connection", "close"), + THTTP_SESSION_SET_HEADER("User-Agent", "doubango 1.0"), + + THTTP_SESSION_SET_NULL()); /* MUST always be present */ + + //ret = thttp_action_GET(session, "http://siptest.doubango.org:8080/services/resource-lists/users/sip:mercuro1@doubango.org/index", + // THTTP_ACTION_SET_HEADER("Content-Type", "application/resource-lists+xml"), + // + // tsk_null); + + //getchar(); + + //thttp_action_GET(session, "http://siptest.doubango.org:8080/services/resource-lists/users/sip:mercuro1@doubango.org/index", + // THTTP_ACTION_SET_HEADER("Content-Type", "application/resource-lists+xml"), + // + // tsk_null); + + //getchar(); + + // HTTPS + thttp_action_GET(session, "https://msp.f-secure.com/web-test/common/test.html", + // action-level options + THTTP_ACTION_SET_OPTION(THTTP_ACTION_OPTION_TIMEOUT, "2500"), + + // action-level headers + THTTP_ACTION_SET_HEADER("User-Agent", "Doubango"), + THTTP_ACTION_SET_HEADER("Connection", "Keep-Alive"), + + THTTP_ACTION_SET_NULL()); + getchar(); + + + // IPv6 + /*thttp_action_GET(session, "http://ipv6.google.com", + // action-level options + THTTP_ACTION_SET_OPTION(THTTP_ACTION_OPTION_TIMEOUT, "2500"), + + // action-level headers + THTTP_ACTION_SET_HEADER("User-Agent", "XDM-client/OMA1.1"), + THTTP_ACTION_SET_HEADER("Connection", "Keep-Alive"), + + THTTP_ACTION_SET_NULL()); + getchar();*/ + + /*ret = thttp_action_GET(session, "http://doubango.org", + // action-level options + THTTP_ACTION_SET_OPTION(THTTP_ACTION_OPTION_TIMEOUT, "2500"), + + THTTP_ACTION_SET_NULL()); + + getchar();*/ + + //thttp_action_GET(session, "http://www.google.com", + //THTTP_ACTION_SET_HEADER("Content-Type", "application/resource-lists+xml"), + + // THTTP_ACTION_SET_NULL()); + + //thttp_action_GET(session, "http://www.doubango.org", + + // THTTP_ACTION_SET_NULL()); + + /* Gets resource-lists document */ + /*thttp_action_GET(session, "http://siptest.doubango.org:8080/services/resource-lists/users/sip:mercuro1@doubango.org/index", + THTTP_ACTION_SET_HEADER("Content-Type", "application/resource-lists+xml"), + + tsk_null); + + getchar();*/ + + //TSK_OBJECT_SAFE_FREE(session); + + //getchar(); + + /* Gets xcap-caps document */ + /*thttp_action_GET(session, "http://siptest.doubango.org:8080/services/xcap-caps/global/index", + THTTP_ACTION_SET_HEADER("Content-Type", "application/xcap-caps+xml"), + + tsk_null); + + getchar();*/ + + /*thttp_action_GET(session, "http://siptest.doubango.org:8080/services/resource-lists/users/sip:mercuro1@doubango.org/properties-resource-list.xml", + THTTP_ACTION_SET_HEADER("Content-Type", "application/resource-lists+xml"), + + tsk_null); + + getchar();*/ + + //thttp_operation_perform(op); + + /* + op = THTTP_OPERATION_CREATE(stack, + THTTP_OPERATION_SET_PARAM("method", "GET"), + //THTTP_OPERATION_SET_PARAM("URL", "https://msp.f-secure.com/web-test/common/test.html"), + THTTP_OPERATION_SET_PARAM("URL", "http://www.doubango.org"), + + THTTP_OPERATION_SET_HEADER("Pragma", "No-Cache"), + THTTP_OPERATION_SET_HEADER("Connection", "Keep-Alive"), + THTTP_OPERATION_SET_HEADER("User-Agent", "XDM-client/OMA1.1"), + + THTTP_OPERATION_SET_NULL()); + thttp_operation_perform(op); + */ + /*thttp_operation_set(op, + THTTP_OPERATION_SET_PARAM("method", "HEAD"), + + THTTP_OPERATION_SET_NULL()); + thttp_operation_perform(op);*/ - getchar(); + getchar(); bail: - TSK_OBJECT_SAFE_FREE(session); - TSK_OBJECT_SAFE_FREE(stack); + TSK_OBJECT_SAFE_FREE(session); + TSK_OBJECT_SAFE_FREE(stack); } #endif /* _TEST_STACK_H_ */ |