diff options
Diffstat (limited to 'contrib/ffmpeg/libavformat/tcp.c')
-rw-r--r-- | contrib/ffmpeg/libavformat/tcp.c | 52 |
1 files changed, 10 insertions, 42 deletions
diff --git a/contrib/ffmpeg/libavformat/tcp.c b/contrib/ffmpeg/libavformat/tcp.c index 93755c497..a5539be4c 100644 --- a/contrib/ffmpeg/libavformat/tcp.c +++ b/contrib/ffmpeg/libavformat/tcp.c @@ -20,18 +20,7 @@ */ #include "avformat.h" #include <unistd.h> -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#if defined(__BEOS__) || defined(__INNOTEK_LIBC__) -typedef int socklen_t; -#endif -#ifndef __BEOS__ -# include <arpa/inet.h> -#else -# include "barpainet.h" -#endif -#include <netdb.h> +#include "network.h" #include <sys/time.h> #include <fcntl.h> @@ -73,7 +62,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags) s = av_malloc(sizeof(TCPContext)); if (!s) - return -ENOMEM; + return AVERROR(ENOMEM); h->priv_data = s; if (port <= 0 || port >= 65536) @@ -84,7 +73,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags) if (resolve_host(&dest_addr.sin_addr, hostname) < 0) goto fail; - fd = socket(PF_INET, SOCK_STREAM, 0); + fd = socket(AF_INET, SOCK_STREAM, 0); if (fd < 0) goto fail; fcntl(fd, F_SETFL, O_NONBLOCK); @@ -101,7 +90,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags) /* wait until we are connected or until abort */ for(;;) { if (url_interrupt_cb()) { - ret = -EINTR; + ret = AVERROR(EINTR); goto fail1; } fd_max = fd; @@ -127,7 +116,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags) ret = AVERROR_IO; fail1: if (fd >= 0) - close(fd); + closesocket(fd); av_free(s); return ret; } @@ -141,7 +130,7 @@ static int tcp_read(URLContext *h, uint8_t *buf, int size) for (;;) { if (url_interrupt_cb()) - return -EINTR; + return AVERROR(EINTR); fd_max = s->fd; FD_ZERO(&rfds); FD_SET(s->fd, &rfds); @@ -149,18 +138,10 @@ static int tcp_read(URLContext *h, uint8_t *buf, int size) tv.tv_usec = 100 * 1000; ret = select(fd_max + 1, &rfds, NULL, NULL, &tv); if (ret > 0 && FD_ISSET(s->fd, &rfds)) { -#ifdef __BEOS__ len = recv(s->fd, buf, size, 0); -#else - len = read(s->fd, buf, size); -#endif if (len < 0) { if (errno != EINTR && errno != EAGAIN) -#ifdef __BEOS__ - return errno; -#else - return -errno; -#endif + return AVERROR(errno); } else return len; } else if (ret < 0) { return -1; @@ -178,7 +159,7 @@ static int tcp_write(URLContext *h, uint8_t *buf, int size) size1 = size; while (size > 0) { if (url_interrupt_cb()) - return -EINTR; + return AVERROR(EINTR); fd_max = s->fd; FD_ZERO(&wfds); FD_SET(s->fd, &wfds); @@ -186,19 +167,10 @@ static int tcp_write(URLContext *h, uint8_t *buf, int size) tv.tv_usec = 100 * 1000; ret = select(fd_max + 1, NULL, &wfds, NULL, &tv); if (ret > 0 && FD_ISSET(s->fd, &wfds)) { -#ifdef __BEOS__ len = send(s->fd, buf, size, 0); -#else - len = write(s->fd, buf, size); -#endif if (len < 0) { - if (errno != EINTR && errno != EAGAIN) { -#ifdef __BEOS__ - return errno; -#else - return -errno; -#endif - } + if (errno != EINTR && errno != EAGAIN) + return AVERROR(errno); continue; } size -= len; @@ -213,11 +185,7 @@ static int tcp_write(URLContext *h, uint8_t *buf, int size) static int tcp_close(URLContext *h) { TCPContext *s = h->priv_data; -#ifdef CONFIG_BEOS_NETSERVER closesocket(s->fd); -#else - close(s->fd); -#endif av_free(s); return 0; } |