if ( fd < 0 )
return -1;
if ( fstat( fd, &st ) < 0 )
+ {
+ close( fd );
return -1;
+ }
if ( !( S_ISBLK( st.st_mode ) || S_ISCHR( st.st_mode ) ) )
+ {
+ close( fd );
return -1;
+ }
ai.type = DVD_LU_SEND_RPC_STATE;
ret = ioctl(fd, DVD_AUTH, &ai);
+ close( fd );
if ( ret < 0 )
return ret;
struct sockaddr_in sock;
struct hostent * host;
+#ifdef SYS_MINGW
+ WSADATA wsaData;
+ int iResult, winsock_init = 0;
+
+ // Initialize Winsock
+ if (!winsock_init)
+ {
+ iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
+ if (iResult != 0)
+ {
+ hb_log("WSAStartup failed: %d", iResult);
+ return NULL;
+ }
+ winsock_init = 1;
+ }
+#endif
+
/* TODO: find out why this doesn't work on Win32 */
if( !( host = gethostbyname( address ) ) )
{