tcp: Check url_interrupt_cb if connect was interrupted by a signal
authorThomas Guillem <thomas.guillem@gmail.com>
Tue, 14 Dec 2010 23:03:05 +0000 (23:03 +0000)
committerMartin Storsjö <martin@martin.st>
Tue, 14 Dec 2010 23:03:05 +0000 (23:03 +0000)
This makes it possible to abort a blocking connect call.

Patch by Thomas Guillem, thomas dot guillem at gmail

Originally committed as revision 26014 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/tcp.c

index 4ab64e4..14b5e19 100644 (file)
@@ -73,8 +73,11 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
  redo:
     ret = connect(fd, cur_ai->ai_addr, cur_ai->ai_addrlen);
     if (ret < 0) {
-        if (ff_neterrno() == FF_NETERROR(EINTR))
+        if (ff_neterrno() == FF_NETERROR(EINTR)) {
+            if (url_interrupt_cb())
+                goto fail1;
             goto redo;
+        }
         if (ff_neterrno() != FF_NETERROR(EINPROGRESS) &&
             ff_neterrno() != FF_NETERROR(EAGAIN))
             goto fail;