test both tcp and tls proxies

This commit is contained in:
Jehan Monnier 2012-05-04 18:02:29 +02:00
parent 3fa572b262
commit f1bb770e2a
3 changed files with 43 additions and 3 deletions

View file

@ -332,6 +332,8 @@ int sal_register(SalOp *op, const char *proxy, const char *from, int expires){
belle_sip_uri_t* contact_uri;
sal_op_set_from(op,from);
sal_op_set_to(op,from);
belle_sip_uri_t* route_uri=NULL;
belle_sip_header_route_t* route_header;
char token[10];
if (expires<0) goto error;
from_header = belle_sip_header_from_create(from,belle_sip_random_token(token,sizeof(token)));
@ -349,7 +351,9 @@ int sal_register(SalOp *op, const char *proxy, const char *from, int expires){
belle_sip_header_address_set_uri((belle_sip_header_address_t*)contact_header,contact_uri);
sal_op_set_route(op,proxy);
/*FIXME use route info if needed*/
if (proxy) {
route_uri=belle_sip_uri_parse(proxy);
}
req=belle_sip_request_create(
req_uri,
@ -363,6 +367,16 @@ int sal_register(SalOp *op, const char *proxy, const char *from, int expires){
belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(contact_header));
if (route_uri && !belle_sip_uri_equals(req_uri,route_uri)) {
route_header = belle_sip_header_route_new();
belle_sip_uri_set_lr_param(route_uri,1);
belle_sip_header_address_set_uri(BELLE_SIP_HEADER_ADDRESS(route_header),route_uri);
belle_sip_message_add_header(BELLE_SIP_MESSAGE(req),BELLE_SIP_HEADER(route_header));
} else if (route_uri){
belle_sip_object_unref(route_uri);
route_uri=NULL;
}
send_register_request_with_expires(op,req,expires);
return 0;
@ -371,6 +385,7 @@ error:
if (contact_header) belle_sip_object_unref(contact_header);
if (from_header) belle_sip_object_unref(from_header);
if (to_header) belle_sip_object_unref(to_header);
if (route_uri) belle_sip_object_unref(route_uri);
return -1;
}

View file

@ -111,10 +111,15 @@ static void register_with_refresh(LinphoneCore* lc, bool_t refresh,const char* d
linphone_proxy_config_set_identity(proxy_cfg,linphone_address_as_string(from));
const char* server_addr = linphone_address_get_domain(from);
linphone_proxy_config_set_server_addr(proxy_cfg,server_addr);
linphone_proxy_config_enable_register(proxy_cfg,TRUE);
linphone_proxy_config_expires(proxy_cfg,30);
if (route) linphone_proxy_config_set_route(proxy_cfg,route);
if (route) {
linphone_proxy_config_set_route(proxy_cfg,route);
linphone_proxy_config_set_server_addr(proxy_cfg,route);
} else {
linphone_proxy_config_set_server_addr(proxy_cfg,server_addr);
}
linphone_address_destroy(from);
linphone_core_add_proxy_config(lc,proxy_cfg);
@ -153,6 +158,17 @@ static void simple_register(){
register_with_refresh(create_lc(),FALSE,NULL,NULL);
CU_ASSERT_EQUAL(number_of_auth_info_requested,0);
}
static void simple_tcp_register(){
char route[256];
sprintf(route,"sip:%s;transport=tcp",test_domain);
register_with_refresh(create_lc(),FALSE,NULL,route);
}
static void simple_tls_register(){
char route[256];
sprintf(route,"sip:%s;transport=tls",test_domain);
register_with_refresh(create_lc(),FALSE,NULL,route);
}
static void simple_authenticated_register(){
LinphoneCore* lc = create_lc();
LinphoneAuthInfo *info=linphone_auth_info_new(test_username,NULL,test_password,NULL,auth_domain); /*create authentication structure from identity*/
@ -218,6 +234,12 @@ CU_pSuite pSuite = CU_add_suite("liblinphone init test suite", init, uninit);
if (NULL == CU_add_test(pSuite, "simple register tester", simple_register)) {
return CU_get_error();
}
if (NULL == CU_add_test(pSuite, "tcp register tester", simple_tcp_register)) {
return CU_get_error();
}
if (NULL == CU_add_test(pSuite, "tls register tester", simple_tls_register)) {
return CU_get_error();
}
if (NULL == CU_add_test(pSuite, "simple register with digest auth tester", simple_authenticated_register)) {
return CU_get_error();
}

3
tester/userdb.conf Normal file
View file

@ -0,0 +1,3 @@
liblinphone_tester@auth.example.org secret
liblinphone_tester@auth1.example.org secret
liblinphone_tester@auth2.example.org secret