[xiph-commits] r13582 - icecast/trunk/net
karl at svn.xiph.org
karl at svn.xiph.org
Tue Aug 21 15:17:13 PDT 2007
Author: karl
Date: 2007-08-21 15:17:13 -0700 (Tue, 21 Aug 2007)
New Revision: 13582
Modified:
icecast/trunk/net/sock.c
icecast/trunk/net/sock.h
Log:
added function to check whether the socket is still alive
Modified: icecast/trunk/net/sock.c
===================================================================
--- icecast/trunk/net/sock.c 2007-08-21 15:39:05 UTC (rev 13581)
+++ icecast/trunk/net/sock.c 2007-08-21 22:17:13 UTC (rev 13582)
@@ -204,6 +204,21 @@
return (ret == 0);
}
+
+/* determines if the passed socket is still connected */
+int sock_active (sock_t sock)
+{
+ char c;
+ int l;
+
+ l = recv (sock, &c, 1, MSG_PEEK);
+ if (l == 0)
+ return 0;
+ if (l < 0 && sock_recoverable (sock_error()))
+ return 1;
+ return 0;
+}
+
/* inet_aton
**
** turns an ascii ip address into a binary representation
Modified: icecast/trunk/net/sock.h
===================================================================
--- icecast/trunk/net/sock.h 2007-08-21 15:39:05 UTC (rev 13581)
+++ icecast/trunk/net/sock.h 2007-08-21 22:17:13 UTC (rev 13582)
@@ -105,6 +105,7 @@
int sock_recoverable(int error);
int sock_stalled(int error);
int sock_valid_socket(sock_t sock);
+int sock_active (sock_t sock);
int sock_set_blocking(sock_t sock, const int block);
int sock_set_nolinger(sock_t sock);
int sock_set_keepalive(sock_t sock);
More information about the commits
mailing list