@ -51,6 +51,8 @@ static void evt_gen_successful_auth(void);
static void evt_gen_unexpected_addr ( void ) ;
static void evt_gen_chal_resp_failed ( void ) ;
static void evt_gen_inval_password ( void ) ;
static void evt_gen_chal_sent ( void ) ;
static void evt_gen_inval_transport ( void ) ;
typedef void ( * evt_generator ) ( void ) ;
static const evt_generator evt_generators [ AST_SECURITY_EVENT_NUM_TYPES ] = {
@ -67,6 +69,8 @@ static const evt_generator evt_generators[AST_SECURITY_EVENT_NUM_TYPES] = {
[ AST_SECURITY_EVENT_UNEXPECTED_ADDR ] = evt_gen_unexpected_addr ,
[ AST_SECURITY_EVENT_CHAL_RESP_FAILED ] = evt_gen_chal_resp_failed ,
[ AST_SECURITY_EVENT_INVAL_PASSWORD ] = evt_gen_inval_password ,
[ AST_SECURITY_EVENT_CHAL_SENT ] = evt_gen_chal_sent ,
[ AST_SECURITY_EVENT_INVAL_TRANSPORT ] = evt_gen_inval_transport ,
} ;
static void evt_gen_failed_acl ( void )
@ -548,6 +552,9 @@ static void evt_gen_inval_password(void)
. addr = & addr_remote ,
. transport = AST_SECURITY_EVENT_TRANSPORT_TCP ,
} ,
. challenge = " GoOdChAlLeNgE " ,
. received_challenge = " BaDcHaLlEnGe " ,
. received_hash = " 3ad9023adf309 " ,
} ;
char localaddr [ 53 ] ;
@ -562,6 +569,80 @@ static void evt_gen_inval_password(void)
ast_security_event_report ( AST_SEC_EVT ( & inval_password ) ) ;
}
static void evt_gen_chal_sent ( void )
{
struct ast_sockaddr addr_local = { { 0 , } } ;
struct ast_sockaddr addr_remote = { { 0 , } } ;
struct timeval session_tv = ast_tvnow ( ) ;
struct ast_security_event_chal_sent chal_sent = {
. common . event_type = AST_SECURITY_EVENT_CHAL_SENT ,
. common . version = AST_SECURITY_EVENT_CHAL_SENT_VERSION ,
. common . service = " TEST " ,
. common . module = AST_MODULE ,
. common . account_id = " AccountIDGoesHere " ,
. common . session_id = " SessionIDGoesHere " ,
. common . session_tv = & session_tv ,
. common . local_addr = {
. addr = & addr_local ,
. transport = AST_SECURITY_EVENT_TRANSPORT_TCP ,
} ,
. common . remote_addr = {
. addr = & addr_remote ,
. transport = AST_SECURITY_EVENT_TRANSPORT_TCP ,
} ,
. challenge = " IcHaLlEnGeYoU " ,
} ;
char localaddr [ 53 ] ;
char remoteaddr [ 53 ] ;
ast_copy_string ( localaddr , " 10.200.10.30:5392 " , sizeof ( localaddr ) ) ;
ast_copy_string ( remoteaddr , " 10.200.10.31:1443 " , sizeof ( remoteaddr ) ) ;
ast_sockaddr_parse ( & addr_local , localaddr , 0 ) ;
ast_sockaddr_parse ( & addr_remote , remoteaddr , 0 ) ;
ast_security_event_report ( AST_SEC_EVT ( & chal_sent ) ) ;
}
static void evt_gen_inval_transport ( void )
{
struct ast_sockaddr addr_local = { { 0 , } } ;
struct ast_sockaddr addr_remote = { { 0 , } } ;
struct timeval session_tv = ast_tvnow ( ) ;
struct ast_security_event_inval_transport inval_transport = {
. common . event_type = AST_SECURITY_EVENT_INVAL_TRANSPORT ,
. common . version = AST_SECURITY_EVENT_INVAL_TRANSPORT_VERSION ,
. common . service = " TEST " ,
. common . module = AST_MODULE ,
. common . account_id = " AccountIDGoesHere " ,
. common . session_id = " SessionIDGoesHere " ,
. common . session_tv = & session_tv ,
. common . local_addr = {
. addr = & addr_local ,
. transport = AST_SECURITY_EVENT_TRANSPORT_TCP ,
} ,
. common . remote_addr = {
. addr = & addr_remote ,
. transport = AST_SECURITY_EVENT_TRANSPORT_TCP ,
} ,
. transport = " UDP " ,
} ;
char localaddr [ 53 ] ;
char remoteaddr [ 53 ] ;
ast_copy_string ( localaddr , " 10.200.103.45:8223 " , sizeof ( localaddr ) ) ;
ast_copy_string ( remoteaddr , " 10.200.103.44:1039 " , sizeof ( remoteaddr ) ) ;
ast_sockaddr_parse ( & addr_local , localaddr , 0 ) ;
ast_sockaddr_parse ( & addr_remote , remoteaddr , 0 ) ;
ast_security_event_report ( AST_SEC_EVT ( & inval_transport ) ) ;
}
static void gen_events ( struct ast_cli_args * a )
{
unsigned int i ;