# define __VLC_NETWORK_H
#if defined( WIN32 )
-# if defined(UNDER_CE) && defined(sockaddr_storage)
-# undef sockaddr_storage
-# endif
-# if defined(UNDER_CE)
-# define HAVE_STRUCT_ADDRINFO
-# else
+# if !defined(UNDER_CE)
# define _NO_OLDNAMES 1
# include <io.h>
# endif
# define IPV6_V6ONLY 27
# endif
#else
-# if HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-# endif
+# include <sys/socket.h>
# if HAVE_NETINET_IN_H
# include <netinet/in.h>
# endif
return __net_Connect (obj, host, port, SOCK_STREAM, IPPROTO_TCP);
}
+
+VLC_EXPORT( int, net_AcceptSingle, (vlc_object_t *obj, int lfd) );
+
#define net_Accept(a, b, c) __net_Accept(VLC_OBJECT(a), b, c)
VLC_EXPORT( int, __net_Accept, ( vlc_object_t *, int *, mtime_t ) );
#define net_Read(a,b,c,d,e,f) __net_Read(VLC_OBJECT(a),b,c,d,e,f)
VLC_EXPORT( ssize_t, __net_Read, ( vlc_object_t *p_this, int fd, const v_socket_t *, uint8_t *p_data, size_t i_data, vlc_bool_t b_retry ) );
-#define net_Select(a,b,c,d,e,f) __net_Select(VLC_OBJECT(a),b,c,d,e,f)
-VLC_EXPORT( ssize_t, __net_Select, ( vlc_object_t *p_this, const int *pi_fd, int i_fd, uint8_t *p_data, size_t i_data, int i_timeout ) );
-
#define net_Write(a,b,c,d,e) __net_Write(VLC_OBJECT(a),b,c,d,e)
VLC_EXPORT( ssize_t, __net_Write, ( vlc_object_t *p_this, int fd, const v_socket_t *, const uint8_t *p_data, size_t i_data ) );
int revents;
};
-int poll (struct pollfd *fds, unsigned nfds, int timeout);
+ VLC_EXPORT (int, poll, (struct pollfd *fds, unsigned nfds, int timeout));
#endif
#ifdef WIN32
}
-
-/**
- * net_AddressIsMulticast
- * @return VLC_FALSE iff the psz_addr does not specify a multicast address,
- * or the address is not a valid address.
- */
-static inline vlc_bool_t net_AddressIsMulticast( vlc_object_t *p_object, const char *psz_addr )
-{
- struct addrinfo hints, *res;
-
- memset (&hints, 0, sizeof (hints));
- hints.ai_socktype = SOCK_DGRAM; /* UDP */
- hints.ai_flags = AI_NUMERICHOST;
-
- int i = vlc_getaddrinfo (p_object, psz_addr, 0,
- &hints, &res);
- if (i)
- {
- msg_Err (p_object, "invalid address \"%s\" for net_AddressIsMulticast (%s)",
- psz_addr, vlc_gai_strerror (i));
- return VLC_FALSE;
- }
-
- vlc_bool_t b = net_SockAddrIsMulticast (res->ai_addr, res->ai_addrlen);
- vlc_freeaddrinfo (res);
- return b;
-}
-
static inline int net_GetSockAddress( int fd, char *address, int *port )
{
struct sockaddr_storage addr;