nsresult nsPermissionManager::CommonTestPermission(nsIURI *aURI, const char *aType, PRUint32 *aPermission, PRBool aExactHostMatch) { NS_ENSURE_ARG_POINTER(aURI); NS_ENSURE_ARG_POINTER(aType); // set the default *aPermission = nsIPermissionManager::UNKNOWN_ACTION; nsCAutoString host; nsresult rv = GetHost(aURI, host); // no host doesn't mean an error. just return the default if (NS_FAILED(rv)) return NS_OK; PRInt32 typeIndex = GetTypeIndex(aType, PR_FALSE); // If type == -1, the type isn't known, // so just return NS_OK if (typeIndex == -1) return NS_OK; nsHostEntry *entry = GetHostEntry(host, typeIndex, aExactHostMatch); if (entry) *aPermission = entry->GetPermission(typeIndex).mPermission; return NS_OK; }
//---------------------------------------------------------------------------------- // //---------------------------------------------------------------------------------- bool ClientImplemented::Start( char* host, uint16_t port ) { if( m_running ) return false; SOCKADDR_IN sockAddr; HOSTENT* hostEntry= NULL; /* ソケット生成 */ EfkSocket socket_ = Socket::GenSocket(); if ( socket_ == InvalidSocket ) { if ( socket_ != InvalidSocket ) Socket::Close( socket_ ); return false; } /* ホスト情報取得 */ hostEntry = GetHostEntry( host ); if ( hostEntry == NULL ) { if ( socket_ != InvalidSocket ) Socket::Close( socket_ ); return false; } /* 接続用データ生成 */ memset( &sockAddr, 0, sizeof(SOCKADDR_IN) ); sockAddr.sin_family = AF_INET; sockAddr.sin_port = htons( port ); sockAddr.sin_addr = *(IN_ADDR*)(hostEntry->h_addr_list[0]); /* 接続 */ int32_t ret = ::connect( socket_, (SOCKADDR*)(&sockAddr), sizeof(SOCKADDR_IN) ); if ( ret == SocketError ) { if ( socket_ != InvalidSocket ) Socket::Close( socket_ ); return false; } m_socket = socket_; m_port = port; m_running = true; m_threadRecv.Create( RecvAsync, this ); EffekseerPrintDebug("Client : Start\n"); return true; }