[svn-commits] jdixon: branch jdixon/chan_usbradio-1.4 r140391 - /team/jdixon/chan_usbradio-...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed Aug 27 19:58:28 CDT 2008


Author: jdixon
Date: Wed Aug 27 19:58:27 2008
New Revision: 140391

URL: http://svn.digium.com/view/asterisk?view=rev&rev=140391
Log:
Make chan_echolink work under limey linux

Modified:
    team/jdixon/chan_usbradio-1.4/dev-1.0/channels/chan_echolink.c

Modified: team/jdixon/chan_usbradio-1.4/dev-1.0/channels/chan_echolink.c
URL: http://svn.digium.com/view/asterisk/team/jdixon/chan_usbradio-1.4/dev-1.0/channels/chan_echolink.c?view=diff&rev=140391&r1=140390&r2=140391
==============================================================================
--- team/jdixon/chan_usbradio-1.4/dev-1.0/channels/chan_echolink.c (original)
+++ team/jdixon/chan_usbradio-1.4/dev-1.0/channels/chan_echolink.c Wed Aug 27 19:58:27 2008
@@ -29,9 +29,10 @@
  */
 
 /*** MODULEINFO
+	<depend>zlib</depend>
  ***/
 
-/* Version 0.13, 08/27/2008
+/* Version 0.14, 08/27/2008
 Echolink channel driver for Asterisk/app_rpt.
 A lot more has to be added,
 Here is what comes to mind first:
@@ -1468,7 +1469,6 @@
 #define	EL_DIRECTORY_PORT 5200
 #define EL_DB_ROOT "echolink"
 
-
 static void el_zapem(char loading)
 {
 char str[10];
@@ -1499,30 +1499,35 @@
 unsigned char buf[512];
 int	n,i,r;
 
-	if (!compressed)
-	{
-		n = recv(sock,buf1,buf1len - 1,0);
-		if (n < 1) return(-1);
-		return(n);
-	}		
-	memset(buf1,0,buf1len);
-	memset(buf,0,sizeof(buf));
-	n = recv(sock,buf,sizeof(buf) - 1,0);
-	if (n < 1) return(-1); 
-	z->next_in = buf;
-	z->avail_in = n;
-	z->next_out = buf1;
-	z->avail_out = buf1len;
-	i = Z_NO_FLUSH;
-	if (n < (sizeof(buf) - 1)) i = Z_FINISH;
-	r = inflate(z,i);
-	if ((r != Z_OK) && (r != Z_STREAM_END))
-	{
-		if (z->msg)
-			ast_log(LOG_ERROR,"Unable to inflate (Zlib): %s\n",z->msg);
-		else
-			ast_log(LOG_ERROR,"Unable to inflate (Zlib)\n");
-		return -1;
+	for(;;)
+	{
+		if (!compressed)
+		{
+			n = recv(sock,buf1,buf1len - 1,0);
+			if (n < 1) return(-1);
+			return(n);
+		}		
+		memset(buf1,0,buf1len);
+		memset(buf,0,sizeof(buf));
+		n = recv(sock,buf,sizeof(buf) - 1,0);
+		if (n < 0) return(-1);
+		z->next_in = buf;
+		z->avail_in = n;
+		z->next_out = buf1;
+		z->avail_out = buf1len;
+		i = Z_NO_FLUSH;
+		if (n < 1) i = Z_FINISH;
+		r = inflate(z,Z_NO_FLUSH);
+		if ((r != Z_OK) && (r != Z_STREAM_END))
+		{
+			if (z->msg)
+				ast_log(LOG_ERROR,"Unable to inflate (Zlib): %s\n",z->msg);
+			else
+				ast_log(LOG_ERROR,"Unable to inflate (Zlib)\n");
+			return -1;
+		}
+		r = buf1len - z->avail_out;
+		if ((!n) || r) break;
 	}
 	return(buf1len - z->avail_out);
 }
@@ -1559,7 +1564,7 @@
 struct hostent *host;
 struct sockaddr_in dirserver;
 char	str[200],dbstr[100],ipaddr[50],nodenum[50];
-char	dbstr1[100],call[50];
+char	dbstr1[100],call[50],*pp,*cc;
 int	n = 0,rep_lines,delmode;
 int	dir_compressed,dir_partial;
 struct	z_stream_s z;
@@ -1689,7 +1694,6 @@
 	{
 		if (el_net_get_line(sock,str,sizeof(str) - 1,dir_compressed,&z) < 1) break;
 		if (*str <= ' ') break;
-
 		if (!strncmp(str,"+++",3))
 		{
 			if (delmode) break;
@@ -1767,12 +1771,10 @@
 		return -1;
 	}
 	close(sock);
-	if (debug)
-	{
-		ast_log(LOG_DEBUG,"Diretory pgm done downloading, %d records\n",n);
-		ast_log(LOG_DEBUG,"Compressed: %d, Partial: %d\n",dir_compressed,dir_partial);
-		if (dir_compressed) ast_log(LOG_DEBUG,"Got snapshot_id: %s\n",snapshot_id);
-	}
+	pp = (dir_partial) ? "partial" : "full";
+	cc = (dir_compressed) ? "compressed" : "un-compressed";
+	ast_log(LOG_NOTICE,"Diretory pgm done downloading(%s,%s), %d records\n",pp,cc,n);
+	if (debug && dir_compressed) ast_log(LOG_NOTICE,"Got snapshot_id: %s\n",snapshot_id);
 	return(dir_compressed);
 }
 




More information about the svn-commits mailing list