--- /usr/src/asterisk/channels/chan_sip.c.20040218 Wed Feb 18 01:17:39 2004 +++ /usr/src/asterisk/channels/chan_sip.c Wed Feb 18 01:29:41 2004 @@ -66,6 +66,7 @@ #define SIPDUMPER #define DEFAULT_DEFAULT_EXPIRY 120 +#define MAX_REGISTER_INTERVAL 7200 #define DEFAULT_MAX_EXPIRY 3600 #define EXPIRY_GUARD_SECS 15 @@ -758,8 +759,10 @@ } } time(&nowtime); - if ((nowtime - regseconds) > default_expiry) + if ((nowtime - regseconds) > MAX_REGISTER_INTERVAL) { + ast_log(LOG_NOTICE, "Peer register expired: %s\n", p->name); memset(&p->addr, 0, sizeof(p->addr)); + } } mysql_free_result(result); result = NULL; @@ -855,8 +858,11 @@ r->sa.sin_port = p->defaddr.sin_port; } memcpy(&r->recv, &r->sa, sizeof(r->recv)); - } else + } else { + if (p->temponly) + free(p); p = NULL; + } } ast_mutex_unlock(&peerl.lock); if (!p && !found) {