Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
belle-sip
Commits
2eb17045
Commit
2eb17045
authored
Nov 04, 2013
by
Simon Morlat
Browse files
add domain name to auth events
parent
a3227d79
Changes
4
Hide whitespace changes
Inline
Side-by-side
include/belle-sip/listener.h
View file @
2eb17045
...
...
@@ -89,6 +89,9 @@ BELLESIP_EXPORT void belle_sip_auth_event_set_userid(belle_sip_auth_event_t* eve
BELLESIP_EXPORT
const
char
*
belle_sip_auth_event_get_realm
(
const
belle_sip_auth_event_t
*
event
);
BELLESIP_EXPORT
void
belle_sip_auth_event_set_realm
(
belle_sip_auth_event_t
*
event
,
const
char
*
value
);
BELLESIP_EXPORT
const
char
*
belle_sip_auth_event_get_domain
(
const
belle_sip_auth_event_t
*
event
);
BELLESIP_EXPORT
void
belle_sip_auth_event_set_domain
(
belle_sip_auth_event_t
*
event
,
const
char
*
value
);
BELLESIP_EXPORT
const
char
*
belle_sip_auth_event_get_passwd
(
const
belle_sip_auth_event_t
*
event
);
BELLESIP_EXPORT
void
belle_sip_auth_event_set_passwd
(
belle_sip_auth_event_t
*
event
,
const
char
*
value
);
...
...
src/auth_event.c
View file @
2eb17045
...
...
@@ -25,21 +25,26 @@ GET_SET_STRING(belle_sip_auth_event,username)
GET_SET_STRING
(
belle_sip_auth_event
,
userid
)
GET_SET_STRING
(
belle_sip_auth_event
,
realm
)
GET_SET_STRING
(
belle_sip_auth_event
,
domain
)
GET_SET_STRING
(
belle_sip_auth_event
,
passwd
)
GET_SET_STRING
(
belle_sip_auth_event
,
ha1
)
GET_SET_STRING
(
belle_sip_auth_event
,
distinguished_name
)
belle_sip_auth_event_t
*
belle_sip_auth_event_create
(
const
char
*
realm
,
const
char
*
username
)
{
belle_sip_auth_event_t
*
belle_sip_auth_event_create
(
const
char
*
realm
,
const
belle_sip_header_from_t
*
from
)
{
belle_sip_auth_event_t
*
result
=
belle_sip_new0
(
belle_sip_auth_event_t
);
belle_sip_uri_t
*
uri
=
belle_sip_header_address_get_uri
(
BELLE_SIP_HEADER_ADDRESS
(
from
));
belle_sip_auth_event_set_realm
(
result
,
realm
);
belle_sip_auth_event_set_username
(
result
,
username
);
belle_sip_auth_event_set_username
(
result
,
belle_sip_uri_get_user
(
uri
));
belle_sip_auth_event_set_domain
(
result
,
belle_sip_uri_get_host
(
uri
));
return
result
;
}
void
belle_sip_auth_event_destroy
(
belle_sip_auth_event_t
*
event
)
{
DESTROY_STRING
(
event
,
username
);
DESTROY_STRING
(
event
,
userid
);
DESTROY_STRING
(
event
,
realm
);
DESTROY_STRING
(
event
,
domain
);
DESTROY_STRING
(
event
,
passwd
);
DESTROY_STRING
(
event
,
ha1
);
DESTROY_STRING
(
event
,
distinguished_name
);
...
...
@@ -63,11 +68,13 @@ void belle_sip_auth_event_set_client_certificates_chain(belle_sip_auth_event_t*
belle_sip_signing_key_t
*
belle_sip_auth_event_get_signing_key
(
const
belle_sip_auth_event_t
*
event
)
{
return
event
->
key
;
}
void
belle_sip_auth_event_set_signing_key
(
belle_sip_auth_event_t
*
event
,
belle_sip_signing_key_t
*
value
)
{
if
(
event
->
key
)
belle_sip_object_unref
(
event
->
key
);
event
->
key
=
value
;
if
(
event
->
key
)
belle_sip_object_ref
(
event
->
key
);
}
belle_sip_auth_mode_t
belle_sip_auth_event_get_mode
(
const
belle_sip_auth_event_t
*
event
)
{
return
event
->
mode
;
}
...
...
src/belle_sip_internal.h
View file @
2eb17045
...
...
@@ -858,20 +858,19 @@ struct belle_sip_transaction_terminated_event{
struct
belle_sip_auth_event
{
belle_sip_auth_mode_t
mode
;
char
*
username
;
char
*
userid
;
char
*
realm
;
char
*
passwd
;
char
*
ha1
;
const
char
*
distinguished_name
;
char
*
domain
;
char
*
distinguished_name
;
belle_sip_certificates_chain_t
*
cert
;
belle_sip_signing_key_t
*
key
;
};
belle_sip_auth_event_t
*
belle_sip_auth_event_create
(
const
char
*
realm
,
const
char
*
username
);
belle_sip_auth_event_t
*
belle_sip_auth_event_create
(
const
char
*
realm
,
const
belle_sip_header_from_t
*
from
);
void
belle_sip_auth_event_set_distinguished_name
(
belle_sip_auth_event_t
*
event
,
const
char
*
value
);
...
...
src/provider.c
View file @
2eb17045
...
...
@@ -858,11 +858,9 @@ int belle_sip_provider_add_authorization(belle_sip_provider_t *p, belle_sip_requ
belle_sip_list_t
*
head
;
belle_sip_header_www_authenticate_t
*
authenticate
;
belle_sip_header_authorization_t
*
authorization
;
belle_sip_header_address_t
*
from
;
belle_sip_header_from_t
*
from
;
belle_sip_auth_event_t
*
auth_event
;
authorization_context_t
*
auth_context
;
belle_sip_uri_t
*
from_uri
;
const
char
*
ha1
;
char
computed_ha1
[
33
];
int
result
=
0
;
...
...
@@ -917,14 +915,13 @@ int belle_sip_provider_add_authorization(belle_sip_provider_t *p, belle_sip_requ
/*put authorization header if passwd found*/
call_id
=
belle_sip_message_get_header_by_type
(
BELLE_SIP_MESSAGE
(
request
),
belle_sip_header_call_id_t
);
from
=
BELLE_SIP_HEADER_ADDRESS
(
belle_sip_message_get_header
(
BELLE_SIP_MESSAGE
(
request
),
BELLE_SIP_FROM
));
from_uri
=
belle_sip_header_address_get_uri
(
from
);
from
=
belle_sip_message_get_header_by_type
(
request
,
belle_sip_header_from_t
);
if
((
head
=
auth_context_lst
=
belle_sip_provider_get_auth_context_by_call_id
(
p
,
call_id
)))
{
/*we assume there no existing auth headers*/
for
(;
auth_context_lst
!=
NULL
;
auth_context_lst
=
auth_context_lst
->
next
)
{
/*clear auth info*/
auth_context
=
(
authorization_context_t
*
)
auth_context_lst
->
data
;
auth_event
=
belle_sip_auth_event_create
(
auth_context
->
realm
,
belle_sip_uri_get_user
(
from_uri
)
);
auth_event
=
belle_sip_auth_event_create
(
auth_context
->
realm
,
from
);
/*put data*/
/*call listener*/
BELLE_SIP_PROVIDER_INVOKE_LISTENERS
(
p
->
listeners
,
process_auth_requested
,
auth_event
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment