summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuigi Rizzo <rizzo@icir.org>2006-05-22 02:43:24 +0000
committerLuigi Rizzo <rizzo@icir.org>2006-05-22 02:43:24 +0000
commit82dbf5a4c16ddd98ecee02f0dcca2a49137fc914 (patch)
treead488084a9c58ed8cd62be8042b9364b5de38783
parentafe7c46924e0ca7065274ab5cfc8c911b0335642 (diff)
use the functional form of time(), and mark XXX a couple of places
with dubious assignments. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@29334 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--channels/chan_sip.c46
1 files changed, 19 insertions, 27 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 87ed887d8..58c329e91 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -1452,8 +1452,7 @@ static int ast_sip_ouraddrfor(struct in_addr *them, struct in_addr *us)
struct ast_hostent ahp;
struct hostent *hp;
- time(&externexpire);
- externexpire += externrefresh;
+ externexpire = time(NULL) + externrefresh;
if ((hp = ast_gethostbyname(externhost, &ahp))) {
memcpy(&externip.sin_addr, hp->h_addr, sizeof(externip.sin_addr));
} else
@@ -1927,11 +1926,9 @@ static void realtime_update_peer(const char *peername, struct sockaddr_in *sin,
char port[10];
char ipaddr[20];
char regseconds[20];
- time_t nowtime;
+ time_t nowtime = time(NULL) + expirey;
const char *fc = fullcontact ? "fullcontact" : NULL;
- time(&nowtime);
- nowtime += expirey;
snprintf(regseconds, sizeof(regseconds), "%d", (int)nowtime); /* Expiration time */
ast_inet_ntoa(ipaddr, sizeof(ipaddr), sin->sin_addr);
snprintf(port, sizeof(port), "%d", ntohs(sin->sin_port));
@@ -2959,8 +2956,8 @@ static int sip_write(struct ast_channel *ast, struct ast_frame *frame)
transmit_response_with_sdp(p, "183 Session Progress", &p->initreq, XMIT_UNRELIABLE);
ast_set_flag(&p->flags[0], SIP_PROGRESS_SENT);
}
- time(&p->lastrtptx);
- res = ast_rtp_write(p->rtp, frame);
+ p->lastrtptx = time(NULL);
+ res = ast_rtp_write(p->rtp, frame);
}
ast_mutex_unlock(&p->lock);
}
@@ -2976,8 +2973,8 @@ static int sip_write(struct ast_channel *ast, struct ast_frame *frame)
transmit_response_with_sdp(p, "183 Session Progress", &p->initreq, XMIT_UNRELIABLE);
ast_set_flag(&p->flags[0], SIP_PROGRESS_SENT);
}
- time(&p->lastrtptx);
- res = ast_rtp_write(p->vrtp, frame);
+ p->lastrtptx = time(NULL);
+ res = ast_rtp_write(p->vrtp, frame);
}
ast_mutex_unlock(&p->lock);
}
@@ -3452,7 +3449,7 @@ static struct ast_frame *sip_read(struct ast_channel *ast)
ast_mutex_lock(&p->lock);
fr = sip_rtp_read(ast, p);
- time(&p->lastrtprx);
+ p->lastrtprx = time(NULL);
ast_mutex_unlock(&p->lock);
return fr;
}
@@ -3968,8 +3965,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req)
}
/* Update our last rtprx when we receive an SDP, too */
- time(&p->lastrtprx);
- time(&p->lastrtptx);
+ p->lastrtprx = p->lastrtptx = time(NULL); /* XXX why both ? */
m = get_sdp(req, "m");
destiterator = req->sdp_start;
@@ -5026,8 +5022,7 @@ static int add_sdp(struct sip_request *resp, struct sip_pvt *p)
}
/* Update lastrtprx when we send our SDP */
- time(&p->lastrtprx);
- time(&p->lastrtptx);
+ p->lastrtprx = p->lastrtptx = time(NULL); /* XXX why both ? */
return 0;
}
@@ -10268,7 +10263,7 @@ static int handle_response_register(struct sip_pvt *p, int resp, char *rest, str
}
r->regstate = REG_STATE_REGISTERED;
- r->regtime=time(NULL); /* Reset time of last succesful registration */
+ r->regtime = time(NULL); /* Reset time of last succesful registration */
manager_event(EVENT_FLAG_SYSTEM, "Registry", "Channel: SIP\r\nDomain: %s\r\nStatus: %s\r\n", r->hostname, regstate2str(r->regstate));
r->regattempts = 0;
ast_log(LOG_DEBUG, "Registration successful\n");
@@ -12160,7 +12155,7 @@ static int sip_send_mwi_to_peer(struct sip_peer *peer)
/* Check for messages */
ast_app_inboxcount(peer->mailbox, &newmsgs, &oldmsgs);
- time(&peer->lastmsgcheck);
+ peer->lastmsgcheck = time(NULL);
/* Return now if it's the same thing we told them last time */
if (((newmsgs << 8) | (oldmsgs)) == peer->lastmsgssent) {
@@ -12199,17 +12194,15 @@ static int sip_send_mwi_to_peer(struct sip_peer *peer)
/*! \brief Check whether peer needs a new MWI notification check */
static int does_peer_need_mwi(struct sip_peer *peer)
{
- time_t t;
+ time_t t = time(NULL);
if (ast_test_flag(&peer->flags[1], SIP_PAGE2_SUBSCRIBEMWIONLY) &&
!peer->mwipvt) { /* We don't have a subscription */
- time(&peer->lastmsgcheck); /* Reset timer */
+ peer->lastmsgcheck = t; /* Reset timer */
return FALSE;
}
- time(&t);
-
- if (!ast_strlen_zero(peer->mailbox) && ((t - peer->lastmsgcheck) > global_mwitime))
+ if (!ast_strlen_zero(peer->mailbox) && (t - peer->lastmsgcheck) > global_mwitime)
return TRUE;
return FALSE;
@@ -12250,14 +12243,14 @@ static void *do_monitor(void *data)
/* Check for interfaces needing to be killed */
ast_mutex_lock(&iflock);
restartsearch:
- time(&t);
+ t = time(NULL);
for (sip = iflist; sip; sip = sip->next) {
ast_mutex_lock(&sip->lock);
/* Check RTP timeouts and kill calls if we have a timeout set and do not get RTP */
if (sip->rtp && sip->owner && (sip->owner->_state == AST_STATE_UP) && !sip->redirip.sin_addr.s_addr) {
if (sip->lastrtptx && sip->rtpkeepalive && t > sip->lastrtptx + sip->rtpkeepalive) {
/* Need to send an empty RTP packet */
- time(&sip->lastrtptx);
+ sip->lastrtptx = time(NULL);
ast_rtp_sendcng(sip->rtp, 0);
}
if (sip->lastrtprx && (sip->rtptimeout || sip->rtpholdtimeout) && t > sip->lastrtprx + sip->rtptimeout) {
@@ -12313,7 +12306,7 @@ restartsearch:
}
/* Send MWI notifications to peers - static and cached realtime peers */
- time(&t);
+ t = time(NULL);
fastrestart = FALSE;
curpeernum = 0;
peer = NULL;
@@ -13262,9 +13255,8 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, int
}
}
if (!ast_test_flag(&global_flags[1], SIP_PAGE2_IGNOREREGEXPIRE) && ast_test_flag(&peer->flags[1], SIP_PAGE2_DYNAMIC) && realtime) {
- time_t nowtime;
+ time_t nowtime = time(NULL);
- time(&nowtime);
if ((nowtime - regseconds) > 0) {
destroy_association(peer);
memset(&peer->addr, 0, sizeof(peer->addr));
@@ -13543,7 +13535,7 @@ static int reload_config(enum channelreloadreason reason)
ast_log(LOG_WARNING, "Invalid address for externhost keyword: %s\n", externhost);
else
memcpy(&externip.sin_addr, hp->h_addr, sizeof(externip.sin_addr));
- time(&externexpire);
+ externexpire = time(NULL);
} else if (!strcasecmp(v->name, "externrefresh")) {
if (sscanf(v->value, "%d", &externrefresh) != 1) {
ast_log(LOG_WARNING, "Invalid externrefresh value '%s', must be an integer >0 at line %d\n", v->value, v->lineno);