libpurple/win32/libc_interface.c

changeset 40668
4be4ea8a8dca
parent 40557
5c44a08bdbcd
child 40765
a5381c20e802
--- a/libpurple/win32/libc_interface.c	Mon Dec 21 21:45:26 2020 -0600
+++ b/libpurple/win32/libc_interface.c	Mon Dec 21 23:17:45 2020 -0600
@@ -42,66 +42,7 @@
 # define S_ISDIR(m) (((m)&S_IFDIR)==S_IFDIR)
 #endif
 
-/* helpers */
-static int wpurple_is_socket( int fd ) {
-	int optval;
-	int optlen = sizeof(int);
-
-	if( (getsockopt(fd, SOL_SOCKET, SO_TYPE, (void*)&optval, &optlen)) == SOCKET_ERROR ) {
-		int error = WSAGetLastError();
-		if( error == WSAENOTSOCK )
-			return FALSE;
-		else {
-                        purple_debug(PURPLE_DEBUG_WARNING, "wpurple", "wpurple_is_socket: getsockopt returned error: %d\n", error);
-			return FALSE;
-		}
-	}
-	return TRUE;
-}
-
 /* socket.h */
-int wpurple_socket (int namespace, int style, int protocol) {
-	int ret;
-
-	ret = socket( namespace, style, protocol );
-
-	if (ret == (int)INVALID_SOCKET) {
-		errno = WSAGetLastError();
-		return -1;
-	}
-	return ret;
-}
-
-int wpurple_connect(int socket, struct sockaddr *addr, u_long length) {
-	int ret;
-
-	ret = connect( socket, addr, length );
-
-	if( ret == SOCKET_ERROR ) {
-		errno = WSAGetLastError();
-		if( errno == WSAEWOULDBLOCK )
-			errno = WSAEINPROGRESS;
-		return -1;
-	}
-	return 0;
-}
-
-int wpurple_getsockopt(int socket, int level, int optname, void *optval, socklen_t *optlenptr) {
-	if(getsockopt(socket, level, optname, optval, optlenptr) == SOCKET_ERROR ) {
-		errno = WSAGetLastError();
-		return -1;
-	}
-	return 0;
-}
-
-int wpurple_setsockopt(int socket, int level, int optname, const void *optval, socklen_t optlen) {
-	if(setsockopt(socket, level, optname, optval, optlen) == SOCKET_ERROR ) {
-		errno = WSAGetLastError();
-		return -1;
-	}
-	return 0;
-}
-
 int wpurple_getsockname(int socket, struct sockaddr *addr, socklen_t *lenptr) {
         if(getsockname(socket, addr, lenptr) == SOCKET_ERROR) {
                 errno = WSAGetLastError();
@@ -110,34 +51,6 @@
         return 0;
 }
 
-int wpurple_bind(int socket, struct sockaddr *addr, socklen_t length) {
-        if(bind(socket, addr, length) == SOCKET_ERROR) {
-                errno = WSAGetLastError();
-                return -1;
-        }
-        return 0;
-}
-
-int wpurple_listen(int socket, unsigned int n) {
-        if(listen(socket, n) == SOCKET_ERROR) {
-                errno = WSAGetLastError();
-                return -1;
-        }
-        return 0;
-}
-
-int wpurple_sendto(int socket, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) {
-	int ret;
-	if ((ret = sendto(socket, buf, len, flags, to, tolen)
-			) == SOCKET_ERROR) {
-		errno = WSAGetLastError();
-		if(errno == WSAEWOULDBLOCK || errno == WSAEINPROGRESS)
-			errno = EAGAIN;
-		return -1;
-	}
-	return ret;
-}
-
 /* fcntl.h */
 /* This is not a full implementation of fcntl. Update as needed.. */
 int wpurple_fcntl(int socket, int command, ...) {
@@ -238,96 +151,6 @@
 	}/*end switch*/
 }
 
