X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=libhb%2Fports.c;h=120038618bbd2197c43723285554e8085cde2445;hb=5d42c76946bc07b78a15aabcc6ebd5b68c07cc12;hp=7b18ce89695c6c2b6b2c54e07e452f78991b8e1f;hpb=16cbc82e3b863e7cb75280ef5ecdc742322fe09e;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/libhb/ports.c b/libhb/ports.c index 7b18ce89..12003861 100644 --- a/libhb/ports.c +++ b/libhb/ports.c @@ -103,12 +103,19 @@ int hb_dvd_region(char *device, int *region_mask) 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; @@ -637,6 +644,23 @@ hb_net_t * hb_net_open( char * address, int port ) 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 ) ) ) {