Author: sayer
Date: 2010-04-25 23:52:21 +0200 (Sun, 25 Apr 2010)
New Revision: 1822
Modified:
branches/1.2/core/plug-in/session_timer/SessionTimer.cpp
Log:
fixed calculation of actual session timer interval, if remote end does not
support SST (backport from trunk r1820)
Modified: branches/1.2/core/plug-in/session_timer/SessionTimer.cpp
===================================================================
--- branches/1.2/core/plug-in/session_timer/SessionTimer.cpp 2010-04-23
18:47:07 UTC (rev 1821)
+++ branches/1.2/core/plug-in/session_timer/SessionTimer.cpp 2010-04-25
21:52:21 UTC (rev 1822)
@@ -184,12 +184,15 @@
// determine session interval
string sess_expires_hdr = getHeader(req.hdrs, "Session-Expires", "x");
+ bool rem_has_sess_expires = false;
unsigned int rem_sess_expires=0;
if (!sess_expires_hdr.empty()) {
if (str2i(strip_header_params(sess_expires_hdr),
rem_sess_expires)) {
WARN("error while parsing Session-Expires header value '%s'\n",
strip_header_params(sess_expires_hdr).c_str()); // exception?
+ } else {
+ rem_has_sess_expires = true;
}
}
@@ -205,17 +208,20 @@
}
// calculate actual se
+ session_interval = session_timer_conf.getSessionExpires();
if (i_minse > min_se)
min_se = i_minse;
- if (rem_sess_expires < min_se) {
+ if (rem_has_sess_expires && (rem_sess_expires < min_se)) {
session_interval = min_se;
} else {
- if (rem_sess_expires < session_interval)
+ if (rem_has_sess_expires && (rem_sess_expires < session_interval))
session_interval = rem_sess_expires;
}
+ DBG("using actual session interval %u\n", session_interval);
+
// determine session refresher -- cf rfc4028 Table 2
// only if the remote party supports timer and asks
// to be refresher we will let the remote party do it.
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev