mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-29 18:19:30 +00:00
Fixed failing test from r380696.
When I added my extensive suite of session timer unit tests, apparently one of them was failing and I never noticed. If neither Min-SE nor Session-Expires is set in the header, it was responding with a Session-Expires of the global maxmimum instead of the configured max for the endpoint. (issue ASTERISK-20787) ........ Merged revisions 380973 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 380974 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@380977 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -24954,6 +24954,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, str
|
||||
int st_interval = 0; /* Session-Timer negotiated refresh interval */
|
||||
enum st_refresher tmp_st_ref = SESSION_TIMER_REFRESHER_AUTO; /* Session-Timer refresher */
|
||||
int dlg_min_se = -1;
|
||||
int dlg_max_se = global_max_se;
|
||||
struct {
|
||||
char exten[AST_MAX_EXTENSION];
|
||||
char context[AST_MAX_CONTEXT];
|
||||
@@ -25556,19 +25557,17 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, str
|
||||
tmp_st_ref = st_get_refresher(p);
|
||||
}
|
||||
|
||||
dlg_max_se = st_get_se(p, TRUE);
|
||||
if (uac_max_se > 0) {
|
||||
int dlg_max_se = st_get_se(p, TRUE);
|
||||
if (dlg_max_se >= uac_min_se) {
|
||||
st_interval = (uac_max_se < dlg_max_se) ? uac_max_se : dlg_max_se;
|
||||
} else {
|
||||
st_interval = uac_max_se;
|
||||
}
|
||||
} else if (uac_min_se > 0) {
|
||||
int dlg_max_se = st_get_se(p, TRUE);
|
||||
st_interval = MAX(dlg_max_se, uac_min_se);
|
||||
} else {
|
||||
/* Set to default max value */
|
||||
st_interval = global_max_se;
|
||||
st_interval = dlg_max_se;
|
||||
}
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user