[asterisk-commits] jdixon: branch jdixon/chan_usbradio-1.4 r115603 - /team/jdixon/chan_usbradio-...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Sun May 11 17:22:14 CDT 2008
Author: jdixon
Date: Sun May 11 17:22:13 2008
New Revision: 115603
URL: http://svn.digium.com/view/asterisk?view=rev&rev=115603
Log:
Fixed timing race for new IAX2 protocol security issues regarding
setup of newkey mode
Modified:
team/jdixon/chan_usbradio-1.4/apps/app_rpt.c
Modified: team/jdixon/chan_usbradio-1.4/apps/app_rpt.c
URL: http://svn.digium.com/view/asterisk/team/jdixon/chan_usbradio-1.4/apps/app_rpt.c?view=diff&rev=115603&r1=115602&r2=115603
==============================================================================
--- team/jdixon/chan_usbradio-1.4/apps/app_rpt.c (original)
+++ team/jdixon/chan_usbradio-1.4/apps/app_rpt.c Sun May 11 17:22:13 2008
@@ -20,7 +20,7 @@
/*! \file
*
* \brief Radio Repeater / Remote Base program
- * version 0.112 4/13/08 2055 EDT
+ * version 0.113 5/11/08
*
* \author Jim Dixon, WB6NIL <jim at lambdatel.com>
*
@@ -368,7 +368,7 @@
/*! Stop the tones from playing */
void ast_playtones_stop(struct ast_channel *chan);
-static char *tdesc = "Radio Repeater / Remote Base version 0.112 4/13/2008";
+static char *tdesc = "Radio Repeater / Remote Base version 0.113 5/11/2008";
static char *app = "Rpt";
@@ -5419,6 +5419,16 @@
return;
}
+/* send newkey message */
+
+static void send_newkey(struct ast_channel *chan)
+{
+
+ ast_safe_sleep(chan,10);
+ ast_sendtext(chan,newkeystr);
+ return;
+}
+
/*
* Connect a link
*
@@ -5612,7 +5622,7 @@
insque((struct qelem *)l,(struct qelem *)myrpt->links.next);
__kickshort(myrpt);
rpt_mutex_unlock(&myrpt->lock);
- if (!l->phonemode) ast_sendtext(l->chan,newkeystr);
+ if (!l->phonemode) send_newkey(l->chan);
return 0;
}
@@ -10033,7 +10043,7 @@
insque((struct qelem *)l,(struct qelem *)myrpt->links.next);
rpt_mutex_unlock(&myrpt->lock);
ast_log(LOG_WARNING,"Reconnect Attempt to %s in process\n",l->name);
- if (!l->phonemode) ast_sendtext(l->chan,newkeystr);
+ if (!l->phonemode) send_newkey(l->chan);
return 0;
}
@@ -12222,7 +12232,7 @@
l->hasconnected = 1;
l->thisconnected = 1;
l->elaptime = -1;
- if (!l->phonemode) ast_sendtext(l->chan,newkeystr);
+ if (!l->phonemode) send_newkey(l->chan);
if (!l->isremote) l->retries = 0;
if (!lconnected)
{
@@ -12960,7 +12970,7 @@
if (chan->_state != AST_STATE_UP)
{
ast_answer(chan);
- if (!phone_mode) ast_sendtext(chan,newkeystr);
+ if (!phone_mode) send_newkey(chan);
}
l=strlen(options)+2;
@@ -13274,7 +13284,7 @@
rpt_mutex_unlock(&myrpt->lock);
if (chan->_state != AST_STATE_UP) {
ast_answer(chan);
- if (!phone_mode) ast_sendtext(chan,newkeystr);
+ if (!phone_mode) send_newkey(chan);
}
if (myrpt->p.archivedir)
{
@@ -13286,7 +13296,7 @@
sprintf(str,"LINK,%s",l->name);
donodelog(myrpt,str);
}
- if (!phone_mode) ast_sendtext(chan,newkeystr);
+ if (!phone_mode) send_newkey(chan);
return AST_PBX_KEEPALIVE;
}
/* well, then it is a remote */
@@ -13601,7 +13611,7 @@
}
if (chan->_state != AST_STATE_UP) {
ast_answer(chan);
- if (!phone_mode) ast_sendtext(chan,newkeystr);
+ if (!phone_mode) send_newkey(chan);
}
if (myrpt->rxchannel == myrpt->zaprxchannel)
@@ -13668,7 +13678,7 @@
cs[n++] = myrpt->pchannel;
if (myrpt->rxchannel != myrpt->txchannel)
cs[n++] = myrpt->txchannel;
- if (!phone_mode) ast_sendtext(chan,newkeystr);
+ if (!phone_mode) send_newkey(chan);
/* start un-locked */
for(;;)
{
More information about the asterisk-commits
mailing list