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_close (xmms_socket_t socket) { 00036 closesocket (socket); 00037 } 00038 00039 int xmms_socket_errno () { 00040 return WSAGetLastError (); 00041 }