-/* arpa/inet.h */
-int wpurple_inet_aton(const char *name, struct in_addr *addr) {
-	if((addr->s_addr = inet_addr(name)) == INADDR_NONE)
-		return 0;
-	else
-		return 1;
-}
-
-/* Thanks to GNU wget for this inet_ntop() implementation */
-const char *
-wpurple_inet_ntop (int af, const void *src, char *dst, socklen_t cnt)
-{
-  /* struct sockaddr can't accomodate struct sockaddr_in6. */
-  union {
-    struct sockaddr_in6 sin6;
-    struct sockaddr_in sin;
-  } sa;
-  DWORD dstlen = cnt;
-  size_t srcsize;
-
-  ZeroMemory(&sa, sizeof(sa));
-  switch (af)
-    {
-    case AF_INET:
-      sa.sin.sin_family = AF_INET;
-      sa.sin.sin_addr = *(struct in_addr *) src;
-      srcsize = sizeof (sa.sin);
-      break;
-    case AF_INET6:
-      sa.sin6.sin6_family = AF_INET6;
-      sa.sin6.sin6_addr = *(struct in6_addr *) src;
-      srcsize = sizeof (sa.sin6);
-      break;
-    default:
-      abort ();
-    }
-
-  if (WSAAddressToString ((struct sockaddr *) &sa, srcsize, NULL, dst, &dstlen) != 0)
-    {
-      errno = WSAGetLastError();
-      return NULL;
-    }
-  return (const char *) dst;
-}
-
-int
-wpurple_inet_pton(int af, const char *src, void *dst)
-{
-	/* struct sockaddr can't accomodate struct sockaddr_in6. */
-	union {
-		struct sockaddr_in6 sin6;
-		struct sockaddr_in sin;
-	} sa;
-	int srcsize;
-	
-	switch(af)
-	{
-		case AF_INET:
-			sa.sin.sin_family = AF_INET;
-			srcsize = sizeof (sa.sin);
-		break;
-		case AF_INET6:
-			sa.sin6.sin6_family = AF_INET6;
-			srcsize = sizeof (sa.sin6);
-		break;
-		default:
-			errno = WSAEPFNOSUPPORT;
-			return -1;
-	}
-	
-	if (WSAStringToAddress((LPTSTR)src, af, NULL, (struct sockaddr *) &sa, &srcsize) != 0)
-	{
-		errno = WSAGetLastError();
-		return -1;
-	}
-	
-	switch(af)
-	{
-		case AF_INET:
-			memcpy(dst, &sa.sin.sin_addr, sizeof(sa.sin.sin_addr));
-		break;
-		case AF_INET6:
-			memcpy(dst, &sa.sin6.sin6_addr, sizeof(sa.sin6.sin6_addr));
-		break;
-	}
-	
-	return 1;
-}
-
-
 /* netdb.h */
 struct hostent* wpurple_gethostbyname(const char *name) {
 	struct hostent *hp;
@@ -341,94 +164,6 @@
 
 /* unistd.h */
 
-/*
- *  We need to figure out whether fd is a file or socket handle.
- */
-int wpurple_read(int fd, void *buf, unsigned int size) {
-	int ret;
-
-	if (fd < 0) {
-		errno = EBADF;
-		g_return_val_if_reached(-1);
-	}
-
-	if(wpurple_is_socket(fd)) {
-		if((ret = recv(fd, buf, size, 0)) == SOCKET_ERROR) {
-			errno = WSAGetLastError();
-			if(errno == WSAEWOULDBLOCK || errno == WSAEINPROGRESS)
-				errno = EAGAIN;
-			return -1;
-		}
-		else {
-			/* success reading socket */
-			return ret;
-		}
-	} else {
-		/* fd is not a socket handle.. pass it off to read */
-		return _read(fd, buf, size);
-	}
-}
-
-int wpurple_send(int fd, const void *buf, unsigned int size, int flags) {
-	int ret;
-
-	ret = send(fd, buf, size, flags);
-
-	if (ret == SOCKET_ERROR) {
-		errno = WSAGetLastError();
-		if(errno == WSAEWOULDBLOCK || errno == WSAEINPROGRESS)
-			errno = EAGAIN;
-		return -1;
-	}
-	return ret;
-}
-
-int wpurple_write(int fd, const void *buf, unsigned int size) {
-
-	if (fd < 0) {
-		errno = EBADF;
-		g_return_val_if_reached(-1);
-	}
-
-	if(wpurple_is_socket(fd))
-		return wpurple_send(fd, buf, size, 0);
-	else
-		return _write(fd, buf, size);
-}
-
-int wpurple_recv(int fd, void *buf, size_t len, int flags) {
-	int ret;
-
-	if((ret = recv(fd, buf, len, flags)) == SOCKET_ERROR) {
-			errno = WSAGetLastError();
-			if(errno == WSAEWOULDBLOCK || errno == WSAEINPROGRESS)
-				errno = EAGAIN;
-			return -1;
-	} else {
-		return ret;
-	}
-}
-
-int wpurple_close(int fd) {
-	int ret;
-
-	if (fd < 0) {
-		errno = EBADF;
-		g_return_val_if_reached(-1);
-	}
-
-	if( wpurple_is_socket(fd) ) {
-		if( (ret = closesocket(fd)) == SOCKET_ERROR ) {
-			errno = WSAGetLastError();
-			return -1;
-		}
-		else
-			return 0;
-	}
-	else
-		return _close(fd);
-}
-
 int wpurple_gethostname(char *name, size_t size) {
         if(gethostname(name, size) == SOCKET_ERROR) {
                 errno = WSAGetLastError();
@@ -436,24 +171,3 @@
         }
         return 0;
 }
-
-/* sys/time.h */
-
-int wpurple_gettimeofday(struct timeval *p, struct timezone *z) {
-	int res = 0;
-	struct _timeb timebuffer;
-
-	if (z != 0) {
-		_tzset();
-		z->tz_minuteswest = _timezone/60;
-		z->tz_dsttime = _daylight;
-	}
-
-	if (p != 0) {
-		_ftime(&timebuffer);
-		p->tv_sec = timebuffer.time;			/* seconds since 1-1-1970 */
-		p->tv_usec = timebuffer.millitm*1000; 	/* microseconds */
-	}
-
-	return res;
-}

mercurial