Bug in code meant it would timeout as it would not reply to a
"heartbeat" check. There is no way the original linux version would work properly without this code. PR: ports/78574 Submitted by: Diane Bruce (maintainer)
This commit is contained in:
parent
2137f528bf
commit
31e5f22cd0
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=131503
2 changed files with 84 additions and 2 deletions
|
@ -7,7 +7,7 @@
|
|||
|
||||
PORTNAME= echolinux
|
||||
PORTVERSION= 0.16a
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= comms
|
||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
|
||||
MASTER_SITE_SUBDIR= cqinet
|
||||
|
|
|
@ -1,5 +1,14 @@
|
|||
--- echolinux/control.c.orig Mon Feb 2 22:29:46 2004
|
||||
+++ echolinux/control.c Fri Jul 2 00:58:38 2004
|
||||
+++ echolinux/control.c Mon Mar 7 15:52:46 2005
|
||||
@@ -13,7 +13,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/ioctl.h>
|
||||
-#include <linux/soundcard.h>
|
||||
+#include <sys/soundcard.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/ioctl.h>
|
||||
@@ -24,7 +24,8 @@
|
||||
#include <arpa/inet.h>
|
||||
#include <netdb.h>
|
||||
|
@ -10,3 +19,76 @@
|
|||
#include <signal.h>
|
||||
#include <string.h>
|
||||
#include <sys/time.h>
|
||||
@@ -354,7 +355,7 @@
|
||||
timeout.tv_sec = 10;
|
||||
timeout.tv_usec = 0;
|
||||
}
|
||||
-
|
||||
+
|
||||
if((i == 0) && (audioPid > 0)){ // timeout & connected
|
||||
connectTimeout++;
|
||||
if(connectTimeout == CONNECT_TRY){
|
||||
@@ -388,28 +389,32 @@
|
||||
disconnect(FALSE);
|
||||
}
|
||||
if(isRTCPSdespacket(inBuffer, length)){
|
||||
- if((audioPid > 0) &&
|
||||
- (inAddr.sin_addr.s_addr == destAddr.sin_addr.s_addr)){
|
||||
- sdesItems.nitems = 1;
|
||||
- sdesItems.item[0].r_item = RTCP_SDES_NAME;
|
||||
- sdesItems.item[0].r_text = NULL;
|
||||
- remoteName[0] = 0;
|
||||
- parseSDES(inBuffer, &sdesItems);
|
||||
- if(sdesItems.item[0].r_text != NULL){
|
||||
- copySDESitem(sdesItems.item[0].r_text, &remoteName[2]);
|
||||
- }
|
||||
- remoteName[0] = CONNECT;
|
||||
- remoteName[1] = ' ';
|
||||
- puts(remoteName);
|
||||
- if(atemptingConnect){
|
||||
- atemptingConnect = 0;
|
||||
- fputs("P connect.wav\n", audioOutFd);
|
||||
- fputs("I\n", audioOutFd);
|
||||
- }
|
||||
- connectTimeout = 0; // reset the counter
|
||||
- }
|
||||
- else {
|
||||
- if(audioPid<=0){
|
||||
+ if (audioPid > 0) {
|
||||
+ sendto(outControlSocket,
|
||||
+ *sdesPacket,
|
||||
+ sdesLength,
|
||||
+ 0,
|
||||
+ (struct sockaddr *)&destAddr,
|
||||
+ sizeof destAddr);
|
||||
+ if(inAddr.sin_addr.s_addr == destAddr.sin_addr.s_addr){
|
||||
+ sdesItems.nitems = 1;
|
||||
+ sdesItems.item[0].r_item = RTCP_SDES_NAME;
|
||||
+ sdesItems.item[0].r_text = NULL;
|
||||
+ remoteName[0] = 0;
|
||||
+ parseSDES(inBuffer, &sdesItems);
|
||||
+ if(sdesItems.item[0].r_text != NULL){
|
||||
+ copySDESitem(sdesItems.item[0].r_text, &remoteName[2]);
|
||||
+ }
|
||||
+ remoteName[0] = CONNECT;
|
||||
+ remoteName[1] = ' ';
|
||||
+ puts(remoteName);
|
||||
+ if(atemptingConnect){
|
||||
+ atemptingConnect = 0;
|
||||
+ fputs("P connect.wav\n", audioOutFd);
|
||||
+ fputs("I\n", audioOutFd);
|
||||
+ }
|
||||
+ connectTimeout = 0; // reset the counter
|
||||
+ } else { /* audioPid <= 0 */
|
||||
sdesItems.nitems = 1;
|
||||
sdesItems.item[0].r_item = RTCP_SDES_NAME;
|
||||
sdesItems.item[0].r_text = NULL;
|
||||
@@ -424,8 +429,6 @@
|
||||
makeConnection(inet_ntoa(inAddr.sin_addr));
|
||||
fputs("P connect.wav\n", audioOutFd);
|
||||
fputs("I\n", audioOutFd);
|
||||
- }
|
||||
- else {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue