// hostName is run through a dns lookup and then a udp socket is connected // to the result. If that all works, the local IP address of the socket is // returned to the javascript caller and |*aResult| is set to true. Otherwise // |*aResult| is set to false. bool ProxyAutoConfig::MyIPAddressTryHost(const nsCString &hostName, unsigned int timeout, const JS::CallArgs &aArgs, bool* aResult) { *aResult = false; NetAddr remoteAddress; nsAutoCString localDottedDecimal; JSContext *cx = mJSRuntime->Context(); if (PACResolve(hostName, &remoteAddress, timeout) && SrcAddress(&remoteAddress, localDottedDecimal)) { JSString *dottedDecimalString = JS_NewStringCopyZ(cx, localDottedDecimal.get()); if (!dottedDecimalString) { return false; } *aResult = true; aArgs.rval().setString(dottedDecimalString); } return true; }
// hostName is run through a dns lookup and then a udp socket is connected // to the result. If that all works, the local IP address of the socket is // returned to the javascript caller and true is returned from this function. // otherwise false is returned. bool ProxyAutoConfig::MyIPAddressTryHost(const nsCString &hostName, unsigned int timeout, JS::Value *vp) { NetAddr remoteAddress; nsAutoCString localDottedDecimal; JSContext *cx = mJSRuntime->Context(); if (PACResolve(hostName, &remoteAddress, timeout) && SrcAddress(&remoteAddress, localDottedDecimal)) { JSString *dottedDecimalString = JS_NewStringCopyZ(cx, localDottedDecimal.get()); JS_SET_RVAL(cx, vp, STRING_TO_JSVAL(dottedDecimalString)); return true; } return false; }