/** * Sends a http-request synchronously * @name sendRequestSync * @memberOf net * @function * * @param {String} uri The uri the request will be sent to. * @param {String} [method] The http request method, default GET * * @returns {Object} * Object that contains the response body, the response headers and the * http status code of the request. * */ static JSValueRef net_send_request_sync(JSContextRef ctx, JSObjectRef f, JSObjectRef thisObject, size_t argc, const JSValueRef argv[], JSValueRef* exc) { char *method = NULL, *uri = NULL; SoupMessage *msg; guint status; JSValueRef val; JSObjectRef o; JSStringRef js_key; JSValueRef js_value; if (argc < 1) return NIL; uri = js_value_to_char(ctx, argv[0], -1, exc); if (uri == NULL) return NIL; if (argc > 1) method = js_value_to_char(ctx, argv[1], -1, exc); msg = soup_message_new(method == NULL ? "GET" : method, uri); if (argc > 2) set_request(ctx, msg, argv[2], exc); status = soup_session_send_message(webkit_get_default_session(), msg); val = get_message_data(msg); js_key = JSStringCreateWithUTF8CString("status"); js_value = JSValueMakeNumber(ctx, status); o = JSValueToObject(ctx, val, exc); JSObjectSetProperty(ctx, o, js_key, js_value, kJSPropertyAttributeDontDelete | kJSPropertyAttributeReadOnly, exc); JSStringRelease(js_key); return o; }
/** * Sends a http-request * @name sendRequest * @memberOf net * @function * * @param {String} uri * The uri the request will be sent to. * @param {net~onResponse} callback * A callback that will be called when the request is finished * @param {String} [method] The http request method, default GET * @param {Object} [data] An object if method is POST * @param {String} data.contentType The content type * @param {String} data.data The data that will be sent with the request * * @returns {Boolean} * true if the request was sent * */ static JSValueRef net_send_request(JSContextRef ctx, JSObjectRef f, JSObjectRef thisObject, size_t argc, const JSValueRef argv[], JSValueRef* exc) { gboolean ret = -1; char *method = NULL, *uri = NULL; SoupMessage *msg; JSObjectRef function; if (argc < 2) return JSValueMakeNumber(ctx, -1); uri = js_value_to_char(ctx, argv[0], -1, exc); if (uri == NULL) return JSValueMakeNumber(ctx, -1); function = js_value_to_function(ctx, argv[1], exc); if (function == NULL) goto error_out; if (argc > 2) method = js_value_to_char(ctx, argv[2], -1, exc); msg = soup_message_new(method == NULL ? "GET" : method, uri); if (msg == NULL) goto error_out; if (argc > 3 && method != NULL && !g_ascii_strcasecmp("POST", method)) set_request(ctx, msg, argv[3], exc); JSValueProtect(ctx, function); soup_session_queue_message(webkit_get_default_session(), msg, (SoupSessionCallback)request_callback, function); ret = 0; error_out: g_free(uri); g_free(method); return JSValueMakeNumber(ctx, ret); }/*}}}*/
void static_net_config::set_password(const std::string& password) { _password = password; set_request(static_net_config_request(_mac_address, _ip, _subnet, _gateway, _password)); }
void static_net_config::set_gateway(const std::string& gateway) { _gateway = boost::lexical_cast<ip_address>(gateway); set_request(static_net_config_request(_mac_address, _ip, _subnet, _gateway, _password)); }