XMMS2

src/lib/xmmssocket/socket_win32.c

Go to the documentation of this file.
00001 #include "xmmsc/xmmsc_sockets.h"
00002 
00003 int xmms_sockets_initialize () {
00004     WSADATA wsaData;
00005     int res = WSAStartup (MAKEWORD (2,2), &wsaData);
00006     if (res != NO_ERROR) {
00007         return 0;
00008     }
00009     return 1;
00010 }
00011 
00012 /**
00013  * Tries to set socket to non-blocking mode.
00014  * @param socket Socket to make non-blocking.
00015  * On success, returns 1.
00016  * On failure, closes socket and returns 0.
00017  */
00018 int xmms_socket_set_nonblock (xmms_socket_t socket) {
00019     unsigned long yes = 1;
00020     int err = ioctlsocket (socket, FIONBIO, &yes);
00021     if (err == SOCKET_ERROR) {
00022         closesocket (socket);
00023         return 0;
00024     }
00025     return 1;
00026 
00027 }
00028 int xmms_socket_valid (xmms_socket_t socket) {
00029     if (socket == INVALID_SOCKET) {
00030         return 0;
00031     }
00032     return 1;
00033 }
00034 
00035 void xmms_socket_invalidate (xmms_socket_t *socket) {
00036     *socket = INVALID_SOCKET;
00037 }
00038 
00039 void xmms_socket_close (xmms_socket_t socket) {
00040     closesocket (socket);
00041 }
00042 
00043 int xmms_socket_errno () {
00044     return WSAGetLastError ();
00045 }