mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 12:16:00 +00:00
Merge "chan_sip.c: wrong peer searched in sip_report_security_event"
This commit is contained in:
@@ -28101,7 +28101,7 @@ static int handle_incoming(struct sip_pvt *p, struct sip_request *req, struct as
|
|||||||
res = handle_request_invite(p, req, addr, seqno, recount, e, nounlock);
|
res = handle_request_invite(p, req, addr, seqno, recount, e, nounlock);
|
||||||
|
|
||||||
if (res < 9) {
|
if (res < 9) {
|
||||||
sip_report_security_event(p, req, res);
|
sip_report_security_event(NULL, &p->recv, p, req, res);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (res) {
|
switch (res) {
|
||||||
@@ -28140,7 +28140,7 @@ static int handle_incoming(struct sip_pvt *p, struct sip_request *req, struct as
|
|||||||
break;
|
break;
|
||||||
case SIP_REGISTER:
|
case SIP_REGISTER:
|
||||||
res = handle_request_register(p, req, addr, e);
|
res = handle_request_register(p, req, addr, e);
|
||||||
sip_report_security_event(p, req, res);
|
sip_report_security_event(p->exten, NULL, p, req, res);
|
||||||
break;
|
break;
|
||||||
case SIP_INFO:
|
case SIP_INFO:
|
||||||
if (req->debug)
|
if (req->debug)
|
||||||
|
@@ -38,6 +38,7 @@ void sip_report_failed_challenge_response(const struct sip_pvt *p, const char *r
|
|||||||
void sip_report_chal_sent(const struct sip_pvt *p);
|
void sip_report_chal_sent(const struct sip_pvt *p);
|
||||||
void sip_report_inval_transport(const struct sip_pvt *p, const char *transport);
|
void sip_report_inval_transport(const struct sip_pvt *p, const char *transport);
|
||||||
void sip_digest_parser(char *c, struct digestkeys *keys);
|
void sip_digest_parser(char *c, struct digestkeys *keys);
|
||||||
int sip_report_security_event(const struct sip_pvt *p, const struct sip_request *req, const int res);
|
int sip_report_security_event(const char *peer, struct ast_sockaddr *addr, const struct sip_pvt *p,
|
||||||
|
const struct sip_request *req, const int res);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -270,7 +270,8 @@ void sip_report_inval_transport(const struct sip_pvt *p, const char *transport)
|
|||||||
ast_security_event_report(AST_SEC_EVT(&inval_transport));
|
ast_security_event_report(AST_SEC_EVT(&inval_transport));
|
||||||
}
|
}
|
||||||
|
|
||||||
int sip_report_security_event(const struct sip_pvt *p, const struct sip_request *req, const int res) {
|
int sip_report_security_event(const char *peer, struct ast_sockaddr *addr, const struct sip_pvt *p,
|
||||||
|
const struct sip_request *req, const int res) {
|
||||||
|
|
||||||
struct sip_peer *peer_report;
|
struct sip_peer *peer_report;
|
||||||
enum check_auth_result res_report = res;
|
enum check_auth_result res_report = res;
|
||||||
@@ -288,7 +289,7 @@ int sip_report_security_event(const struct sip_pvt *p, const struct sip_request
|
|||||||
[K_LAST] = { NULL, NULL}
|
[K_LAST] = { NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
peer_report = sip_find_peer(p->exten, NULL, TRUE, FINDPEERS, FALSE, 0);
|
peer_report = sip_find_peer(peer, addr, TRUE, FINDPEERS, FALSE, p->socket.type);
|
||||||
|
|
||||||
switch(res_report) {
|
switch(res_report) {
|
||||||
case AUTH_DONT_KNOW:
|
case AUTH_DONT_KNOW:
|
||||||
|
Reference in New Issue
Block a user