Merge commit '28306e6d620c109ddd672f7243adfbc2bbb3b18f'
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 2 Jun 2013 08:30:35 +0000 (10:30 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 2 Jun 2013 08:30:35 +0000 (10:30 +0200)
* commit '28306e6d620c109ddd672f7243adfbc2bbb3b18f':
  network: factor out bind-listening code
  use my full first name instead of short one in copyrights

Conflicts:
libavformat/tcp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/binkdata.h
libavcodec/binkdsp.c
libavformat/network.c
libavformat/network.h
libavformat/rtmp.h
libavformat/rtmppkt.c
libavformat/rtmppkt.h
libavformat/rtmpproto.c
libavformat/tcp.c

@@@ -1,10 -1,10 +1,10 @@@
  /*
   * Bink video decoder
-  * Copyright (C) 2009 Kostya Shishkov
+  * Copyright (C) 2009 Konstantin Shishkov
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
@@@ -1,10 -1,10 +1,10 @@@
  /*
   * Bink DSP routines
-  * Copyright (c) 2009 Kostya Shishkov
+  * Copyright (c) 2009 Konstantin Shishkov
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
Simple merge
Simple merge
@@@ -1,10 -1,10 +1,10 @@@
  /*
   * RTMP definitions
-  * Copyright (c) 2009 Kostya Shishkov
+  * Copyright (c) 2009 Konstantin Shishkov
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
@@@ -1,10 -1,10 +1,10 @@@
  /*
   * RTMP input format
-  * Copyright (c) 2009 Kostya Shishkov
+  * Copyright (c) 2009 Konstantin Shishkov
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
@@@ -1,10 -1,10 +1,10 @@@
  /*
   * RTMP packet utilities
-  * Copyright (c) 2009 Kostya Shishkov
+  * Copyright (c) 2009 Konstantin Shishkov
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
@@@ -1,10 -1,10 +1,10 @@@
  /*
   * RTMP network protocol
-  * Copyright (c) 2009 Kostya Shishkov
+  * Copyright (c) 2009 Konstantin Shishkov
   *
 - * This file is part of Libav.
 + * This file is part of FFmpeg.
   *
 - * Libav is free software; you can redistribute it and/or
 + * FFmpeg is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
@@@ -108,39 -85,18 +108,18 @@@ static int tcp_open(URLContext *h, cons
      cur_ai = ai;
  
   restart:
-     ret = AVERROR(EIO);
      fd = socket(cur_ai->ai_family, cur_ai->ai_socktype, cur_ai->ai_protocol);
-     if (fd < 0)
+     if (fd < 0) {
+         ret = ff_neterrno();
          goto fail;
+     }
  
 -    if (listen_socket) {
 +    if (s->listen) {
-         int fd1;
-         int reuse = 1;
-         struct pollfd lp = { fd, POLLIN, 0 };
-         setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));
-         ret = bind(fd, cur_ai->ai_addr, cur_ai->ai_addrlen);
-         if (ret) {
-             ret = ff_neterrno();
-             goto fail1;
-         }
-         ret = listen(fd, 1);
-         if (ret) {
-             ret = ff_neterrno();
-             goto fail1;
-         }
-         ret = poll(&lp, 1, s->listen_timeout >= 0 ? s->listen_timeout : -1);
-         if (ret <= 0) {
-             ret = AVERROR(ETIMEDOUT);
-             goto fail1;
-         }
-         fd1 = accept(fd, NULL, NULL);
-         if (fd1 < 0) {
-             ret = ff_neterrno();
+         if ((fd = ff_listen_bind(fd, cur_ai->ai_addr, cur_ai->ai_addrlen,
 -                                 listen_timeout)) < 0) {
++                                 s->listen_timeout)) < 0) {
+             ret = fd;
              goto fail1;
          }
-         closesocket(fd);
-         fd = fd1;
-         ff_socket_nonblock(fd, 1);
      } else {
   redo:
          ff_socket_nonblock(fd, 1);