diff options
author | Dan Winship <danw@src.gnome.org> | 2008-01-07 14:51:31 +0000 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2008-01-07 14:51:31 +0000 |
commit | b3a34e8a0197507c9df377d15d58b3453521cb9f (patch) | |
tree | 885039cc2eecb4d175f02a93bf83430f019648ef | |
parent | df65b937db738566ab719d4b75dde8628fcb8996 (diff) | |
download | libsoup-b3a34e8a0197507c9df377d15d58b3453521cb9f.tar.gz |
Move gtk-doc stuff from docs/reference/tmpl/ to the C files themselves.
* libsoup/*.c: Move gtk-doc stuff from docs/reference/tmpl/ to the
C files themselves. Some updates.
* docs/reference/Makefile.am: fix (kludge?) this up to not require
tmpl/ to exist
* docs/reference/client-howto.xml:
* docs/reference/server-howto.xml: update
svn path=/branches/libsoup-2.4/; revision=1018
61 files changed, 824 insertions, 6745 deletions
@@ -1,3 +1,14 @@ +2008-01-07 Dan Winship <danw@gnome.org> + + * libsoup/*.c: Move gtk-doc stuff from docs/reference/tmpl/ to the + C files themselves. Some updates. + + * docs/reference/Makefile.am: fix (kludge?) this up to not require + tmpl/ to exist + + * docs/reference/client-howto.xml: + * docs/reference/server-howto.xml: update + 2008-01-06 Dan Winship <danw@gnome.org> * libsoup/soup-soap-message.c: diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am index 0dae9709..f34e154a 100644 --- a/docs/reference/Makefile.am +++ b/docs/reference/Makefile.am @@ -29,7 +29,13 @@ HFILE_GLOB= CFILE_GLOB= # Header files to ignore when scanning. -IGNORE_HFILES= soup.h soup-marshal.h soup-types.h +IGNORE_HFILES= soup.h soup-marshal.h \ + soup-message-private.h soup-session-private.h \ + soup-types.h soup-enum-types.h \ + soup-auth-basic.h soup-auth-digest.h soup-auth-ntlm.h \ + soup-connection.h soup-connection-ntlm.h \ + soup-dns.h soup-auth-manager.h soup-md5-utils.h \ + soup-message-queue.h soup-path-map.h soup-ssl.h # Images to copy into HTML directory. HTML_IMAGES = @@ -51,7 +57,11 @@ GTKDOC_CFLAGS = \ GTKDOC_LIBS = $(top_builddir)/libsoup/libsoup-$(SOUP_API_VERSION).la - # include common portion ... include $(top_srcdir)/gtk-doc.make +# kludges +tmpl/*.sgml: + +clean: clean-am + rm -rf tmpl diff --git a/docs/reference/client-howto.xml b/docs/reference/client-howto.xml index ac7caa06..c52f6353 100644 --- a/docs/reference/client-howto.xml +++ b/docs/reference/client-howto.xml @@ -44,7 +44,7 @@ slightly different behavior: </itemizedlist> <para> -If you want to do a mix of synchronous and asynchronous I/O, you will +If you want to do a mix of mainloop-based and blocking I/O, you will need to create two different session objects. </para> @@ -142,8 +142,10 @@ only need to create the message and it's ready to send: <para> In more complicated cases, you can use various <link -linkend="SoupMessage">SoupMessage</link> methods to set the request -headers and body of the message: +linkend="SoupMessage">SoupMessage</link>, <link +linkend="SoupMessageHeaders">SoupMessageHeaders</link>, and <link +linkend="SoupMessageBody">SoupMessageBody</link> methods to set the +request headers and body of the message: </para> <informalexample><programlisting> @@ -151,8 +153,8 @@ headers and body of the message: msg = soup_message_new ("POST", "http://example.com/form.cgi"); soup_message_set_request (msg, "application/x-www-form-urlencoded", - SOUP_BUFFER_USER_OWNED, formdata, strlen (formdata)); - soup_message_add_header (msg->request_headers, "Referer", referring_url); + SOUP_MEMORY_COPY, formdata, strlen (formdata)); + soup_message_headers_append (msg->request_headers, "Referer", referring_url); </programlisting></informalexample> <para> @@ -180,20 +182,18 @@ linkend="soup-session-send-message"><function>soup_session_send_message</functio </programlisting></informalexample> <para> -<literal>session</literal> can be either a <link -linkend="SoupSessionSync"><type>SoupSessionSync</type></link> or a -<link linkend="SoupSessionAsync"><type>SoupSessionAsync</type></link>; -if you use <function>soup_session_send_message</function> on an async -session, it will run the main loop itself until the message is -complete. +(If you use <function>soup_session_send_message</function> with a +<link linkend="SoupSessionAsync"><type>SoupSessionAsync</type></link>, +it will run the main loop itself until the message is complete.) </para> <para> -The return value from <function>soup_session_send</function> is a <link -linkend="soup-status">soup status code</link>, indicating either a -transport error that prevented the message from being sent, or the +The return value from <function>soup_session_send</function> is a +<link linkend="soup-status">soup status code</link>, indicating either +a transport error that prevented the message from being sent, or the HTTP status that was returned by the server in response to the -message. +message. (The status is also available as +<literal>msg->status_code</literal>.) </para> </refsect3> @@ -202,10 +202,8 @@ message. <title>Sending a Message Asynchronously</title> <para> -To send a message asynchronously (which can only be done if you're -using <link -linkend="SoupSessionAsync"><type>SoupSessionAsync</type></link>), use -<link linkend="soup-session-queue-message"><function>soup_session_queue_message</function></link>: +To send a message asynchronously, use <link +linkend="soup-session-queue-message"><function>soup_session_queue_message</function></link>: </para> <informalexample><programlisting> @@ -215,7 +213,7 @@ linkend="SoupSessionAsync"><type>SoupSessionAsync</type></link>), use } static void -my_callback (SoupMessage *msg, gpointer user_data) +my_callback (SoupSession, *session, SoupMessage *msg, gpointer user_data) { /* Handle the response here */ } @@ -229,6 +227,15 @@ response be will be read. When the message is complete, passed to <function>soup_session_queue_message</function>. </para> +<para> +(If you use <link +linkend="soup-session-queue-message"><function>soup_session_queue_message</function></link> +with a <link +linkend="SoupSessionSync"><type>SoupSessionSync</type></link>, the +message will be sent in another thread, with the callback eventually +being invoked in the session's <link linkend="SOUP-SESSION-ASYNC-CONTEXT:CAPS"><literal>SOUP_SESSION_ASYNC_CONTEXT</literal></link>.) +</para> + </refsect3> </refsect2> @@ -245,11 +252,11 @@ asynchronously, you can look at the response fields in the status and textual status response from the server. <structfield>response_headers</structfield> contains the response headers, which you can investigate using <link -linkend="soup-message-get-header"><function>soup_message_get_header</function></link> and +linkend="soup-message-headers-get"><function>soup_message_headers_get</function></link> and <link - linkend="soup-message-foreach-header"><function>soup_message_foreach_header</function></link>. + linkend="soup-message-headers-foreach"><function>soup_message_headers_foreach</function></link>. The response body (if any) is in the -<structfield>response</structfield> field. +<structfield>response_body</structfield> field. </para> <para> @@ -272,17 +279,17 @@ it. <title>Intermediate/Automatic Processing</title> <para> -You can also connect to various <literal>SoupMessage</literal> -signals, or set up handlers using <link -linkend="soup-message-add-handler"><function>soup_message_add_handler</function></link> -and the other handler methods. Notably, <link +You can also connect to various <literal>SoupMessage</literal> signals +to do processing at intermediate stages of HTTP I/O. +<literal>SoupMessage</literal> also provides two convenience methods, +<link linkend="soup-message-add-header-handler"><function>soup_message_add_header_handler</function></link>, -<link linkend="soup-message-add-status-code-handler"><function>soup_message_add_status_code_handler</function></link>, -and -<link linkend="soup-message-add-status-class-handler"><function>soup_message_add_status_class_handler</function></link> -allow you to invoke a handler automatically for messages with certain -response headers or status codes. <type>SoupSession</type> uses -this internally to handle authentication and redirection. +and <link +linkend="soup-message-add-status-code-handler"><function>soup_message_add_status_code_handler</function></link>, +which allow you to set up a signal handler that will only be invoked +for messages with certain response headers or status codes. +<type>SoupSession</type> uses this internally to handle authentication +and redirection. </para> <para> @@ -293,10 +300,9 @@ linkend="soup-session-send-message"><function>soup_session_send_message</functio <para> To automatically set up handlers on all messages sent via a session, -you can create a <link -linkend="SoupMessageFilter">SoupMessageFilter</link> and attach it to -the session with <link -linkend="soup-session-add-filter"><function>soup_session_add_filter</function></link>. +you can connect to the session's <link +linkend="SoupSession-request-started"><literal>request_started</literal></link> +signal, and add handlers to each message from there. </para> </refsect2> @@ -309,76 +315,36 @@ linkend="soup-session-add-filter"><function>soup_session_add_filter</function></ authentication for you. If it receives a 401 ("Unauthorized") or 407 ("Proxy Authentication Required") response, the session will emit the <link linkend="SoupSession-authenticate">authenticate</link> signal, -indicating the authentication type ("Basic", "Digest", or "NTLM") and -the realm name provided by the server. You should connect to this -signal and, if possible, fill in the <parameter>username</parameter> -and <parameter>password</parameter> parameters with authentication -information. (The session will <function>g_free</function> the strings -when it is done with them.) If the handler doesn't fill in those -parameters, then the session will just return the message to the -application with its 401 or 407 status. +providing you with a <link +linkend="SoupAuth"><type>SoupAuth</type></link> object indicating the +authentication type ("Basic", "Digest", or "NTLM") and the realm name +provided by the server. If you have a username and password available +(or can generate one), call <link +linkend="soup-auth-authenticate"><function>soup_auth_authenticate</function></link> +to give the information to libsoup. The session will automatically +requeue the message and try it again with that authentication +information. (If you don't call +<function>soup_auth_authenticate</function>, the session will just +return the message to the application with its 401 or 407 status.) </para> <para> -If the <literal>authenticate</literal> handler returns a username and -password, but the request still gets an authorization error using that -information, then the session will emit the <link -linkend="SoupSession-reauthenticate">reauthenticate</link> signal. -This lets the application know that the information it provided -earlier was incorrect, and gives it a chance to try again. If this +If the server doesn't accept the username and password provided, the +session will emit <link +linkend="SoupSession-authenticate">authenticate</link> again, with the +<literal>retrying</literal> parameter set to <link +linkend="TRUE:CAPS"><literal>TRUE</literal></link>. This lets the +application know that the information it provided earlier was +incorrect, and gives it a chance to try again. If this username/password pair also doesn't work, the session will contine to -emit <literal>reauthenticate</literal> again and again until the -returned username/password successfully authentications, or until the -signal handler fails to provide a username, at which point -<application>libsoup</application> will allow the message to fail -(with status 401 or 407). +emit <literal>authenticate</literal> again and again until the +provided username/password successfully authenticates, or until the +signal handler fails to call <link +linkend="soup-auth-authenticate"><function>soup_auth_authenticate</function></link>, +at which point <application>libsoup</application> will allow the +message to fail (with status 401 or 407). </para> -<para> -There are basically three ways an application might want to use -the signals: -</para> - -<itemizedlist> - <listitem><para> - An interactive application that doesn't cache passwords could - just connect both <literal>authenticate</literal> and - <literal>reauthenticate</literal> to the same signal handler, - which would ask the user for a username and password and then - return that to soup. This handler would be called repeatedly - until the provided information worked, or until it failed to - return any information (eg, because the user hit "Cancel" - instead of "OK"). - </para></listitem> - - <listitem><para> - A slightly cleverer interactive application would look in its - password cache from the <literal>authenticate</literal> - handler, and return a password from there if one was - available. If no password was cached, it would just call its - <literal>reauthenticate</literal> handler to prompt the user. - The <literal>reauthenticate</literal> handler would first - clear any cached password for this host, auth type, and realm, - then ask the user as in the case above, and then store that - information in its cache before returning it to soup. (If the - password turns out to be incorrect, then - <literal>reauthenticate</literal> will be called again to - force it to be uncached.) - </para></listitem> - - <listitem><para> - A non-interactive program that only has access to cached - passwords would only connect to - <literal>authenticate</literal>. If the username and password - that <literal>authenticate</literal> returns fail, the session - will emit <literal>reauthenticate</literal>, but since the - application is not listening to that signal, no new username - and password will be returned there, so the message will be - returned to the application with a 401 or 407 status, which - the application can deal with as it needs to. - </para></listitem> -</itemizedlist> - </refsect2> <refsect2> @@ -396,12 +362,12 @@ A few sample programs are available in the </para></listitem> <listitem><para> - <emphasis role="bold"><literal>dict</literal></emphasis> and - <emphasis role="bold"><literal>getbug</literal></emphasis> are trivial - demonstrations of the <link - linkend="SoupSoapMessage">SOAP</link> and <link - linkend="SoupXmlrpcMessage">XMLRPC</link> interfaces, - respectively. + <emphasis role="bold"><literal>getbug</literal></emphasis> is a trivial + demonstration of the <link + linkend="libsoup-XMLRPC-Support">XMLRPC</link> interface. + (<emphasis + role="bold"><literal>xmlrpc-test</literal></emphasis> provides + a slightly more complicated example.) </para></listitem> <listitem><para> diff --git a/docs/reference/libsoup-overrides.txt b/docs/reference/libsoup-overrides.txt index 9828402a..06826ca5 100644 --- a/docs/reference/libsoup-overrides.txt +++ b/docs/reference/libsoup-overrides.txt @@ -1,9 +1,4 @@ <FUNCTION> -<NAME>soup_dns_lookup_get_address</NAME> -<RETURNS>struct sockaddr *</RETURNS> -SoupDNSLookup *lookup -</FUNCTION> -<FUNCTION> <NAME>soup_address_get_sockaddr</NAME> <RETURNS>struct sockaddr *</RETURNS> SoupAddress *addr, diff --git a/docs/reference/libsoup-sections.txt b/docs/reference/libsoup-sections.txt index 25ac10f5..940645ea 100644 --- a/docs/reference/libsoup-sections.txt +++ b/docs/reference/libsoup-sections.txt @@ -39,8 +39,6 @@ SOUP_MESSAGE_CLASS SOUP_IS_MESSAGE_CLASS SOUP_MESSAGE_GET_CLASS SoupMessageClass -SoupMessagePrivate -SOUP_MESSAGE_GET_PRIVATE <SUBSECTION Private> soup_message_wrote_informational soup_message_wrote_headers @@ -121,6 +119,9 @@ soup_message_body_truncate soup_message_body_complete soup_message_body_flatten soup_message_body_get_chunk +<SUBSECTION Standard> +SOUP_TYPE_BUFFER +soup_buffer_get_type </SECTION> <SECTION> @@ -155,9 +156,13 @@ soup_server_get_async_context SoupServerCallback soup_server_add_handler soup_server_remove_handler +<SUBSECTION> SoupClientContext +soup_client_context_get_socket soup_client_context_get_address soup_client_context_get_host +soup_client_context_get_auth_domain +soup_client_context_get_auth_user <SUBSECTION> soup_server_add_auth_domain soup_server_remove_auth_domain @@ -170,6 +175,7 @@ SOUP_SERVER_INTERFACE SOUP_SERVER_SSL_CERT_FILE SOUP_SERVER_SSL_KEY_FILE SOUP_SERVER_ASYNC_CONTEXT +SOUP_SERVER_RAW_PATHS <SUBSECTION Standard> SOUP_SERVER SOUP_IS_SERVER @@ -179,6 +185,8 @@ SOUP_SERVER_CLASS SOUP_IS_SERVER_CLASS SOUP_SERVER_GET_CLASS SoupServerClass +SOUP_TYPE_CLIENT_CONTEXT +soup_client_context_get_type </SECTION> <SECTION> @@ -188,6 +196,7 @@ SoupAuthDomain <SUBSECTION> soup_auth_domain_add_path soup_auth_domain_remove_path +SoupAuthDomainFilter soup_auth_domain_set_filter soup_auth_domain_get_realm <SUBSECTION> @@ -286,6 +295,8 @@ SOUP_ADDRESS_CLASS SOUP_IS_ADDRESS_CLASS SOUP_ADDRESS_GET_CLASS SoupAddressClass +<SUBSECTION Private> +AF_INET6 </SECTION> <SECTION> @@ -300,6 +311,9 @@ soup_session_send_message soup_session_cancel_message soup_session_abort <SUBSECTION> +soup_session_pause_message +soup_session_unpause_message +<SUBSECTION> soup_session_get_async_context <SUBSECTION> SOUP_SESSION_PROXY_URI @@ -404,6 +418,7 @@ soup_socket_listen <SUBSECTION> soup_socket_start_ssl soup_socket_start_proxy_ssl +soup_socket_is_ssl <SUBSECTION> soup_socket_disconnect soup_socket_is_connected @@ -467,6 +482,7 @@ SoupDateFormat soup_date_new soup_date_new_from_string soup_date_new_from_time_t +soup_date_new_from_now soup_date_to_string soup_date_free <SUBSECTION> @@ -496,7 +512,8 @@ soup_ssl_supported <SUBSECTION Private> soup_date_copy soup_signal_connect_once -soup_xml_real_node +SOUP_TYPE_DATE +soup_date_get_type </SECTION> <SECTION> @@ -506,6 +523,7 @@ soup_xml_real_node soup_xmlrpc_build_method_call soup_xmlrpc_request_new soup_xmlrpc_parse_method_response +soup_xmlrpc_extract_method_response <SUBSECTION> soup_xmlrpc_parse_method_call soup_xmlrpc_extract_method_call diff --git a/docs/reference/server-howto.xml b/docs/reference/server-howto.xml index 2d7971b6..76c19182 100644 --- a/docs/reference/server-howto.xml +++ b/docs/reference/server-howto.xml @@ -21,17 +21,6 @@ most of your interactions with libsoup. In this case, <link linkend="SoupServer"><type>SoupServer</type></link>. </para> -<warning> - <para> - Note that <type>SoupServer</type> isn't as polished as - <type>SoupSession</type>, and thus not as stable, and the APIs - will likely change in incompatible (but not - difficult-to-port-to) ways in the future to make things nicer. - We apologize in advance for the inconvenience. - </para> -</warning> - - <para> You create the server with <link linkend="soup-server-new"><function>soup_server_new</function></link>, @@ -83,6 +72,16 @@ various additional options: other than the main thread. </para></listitem> </varlistentry> + <varlistentry> + <term><link linkend="SOUP-SERVER-RAW-PATHS:CAPS"><literal>SOUP_SERVER_RAW_PATHS</literal></link></term> + <listitem><para> + Set this to <literal>TRUE</literal> if you don't want + <application>libsoup</application> to decode %-encoding + in the Request-URI. (Eg, because you need to treat + <literal>"/foo/bar"</literal> and + <literal>"/foo%2Fbar"</literal> as different paths. + </para></listitem> + </varlistentry> </variablelist> </refsect2> @@ -100,8 +99,8 @@ to set a callback to handle certain URI paths. </para> <informalexample><programlisting> -soup_server_add_handler (server, "/foo", NULL, server_callback, - unregister_callback, data); + soup_server_add_handler (server, "/foo", server_callback, + data, destroy_notify); </programlisting></informalexample> <para> @@ -131,18 +130,28 @@ A handler callback looks something like this: <informalexample><programlisting> static void -server_callback (SoupServerContext *context, SoupMessage *msg, gpointer data) +server_callback (SoupServer *server, + SoupMessage *msg, + const char *path, + GHashTable *query, + SoupClientContext *client, + gpointer user_data) { ... } </programlisting></informalexample> <para> -<literal>msg</literal> is the request that has been received. -<literal>data</literal> is the same data that was passed to <link +<literal>msg</literal> is the request that has been received and +<literal>user_data</literal> is the data that was passed to <link linkend="soup-server-add-handler"><function>soup_server_add_handler</function></link>. -The <link>context</link> argument contains some additional information -related to the request. +<literal>path</literal> is the path (from <literal>msg</literal>'s +URI), and <literal>query</literal> contains the result of parsing the +URI query field. (It is <literal>NULL</literal> if there was no +query.) <literal>client</literal> is a <link +linkend="SoupClientContext"><type>SoupClientContext</type></link>, +which contains additional information about the client (including its +IP address, and whether or not it used HTTP authentication). </para> <para> @@ -151,10 +160,10 @@ completely finished processing the message when you return from the callback, and that it can therefore begin sending the response. If you are not ready to send a response immediately (eg, you have to contact another server, or wait for data from a database), you must call <link -linkend="soup-message-io-pause"><function>soup_message_io_pause</function></link> +linkend="soup-server-pause-message"><function>soup_server_pause_message</function></link> on the message before returning from the callback. This will delay sending a response until you call <link -linkend="soup-message-io-unpause"><function>soup_message_io_unpause</function></link>. +linkend="soup-server-unpause-message"><function>soup_server_unpause_message</function></link>. (You must also connect to the <link linkend="SoupMessage-finished">finished</link> signal on the message in this case, so that you can break off processing if the client @@ -166,10 +175,8 @@ To set the response status, call <link linkend="soup-message-set-status"><function>soup_message_set_status</function></link> or <link linkend="soup-message-set-status-full"><function>soup_message_set_status_full</function></link>. -If the response requires a body, the callback must call <link -linkend="soup-server-message-set-encoding"><function>soup_server_message_set_encoding</function></link> -to indicate whether it will provide the response all at once with -<literal>Content-Length</literal> encoding, or in pieces with +If the response requires a body, you must decide whether to use +<literal>Content-Length</literal> encoding (the default), or <literal>chunked</literal> encoding. </para> @@ -184,29 +191,34 @@ data available at once. <informalexample><programlisting> static void -server_callback (SoupServerContext *context, SoupMessage *msg, gpointer data) +server_callback (SoupServer *server, + SoupMessage *msg, + const char *path, + GHashTable *query, + SoupClientContext *client, + gpointer user_data) { - MyServerData *server_data = data; - SoupUri *uri = soup_message_get_uri (msg); + MyServerData *server_data = user_data; const char *mime_type; GByteArray *body; - if (context->method_id != SOUP_METHOD_ID_GET) { + if (msg->method != SOUP_METHOD_GET) { soup_message_set_status (msg, SOUP_STATUS_NOT_IMPLEMENTED); return; } - body = g_hash_table_lookup (server_data->bodies, uri->path); - mime_type = g_hash_table_lookup (server_data->mime_types, uri->path); + /* This is somewhat silly. Presumably your server will do + * something more interesting. + */ + body = g_hash_table_lookup (server_data->bodies, path); + mime_type = g_hash_table_lookup (server_data->mime_types, path); if (!body || !mime_type) { soup_message_set_status (msg, SOUP_STATUS_NOT_FOUND); return; } soup_message_set_status (msg, SOUP_STATUS_OK); - soup_server_message_set_encoding (SOUP_SERVER_MESSAGE (msg), - SOUP_TRANSFER_CONTENT_LENGTH); - soup_message_set_response (msg, mime_type, SOUP_BUFFER_USER_OWNED, + soup_message_set_response (msg, mime_type, SOUP_MEMORY_COPY, body->data, body->len); } </programlisting></informalexample> @@ -219,16 +231,22 @@ server_callback (SoupServerContext *context, SoupMessage *msg, gpointer data) <para> If you want to supply the response body in chunks as it becomes available, use <literal>chunked</literal> encoding instead. In this -case, call <link -linkend="soup-message-add-chunk"><function>soup_message_add_chunk</function></link> with -each chunk of the response body as it becomes available, and call -<link -linkend="soup-message-add-final-chunk"><function>soup_message_add_final_chunk</function></link> +case, first call <link +linkend="soup-message-headers-set-encoding"><function>soup_message_headers_set_encoding</function></link> <literal>(msg->response_headers, <link +linkend="SoupEncoding">SOUP_ENCODING_CHUNKED</link>)</literal> +to tell <application>libsoup</application> that you'll be using +chunked encoding. Then call <link +linkend="soup-message-body-append"><function>soup_message_body_append</function></link> +(or <link +linkend="soup-message-body-append-buffer"><function>soup_message_body_append_buffer</function></link>) +on <literal>msg->response_body</literal> with each chunk of the +response body as it becomes available, and call <link +linkend="soup-message-body-complete"><function>soup_message_body_complete</function></link> when the response is complete. After each of these calls, you must also call <link -linkend="soup-message-io-unpause"><function>soup_message_io_unpause</function></link> to -cause the chunk to be sent. (You do not normally need to call -<link linkend="soup-message-io-pause"><function>soup_message_io_pause</function></link>, +linkend="soup-server-unpause-message"><function>soup_server_unpause_message</function></link> +to cause the chunk to be sent. (You do not normally need to call <link +linkend="soup-server-pause-message"><function>soup_server_pause_message</function></link>, because I/O is automatically paused when doing a <literal>chunked</literal> transfer if no chunks are available.) </para> @@ -239,7 +257,9 @@ linkend="SoupMessage-finished">finished</link> signal on the message, so that you will be notified if the client disconnects between two chunks; <type>SoupServer</type> will unref the message if that happens, so you must stop adding new chunks to the response at that -point. +point. (An alternate possibility is to write each new chunk only when +the <link linkend="SoupMessage-wrote-chunk">wrote_chunk</link> signal +is emitted indicating that the previous one was written successfully.) </para> <para> @@ -257,59 +277,92 @@ using <literal>chunked</literal> encoding. <para> To have <link linkend="SoupServer"><type>SoupServer</type></link> -handle HTTP authentication for you, pass a <link -linkend="SoupAuthContext"><type>SoupAuthContext</type></link> to <link -linkend="soup-server-add-handler"><function>soup_server_add_handler</function></link>: +handle HTTP authentication for you, create a <link +linkend="SoupAuthDomainBasic"><type>SoupAuthDomainBasic</type></link> +or <link +linkend="SoupAuthDomainDigest"><type>SoupAuthDomainDigest</type></link>, +and pass it to <link +linkend="soup-server-add-auth-domain"><function>soup_server_add_auth_domain</function></link>: </para> <informalexample><programlisting> -SoupServerAuthContext auth_ctx; - -auth_ctx.types = SOUP_AUTH_TYPE_BASIC; -auth_ctx.callback = auth_callback; -auth_ctx.user_data = data; -auth_ctx.basic_info.realm = "My Realm"; - -soup_server_add_handler (server, "/bar", &auth_ctx, server_callback, - unregister_callback, data); + SoupAuthDomain *domain; + + domain = soup_auth_domain_basic_new ( + SOUP_AUTH_DOMAIN_REALM, "My Realm", + SOUP_AUTH_DOMAIN_BASIC_AUTH_CALLBACK, auth_callback, + SOUP_AUTH_DOMAIN_BASIC_AUTH_DATA, auth_data, + SOUP_AUTH_DOMAIN_ADD_PATH, "/foo", + SOUP_AUTH_DOMAIN_ADD_PATH, "/bar/private", + NULL); + soup_server_add_auth_domain (server, domain); + g_object_unref (domain); </programlisting></informalexample> <para> -Then, every request that matches that handler will be passed to the -<literal>auth_callback</literal> first before being passed to the -<literal>server_callback</literal>: +Then, every request under one of the auth domain's paths will be +passed to the <literal>auth_callback</literal> first before being +passed to the <literal>server_callback</literal>: </para> <informalexample><programlisting> static gboolean -auth_callback (SoupServerAuthContext *auth_ctx, SoupServerAuth *auth, - SoupMessage *msg, gpointer user_data) +auth_callback (SoupAuthDomain *domain, SoupMessage *msg, + const char *username, const char *password, + gpointer user_data) { MyServerData *server_data = user_data; - const char *username, *password; + MyUserData *user; - if (!auth) + user = my_server_data_lookup_user (server_data, username); + if (!user) return FALSE; - username = soup_server_auth_get_user (auth); - password = g_hash_table_lookup (server_data->passwords, username); - if (!password) - return FALSE; - - return soup_server_auth_check_passwd (auth, password); + /* FIXME: Don't do this. Keeping a cleartext password database + * is bad. + */ + return strcmp (password, user->password) == 0; } </programlisting></informalexample> <para> -The <literal>auth</literal> parameter indicates the authentication -information passed by the client. If no -<literal>WWW-Authenticate</literal> header was present, this will be -<literal>NULL</literal>, so we return <literal>FALSE</literal> from -the callback to indicate that the server should return a <literal>401 -Unauthorized</literal> response. If it is non-<literal>NULL</literal>, -we extract the username from it, and compare it against our stored -password. Assuming it matches, we return <literal>TRUE</literal>, and -the server callback is then invoked normally. +The <link +linkend="SoupAuthDomainBasicAuthCallback"><type>SoupAuthDomainBasicAuthCallback</type></link> +is given the username and password from the +<literal>Authorization</literal> header and must determine, in some +server-specific manner, whether or not to accept them. (In this +example we compare the password against a cleartext password database, +but it would be better to store the password somehow encoded, as in +the UNIX password database. Alternatively, you may need to delegate +the password check to PAM or some other service.) +</para> + +<para> +If you are using Digest authentication, note that <link +linkend="SoupAuthDomainDigestAuthCallback"><type>SoupAuthDomainDigestAuthCallback</type></link> +works completely differently (since the server doesn't receive the +cleartext password from the client in that case, so there's no way to +compare it directly). See the documentation for <link +linkend="SoupAuthDomainDigest"><type>SoupAuthDomainDigest</type></link> +for more details. +</para> + +<para> +You can have multiple <type>SoupAuthDomain</type>s attached to a +<literal>SoupServer</literal>, either in separate parts of the path +hierarchy, or overlapping. (Eg, you might want to accept either Basic +or Digest authentication for a given path.) When more than one auth +domain covers a given path, the request will be accepted if the user +authenticates successfully against <emphasis>any</emphasis> of the +domains. +</para> + +<para> +If you want to require authentication for some requests under a +certain path, but not all of them (eg, you want to authenticate +<literal>PUT</literal>s, but not <literal>GET</literal>s), use a +<link +linkend="SoupAuthDomainFilter"><type>SoupAuthDomainFilter</type></link>. </para> </refsect2> diff --git a/docs/reference/tmpl/libsoup-unused.sgml b/docs/reference/tmpl/libsoup-unused.sgml deleted file mode 100644 index 9432cb19..00000000 --- a/docs/reference/tmpl/libsoup-unused.sgml +++ /dev/null @@ -1,2742 +0,0 @@ -<!-- ##### SECTION ./tmpl/soup-auth-basic.sgml:Long_Description ##### --> -<para> -This implements the Basic HTTP Authentication mechanism, as described -in RFC 2617. It is created automatically by #SoupSession when needed. -</para> - - -<!-- ##### SECTION ./tmpl/soup-auth-basic.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-auth-basic.sgml:Short_Description ##### --> -HTTP Basic Authentication - - -<!-- ##### SECTION ./tmpl/soup-auth-basic.sgml:Title ##### --> -SoupAuthBasic - - -<!-- ##### SECTION ./tmpl/soup-auth-digest.sgml:Long_Description ##### --> -<para> -This implements the Digest HTTP Authentication mechanism, as described -in RFC 2617. It is created automatically by #SoupSession when needed. -</para> - - -<!-- ##### SECTION ./tmpl/soup-auth-digest.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-auth-digest.sgml:Short_Description ##### --> -HTTP Digest Authentication - - -<!-- ##### SECTION ./tmpl/soup-auth-digest.sgml:Title ##### --> -SoupAuthDigest - - -<!-- ##### SECTION ./tmpl/soup-connection-ntlm.sgml:Long_Description ##### --> -<para> -#SoupSession automatically creates #SoupConnectionNTLM rather than -#SoupConnection if you set the %SOUP_SESSION_USE_NTLM flag. -</para> - - -<!-- ##### SECTION ./tmpl/soup-connection-ntlm.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-connection-ntlm.sgml:Short_Description ##### --> -NTLM-authenticated connection - - -<!-- ##### SECTION ./tmpl/soup-connection-ntlm.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-connection-ntlm.sgml:Title ##### --> -SoupConnectionNTLM - - -<!-- ##### SECTION ./tmpl/soup-connection.sgml:Long_Description ##### --> -<para> -#SoupConnection represents a single connection to an HTTP server -(possibly via a proxy). Connection objects are created and destroyed -automatically by #SoupSession. -</para> - - -<!-- ##### SECTION ./tmpl/soup-connection.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-connection.sgml:Short_Description ##### --> -a single possibly-persistent HTTP connection - - -<!-- ##### SECTION ./tmpl/soup-connection.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-connection.sgml:Title ##### --> -SoupConnection - - -<!-- ##### SECTION ./tmpl/soup-dns.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-dns.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-dns.sgml:Short_Description ##### --> -Low-level DNS routines - - -<!-- ##### SECTION ./tmpl/soup-dns.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-dns.sgml:Title ##### --> -soup-dns - - -<!-- ##### SECTION ./tmpl/soup-md5-utils.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-md5-utils.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-md5-utils.sgml:Short_Description ##### --> -MD5 hash utilities - - -<!-- ##### SECTION ./tmpl/soup-md5-utils.sgml:Title ##### --> -soup-md5-utils - - -<!-- ##### SECTION ./tmpl/soup-message-filter.sgml.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-message-filter.sgml.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-message-filter.sgml.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-message-filter.sgml.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-message-filter.sgml.sgml:Title ##### --> -Soup Miscellaneous Utilities - - -<!-- ##### SECTION ./tmpl/soup-message-filter.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-message-filter.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-message-filter.sgml:Short_Description ##### --> -Automatic message processing - - -<!-- ##### SECTION ./tmpl/soup-message-filter.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-message-filter.sgml:Title ##### --> -SoupMessageFilter - - -<!-- ##### SECTION ./tmpl/soup-message-private.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-message-private.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-message-private.sgml:Short_Description ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-message-private.sgml:Title ##### --> -soup-message-private - - -<!-- ##### SECTION ./tmpl/soup-message-queue.sgml:Long_Description ##### --> -<para> -#SoupMessageQueue maintains the queue of pending messages in a -#SoupSession. -</para> - - -<!-- ##### SECTION ./tmpl/soup-message-queue.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-message-queue.sgml:Short_Description ##### --> -Message queue object - - -<!-- ##### SECTION ./tmpl/soup-message-queue.sgml:Title ##### --> -soup-message-queue - - -<!-- ##### SECTION ./tmpl/soup-server-auth.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-server-auth.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-server-auth.sgml:Short_Description ##### --> -Server-side authentication structures - - -<!-- ##### SECTION ./tmpl/soup-server-auth.sgml:Title ##### --> -soup-server-auth - - -<!-- ##### SECTION ./tmpl/soup-server-message.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-server-message.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-server-message.sgml:Short_Description ##### --> -Server-side #SoupMessage - - -<!-- ##### SECTION ./tmpl/soup-server-message.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-server-message.sgml:Title ##### --> -SoupServerMessage - - -<!-- ##### SECTION ./tmpl/soup-soap-message.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-soap-message.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-soap-message.sgml:Short_Description ##### --> -A SOAP request - - -<!-- ##### SECTION ./tmpl/soup-soap-message.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-soap-message.sgml:Title ##### --> -SoupSoapMessage - - -<!-- ##### SECTION ./tmpl/soup-soap-response.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-soap-response.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-soap-response.sgml:Short_Description ##### --> -A SOAP response - - -<!-- ##### SECTION ./tmpl/soup-soap-response.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-soap-response.sgml:Title ##### --> -SoupSoapResponse - - -<!-- ##### SECTION ./tmpl/soup-ssl.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-ssl.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-ssl.sgml:Short_Description ##### --> -SSL/TLS handling - - -<!-- ##### SECTION ./tmpl/soup-ssl.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-ssl.sgml:Title ##### --> -soup-ssl - - -<!-- ##### SECTION ./tmpl/soup-xmlrpc-message.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-xmlrpc-message.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-xmlrpc-message.sgml:Short_Description ##### --> -An XML-RPC Message - - -<!-- ##### SECTION ./tmpl/soup-xmlrpc-message.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-xmlrpc-message.sgml:Title ##### --> -SoupXmlrpcMessage - - -<!-- ##### SECTION ./tmpl/soup-xmlrpc-response.sgml:Long_Description ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-xmlrpc-response.sgml:See_Also ##### --> -<para> - -</para> - - -<!-- ##### SECTION ./tmpl/soup-xmlrpc-response.sgml:Short_Description ##### --> -An XML-RPC response - - -<!-- ##### SECTION ./tmpl/soup-xmlrpc-response.sgml:Stability_Level ##### --> - - - -<!-- ##### SECTION ./tmpl/soup-xmlrpc-response.sgml:Title ##### --> -SoupXmlrpcResponse - - -<!-- ##### MACRO SOUP_CONNECTION_ASYNC_CONTEXT ##### --> -<para> -An alias for the "async-context" property. -</para> - - -<!-- ##### MACRO SOUP_CONNECTION_MESSAGE_FILTER ##### --> -<para> -An alias for the "message-filter" property. -</para> - - -<!-- ##### MACRO SOUP_CONNECTION_ORIGIN_URI ##### --> -<para> -An alias for the "origin-uri" property. -</para> - - -<!-- ##### MACRO SOUP_CONNECTION_PROXY_URI ##### --> -<para> -An alias for the "proxy-uri" property. -</para> - - -<!-- ##### MACRO SOUP_CONNECTION_SSL_CREDENTIALS ##### --> -<para> -An alias for the "ssl-creds" property. -</para> - - -<!-- ##### MACRO SOUP_CONNECTION_TIMEOUT ##### --> -<para> -An alias for the "timeout" property. -</para> - - -<!-- ##### MACRO SOUP_MESSAGE_IS_STARTING ##### --> - -<para> - -</para> - -@msg: -@Returns: - -<!-- ##### MACRO SOUP_PROTOCOL_HTTP ##### --> -<para> - -</para> - - -<!-- ##### MACRO SOUP_PROTOCOL_HTTPS ##### --> -<para> - -</para> - - -<!-- ##### MACRO SOUP_SOCKET_FLAG_CLOEXEC ##### --> -<para> -An alias for the "cloexec" property. -</para> - - -<!-- ##### MACRO SOUP_SOCKET_FLAG_NODELAY ##### --> -<para> -An alias for the "nodelay" property. -</para> - - -<!-- ##### MACRO SOUP_SOCKET_FLAG_REUSEADDR ##### --> -<para> -An alias for the "reuseaddr" property. -</para> - - -<!-- ##### STRUCT SoupAuthBasic ##### --> -<para> -An object representing Basic HTTP authentication. -</para> - -@parent: - -<!-- ##### STRUCT SoupAuthDigest ##### --> -<para> -An object representing Digest HTTP authentication. -</para> - -@parent: - -<!-- ##### ENUM SoupAuthType ##### --> -<para> - -</para> - -@SOUP_AUTH_TYPE_BASIC: -@SOUP_AUTH_TYPE_DIGEST: - -<!-- ##### STRUCT SoupConnection ##### --> -<para> - -</para> - -@parent: - -<!-- ##### SIGNAL SoupConnection::authenticate ##### --> -<para> - -</para> - -@conn: -@msg: -@auth_type: -@auth_realm: -@username: -@password: - -<!-- ##### SIGNAL SoupConnection::connect-result ##### --> -<para> - -</para> - -@conn: -@status: - -<!-- ##### SIGNAL SoupConnection::disconnected ##### --> -<para> - -</para> - -@conn: - -<!-- ##### SIGNAL SoupConnection::reauthenticate ##### --> -<para> - -</para> - -@conn: -@msg: -@auth_type: -@auth_realm: -@username: -@password: - -<!-- ##### ARG SoupConnection:async-context ##### --> -<para> - -</para> - - -<!-- ##### ARG SoupConnection:message-filter ##### --> -<para> - -</para> - - -<!-- ##### ARG SoupConnection:origin-uri ##### --> -<para> - -</para> - - -<!-- ##### ARG SoupConnection:proxy-uri ##### --> -<para> - -</para> - - -<!-- ##### ARG SoupConnection:ssl-creds ##### --> -<para> - -</para> - - -<!-- ##### ARG SoupConnection:timeout ##### --> -<para> - -</para> - - -<!-- ##### USER_FUNCTION SoupConnectionCallback ##### --> -<para> - -</para> - -@conn: -@status: -@data: - -<!-- ##### STRUCT SoupConnectionNTLM ##### --> -<para> - -</para> - -@parent: - -<!-- ##### USER_FUNCTION SoupDNSCallback ##### --> -<para> - -</para> - -@lookup: -@success: -@user_data: - -<!-- ##### TYPEDEF SoupDNSLookup ##### --> -<para> - -</para> - - -<!-- ##### STRUCT SoupDataBuffer ##### --> -<para> - -</para> - -@owner: -@body: -@length: - -<!-- ##### ENUM SoupDigestAlgorithm ##### --> -<para> - -</para> - -@SOUP_ALGORITHM_MD5: -@SOUP_ALGORITHM_MD5_SESS: - -<!-- ##### ENUM SoupHandlerPhase ##### --> -<para> - -</para> - -@SOUP_HANDLER_POST_REQUEST: -@SOUP_HANDLER_PRE_BODY: -@SOUP_HANDLER_BODY_CHUNK: -@SOUP_HANDLER_POST_BODY: - -<!-- ##### ENUM SoupHttpVersion ##### --> -<para> - -</para> - -@SOUP_HTTP_1_0: -@SOUP_HTTP_1_1: - -<!-- ##### STRUCT SoupMD5Context ##### --> -<para> - -</para> - - -<!-- ##### USER_FUNCTION SoupMessageCallbackFn ##### --> -<para> - -</para> - -@req: -@user_data: - -<!-- ##### USER_FUNCTION SoupMessageGetHeadersFn ##### --> -<para> - -</para> - -@msg: -@headers: -@encoding: -@user_data: - -<!-- ##### USER_FUNCTION SoupMessageParseHeadersFn ##### --> -<para> - -</para> - -@msg: -@headers: -@header_len: -@encoding: -@content_len: -@user_data: -@Returns: - -<!-- ##### TYPEDEF SoupMessageQueue ##### --> -<para> - -</para> - - -<!-- ##### STRUCT SoupMessageQueueIter ##### --> -<para> - -</para> - - -<!-- ##### ENUM SoupMessageStatus ##### --> -<para> - -</para> - -@SOUP_MESSAGE_STATUS_IDLE: -@SOUP_MESSAGE_STATUS_QUEUED: -@SOUP_MESSAGE_STATUS_CONNECTING: -@SOUP_MESSAGE_STATUS_RUNNING: -@SOUP_MESSAGE_STATUS_FINISHED: - -<!-- ##### ENUM SoupOwnership ##### --> -<para> - -</para> - -@SOUP_BUFFER_SYSTEM_OWNED: -@SOUP_BUFFER_USER_OWNED: -@SOUP_BUFFER_STATIC: - -<!-- ##### TYPEDEF SoupProtocol ##### --> -<para> - -</para> - - -<!-- ##### TYPEDEF SoupSSLCredentials ##### --> -<para> - -</para> - - -<!-- ##### ENUM SoupSSLType ##### --> -<para> - -</para> - -@SOUP_SSL_TYPE_CLIENT: -@SOUP_SSL_TYPE_SERVER: - -<!-- ##### STRUCT SoupServerAuthBasic ##### --> -<para> - -</para> - -@type: -@user: -@passwd: - -<!-- ##### USER_FUNCTION SoupServerAuthCallbackFn ##### --> -<para> - -</para> - -@auth_ctx: -@auth: -@msg: -@data: -@Returns: - -<!-- ##### STRUCT SoupServerAuthContext ##### --> -<para> - -</para> - -@types: -@callback: -@user_data: - -<!-- ##### STRUCT SoupServerAuthDigest ##### --> -<para> - -</para> - -@type: -@algorithm: -@integrity: -@realm: -@user: -@nonce: -@nonce_count: -@cnonce: -@digest_uri: -@digest_response: -@request_method: - -<!-- ##### USER_FUNCTION SoupServerCallbackFn ##### --> -<para> - -</para> - -@context: -@msg: -@user_data: - -<!-- ##### STRUCT SoupServerContext ##### --> -<para> - -</para> - -@msg: -@path: -@method_id: -@auth: -@server: -@handler: -@sock: - -<!-- ##### TYPEDEF SoupServerHandler ##### --> -<para> - -</para> - - -<!-- ##### STRUCT SoupServerMessage ##### --> -<para> - -</para> - - -<!-- ##### USER_FUNCTION SoupServerUnregisterFn ##### --> -<para> - -</para> - -@server: -@handler: -@user_data: - -<!-- ##### SIGNAL SoupSession::reauthenticate ##### --> -<para> - -</para> - -@session: -@msg: -@auth_type: -@auth_realm: -@username: -@password: - -<!-- ##### STRUCT SoupSoapMessage ##### --> -<para> - -</para> - -@parent: - -<!-- ##### TYPEDEF SoupSoapParameter ##### --> -<para> - -</para> - - -<!-- ##### STRUCT SoupSoapResponse ##### --> -<para> - -</para> - -@parent: - -<!-- ##### SIGNAL SoupSocket::connect-result ##### --> -<para> - -</para> - -@sock: -@status: - -<!-- ##### ARG SoupSocket:cloexec ##### --> -<para> - -</para> - - -<!-- ##### ARG SoupSocket:nodelay ##### --> -<para> - -</para> - - -<!-- ##### ARG SoupSocket:reuseaddr ##### --> -<para> - -</para> - - -<!-- ##### ENUM SoupSocketError ##### --> -<para> - -</para> - -@SOUP_SSL_ERROR_HANDSHAKE_NEEDS_READ: -@SOUP_SSL_ERROR_HANDSHAKE_NEEDS_WRITE: -@SOUP_SSL_ERROR_CERTIFICATE: - -<!-- ##### USER_FUNCTION SoupSocketListenerCallback ##### --> -<para> - -</para> - -@listener: -@sock: -@user_data: - -<!-- ##### ENUM SoupStatusClass ##### --> -<para> - -</para> - -@SOUP_STATUS_CLASS_TRANSPORT_ERROR: -@SOUP_STATUS_CLASS_INFORMATIONAL: -@SOUP_STATUS_CLASS_SUCCESS: -@SOUP_STATUS_CLASS_REDIRECT: -@SOUP_STATUS_CLASS_CLIENT_ERROR: -@SOUP_STATUS_CLASS_SERVER_ERROR: - -<!-- ##### ENUM SoupTransferEncoding ##### --> -<para> - -</para> - -@SOUP_TRANSFER_UNKNOWN: -@SOUP_TRANSFER_CHUNKED: -@SOUP_TRANSFER_CONTENT_LENGTH: -@SOUP_TRANSFER_BYTERANGES: -@SOUP_TRANSFER_NONE: -@SOUP_TRANSFER_EOF: - -<!-- ##### STRUCT SoupUri ##### --> -<para> -Note that the <structfield>user</structfield> and -<structfield>passwd</structfield> fields are <emphasis>not</emphasis> -the standard mechanism for authentication in -<application>libsoup</application>. Client-side authentication should -normally use the <type>SoupSession</type> <link -linkend="SoupSession-authenticate">authenticate</link> signal -(although the <type>SoupUri</type> fields are also supported). -Server-side authentication uses <type>SoupServer</type>'s -authentication mechanisms and never makes use of the -<type>SoupUri</type> fields. -</para> - -<para> -The <structfield>path</structfield> field is never empty or %NULL; if -a stringified URI is given with no path, the <type>SoupUri</type> form -has <literal>"/"</literal> as its path. Likewise, -<structfield>port</structfield> is always filled in, even if it wasn't -filled in in the stringified URI. -</para> - -<para> -The <structfield>path</structfield>, <structfield>query</structfield>, -and <structfield>fragment</structfield> fields may have -<literal>%</literal>-encoded characters in them; this is because only -the server that the URI belongs to can say for sure whether -<literal>"%%2F"</literal> means the same thing as -<literal>"/"</literal>, or something different. Servers can use -soup_uri_normalize() to decode characters from the "reserved" set that -they are not using for reserved purposes. -</para> - -@protocol: the URI's protocol, either %SOUP_PROTOCOL_HTTP or %SOUP_PROTOCOL_HTTPS -@user: the username, or %NULL -@passwd: the password, or %NULL -@host: the hostname -@port: the port -@path: the path, possibly "%%-encoded" -@query: the query string, possibly "%%-encoded", or %NULL -@fragment: the fragment identifier, possibly "%%-encoded", or %NULL - -<!-- ##### STRUCT SoupXmlrpcMessage ##### --> -<para> - -</para> - - -<!-- ##### STRUCT SoupXmlrpcResponse ##### --> -<para> - -</para> - - -<!-- ##### TYPEDEF SoupXmlrpcValue ##### --> -<para> - -</para> - - -<!-- ##### TYPEDEF SoupXmlrpcValueArrayIterator ##### --> -<para> - -</para> - - -<!-- ##### ENUM SoupXmlrpcValueType ##### --> -<para> - -</para> - -@SOUP_XMLRPC_VALUE_TYPE_BAD: -@SOUP_XMLRPC_VALUE_TYPE_INT: -@SOUP_XMLRPC_VALUE_TYPE_BOOLEAN: -@SOUP_XMLRPC_VALUE_TYPE_STRING: -@SOUP_XMLRPC_VALUE_TYPE_DOUBLE: -@SOUP_XMLRPC_VALUE_TYPE_DATETIME: -@SOUP_XMLRPC_VALUE_TYPE_BASE64: -@SOUP_XMLRPC_VALUE_TYPE_STRUCT: -@SOUP_XMLRPC_VALUE_TYPE_ARRAY: - -<!-- ##### FUNCTION soup_address_resolve_async_full ##### --> -<para> - -</para> - -@addr: -@async_context: -@callback: -@user_data: - -<!-- ##### FUNCTION soup_auth_new_from_header_list ##### --> -<para> - -</para> - -@vals: -@Returns: - -<!-- ##### FUNCTION soup_base64_decode ##### --> -<para> - -</para> - -@text: -@out_len: -@Returns: - -<!-- ##### FUNCTION soup_base64_decode_step ##### --> -<para> - -</para> - -@in: -@len: -@out: -@state: -@save: -@Returns: - -<!-- ##### FUNCTION soup_base64_encode ##### --> -<para> - -</para> - -@text: -@len: -@Returns: - -<!-- ##### FUNCTION soup_base64_encode_close ##### --> -<para> - -</para> - -@in: -@inlen: -@break_lines: -@out: -@state: -@save: -@Returns: - -<!-- ##### FUNCTION soup_base64_encode_step ##### --> -<para> - -</para> - -@in: -@len: -@break_lines: -@out: -@state: -@save: -@Returns: - -<!-- ##### FUNCTION soup_connection_authenticate ##### --> -<para> - -</para> - -@conn: -@msg: -@auth: -@retrying: - -<!-- ##### FUNCTION soup_connection_connect_async ##### --> -<para> - -</para> - -@conn: -@callback: -@user_data: - -<!-- ##### FUNCTION soup_connection_connect_sync ##### --> -<para> - -</para> - -@conn: -@Returns: - -<!-- ##### FUNCTION soup_connection_disconnect ##### --> -<para> - -</para> - -@conn: - -<!-- ##### FUNCTION soup_connection_is_in_use ##### --> -<para> - -</para> - -@conn: -@Returns: - -<!-- ##### FUNCTION soup_connection_last_used ##### --> -<para> - -</para> - -@conn: -@Returns: - -<!-- ##### FUNCTION soup_connection_new ##### --> -<para> - -</para> - -@propname1: -@Varargs: -@Returns: - -<!-- ##### FUNCTION soup_connection_reauthenticate ##### --> -<para> - -</para> - -@conn: -@msg: -@auth_type: -@auth_realm: -@username: -@password: - -<!-- ##### FUNCTION soup_connection_release ##### --> -<para> - -</para> - -@conn: - -<!-- ##### FUNCTION soup_connection_reserve ##### --> -<para> - -</para> - -@conn: - -<!-- ##### FUNCTION soup_connection_send_request ##### --> -<para> - -</para> - -@conn: -@req: - -<!-- ##### FUNCTION soup_date_generate ##### --> -<para> - -</para> - -@when: -@Returns: - -<!-- ##### FUNCTION soup_date_iso8601_parse ##### --> -<para> - -</para> - -@timestamp: -@Returns: - -<!-- ##### FUNCTION soup_date_parse ##### --> -<para> - -</para> - -@timestamp: -@Returns: - -<!-- ##### FUNCTION soup_dns_init ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION soup_dns_lookup_address ##### --> -<para> - -</para> - -@sockaddr: -@Returns: - -<!-- ##### FUNCTION soup_dns_lookup_cancel ##### --> -<para> - -</para> - -@lookup: - -<!-- ##### FUNCTION soup_dns_lookup_free ##### --> -<para> - -</para> - -@lookup: - -<!-- ##### FUNCTION soup_dns_lookup_get_address ##### --> -<para> - -</para> - -@lookup: -@Returns: - -<!-- ##### FUNCTION soup_dns_lookup_get_hostname ##### --> -<para> - -</para> - -@lookup: -@Returns: - -<!-- ##### FUNCTION soup_dns_lookup_name ##### --> -<para> - -</para> - -@name: -@Returns: - -<!-- ##### FUNCTION soup_dns_lookup_resolve ##### --> -<para> - -</para> - -@lookup: -@Returns: - -<!-- ##### FUNCTION soup_dns_lookup_resolve_async ##### --> -<para> - -</para> - -@lookup: -@async_context: -@callback: -@user_data: - -<!-- ##### FUNCTION soup_dns_ntop ##### --> -<para> - -</para> - -@sa: -@Returns: - -<!-- ##### FUNCTION soup_gmtime ##### --> -<para> - -</para> - -@when: -@tm: - -<!-- ##### FUNCTION soup_header_param_copy_token ##### --> -<para> - -</para> - -@tokens: -@t: -@Returns: - -<!-- ##### FUNCTION soup_header_param_decode_token ##### --> -<para> - -</para> - -@in: -@Returns: - -<!-- ##### FUNCTION soup_header_param_destroy_hash ##### --> -<para> - -</para> - -@table: - -<!-- ##### FUNCTION soup_header_param_parse_list ##### --> -<para> - -</para> - -@header: -@Returns: - -<!-- ##### FUNCTION soup_md5_final ##### --> -<para> - -</para> - -@ctx: -@digest: - -<!-- ##### FUNCTION soup_md5_final_hex ##### --> -<para> - -</para> - -@ctx: -@digest: - -<!-- ##### FUNCTION soup_md5_init ##### --> -<para> - -</para> - -@ctx: - -<!-- ##### FUNCTION soup_md5_update ##### --> -<para> - -</para> - -@ctx: -@buf: -@len: - -<!-- ##### FUNCTION soup_message_add_chunk ##### --> -<para> - -</para> - -@msg: -@owner: -@body: -@length: - -<!-- ##### FUNCTION soup_message_add_final_chunk ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_add_handler ##### --> -<para> - -</para> - -@msg: -@phase: -@handler_cb: -@user_data: - -<!-- ##### FUNCTION soup_message_add_header ##### --> -<para> - -</para> - -@hash: -@name: -@value: - -<!-- ##### FUNCTION soup_message_add_status_class_handler ##### --> -<para> - -</para> - -@msg: -@status_class: -@phase: -@handler_cb: -@user_data: - -<!-- ##### FUNCTION soup_message_cleanup_response ##### --> -<para> - -</para> - -@req: - -<!-- ##### FUNCTION soup_message_clear_headers ##### --> -<para> - -</para> - -@hash: - -<!-- ##### FUNCTION soup_message_filter_setup_message ##### --> -<para> - -</para> - -@filter: -@msg: - -<!-- ##### FUNCTION soup_message_finished ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_foreach_header ##### --> -<para> - -</para> - -@hash: -@func: -@user_data: - -<!-- ##### FUNCTION soup_message_get_header ##### --> -<para> - -</para> - -@hash: -@name: -@Returns: - -<!-- ##### FUNCTION soup_message_get_header_list ##### --> -<para> - -</para> - -@hash: -@name: -@Returns: - -<!-- ##### FUNCTION soup_message_get_request_encoding ##### --> -<para> - -</para> - -@msg: -@content_length: -@Returns: - -<!-- ##### FUNCTION soup_message_get_response_encoding ##### --> -<para> - -</para> - -@msg: -@content_length: -@Returns: - -<!-- ##### FUNCTION soup_message_got_body ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_got_chunk ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_got_headers ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_got_informational ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_io_client ##### --> -<para> - -</para> - -@msg: -@sock: -@get_headers_cb: -@parse_headers_cb: -@user_data: - -<!-- ##### FUNCTION soup_message_io_pause ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_io_server ##### --> -<para> - -</para> - -@msg: -@sock: -@get_headers_cb: -@parse_headers_cb: -@user_data: - -<!-- ##### FUNCTION soup_message_io_stop ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_io_unpause ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_pop_chunk ##### --> -<para> - -</para> - -@msg: -@Returns: - -<!-- ##### FUNCTION soup_message_queue_append ##### --> -<para> - -</para> - -@queue: -@msg: - -<!-- ##### FUNCTION soup_message_queue_destroy ##### --> -<para> - -</para> - -@queue: - -<!-- ##### FUNCTION soup_message_queue_first ##### --> -<para> - -</para> - -@queue: -@iter: -@Returns: - -<!-- ##### FUNCTION soup_message_queue_free_iter ##### --> -<para> - -</para> - -@queue: -@iter: - -<!-- ##### FUNCTION soup_message_queue_new ##### --> -<para> - -</para> - -@Returns: - -<!-- ##### FUNCTION soup_message_queue_next ##### --> -<para> - -</para> - -@queue: -@iter: -@Returns: - -<!-- ##### FUNCTION soup_message_queue_remove ##### --> -<para> - -</para> - -@queue: -@iter: -@Returns: - -<!-- ##### FUNCTION soup_message_queue_remove_message ##### --> -<para> - -</para> - -@queue: -@msg: - -<!-- ##### FUNCTION soup_message_read_request ##### --> -<para> - -</para> - -@req: -@sock: - -<!-- ##### FUNCTION soup_message_remove_handler ##### --> -<para> - -</para> - -@msg: -@phase: -@handler_cb: -@user_data: - -<!-- ##### FUNCTION soup_message_remove_header ##### --> -<para> - -</para> - -@hash: -@name: - -<!-- ##### FUNCTION soup_message_restarted ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_run_handlers ##### --> -<para> - -</para> - -@msg: -@phase: - -<!-- ##### FUNCTION soup_message_send_request ##### --> -<para> - -</para> - -@req: -@sock: -@conn: -@via_proxy: - -<!-- ##### FUNCTION soup_message_wrote_body ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_wrote_chunk ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_wrote_headers ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_message_wrote_informational ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_mktime_utc ##### --> -<para> - -</para> - -@tm: -@Returns: - -<!-- ##### FUNCTION soup_server_auth_check_passwd ##### --> -<para> - -</para> - -@auth: -@passwd: -@Returns: - -<!-- ##### FUNCTION soup_server_auth_context_challenge ##### --> -<para> - -</para> - -@auth_ctx: -@msg: -@header_name: - -<!-- ##### FUNCTION soup_server_auth_free ##### --> -<para> - -</para> - -@auth: - -<!-- ##### FUNCTION soup_server_auth_get_user ##### --> -<para> - -</para> - -@auth: -@Returns: - -<!-- ##### FUNCTION soup_server_auth_new ##### --> -<para> - -</para> - -@auth_ctx: -@auth_hdrs: -@msg: -@Returns: - -<!-- ##### FUNCTION soup_server_context_get_client_address ##### --> -<para> - -</para> - -@ctx: -@Returns: - -<!-- ##### FUNCTION soup_server_context_get_client_host ##### --> -<para> - -</para> - -@ctx: -@Returns: - -<!-- ##### FUNCTION soup_server_get_handler ##### --> -<para> - -</para> - -@serv: -@path: -@Returns: - -<!-- ##### FUNCTION soup_server_get_protocol ##### --> -<para> - -</para> - -@serv: -@Returns: - -<!-- ##### FUNCTION soup_server_list_handlers ##### --> -<para> - -</para> - -@serv: -@Returns: - -<!-- ##### FUNCTION soup_server_message_finish ##### --> -<para> - -</para> - -@smsg: - -<!-- ##### FUNCTION soup_server_message_get_encoding ##### --> -<para> - -</para> - -@smsg: -@Returns: - -<!-- ##### FUNCTION soup_server_message_get_server ##### --> -<para> - -</para> - -@smsg: -@Returns: - -<!-- ##### FUNCTION soup_server_message_is_finished ##### --> -<para> - -</para> - -@smsg: -@Returns: - -<!-- ##### FUNCTION soup_server_message_is_started ##### --> -<para> - -</para> - -@smsg: -@Returns: - -<!-- ##### FUNCTION soup_server_message_new ##### --> -<para> - -</para> - -@server: -@Returns: - -<!-- ##### FUNCTION soup_server_message_set_encoding ##### --> -<para> - -</para> - -@smsg: -@encoding: - -<!-- ##### FUNCTION soup_server_message_start ##### --> -<para> - -</para> - -@smsg: - -<!-- ##### FUNCTION soup_session_add_filter ##### --> -<para> - -</para> - -@session: -@filter: - -<!-- ##### FUNCTION soup_session_get_connection ##### --> -<para> - -</para> - -@session: -@msg: -@try_pruning: -@is_new: -@Returns: - -<!-- ##### FUNCTION soup_session_remove_filter ##### --> -<para> - -</para> - -@session: -@filter: - -<!-- ##### FUNCTION soup_session_try_prune_connection ##### --> -<para> - -</para> - -@session: -@Returns: - -<!-- ##### FUNCTION soup_signal_connect_once ##### --> -<para> - -</para> - -@instance: -@detailed_signal: -@c_handler: -@data: -@Returns: - -<!-- ##### FUNCTION soup_soap_message_add_attribute ##### --> -<para> - -</para> - -@msg: -@name: -@value: -@prefix: -@ns_uri: - -<!-- ##### FUNCTION soup_soap_message_add_namespace ##### --> -<para> - -</para> - -@msg: -@prefix: -@ns_uri: - -<!-- ##### FUNCTION soup_soap_message_end_body ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_end_element ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_end_envelope ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_end_fault ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_end_fault_detail ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_end_header ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_end_header_element ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_get_namespace_prefix ##### --> -<para> - -</para> - -@msg: -@ns_uri: -@Returns: - -<!-- ##### FUNCTION soup_soap_message_get_xml_doc ##### --> -<para> - -</para> - -@msg: -@Returns: - -<!-- ##### FUNCTION soup_soap_message_new ##### --> -<para> - -</para> - -@method: -@uri_string: -@standalone: -@xml_encoding: -@env_prefix: -@env_uri: -@Returns: - -<!-- ##### FUNCTION soup_soap_message_new_from_uri ##### --> -<para> - -</para> - -@method: -@uri: -@standalone: -@xml_encoding: -@env_prefix: -@env_uri: -@Returns: - -<!-- ##### FUNCTION soup_soap_message_parse_response ##### --> -<para> - -</para> - -@msg: -@Returns: - -<!-- ##### FUNCTION soup_soap_message_persist ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_reset ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_set_default_namespace ##### --> -<para> - -</para> - -@msg: -@ns_uri: - -<!-- ##### FUNCTION soup_soap_message_set_element_type ##### --> -<para> - -</para> - -@msg: -@xsi_type: - -<!-- ##### FUNCTION soup_soap_message_set_encoding_style ##### --> -<para> - -</para> - -@msg: -@enc_style: - -<!-- ##### FUNCTION soup_soap_message_set_null ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_start_body ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_start_element ##### --> -<para> - -</para> - -@msg: -@name: -@prefix: -@ns_uri: - -<!-- ##### FUNCTION soup_soap_message_start_envelope ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_start_fault ##### --> -<para> - -</para> - -@msg: -@faultcode: -@faultstring: -@faultfactor: - -<!-- ##### FUNCTION soup_soap_message_start_fault_detail ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_start_header ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_soap_message_start_header_element ##### --> -<para> - -</para> - -@msg: -@name: -@must_understand: -@actor_uri: -@prefix: -@ns_uri: - -<!-- ##### FUNCTION soup_soap_message_write_base64 ##### --> -<para> - -</para> - -@msg: -@string: -@len: - -<!-- ##### FUNCTION soup_soap_message_write_buffer ##### --> -<para> - -</para> - -@msg: -@buffer: -@len: - -<!-- ##### FUNCTION soup_soap_message_write_double ##### --> -<para> - -</para> - -@msg: -@d: - -<!-- ##### FUNCTION soup_soap_message_write_int ##### --> -<para> - -</para> - -@msg: -@i: - -<!-- ##### FUNCTION soup_soap_message_write_string ##### --> -<para> - -</para> - -@msg: -@string: - -<!-- ##### FUNCTION soup_soap_message_write_time ##### --> -<para> - -</para> - -@msg: -@timeval: - -<!-- ##### FUNCTION soup_soap_parameter_get_first_child ##### --> -<para> - -</para> - -@param: -@Returns: - -<!-- ##### FUNCTION soup_soap_parameter_get_first_child_by_name ##### --> -<para> - -</para> - -@param: -@name: -@Returns: - -<!-- ##### FUNCTION soup_soap_parameter_get_int_value ##### --> -<para> - -</para> - -@param: -@Returns: - -<!-- ##### FUNCTION soup_soap_parameter_get_name ##### --> -<para> - -</para> - -@param: -@Returns: - -<!-- ##### FUNCTION soup_soap_parameter_get_next_child ##### --> -<para> - -</para> - -@param: -@Returns: - -<!-- ##### FUNCTION soup_soap_parameter_get_next_child_by_name ##### --> -<para> - -</para> - -@param: -@name: -@Returns: - -<!-- ##### FUNCTION soup_soap_parameter_get_property ##### --> -<para> - -</para> - -@param: -@prop_name: -@Returns: - -<!-- ##### FUNCTION soup_soap_parameter_get_string_value ##### --> -<para> - -</para> - -@param: -@Returns: - -<!-- ##### FUNCTION soup_soap_response_from_string ##### --> -<para> - -</para> - -@response: -@xmlstr: -@Returns: - -<!-- ##### FUNCTION soup_soap_response_get_first_parameter ##### --> -<para> - -</para> - -@response: -@Returns: - -<!-- ##### FUNCTION soup_soap_response_get_first_parameter_by_name ##### --> -<para> - -</para> - -@response: -@name: -@Returns: - -<!-- ##### FUNCTION soup_soap_response_get_method_name ##### --> -<para> - -</para> - -@response: -@Returns: - -<!-- ##### FUNCTION soup_soap_response_get_next_parameter ##### --> -<para> - -</para> - -@response: -@from: -@Returns: - -<!-- ##### FUNCTION soup_soap_response_get_next_parameter_by_name ##### --> -<para> - -</para> - -@response: -@from: -@name: -@Returns: - -<!-- ##### FUNCTION soup_soap_response_get_parameters ##### --> -<para> - -</para> - -@response: -@Returns: - -<!-- ##### FUNCTION soup_soap_response_new ##### --> -<para> - -</para> - -@Returns: - -<!-- ##### FUNCTION soup_soap_response_new_from_string ##### --> -<para> - -</para> - -@xmlstr: -@Returns: - -<!-- ##### FUNCTION soup_soap_response_set_method_name ##### --> -<para> - -</para> - -@response: -@method_name: - -<!-- ##### FUNCTION soup_socket_client_new_async ##### --> -<para> - -</para> - -@hostname: -@port: -@ssl_creds: -@callback: -@user_data: -@Returns: - -<!-- ##### FUNCTION soup_socket_client_new_sync ##### --> -<para> - -</para> - -@hostname: -@port: -@ssl_creds: -@status_ret: -@Returns: - -<!-- ##### FUNCTION soup_socket_connect ##### --> -<para> - -</para> - -@sock: -@remote_addr: -@Returns: - -<!-- ##### FUNCTION soup_socket_server_new ##### --> -<para> - -</para> - -@local_addr: -@ssl_creds: -@callback: -@user_data: -@Returns: - -<!-- ##### FUNCTION soup_ssl_error_quark ##### --> -<para> - -</para> - -@Returns: - -<!-- ##### FUNCTION soup_ssl_free_client_credentials ##### --> -<para> - -</para> - -@creds: - -<!-- ##### FUNCTION soup_ssl_free_server_credentials ##### --> -<para> - -</para> - -@creds: - -<!-- ##### FUNCTION soup_ssl_get_client_credentials ##### --> -<para> - -</para> - -@ca_file: -@Returns: - -<!-- ##### FUNCTION soup_ssl_get_server_credentials ##### --> -<para> - -</para> - -@cert_file: -@key_file: -@Returns: - -<!-- ##### FUNCTION soup_ssl_wrap_iochannel ##### --> -<para> - -</para> - -@sock: -@type: -@remote_host: -@creds: -@Returns: - -<!-- ##### FUNCTION soup_uri_copy_root ##### --> -<para> - -</para> - -@uri: -@Returns: - -<!-- ##### FUNCTION soup_xml_real_node ##### --> -<para> - -</para> - -@node: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_message_end_array ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_xmlrpc_message_end_call ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_xmlrpc_message_end_member ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_xmlrpc_message_end_param ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_xmlrpc_message_end_struct ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_xmlrpc_message_from_string ##### --> -<para> - -</para> - -@message: -@xmlstr: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_message_new ##### --> -<para> - -</para> - -@uri_string: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_message_new_from_uri ##### --> -<para> - -</para> - -@uri: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_message_parse_response ##### --> -<para> - -</para> - -@msg: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_message_persist ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_xmlrpc_message_start_array ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_xmlrpc_message_start_call ##### --> -<para> - -</para> - -@msg: -@method_name: - -<!-- ##### FUNCTION soup_xmlrpc_message_start_member ##### --> -<para> - -</para> - -@msg: -@name: - -<!-- ##### FUNCTION soup_xmlrpc_message_start_param ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_xmlrpc_message_start_struct ##### --> -<para> - -</para> - -@msg: - -<!-- ##### FUNCTION soup_xmlrpc_message_to_string ##### --> -<para> - -</para> - -@msg: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_message_write_base64 ##### --> -<para> - -</para> - -@msg: -@buf: -@len: - -<!-- ##### FUNCTION soup_xmlrpc_message_write_boolean ##### --> -<para> - -</para> - -@msg: -@b: - -<!-- ##### FUNCTION soup_xmlrpc_message_write_datetime ##### --> -<para> - -</para> - -@msg: -@timeval: - -<!-- ##### FUNCTION soup_xmlrpc_message_write_double ##### --> -<para> - -</para> - -@msg: -@d: - -<!-- ##### FUNCTION soup_xmlrpc_message_write_int ##### --> -<para> - -</para> - -@msg: -@Param2: - -<!-- ##### FUNCTION soup_xmlrpc_message_write_string ##### --> -<para> - -</para> - -@msg: -@str: - -<!-- ##### FUNCTION soup_xmlrpc_response_from_string ##### --> -<para> - -</para> - -@response: -@xmlstr: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_response_get_value ##### --> -<para> - -</para> - -@response: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_response_is_fault ##### --> -<para> - -</para> - -@response: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_response_new ##### --> -<para> - -</para> - -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_response_new_from_string ##### --> -<para> - -</para> - -@xmlstr: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_response_to_string ##### --> -<para> - -</para> - -@response: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_value_array_get_iterator ##### --> -<para> - -</para> - -@value: -@iter: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_value_array_iterator_get_value ##### --> -<para> - -</para> - -@iter: -@value: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_value_array_iterator_next ##### --> -<para> - -</para> - -@iter: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_value_array_iterator_prev ##### --> -<para> - -</para> - -@iter: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_value_dump ##### --> -<para> - -</para> - -@value: - -<!-- ##### FUNCTION soup_xmlrpc_value_get_base64 ##### --> -<para> - -</para> - -@value: -@data: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_value_get_boolean ##### --> -<para> - -</para> - -@value: -@b: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_value_get_datetime ##### --> -<para> - -</para> - -@value: -@timeval: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_value_get_double ##### --> -<para> - -</para> - -@value: -@b: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_value_get_int ##### --> -<para> - -</para> - -@value: -@i: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_value_get_string ##### --> -<para> - -</para> - -@value: -@str: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_value_get_struct ##### --> -<para> - -</para> - -@value: -@table: -@Returns: - -<!-- ##### FUNCTION soup_xmlrpc_value_get_type ##### --> -<para> - -</para> - -@value: -@Returns: - diff --git a/docs/reference/tmpl/soup-address.sgml b/docs/reference/tmpl/soup-address.sgml deleted file mode 100644 index 0a696824..00000000 --- a/docs/reference/tmpl/soup-address.sgml +++ /dev/null @@ -1,152 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupAddress - -<!-- ##### SECTION Short_Description ##### --> -DNS support - -<!-- ##### SECTION Long_Description ##### --> -<para> -#SoupAddress represents the address of a TCP connection endpoint; both -the IP address and the port. (It is somewhat like an object-oriented -version of <literal>struct sockaddr</literal>.) -</para> - -<para> -If libsoup was built with IPv6 support, #SoupAddress will allow both -IPv4 and IPv6 addresses. -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupAddress ##### --> -<para> - -</para> - - -<!-- ##### SIGNAL SoupAddress::dns-result ##### --> -<para> - -</para> - -@addr: -@status: - -<!-- ##### ENUM SoupAddressFamily ##### --> -<para> - -</para> - -@SOUP_ADDRESS_FAMILY_IPV4: -@SOUP_ADDRESS_FAMILY_IPV6: - -<!-- ##### MACRO SOUP_ADDRESS_ANY_PORT ##### --> -<para> - -</para> - - - -<!-- ##### FUNCTION soup_address_new ##### --> -<para> - -</para> - -@name: -@port: -@Returns: - - -<!-- ##### FUNCTION soup_address_new_from_sockaddr ##### --> -<para> - -</para> - -@sa: -@len: -@Returns: - - -<!-- ##### FUNCTION soup_address_new_any ##### --> -<para> - -</para> - -@family: -@port: -@Returns: - - -<!-- ##### USER_FUNCTION SoupAddressCallback ##### --> -<para> - -</para> - -@addr: -@status: -@data: - - -<!-- ##### FUNCTION soup_address_resolve_async ##### --> -<para> - -</para> - -@addr: -@async_context: -@callback: -@user_data: - - -<!-- ##### FUNCTION soup_address_resolve_sync ##### --> -<para> - -</para> - -@addr: -@Returns: - - -<!-- ##### FUNCTION soup_address_get_name ##### --> -<para> - -</para> - -@addr: -@Returns: - - -<!-- ##### FUNCTION soup_address_get_sockaddr ##### --> -<para> - -</para> - -@addr: -@len: -@Returns: - - -<!-- ##### FUNCTION soup_address_get_physical ##### --> -<para> - -</para> - -@addr: -@Returns: - - -<!-- ##### FUNCTION soup_address_get_port ##### --> -<para> - -</para> - -@addr: -@Returns: - - diff --git a/docs/reference/tmpl/soup-auth-domain-basic.sgml b/docs/reference/tmpl/soup-auth-domain-basic.sgml deleted file mode 100644 index ec3c416d..00000000 --- a/docs/reference/tmpl/soup-auth-domain-basic.sgml +++ /dev/null @@ -1,84 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupAuthDomainBasic - -<!-- ##### SECTION Short_Description ##### --> -Server-side "Basic" authentication - -<!-- ##### SECTION Long_Description ##### --> -<para> -#SoupAuthDomainBasic handles the server side of HTTP "Basic" (ie, -cleartext password) authentication. -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupAuthDomainBasic ##### --> -<para> - -</para> - - -<!-- ##### ARG SoupAuthDomainBasic:auth-callback ##### --> -<para> - -</para> - -<!-- ##### ARG SoupAuthDomainBasic:auth-data ##### --> -<para> - -</para> - -<!-- ##### FUNCTION soup_auth_domain_basic_new ##### --> -<para> - -</para> - -@optname1: -@Varargs: -@Returns: - - -<!-- ##### USER_FUNCTION SoupAuthDomainBasicAuthCallback ##### --> -<para> - -</para> - -@domain: -@msg: -@username: -@password: -@user_data: -@Returns: - - -<!-- ##### FUNCTION soup_auth_domain_basic_set_auth_callback ##### --> -<para> - -</para> - -@domain: -@callback: -@user_data: -@dnotify: - - -<!-- ##### MACRO SOUP_AUTH_DOMAIN_BASIC_AUTH_CALLBACK ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_AUTH_DOMAIN_BASIC_AUTH_DATA ##### --> -<para> - -</para> - - - diff --git a/docs/reference/tmpl/soup-auth-domain-digest.sgml b/docs/reference/tmpl/soup-auth-domain-digest.sgml deleted file mode 100644 index 87a04233..00000000 --- a/docs/reference/tmpl/soup-auth-domain-digest.sgml +++ /dev/null @@ -1,105 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupAuthDomainDigest - -<!-- ##### SECTION Short_Description ##### --> -Server-side "Digest" authentication - -<!-- ##### SECTION Long_Description ##### --> -<para> -#SoupAuthDomainDigest handles the server side of HTTP "Digest" authentication. -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupAuthDomainDigest ##### --> -<para> - -</para> - - -<!-- ##### ARG SoupAuthDomainDigest:auth-callback ##### --> -<para> - -</para> - -<!-- ##### ARG SoupAuthDomainDigest:auth-data ##### --> -<para> - -</para> - -<!-- ##### FUNCTION soup_auth_domain_digest_new ##### --> -<para> - -</para> - -@optname1: -@Varargs: -@Returns: - - -<!-- ##### USER_FUNCTION SoupAuthDomainDigestAuthCallback ##### --> -<para> - -</para> - -@domain: -@msg: -@username: -@user_data: -@Returns: - - -<!-- ##### FUNCTION soup_auth_domain_digest_set_auth_callback ##### --> -<para> - -</para> - -@domain: -@callback: -@user_data: -@dnotify: - - -<!-- ##### FUNCTION soup_auth_domain_digest_encode_password ##### --> -<para> - -</para> - -@username: -@realm: -@password: -@Returns: - - -<!-- ##### FUNCTION soup_auth_domain_digest_evil_check_password ##### --> -<para> - -</para> - -@domain: -@msg: -@username: -@password: -@Returns: - - -<!-- ##### MACRO SOUP_AUTH_DOMAIN_DIGEST_AUTH_CALLBACK ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_AUTH_DOMAIN_DIGEST_AUTH_DATA ##### --> -<para> - -</para> - - - diff --git a/docs/reference/tmpl/soup-auth-domain.sgml b/docs/reference/tmpl/soup-auth-domain.sgml deleted file mode 100644 index 9a055bde..00000000 --- a/docs/reference/tmpl/soup-auth-domain.sgml +++ /dev/null @@ -1,182 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupAuthDomain - -<!-- ##### SECTION Short_Description ##### --> -Server-side authentication - -<!-- ##### SECTION Long_Description ##### --> -<para> -A #SoupAuthDomain manages authentication for all or part of a -#SoupServer. To make a server require authentication, first create an -appropriate subclass of #SoupAuthDomain, and then add it to the server -with soup_server_add_auth_domain(). -</para> - -<para> -In order for an auth domain to have any effect, you must add one or -more paths to it (via soup_auth_domain_add_path() or the -%SOUP_AUTH_DOMAIN_ADD_PATH property). To require authentication for -all requests, add the path "/". -</para> - -<para> -If you need greater control over which requests should and shouldn't -be authenticated, add paths covering everything you -<emphasis>might</emphasis> want authenticated, and then use a filter -(soup_auth_domain_set_filter()) to bypass authentication for those -requests that don't need it. -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupAuthDomain ##### --> -<para> - -</para> - - -<!-- ##### ARG SoupAuthDomain:add-path ##### --> -<para> - -</para> - -<!-- ##### ARG SoupAuthDomain:filter ##### --> -<para> - -</para> - -<!-- ##### ARG SoupAuthDomain:filter-data ##### --> -<para> - -</para> - -<!-- ##### ARG SoupAuthDomain:proxy ##### --> -<para> - -</para> - -<!-- ##### ARG SoupAuthDomain:realm ##### --> -<para> - -</para> - -<!-- ##### ARG SoupAuthDomain:remove-path ##### --> -<para> - -</para> - -<!-- ##### FUNCTION soup_auth_domain_add_path ##### --> -<para> - -</para> - -@domain: -@path: - - -<!-- ##### FUNCTION soup_auth_domain_remove_path ##### --> -<para> - -</para> - -@domain: -@path: - - -<!-- ##### FUNCTION soup_auth_domain_set_filter ##### --> -<para> - -</para> - -@domain: -@filter: -@filter_data: -@dnotify: - - -<!-- ##### FUNCTION soup_auth_domain_get_realm ##### --> -<para> - -</para> - -@domain: -@Returns: - - -<!-- ##### FUNCTION soup_auth_domain_covers ##### --> -<para> - -</para> - -@domain: -@msg: -@Returns: - - -<!-- ##### FUNCTION soup_auth_domain_accepts ##### --> -<para> - -</para> - -@domain: -@msg: -@Returns: - - -<!-- ##### FUNCTION soup_auth_domain_challenge ##### --> -<para> - -</para> - -@domain: -@msg: - - -<!-- ##### MACRO SOUP_AUTH_DOMAIN_REALM ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_AUTH_DOMAIN_PROXY ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_AUTH_DOMAIN_ADD_PATH ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_AUTH_DOMAIN_REMOVE_PATH ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_AUTH_DOMAIN_FILTER ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_AUTH_DOMAIN_FILTER_DATA ##### --> -<para> - -</para> - - - diff --git a/docs/reference/tmpl/soup-auth.sgml b/docs/reference/tmpl/soup-auth.sgml deleted file mode 100644 index 1c0e2557..00000000 --- a/docs/reference/tmpl/soup-auth.sgml +++ /dev/null @@ -1,205 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupAuth - -<!-- ##### SECTION Short_Description ##### --> -HTTP Authentication support - -<!-- ##### SECTION Long_Description ##### --> -<para> -#SoupAuth objects store the authentication data associated with a -given bit of webspace. They are created automatically -by #SoupSession. -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> -#SoupSession -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupAuth ##### --> -<para> -The abstract base class for handling authentication. Specific HTTP -Authentication mechanisms are implemented by its subclasses, but -applications never need to be aware of the specific subclasses being -used. -</para> - - -<!-- ##### ARG SoupAuth:host ##### --> -<para> - -</para> - -<!-- ##### ARG SoupAuth:is-authenticated ##### --> -<para> - -</para> - -<!-- ##### ARG SoupAuth:is-for-proxy ##### --> -<para> - -</para> - -<!-- ##### ARG SoupAuth:realm ##### --> -<para> - -</para> - -<!-- ##### ARG SoupAuth:scheme-name ##### --> -<para> - -</para> - -<!-- ##### FUNCTION soup_auth_new ##### --> -<para> - -</para> - -@type: -@msg: -@auth_header: -@Returns: - - -<!-- ##### FUNCTION soup_auth_update ##### --> -<para> - -</para> - -@auth: -@msg: -@auth_header: -@Returns: - - -<!-- ##### FUNCTION soup_auth_is_for_proxy ##### --> -<para> - -</para> - -@auth: -@Returns: - - -<!-- ##### FUNCTION soup_auth_get_scheme_name ##### --> -<para> - -</para> - -@auth: -@Returns: - - -<!-- ##### FUNCTION soup_auth_get_host ##### --> -<para> - -</para> - -@auth: -@Returns: - - -<!-- ##### FUNCTION soup_auth_get_realm ##### --> -<para> - -</para> - -@auth: -@Returns: - - -<!-- ##### FUNCTION soup_auth_get_info ##### --> -<para> - -</para> - -@auth: -@Returns: - - -<!-- ##### FUNCTION soup_auth_authenticate ##### --> -<para> - -</para> - -@auth: -@username: -@password: - - -<!-- ##### FUNCTION soup_auth_is_authenticated ##### --> -<para> - -</para> - -@auth: -@Returns: - - -<!-- ##### FUNCTION soup_auth_get_authorization ##### --> -<para> - -</para> - -@auth: -@msg: -@Returns: - - -<!-- ##### FUNCTION soup_auth_get_protection_space ##### --> -<para> - -</para> - -@auth: -@source_uri: -@Returns: - - -<!-- ##### FUNCTION soup_auth_free_protection_space ##### --> -<para> - -</para> - -@auth: -@space: - - -<!-- ##### MACRO SOUP_AUTH_SCHEME_NAME ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_AUTH_REALM ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_AUTH_HOST ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_AUTH_IS_FOR_PROXY ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_AUTH_IS_AUTHENTICATED ##### --> -<para> - -</para> - - - diff --git a/docs/reference/tmpl/soup-message-body.sgml b/docs/reference/tmpl/soup-message-body.sgml deleted file mode 100644 index e051943b..00000000 --- a/docs/reference/tmpl/soup-message-body.sgml +++ /dev/null @@ -1,164 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupMessageBody - -<!-- ##### SECTION Short_Description ##### --> -HTTP Message Body - -<!-- ##### SECTION Long_Description ##### --> -<para> -#SoupMessageBody represents the request or response body of a -#SoupMessage. -</para> - -<para> -In addition to #SoupMessageBody, libsoup also defines a "smaller" data -buffer type, #SoupBuffer, which is primarily used as a component of -#SoupMessageBody. In particular, when using chunked encoding to -transmit or receive a message, each chunk is represented as a -#SoupBuffer. -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> -#SoupMessage -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupBuffer ##### --> -<para> - -</para> - -@data: -@length: - -<!-- ##### ENUM SoupMemoryUse ##### --> -<para> - -</para> - -@SOUP_MEMORY_STATIC: -@SOUP_MEMORY_TAKE: -@SOUP_MEMORY_COPY: -@SOUP_MEMORY_TEMPORARY: - -<!-- ##### FUNCTION soup_buffer_new ##### --> -<para> - -</para> - -@use: -@data: -@length: -@Returns: - - -<!-- ##### FUNCTION soup_buffer_new_subbuffer ##### --> -<para> - -</para> - -@parent: -@offset: -@length: -@Returns: - - -<!-- ##### FUNCTION soup_buffer_copy ##### --> -<para> - -</para> - -@buffer: -@Returns: - - -<!-- ##### FUNCTION soup_buffer_free ##### --> -<para> - -</para> - -@buffer: - - -<!-- ##### STRUCT SoupMessageBody ##### --> -<para> - -</para> - -@data: -@length: - -<!-- ##### FUNCTION soup_message_body_new ##### --> -<para> - -</para> - -@Returns: - - -<!-- ##### FUNCTION soup_message_body_free ##### --> -<para> - -</para> - -@body: - - -<!-- ##### FUNCTION soup_message_body_append ##### --> -<para> - -</para> - -@body: -@use: -@data: -@length: - - -<!-- ##### FUNCTION soup_message_body_append_buffer ##### --> -<para> - -</para> - -@body: -@buffer: - - -<!-- ##### FUNCTION soup_message_body_truncate ##### --> -<para> - -</para> - -@body: - - -<!-- ##### FUNCTION soup_message_body_complete ##### --> -<para> - -</para> - -@body: - - -<!-- ##### FUNCTION soup_message_body_flatten ##### --> -<para> - -</para> - -@body: -@Returns: - - -<!-- ##### FUNCTION soup_message_body_get_chunk ##### --> -<para> - -</para> - -@body: -@offset: -@Returns: - - diff --git a/docs/reference/tmpl/soup-message-headers.sgml b/docs/reference/tmpl/soup-message-headers.sgml deleted file mode 100644 index 5916adc6..00000000 --- a/docs/reference/tmpl/soup-message-headers.sgml +++ /dev/null @@ -1,192 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupMessageHeaders - -<!-- ##### SECTION Short_Description ##### --> -HTTP Message Headers - -<!-- ##### SECTION Long_Description ##### --> -<para> -#SoupMessageHeaders represents the HTTP message headers associated -with a request or response. -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> -#SoupMessage -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### TYPEDEF SoupMessageHeaders ##### --> -<para> - -</para> - - -<!-- ##### ENUM SoupMessageHeadersType ##### --> -<para> - -</para> - -@SOUP_MESSAGE_HEADERS_REQUEST: -@SOUP_MESSAGE_HEADERS_RESPONSE: - -<!-- ##### FUNCTION soup_message_headers_new ##### --> -<para> - -</para> - -@type: -@Returns: - - -<!-- ##### FUNCTION soup_message_headers_free ##### --> -<para> - -</para> - -@hdrs: - - -<!-- ##### FUNCTION soup_message_headers_append ##### --> -<para> - -</para> - -@hdrs: -@name: -@value: - - -<!-- ##### FUNCTION soup_message_headers_replace ##### --> -<para> - -</para> - -@hdrs: -@name: -@value: - - -<!-- ##### FUNCTION soup_message_headers_remove ##### --> -<para> - -</para> - -@hdrs: -@name: - - -<!-- ##### FUNCTION soup_message_headers_clear ##### --> -<para> - -</para> - -@hdrs: - - -<!-- ##### FUNCTION soup_message_headers_get ##### --> -<para> - -</para> - -@hdrs: -@name: -@Returns: - - -<!-- ##### USER_FUNCTION SoupMessageHeadersForeachFunc ##### --> -<para> - -</para> - -@name: -@value: -@user_data: - - -<!-- ##### FUNCTION soup_message_headers_foreach ##### --> -<para> - -</para> - -@hdrs: -@func: -@user_data: - - -<!-- ##### ENUM SoupEncoding ##### --> -<para> - -</para> - -@SOUP_ENCODING_UNRECOGNIZED: -@SOUP_ENCODING_NONE: -@SOUP_ENCODING_CONTENT_LENGTH: -@SOUP_ENCODING_EOF: -@SOUP_ENCODING_CHUNKED: -@SOUP_ENCODING_BYTERANGES: - -<!-- ##### FUNCTION soup_message_headers_get_encoding ##### --> -<para> - -</para> - -@hdrs: -@Returns: - - -<!-- ##### FUNCTION soup_message_headers_set_encoding ##### --> -<para> - -</para> - -@hdrs: -@encoding: - - -<!-- ##### FUNCTION soup_message_headers_get_content_length ##### --> -<para> - -</para> - -@hdrs: -@Returns: - - -<!-- ##### FUNCTION soup_message_headers_set_content_length ##### --> -<para> - -</para> - -@hdrs: -@content_length: - - -<!-- ##### ENUM SoupExpectation ##### --> -<para> - -</para> - -@SOUP_EXPECTATION_UNRECOGNIZED: -@SOUP_EXPECTATION_CONTINUE: - -<!-- ##### FUNCTION soup_message_headers_get_expectations ##### --> -<para> - -</para> - -@hdrs: -@Returns: - - -<!-- ##### FUNCTION soup_message_headers_set_expectations ##### --> -<para> - -</para> - -@hdrs: -@expectations: - - diff --git a/docs/reference/tmpl/soup-message.sgml b/docs/reference/tmpl/soup-message.sgml deleted file mode 100644 index 868445c3..00000000 --- a/docs/reference/tmpl/soup-message.sgml +++ /dev/null @@ -1,343 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupMessage - -<!-- ##### SECTION Short_Description ##### --> -An HTTP request and response. - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupMessage ##### --> -<para> - -</para> - -@method: -@status_code: -@reason_phrase: -@request_body: -@request_headers: -@response_body: -@response_headers: - -<!-- ##### SIGNAL SoupMessage::finished ##### --> -<para> - -</para> - -@msg: - -<!-- ##### SIGNAL SoupMessage::got-body ##### --> -<para> - -</para> - -@msg: - -<!-- ##### SIGNAL SoupMessage::got-chunk ##### --> -<para> - -</para> - -@msg: -@Param2: - -<!-- ##### SIGNAL SoupMessage::got-headers ##### --> -<para> - -</para> - -@msg: - -<!-- ##### SIGNAL SoupMessage::got-informational ##### --> -<para> - -</para> - -@msg: - -<!-- ##### SIGNAL SoupMessage::restarted ##### --> -<para> - -</para> - -@msg: - -<!-- ##### SIGNAL SoupMessage::wrote-body ##### --> -<para> - -</para> - -@msg: - -<!-- ##### SIGNAL SoupMessage::wrote-chunk ##### --> -<para> - -</para> - -@msg: - -<!-- ##### SIGNAL SoupMessage::wrote-headers ##### --> -<para> - -</para> - -@msg: - -<!-- ##### SIGNAL SoupMessage::wrote-informational ##### --> -<para> - -</para> - -@msg: - -<!-- ##### ARG SoupMessage:flags ##### --> -<para> - -</para> - -<!-- ##### ARG SoupMessage:http-version ##### --> -<para> - -</para> - -<!-- ##### ARG SoupMessage:method ##### --> -<para> - -</para> - -<!-- ##### ARG SoupMessage:reason-phrase ##### --> -<para> - -</para> - -<!-- ##### ARG SoupMessage:status-code ##### --> -<para> - -</para> - -<!-- ##### ARG SoupMessage:uri ##### --> -<para> - -</para> - -<!-- ##### FUNCTION soup_message_new ##### --> -<para> - -</para> - -@method: -@uri_string: -@Returns: - - -<!-- ##### FUNCTION soup_message_new_from_uri ##### --> -<para> - -</para> - -@method: -@uri: -@Returns: - - -<!-- ##### FUNCTION soup_message_set_request ##### --> -<para> - -</para> - -@msg: -@content_type: -@req_use: -@req_body: -@req_length: - - -<!-- ##### FUNCTION soup_message_set_response ##### --> -<para> - -</para> - -@msg: -@content_type: -@resp_use: -@resp_body: -@resp_length: - - -<!-- ##### ENUM SoupHTTPVersion ##### --> -<para> - -</para> - -@SOUP_HTTP_1_0: -@SOUP_HTTP_1_1: - -<!-- ##### FUNCTION soup_message_set_http_version ##### --> -<para> - -</para> - -@msg: -@version: - - -<!-- ##### FUNCTION soup_message_get_http_version ##### --> -<para> - -</para> - -@msg: -@Returns: - - -<!-- ##### FUNCTION soup_message_get_uri ##### --> -<para> - -</para> - -@msg: -@Returns: - - -<!-- ##### FUNCTION soup_message_set_uri ##### --> -<para> - -</para> - -@msg: -@uri: - - -<!-- ##### ENUM SoupMessageFlags ##### --> -<para> - -</para> - -@SOUP_MESSAGE_NO_REDIRECT: -@SOUP_MESSAGE_OVERWRITE_CHUNKS: - -<!-- ##### FUNCTION soup_message_set_flags ##### --> -<para> - -</para> - -@msg: -@flags: - - -<!-- ##### FUNCTION soup_message_get_flags ##### --> -<para> - -</para> - -@msg: -@Returns: - - -<!-- ##### FUNCTION soup_message_set_status ##### --> -<para> - -</para> - -@msg: -@status_code: - - -<!-- ##### FUNCTION soup_message_set_status_full ##### --> -<para> - -</para> - -@msg: -@status_code: -@reason_phrase: - - -<!-- ##### FUNCTION soup_message_is_keepalive ##### --> -<para> - -</para> - -@msg: -@Returns: - - -<!-- ##### FUNCTION soup_message_add_header_handler ##### --> -<para> - -</para> - -@msg: -@signal: -@header: -@callback: -@user_data: -@Returns: - - -<!-- ##### FUNCTION soup_message_add_status_code_handler ##### --> -<para> - -</para> - -@msg: -@signal: -@status_code: -@callback: -@user_data: -@Returns: - - -<!-- ##### MACRO SOUP_MESSAGE_METHOD ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_MESSAGE_URI ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_MESSAGE_HTTP_VERSION ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_MESSAGE_FLAGS ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_MESSAGE_STATUS_CODE ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_MESSAGE_REASON_PHRASE ##### --> -<para> - -</para> - - - diff --git a/docs/reference/tmpl/soup-method.sgml b/docs/reference/tmpl/soup-method.sgml deleted file mode 100644 index 5969dec9..00000000 --- a/docs/reference/tmpl/soup-method.sgml +++ /dev/null @@ -1,149 +0,0 @@ -<!-- ##### SECTION Title ##### --> -soup-method - -<!-- ##### SECTION Short_Description ##### --> -HTTP method definitions - -<!-- ##### SECTION Long_Description ##### --> -<para> -soup-method.h contains a number of defines for standard HTTP and -WebDAV headers. You do not need to use these defines; you can pass -arbitrary strings to soup_message_new() if you prefer. -</para> - -<para> -The thing that these defines <emphasis>are</emphasis> useful for is -performing quick comparisons against #SoupMessage's %method field; -because that field always contains an interned string, and these -macros return interned strings, you can compare %method directly -against these macros rather than needing to use strcmp(). This is most -useful in SoupServer handlers. Eg: -</para> - -<informalexample><programlisting> - if (msg->method != SOUP_METHOD_GET && msg->method != SOUP_METHOD_HEAD) { - soup_message_set_status (msg, SOUP_METHOD_NOT_IMPLEMENTED); - return; - } -</programlisting></informalexample> - -<!-- ##### SECTION See_Also ##### --> -<para> -g_intern_string() -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### MACRO SOUP_METHOD_OPTIONS ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_GET ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_HEAD ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_PUT ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_POST ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_DELETE ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_TRACE ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_CONNECT ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_PROPFIND ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_PROPPATCH ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_MKCOL ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_COPY ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_MOVE ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_LOCK ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_UNLOCK ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_METHOD_PATCH ##### --> -<para> - -</para> - - - diff --git a/docs/reference/tmpl/soup-misc.sgml b/docs/reference/tmpl/soup-misc.sgml deleted file mode 100644 index edbfb81b..00000000 --- a/docs/reference/tmpl/soup-misc.sgml +++ /dev/null @@ -1,278 +0,0 @@ -<!-- ##### SECTION Title ##### --> -soup-misc - -<!-- ##### SECTION Short_Description ##### --> -Miscellaneous functions - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupDate ##### --> -<para> - -</para> - -@year: -@month: -@day: -@hour: -@minute: -@second: -@utc: -@offset: - -<!-- ##### ENUM SoupDateFormat ##### --> -<para> - -</para> - -@SOUP_DATE_HTTP: -@SOUP_DATE_COOKIE: -@SOUP_DATE_RFC2822: -@SOUP_DATE_ISO8601_COMPACT: -@SOUP_DATE_ISO8601_FULL: -@SOUP_DATE_ISO8601: -@SOUP_DATE_ISO8601_XMLRPC: - -<!-- ##### FUNCTION soup_date_new ##### --> -<para> - -</para> - -@year: -@month: -@day: -@hour: -@minute: -@second: -@Returns: - - -<!-- ##### FUNCTION soup_date_new_from_string ##### --> -<para> - -</para> - -@date_string: -@Returns: - - -<!-- ##### FUNCTION soup_date_new_from_time_t ##### --> -<para> - -</para> - -@when: -@Returns: - - -<!-- ##### FUNCTION soup_date_to_string ##### --> -<para> - -</para> - -@date: -@format: -@Returns: - - -<!-- ##### FUNCTION soup_date_free ##### --> -<para> - -</para> - -@date: - - -<!-- ##### FUNCTION soup_form_decode_urlencoded ##### --> -<para> - -</para> - -@encoded_form: -@Returns: - - -<!-- ##### FUNCTION soup_form_encode_urlencoded ##### --> -<para> - -</para> - -@form_data_set: -@Returns: - - -<!-- ##### FUNCTION soup_form_encode_urlencoded_list ##### --> -<para> - -</para> - -@form_data_set: -@Returns: - - -<!-- ##### FUNCTION soup_headers_parse_request ##### --> -<para> - -</para> - -@str: -@len: -@req_headers: -@req_method: -@req_path: -@ver: -@Returns: - - -<!-- ##### FUNCTION soup_headers_parse_response ##### --> -<para> - -</para> - -@str: -@len: -@headers: -@ver: -@status_code: -@reason_phrase: -@Returns: - - -<!-- ##### FUNCTION soup_headers_parse_status_line ##### --> -<para> - -</para> - -@status_line: -@ver: -@status_code: -@reason_phrase: -@Returns: - - -<!-- ##### FUNCTION soup_header_parse_list ##### --> -<para> - -</para> - -@header: -@Returns: - - -<!-- ##### FUNCTION soup_header_parse_quality_list ##### --> -<para> - -</para> - -@header: -@unacceptable: -@Returns: - - -<!-- ##### FUNCTION soup_header_free_list ##### --> -<para> - -</para> - -@list: - - -<!-- ##### FUNCTION soup_header_contains ##### --> -<para> - -</para> - -@header: -@token: -@Returns: - - -<!-- ##### FUNCTION soup_header_parse_param_list ##### --> -<para> - -</para> - -@header: -@Returns: - - -<!-- ##### FUNCTION soup_header_free_param_list ##### --> -<para> - -</para> - -@param_list: - - -<!-- ##### FUNCTION soup_str_case_equal ##### --> -<para> - -</para> - -@v1: -@v2: -@Returns: - - -<!-- ##### FUNCTION soup_str_case_hash ##### --> -<para> - -</para> - -@key: -@Returns: - - -<!-- ##### FUNCTION soup_add_idle ##### --> -<para> - -</para> - -@async_context: -@function: -@data: -@Returns: - - -<!-- ##### FUNCTION soup_add_io_watch ##### --> -<para> - -</para> - -@async_context: -@chan: -@condition: -@function: -@data: -@Returns: - - -<!-- ##### FUNCTION soup_add_timeout ##### --> -<para> - -</para> - -@async_context: -@interval: -@function: -@data: -@Returns: - - -<!-- ##### VARIABLE soup_ssl_supported ##### --> -<para> - -</para> - - diff --git a/docs/reference/tmpl/soup-server.sgml b/docs/reference/tmpl/soup-server.sgml deleted file mode 100644 index 61df5e94..00000000 --- a/docs/reference/tmpl/soup-server.sgml +++ /dev/null @@ -1,321 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupServer - -<!-- ##### SECTION Short_Description ##### --> -HTTP server - -<!-- ##### SECTION Long_Description ##### --> -<para> -#SoupServer implements a simple HTTP server. -</para> - -<para> -To begin, create a server using soup_server_new(). Add at least one -handler by calling soup_server_add_handler(); the handler will be -called to process any requests underneath the path passed to -soup_server_add_handler(). (If you want all requests to go to the same -handler, just pass "/" (or %NULL) for the path.) Any request that does -not match any handler will automatically be returned to the client -with a 404 (Not Found) status. -</para> - -<para> -To add authentication to some or all paths, create an appropriate -#SoupAuthDomain (qv), and add it to the server via -soup_server_add_auth_domain. -</para> - -<para> -Additional processing options are available via #SoupServer's signals; -Connect to #SoupServer::request-started to be notified every time a -new request is being processed. (This gives you a chance to connect to -the #SoupMessage "got-" signals in case you want to do processing -before the body has been fully read.) -</para> - -<para> -Once the server is set up, start it processing connections by calling -soup_server_run_async() or soup_server_run(). #SoupServer runs via -the glib main loop; if you need to have a server that runs in another -thread (or merely isn't bound to the default main loop), create a -#GMainContext for it to use, and set that via the -#SOUP_SERVER_ASYNC_CONTEXT property. -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupServer ##### --> -<para> - -</para> - - -<!-- ##### SIGNAL SoupServer::request-aborted ##### --> -<para> - -</para> - -@soupserver: the object which received the signal. -@arg1: -@arg2: - -<!-- ##### SIGNAL SoupServer::request-finished ##### --> -<para> - -</para> - -@soupserver: the object which received the signal. -@arg1: -@arg2: - -<!-- ##### SIGNAL SoupServer::request-read ##### --> -<para> - -</para> - -@soupserver: the object which received the signal. -@arg1: -@arg2: - -<!-- ##### SIGNAL SoupServer::request-started ##### --> -<para> - -</para> - -@soupserver: the object which received the signal. -@arg1: -@arg2: - -<!-- ##### ARG SoupServer:async-context ##### --> -<para> - -</para> - -<!-- ##### ARG SoupServer:interface ##### --> -<para> - -</para> - -<!-- ##### ARG SoupServer:port ##### --> -<para> - -</para> - -<!-- ##### ARG SoupServer:ssl-cert-file ##### --> -<para> - -</para> - -<!-- ##### ARG SoupServer:ssl-key-file ##### --> -<para> - -</para> - -<!-- ##### FUNCTION soup_server_new ##### --> -<para> - -</para> - -@optname1: -@Varargs: -@Returns: - - -<!-- ##### FUNCTION soup_server_is_https ##### --> -<para> - -</para> - -@server: -@Returns: - - -<!-- ##### FUNCTION soup_server_get_port ##### --> -<para> - -</para> - -@server: -@Returns: - - -<!-- ##### FUNCTION soup_server_get_listener ##### --> -<para> - -</para> - -@server: -@Returns: - - -<!-- ##### FUNCTION soup_server_run ##### --> -<para> - -</para> - -@server: - - -<!-- ##### FUNCTION soup_server_run_async ##### --> -<para> - -</para> - -@server: - - -<!-- ##### FUNCTION soup_server_quit ##### --> -<para> - -</para> - -@server: - - -<!-- ##### FUNCTION soup_server_get_async_context ##### --> -<para> - -</para> - -@server: -@Returns: - - -<!-- ##### USER_FUNCTION SoupServerCallback ##### --> -<para> - -</para> - -@server: -@msg: -@path: -@query: -@context: -@user_data: - - -<!-- ##### FUNCTION soup_server_add_handler ##### --> -<para> - -</para> - -@server: -@path: -@callback: -@destroy: -@data: - - -<!-- ##### FUNCTION soup_server_remove_handler ##### --> -<para> - -</para> - -@server: -@path: - - -<!-- ##### STRUCT SoupClientContext ##### --> -<para> - -</para> - -@sock: -@auth_user: -@auth_realm: - -<!-- ##### FUNCTION soup_client_context_get_address ##### --> -<para> - -</para> - -@ctx: -@Returns: - - -<!-- ##### FUNCTION soup_client_context_get_host ##### --> -<para> - -</para> - -@ctx: -@Returns: - - -<!-- ##### FUNCTION soup_server_add_auth_domain ##### --> -<para> - -</para> - -@server: -@auth_domain: - - -<!-- ##### FUNCTION soup_server_remove_auth_domain ##### --> -<para> - -</para> - -@server: -@auth_domain: - - -<!-- ##### FUNCTION soup_server_pause_message ##### --> -<para> - -</para> - -@server: -@msg: - - -<!-- ##### FUNCTION soup_server_unpause_message ##### --> -<para> - -</para> - -@server: -@msg: - - -<!-- ##### MACRO SOUP_SERVER_PORT ##### --> -<para> -An alias for the "port" property. -</para> - - - -<!-- ##### MACRO SOUP_SERVER_INTERFACE ##### --> -<para> -An alias for the "interface" property. -</para> - - - -<!-- ##### MACRO SOUP_SERVER_SSL_CERT_FILE ##### --> -<para> -An alias for the "ssl-cert-file" property. -</para> - - - -<!-- ##### MACRO SOUP_SERVER_SSL_KEY_FILE ##### --> -<para> -An alias for the "ssl-key-file" property. -</para> - - - -<!-- ##### MACRO SOUP_SERVER_ASYNC_CONTEXT ##### --> -<para> -An alias for the "async-context" property. -</para> - - - diff --git a/docs/reference/tmpl/soup-session-async.sgml b/docs/reference/tmpl/soup-session-async.sgml deleted file mode 100644 index 54533242..00000000 --- a/docs/reference/tmpl/soup-session-async.sgml +++ /dev/null @@ -1,45 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupSessionAsync - -<!-- ##### SECTION Short_Description ##### --> -Soup session for asynchronous (main-loop-based) I/O. - -<!-- ##### SECTION Long_Description ##### --> -<para> -#SoupSessionASync is an implementation of #SoupSession that uses -non-blocking I/O via the glib main loop. It is intended for use in -single-threaded programs. -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupSessionAsync ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION soup_session_async_new ##### --> -<para> - -</para> - -@Returns: - - -<!-- ##### FUNCTION soup_session_async_new_with_options ##### --> -<para> - -</para> - -@optname1: -@Varargs: -@Returns: - - diff --git a/docs/reference/tmpl/soup-session-sync.sgml b/docs/reference/tmpl/soup-session-sync.sgml deleted file mode 100644 index 63e3093f..00000000 --- a/docs/reference/tmpl/soup-session-sync.sgml +++ /dev/null @@ -1,49 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupSessionSync - -<!-- ##### SECTION Short_Description ##### --> -Soup session for blocking I/O in multithreaded programs. - -<!-- ##### SECTION Long_Description ##### --> -<para> -#SoupSessionSync is an implementation of #SoupSession that uses -synchronous I/O, intended for use in multi-threaded programs. -</para> - -<para> -Note that you cannot use soup_session_queue_message() with a -synchronous session. You can only use soup_session_send_message(). -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupSessionSync ##### --> -<para> - -</para> - - -<!-- ##### FUNCTION soup_session_sync_new ##### --> -<para> - -</para> - -@Returns: - - -<!-- ##### FUNCTION soup_session_sync_new_with_options ##### --> -<para> - -</para> - -@optname1: -@Varargs: -@Returns: - - diff --git a/docs/reference/tmpl/soup-session.sgml b/docs/reference/tmpl/soup-session.sgml deleted file mode 100644 index 7a275d28..00000000 --- a/docs/reference/tmpl/soup-session.sgml +++ /dev/null @@ -1,194 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupSession - -<!-- ##### SECTION Short_Description ##### --> -Soup session state object - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupSession ##### --> -<para> - -</para> - - -<!-- ##### SIGNAL SoupSession::authenticate ##### --> -<para> - -</para> - -@session: -@msg: -@auth_type: -@auth_realm: - -<!-- ##### SIGNAL SoupSession::request-started ##### --> -<para> - -</para> - -@soupsession: the object which received the signal. -@arg1: - -<!-- ##### ARG SoupSession:async-context ##### --> -<para> - -</para> - -<!-- ##### ARG SoupSession:max-conns ##### --> -<para> - -</para> - -<!-- ##### ARG SoupSession:max-conns-per-host ##### --> -<para> - -</para> - -<!-- ##### ARG SoupSession:proxy-uri ##### --> -<para> - -</para> - -<!-- ##### ARG SoupSession:ssl-ca-file ##### --> -<para> - -</para> - -<!-- ##### ARG SoupSession:timeout ##### --> -<para> - -</para> - -<!-- ##### ARG SoupSession:use-ntlm ##### --> -<para> - -</para> - -<!-- ##### USER_FUNCTION SoupSessionCallback ##### --> -<para> - -</para> - -@session: -@msg: -@user_data: - - -<!-- ##### FUNCTION soup_session_queue_message ##### --> -<para> - -</para> - -@session: -@msg: -@callback: -@user_data: - - -<!-- ##### FUNCTION soup_session_requeue_message ##### --> -<para> - -</para> - -@session: -@msg: - - -<!-- ##### FUNCTION soup_session_send_message ##### --> -<para> - -</para> - -@session: -@msg: -@Returns: - - -<!-- ##### FUNCTION soup_session_cancel_message ##### --> -<para> - -</para> - -@session: -@msg: -@status_code: - - -<!-- ##### FUNCTION soup_session_abort ##### --> -<para> - -</para> - -@session: - - -<!-- ##### FUNCTION soup_session_get_async_context ##### --> -<para> - -</para> - -@session: -@Returns: - - -<!-- ##### MACRO SOUP_SESSION_PROXY_URI ##### --> -<para> -An alias for the "proxy-uri" property. -</para> - - - -<!-- ##### MACRO SOUP_SESSION_MAX_CONNS ##### --> -<para> -An alias for the "max-conns" property. -</para> - - - -<!-- ##### MACRO SOUP_SESSION_MAX_CONNS_PER_HOST ##### --> -<para> -An alias for the "max-conns-per-host" property. -</para> - - - -<!-- ##### MACRO SOUP_SESSION_USE_NTLM ##### --> -<para> -An alias for the "use-ntlm" property. -</para> - - - -<!-- ##### MACRO SOUP_SESSION_SSL_CA_FILE ##### --> -<para> -An alias for the "ssl-ca-file" property. -</para> - - - -<!-- ##### MACRO SOUP_SESSION_ASYNC_CONTEXT ##### --> -<para> -An alias for the "async-context" property. -</para> - - - -<!-- ##### MACRO SOUP_SESSION_TIMEOUT ##### --> -<para> -An alias for the "timeout" property. -</para> - - - diff --git a/docs/reference/tmpl/soup-socket.sgml b/docs/reference/tmpl/soup-socket.sgml deleted file mode 100644 index 289eecac..00000000 --- a/docs/reference/tmpl/soup-socket.sgml +++ /dev/null @@ -1,308 +0,0 @@ -<!-- ##### SECTION Title ##### --> -SoupSocket - -<!-- ##### SECTION Short_Description ##### --> -a network socket - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupSocket ##### --> -<para> - -</para> - - -<!-- ##### SIGNAL SoupSocket::disconnected ##### --> -<para> - -</para> - -@sock: - -<!-- ##### SIGNAL SoupSocket::new-connection ##### --> -<para> - -</para> - -@sock: -@new: - -<!-- ##### SIGNAL SoupSocket::readable ##### --> -<para> - -</para> - -@sock: - -<!-- ##### SIGNAL SoupSocket::writable ##### --> -<para> - -</para> - -@sock: - -<!-- ##### ARG SoupSocket:async-context ##### --> -<para> - -</para> - -<!-- ##### ARG SoupSocket:is-server ##### --> -<para> - -</para> - -<!-- ##### ARG SoupSocket:local-address ##### --> -<para> - -</para> - -<!-- ##### ARG SoupSocket:non-blocking ##### --> -<para> - -</para> - -<!-- ##### ARG SoupSocket:remote-address ##### --> -<para> - -</para> - -<!-- ##### ARG SoupSocket:ssl-creds ##### --> -<para> - -</para> - -<!-- ##### ARG SoupSocket:timeout ##### --> -<para> - -</para> - -<!-- ##### FUNCTION soup_socket_new ##### --> -<para> - -</para> - -@optname1: -@Varargs: -@Returns: - - -<!-- ##### USER_FUNCTION SoupSocketCallback ##### --> -<para> - -</para> - -@sock: -@status: -@user_data: - - -<!-- ##### FUNCTION soup_socket_connect_async ##### --> -<para> - -</para> - -@sock: -@callback: -@user_data: - - -<!-- ##### FUNCTION soup_socket_connect_sync ##### --> -<para> - -</para> - -@sock: -@Returns: - - -<!-- ##### FUNCTION soup_socket_listen ##### --> -<para> - -</para> - -@sock: -@Returns: - - -<!-- ##### FUNCTION soup_socket_start_ssl ##### --> -<para> - -</para> - -@sock: -@Returns: - - -<!-- ##### FUNCTION soup_socket_start_proxy_ssl ##### --> -<para> - -</para> - -@sock: -@ssl_host: -@Returns: - - -<!-- ##### FUNCTION soup_socket_disconnect ##### --> -<para> - -</para> - -@sock: - - -<!-- ##### FUNCTION soup_socket_is_connected ##### --> -<para> - -</para> - -@sock: -@Returns: - - -<!-- ##### FUNCTION soup_socket_get_local_address ##### --> -<para> - -</para> - -@sock: -@Returns: - - -<!-- ##### FUNCTION soup_socket_get_remote_address ##### --> -<para> - -</para> - -@sock: -@Returns: - - -<!-- ##### ENUM SoupSocketIOStatus ##### --> -<para> - -</para> - -@SOUP_SOCKET_OK: -@SOUP_SOCKET_WOULD_BLOCK: -@SOUP_SOCKET_EOF: -@SOUP_SOCKET_ERROR: - -<!-- ##### FUNCTION soup_socket_read ##### --> -<para> - -</para> - -@sock: -@buffer: -@len: -@nread: -@error: -@Returns: - - -<!-- ##### FUNCTION soup_socket_read_until ##### --> -<para> - -</para> - -@sock: -@buffer: -@len: -@boundary: -@boundary_len: -@nread: -@got_boundary: -@error: -@Returns: - - -<!-- ##### FUNCTION soup_socket_write ##### --> -<para> - -</para> - -@sock: -@buffer: -@len: -@nwrote: -@error: -@Returns: - - -<!-- ##### MACRO SOUP_SSL_ERROR ##### --> -<para> - -</para> - - - -<!-- ##### ENUM SoupSSLError ##### --> -<para> - -</para> - -@SOUP_SSL_ERROR_HANDSHAKE_NEEDS_READ: -@SOUP_SSL_ERROR_HANDSHAKE_NEEDS_WRITE: -@SOUP_SSL_ERROR_CERTIFICATE: - -<!-- ##### MACRO SOUP_SOCKET_LOCAL_ADDRESS ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_SOCKET_REMOTE_ADDRESS ##### --> -<para> - -</para> - - - -<!-- ##### MACRO SOUP_SOCKET_FLAG_NONBLOCKING ##### --> -<para> -An alias for the "non-blocking" property. -</para> - - - -<!-- ##### MACRO SOUP_SOCKET_IS_SERVER ##### --> -<para> -An alias for the "is-server" property. -</para> - - - -<!-- ##### MACRO SOUP_SOCKET_SSL_CREDENTIALS ##### --> -<para> -An alias for the "ssl-creds" property. -</para> - - - -<!-- ##### MACRO SOUP_SOCKET_ASYNC_CONTEXT ##### --> -<para> -An alias for the "async-context" property. -</para> - - - -<!-- ##### MACRO SOUP_SOCKET_TIMEOUT ##### --> -<para> -An alias for the "timeout" property. -</para> - - - diff --git a/docs/reference/tmpl/soup-status.sgml b/docs/reference/tmpl/soup-status.sgml deleted file mode 100644 index d52463c4..00000000 --- a/docs/reference/tmpl/soup-status.sgml +++ /dev/null @@ -1,155 +0,0 @@ -<!-- ##### SECTION Title ##### --> -soup-status - -<!-- ##### SECTION Short_Description ##### --> -HTTP and Soup status codes - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### MACRO SOUP_STATUS_IS_TRANSPORT_ERROR ##### --> -<para> - -</para> - -@status: - - -<!-- ##### MACRO SOUP_STATUS_IS_INFORMATIONAL ##### --> -<para> - -</para> - -@status: -@Returns: - - -<!-- ##### MACRO SOUP_STATUS_IS_SUCCESSFUL ##### --> -<para> - -</para> - -@status: -@Returns: - - -<!-- ##### MACRO SOUP_STATUS_IS_REDIRECTION ##### --> -<para> - -</para> - -@status: -@Returns: - - -<!-- ##### MACRO SOUP_STATUS_IS_CLIENT_ERROR ##### --> -<para> - -</para> - -@status: -@Returns: - - -<!-- ##### MACRO SOUP_STATUS_IS_SERVER_ERROR ##### --> -<para> - -</para> - -@status: -@Returns: - - -<!-- ##### ENUM SoupKnownStatusCode ##### --> -<para> - -</para> - -@SOUP_STATUS_NONE: -@SOUP_STATUS_CANCELLED: -@SOUP_STATUS_CANT_RESOLVE: -@SOUP_STATUS_CANT_RESOLVE_PROXY: -@SOUP_STATUS_CANT_CONNECT: -@SOUP_STATUS_CANT_CONNECT_PROXY: -@SOUP_STATUS_SSL_FAILED: -@SOUP_STATUS_IO_ERROR: -@SOUP_STATUS_MALFORMED: -@SOUP_STATUS_TRY_AGAIN: -@SOUP_STATUS_CONTINUE: -@SOUP_STATUS_SWITCHING_PROTOCOLS: -@SOUP_STATUS_PROCESSING: -@SOUP_STATUS_OK: -@SOUP_STATUS_CREATED: -@SOUP_STATUS_ACCEPTED: -@SOUP_STATUS_NON_AUTHORITATIVE: -@SOUP_STATUS_NO_CONTENT: -@SOUP_STATUS_RESET_CONTENT: -@SOUP_STATUS_PARTIAL_CONTENT: -@SOUP_STATUS_MULTI_STATUS: -@SOUP_STATUS_MULTIPLE_CHOICES: -@SOUP_STATUS_MOVED_PERMANENTLY: -@SOUP_STATUS_FOUND: -@SOUP_STATUS_MOVED_TEMPORARILY: -@SOUP_STATUS_SEE_OTHER: -@SOUP_STATUS_NOT_MODIFIED: -@SOUP_STATUS_USE_PROXY: -@SOUP_STATUS_NOT_APPEARING_IN_THIS_PROTOCOL: -@SOUP_STATUS_TEMPORARY_REDIRECT: -@SOUP_STATUS_BAD_REQUEST: -@SOUP_STATUS_UNAUTHORIZED: -@SOUP_STATUS_PAYMENT_REQUIRED: -@SOUP_STATUS_FORBIDDEN: -@SOUP_STATUS_NOT_FOUND: -@SOUP_STATUS_METHOD_NOT_ALLOWED: -@SOUP_STATUS_NOT_ACCEPTABLE: -@SOUP_STATUS_PROXY_AUTHENTICATION_REQUIRED: -@SOUP_STATUS_PROXY_UNAUTHORIZED: -@SOUP_STATUS_REQUEST_TIMEOUT: -@SOUP_STATUS_CONFLICT: -@SOUP_STATUS_GONE: -@SOUP_STATUS_LENGTH_REQUIRED: -@SOUP_STATUS_PRECONDITION_FAILED: -@SOUP_STATUS_REQUEST_ENTITY_TOO_LARGE: -@SOUP_STATUS_REQUEST_URI_TOO_LONG: -@SOUP_STATUS_UNSUPPORTED_MEDIA_TYPE: -@SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE: -@SOUP_STATUS_INVALID_RANGE: -@SOUP_STATUS_EXPECTATION_FAILED: -@SOUP_STATUS_UNPROCESSABLE_ENTITY: -@SOUP_STATUS_LOCKED: -@SOUP_STATUS_FAILED_DEPENDENCY: -@SOUP_STATUS_INTERNAL_SERVER_ERROR: -@SOUP_STATUS_NOT_IMPLEMENTED: -@SOUP_STATUS_BAD_GATEWAY: -@SOUP_STATUS_SERVICE_UNAVAILABLE: -@SOUP_STATUS_GATEWAY_TIMEOUT: -@SOUP_STATUS_HTTP_VERSION_NOT_SUPPORTED: -@SOUP_STATUS_INSUFFICIENT_STORAGE: -@SOUP_STATUS_NOT_EXTENDED: - -<!-- ##### FUNCTION soup_status_get_phrase ##### --> -<para> - -</para> - -@status_code: -@Returns: - - -<!-- ##### MACRO SOUP_HTTP_ERROR ##### --> -<para> - -</para> - - - diff --git a/docs/reference/tmpl/soup-uri.sgml b/docs/reference/tmpl/soup-uri.sgml deleted file mode 100644 index 185af604..00000000 --- a/docs/reference/tmpl/soup-uri.sgml +++ /dev/null @@ -1,139 +0,0 @@ -<!-- ##### SECTION Title ##### --> -soup-uri - -<!-- ##### SECTION Short_Description ##### --> -URIs - -<!-- ##### SECTION Long_Description ##### --> -<para> -A #SoupUri represents a (parsed) URI. On the client side, you -may not need to use #SoupUri at all (since soup_message_new() takes a -stringified URI). On the server side, you will generally need to look -at the uri field of an incoming message to determine how to process it. -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### STRUCT SoupURI ##### --> -<para> - -</para> - -@scheme: -@user: -@password: -@host: -@port: -@path: -@query: -@fragment: - -<!-- ##### FUNCTION soup_uri_new_with_base ##### --> -<para> - -</para> - -@base: -@uri_string: -@Returns: - - -<!-- ##### FUNCTION soup_uri_new ##### --> -<para> - -</para> - -@uri_string: -@Returns: - - -<!-- ##### FUNCTION soup_uri_to_string ##### --> -<para> - -</para> - -@uri: -@just_path: -@Returns: - - -<!-- ##### FUNCTION soup_uri_copy ##### --> -<para> - -</para> - -@uri: -@Returns: - - -<!-- ##### FUNCTION soup_uri_equal ##### --> -<para> - -</para> - -@uri1: -@uri2: -@Returns: - - -<!-- ##### FUNCTION soup_uri_free ##### --> -<para> - -</para> - -@uri: - - -<!-- ##### FUNCTION soup_uri_encode ##### --> -<para> - -</para> - -@part: -@escape_extra: -@Returns: - - -<!-- ##### FUNCTION soup_uri_decode ##### --> -<para> - -</para> - -@part: -@Returns: - - -<!-- ##### FUNCTION soup_uri_normalize ##### --> -<para> - -</para> - -@part: -@unescape_extra: -@Returns: - - -<!-- ##### FUNCTION soup_uri_uses_default_port ##### --> -<para> - -</para> - -@uri: -@Returns: - - -<!-- ##### FUNCTION soup_uri_is_https ##### --> -<para> - -</para> - -@uri: -@Returns: - - diff --git a/docs/reference/tmpl/soup-value-utils.sgml b/docs/reference/tmpl/soup-value-utils.sgml deleted file mode 100644 index 451fd9ab..00000000 --- a/docs/reference/tmpl/soup-value-utils.sgml +++ /dev/null @@ -1,139 +0,0 @@ -<!-- ##### SECTION Title ##### --> -GValue Support - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### FUNCTION soup_value_hash_new ##### --> -<para> - -</para> - -@Returns: - - -<!-- ##### FUNCTION soup_value_hash_insert_value ##### --> -<para> - -</para> - -@hash: -@key: -@value: - - -<!-- ##### FUNCTION soup_value_hash_insert ##### --> -<para> - -</para> - -@hash: -@key: -@type: -@Varargs: - - -<!-- ##### FUNCTION soup_value_hash_lookup ##### --> -<para> - -</para> - -@hash: -@key: -@type: -@Varargs: -@Returns: - - -<!-- ##### FUNCTION soup_value_array_from_args ##### --> -<para> - -</para> - -@args: -@Returns: - - -<!-- ##### FUNCTION soup_value_array_to_args ##### --> -<para> - -</para> - -@array: -@args: -@Returns: - - -<!-- ##### FUNCTION soup_value_array_insert ##### --> -<para> - -</para> - -@array: -@index_: -@type: -@Varargs: - - -<!-- ##### FUNCTION soup_value_array_append ##### --> -<para> - -</para> - -@array: -@type: -@Varargs: - - -<!-- ##### FUNCTION soup_value_array_get_nth ##### --> -<para> - -</para> - -@array: -@index_: -@type: -@Varargs: -@Returns: - - -<!-- ##### MACRO SOUP_VALUE_SETV ##### --> -<para> - -</para> - -@val: -@type: -@args: - - -<!-- ##### MACRO SOUP_VALUE_GETV ##### --> -<para> - -</para> - -@val: -@type: -@args: - - -<!-- ##### MACRO SOUP_TYPE_BYTE_ARRAY ##### --> -<para> - -</para> - - - diff --git a/docs/reference/tmpl/soup-xmlrpc.sgml b/docs/reference/tmpl/soup-xmlrpc.sgml deleted file mode 100644 index a24a1313..00000000 --- a/docs/reference/tmpl/soup-xmlrpc.sgml +++ /dev/null @@ -1,140 +0,0 @@ -<!-- ##### SECTION Title ##### --> -XMLRPC Support - -<!-- ##### SECTION Short_Description ##### --> - - -<!-- ##### SECTION Long_Description ##### --> -<para> - -</para> - -<!-- ##### SECTION See_Also ##### --> -<para> - -</para> - -<!-- ##### SECTION Stability_Level ##### --> - - -<!-- ##### FUNCTION soup_xmlrpc_build_method_call ##### --> -<para> - -</para> - -@method_name: -@params: -@n_params: -@Returns: - - -<!-- ##### FUNCTION soup_xmlrpc_request_new ##### --> -<para> - -</para> - -@uri: -@method_name: -@Varargs: -@Returns: - - -<!-- ##### FUNCTION soup_xmlrpc_parse_method_response ##### --> -<para> - -</para> - -@method_response: -@length: -@value: -@error: -@Returns: - - -<!-- ##### FUNCTION soup_xmlrpc_parse_method_call ##### --> -<para> - -</para> - -@method_call: -@length: -@method_name: -@params: -@Returns: - - -<!-- ##### FUNCTION soup_xmlrpc_extract_method_call ##### --> -<para> - -</para> - -@method_call: -@length: -@method_name: -@Varargs: -@Returns: - - -<!-- ##### FUNCTION soup_xmlrpc_build_method_response ##### --> -<para> - -</para> - -@value: -@Returns: - - -<!-- ##### FUNCTION soup_xmlrpc_build_fault ##### --> -<para> - -</para> - -@fault_code: -@fault_format: -@Varargs: -@Returns: - - -<!-- ##### FUNCTION soup_xmlrpc_set_response ##### --> -<para> - -</para> - -@msg: -@type: -@Varargs: - - -<!-- ##### FUNCTION soup_xmlrpc_set_fault ##### --> -<para> - -</para> - -@msg: -@fault_code: -@fault_format: -@Varargs: - - -<!-- ##### MACRO SOUP_XMLRPC_ERROR ##### --> -<para> - -</para> - - - -<!-- ##### ENUM SoupXMLRPCError ##### --> -<para> - -</para> - -@SOUP_XMLRPC_ERROR_ARGUMENTS: -@SOUP_XMLRPC_ERROR_RETVAL: - -<!-- ##### MACRO SOUP_XMLRPC_FAULT ##### --> -<para> - -</para> - - - diff --git a/libsoup/soup-address.c b/libsoup/soup-address.c index 564dd066..13509d4f 100644 --- a/libsoup/soup-address.c +++ b/libsoup/soup-address.c @@ -30,6 +30,18 @@ #define INADDR_NONE -1 #endif +/** + * SECTION:soup-address + * @short_description: DNS support + * + * #SoupAddress represents the address of a TCP connection endpoint; + * both the IP address and the port. (It is somewhat like an + * object-oriented version of struct sockaddr.) + * + * If libsoup was built with IPv6 support, #SoupAddress will allow + * both IPv4 and IPv6 addresses. + **/ + typedef struct { struct sockaddr *sockaddr; @@ -220,6 +232,13 @@ soup_address_new_from_sockaddr (struct sockaddr *sa, int len) **/ /** + * SOUP_ADDRESS_ANY_PORT: + * + * This can be passed to any #SoupAddress method that expects a port, + * to indicate that you don't care what port is used. + **/ + +/** * soup_address_new_any: * @family: the address family * @port: the port number (usually %SOUP_ADDRESS_ANY_PORT) @@ -385,6 +404,16 @@ lookup_resolved (SoupDNSLookup *lookup, gboolean success, gpointer user_data) } /** + * SoupAddressCallback: + * @addr: the #SoupAddress that was resolved + * @status: %SOUP_STATUS_OK or %SOUP_STATUS_CANT_RESOLVE + * @data: the user data that was passed to + * soup_address_resolve_async() + * + * The callback function passed to soup_address_resolve_async(). + **/ + +/** * soup_address_resolve_async: * @addr: a #SoupAddress * @async_context: the #GMainContext to call @callback from diff --git a/libsoup/soup-address.h b/libsoup/soup-address.h index 760bcd17..6a2a1dcf 100644 --- a/libsoup/soup-address.h +++ b/libsoup/soup-address.h @@ -44,23 +44,8 @@ typedef enum { #undef AF_INET6 #endif -/** - * SOUP_ADDRESS_ANY_PORT: - * - * This can be passed to any #SoupAddress method that expects a port, - * to indicate that you don't care what port is used. - **/ #define SOUP_ADDRESS_ANY_PORT 0 -/** - * SoupAddressCallback: - * @addr: the #SoupAddress that was resolved - * @status: %SOUP_STATUS_OK or %SOUP_STATUS_CANT_RESOLVE - * @data: the user data that was passed to - * soup_address_resolve_async() - * - * The callback function passed to soup_address_resolve_async(). - **/ typedef void (*SoupAddressCallback) (SoupAddress *addr, guint status, gpointer data); diff --git a/libsoup/soup-auth-domain-basic.c b/libsoup/soup-auth-domain-basic.c index aac9fff2..c0af63d1 100644 --- a/libsoup/soup-auth-domain-basic.c +++ b/libsoup/soup-auth-domain-basic.c @@ -15,6 +15,14 @@ #include "soup-marshal.h" #include "soup-message.h" +/** + * SECTION:soup-auth-domain-basic + * @short_description: Server-side "Basic" authentication + * + * #SoupAuthDomainBasic handles the server side of HTTP "Basic" (ie, + * cleartext password) authentication. + **/ + enum { PROP_0, diff --git a/libsoup/soup-auth-domain-digest.c b/libsoup/soup-auth-domain-digest.c index 33a14877..2268c28e 100644 --- a/libsoup/soup-auth-domain-digest.c +++ b/libsoup/soup-auth-domain-digest.c @@ -19,6 +19,14 @@ #include "soup-message.h" #include "soup-uri.h" +/** + * SECTION:soup-auth-domain-digest + * @short_description: Server-side "Digest" authentication + * + * #SoupAuthDomainBasic handles the server side of HTTP "Digest" + * authentication. + **/ + enum { PROP_0, diff --git a/libsoup/soup-auth-domain.c b/libsoup/soup-auth-domain.c index 70b73681..5bafb592 100644 --- a/libsoup/soup-auth-domain.c +++ b/libsoup/soup-auth-domain.c @@ -16,6 +16,28 @@ #include "soup-path-map.h" #include "soup-uri.h" +/** + * SECTION:soup-auth-domain + * @short_description: Server-side authentication + * @see_also: #SoupServer + * + * A #SoupAuthDomain manages authentication for all or part of a + * #SoupServer. To make a server require authentication, first create + * an appropriate subclass of #SoupAuthDomain, and then add it to the + * server with soup_server_add_auth_domain(). + * + * In order for an auth domain to have any effect, you must add one or + * more paths to it (via soup_auth_domain_add_path() or the + * %SOUP_AUTH_DOMAIN_ADD_PATH property). To require authentication for + * all requests, add the path "/". + * + * If you need greater control over which requests should and + * shouldn't be authenticated, add paths covering everything you + * <emphasis>might</emphasis> want authenticated, and then use a + * filter (soup_auth_domain_set_filter()) to bypass authentication for + * those requests that don't need it. + **/ + enum { PROP_0, diff --git a/libsoup/soup-auth.c b/libsoup/soup-auth.c index 3e8b4a49..30792814 100644 --- a/libsoup/soup-auth.c +++ b/libsoup/soup-auth.c @@ -17,6 +17,25 @@ #include "soup-headers.h" #include "soup-uri.h" +/** + * SECTION:soup-auth + * @short_description: HTTP client-side authentication support + * @see_also: #SoupSession + * + * #SoupAuth objects store the authentication data associated with a + * given bit of web space. They are created automatically by + * #SoupSession. + **/ + +/** + * SoupAuth: + * + * The abstract base class for handling authentication. Specific HTTP + * Authentication mechanisms are implemented by its subclasses, but + * applications never need to be aware of the specific subclasses + * being used. + **/ + typedef struct { gboolean proxy; char *host; diff --git a/libsoup/soup-connection.h b/libsoup/soup-connection.h index de6a769c..5ae9a2e3 100644 --- a/libsoup/soup-connection.h +++ b/libsoup/soup-connection.h @@ -43,14 +43,6 @@ typedef struct { GType soup_connection_get_type (void); -/** - * SoupConnectionCallback: - * @conn: the #SoupConnection - * @status: an HTTP status code indicating success or failure - * @data: the data passed to soup_connection_connect_async() - * - * The callback function passed to soup_connection_connect_async(). - **/ typedef void (*SoupConnectionCallback) (SoupConnection *conn, guint status, gpointer data); diff --git a/libsoup/soup-date.c b/libsoup/soup-date.c index d48e6c70..563849e2 100644 --- a/libsoup/soup-date.c +++ b/libsoup/soup-date.c @@ -16,6 +16,26 @@ #include "soup-date.h" +/** + * SoupDate: + * @year: the year, 1 to 9999 + * @month: the month, 1 to 12 + * @day: day of the month, 1 to 31 + * @hour: hour of the day, 0 to 23 + * @minute: minute, 0 to 59 + * @second: second, 0 to 59 (or up to 61 in the case of leap seconds) + * @utc: %TRUE if the date is in UTC + * @offset: offset from UTC + + * A date and time. The date is assumed to be in the (proleptic) + * Gregorian calendar. The time is in UTC if @utc is %TRUE. Otherwise, + * the time is a local time, and @offset gives the offset from UTC in + * minutes (such that adding @offset to the time would give the + * correct UTC time). If @utc is %FALSE and @offset is 0, then the + * %SoupDate represents a "floating" time with no associated timezone + * information. + **/ + /* Do not internationalize */ static const char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", @@ -312,7 +332,33 @@ days_in_month (int month, int year) } /** - * soup_date_from_now: + * SoupDateFormat: + * @SOUP_DATE_HTTP: RFC 1123 format, used by the HTTP "Date" header. Eg + * "Sun, 06 Nov 1994 08:49:37 GMT" + * @SOUP_DATE_COOKIE: The format for the "Expires" timestamp in the + * Netscape cookie specification. Eg, "Sun, 06-Nov-1994 08:49:37 GMT". + * @SOUP_DATE_RFC2822: RFC 2822 format, eg "Sun, 6 Nov 1994 09:49:37 -0100" + * @SOUP_DATE_ISO8601_COMPACT: ISO 8601 date/time with no optional + * punctuation. Eg, "19941106T094937-0100". + * @SOUP_DATE_ISO8601_FULL: ISO 8601 date/time with all optional + * punctuation. Eg, "1994-11-06T09:49:37-01:00". + * @SOUP_DATE_ISO8601_XMLRPC: ISO 8601 date/time as used by XML-RPC. + * Eg, "19941106T09:49:37". + * @SOUP_DATE_ISO8601: An alias for @SOUP_DATE_ISO8601_FULL. + * + * Date formats that soup_date_to_string() can use. + * + * @SOUP_DATE_HTTP and @SOUP_DATE_COOKIE always coerce the time to + * UTC. @SOUP_DATE_ISO8601_XMLRPC uses the time as given, ignoring the + * offset completely. @SOUP_DATE_RFC2822 and the other ISO 8601 + * variants use the local time, appending the offset information if + * available. + * + * This enum may be extended with more values in future releases. + **/ + +/** + * soup_date_new_from_string: * @date_string: the date in some plausible format * * Parses @date_string and tries to extract a date from it. This diff --git a/libsoup/soup-date.h b/libsoup/soup-date.h index 53538603..106b0824 100644 --- a/libsoup/soup-date.h +++ b/libsoup/soup-date.h @@ -12,25 +12,6 @@ G_BEGIN_DECLS -/** - * SoupDate: - * @year: the year, 1 to 9999 - * @month: the month, 1 to 12 - * @day: day of the month, 1 to 31 - * @hour: hour of the day, 0 to 23 - * @minute: minute, 0 to 59 - * @second: second, 0 to 59 (or up to 61 in the case of leap seconds) - * @utc: %TRUE if the date is in UTC - * @offset: offset from UTC - - * A date and time. The date is assumed to be in the (proleptic) - * Gregorian calendar. The time is in UTC if @utc is %TRUE. Otherwise, - * the time is a local time, and @offset gives the offset from UTC in - * minutes (such that adding @offset to the time would give the - * correct UTC time). If @utc is %FALSE and @offset is 0, then the - * %SoupDate represents a "floating" time with no associated timezone - * information. - **/ typedef struct { int year; int month; @@ -44,31 +25,6 @@ typedef struct { int offset; } SoupDate; -/** - * SoupDateFormat: - * @SOUP_DATE_HTTP: RFC 1123 format, used by the HTTP "Date" header. Eg - * "Sun, 06 Nov 1994 08:49:37 GMT" - * @SOUP_DATE_COOKIE: The format for the "Expires" timestamp in the - * Netscape cookie specification. Eg, "Sun, 06-Nov-1994 08:49:37 GMT". - * @SOUP_DATE_RFC2822: RFC 2822 format, eg "Sun, 6 Nov 1994 09:49:37 -0100" - * @SOUP_DATE_ISO8601_COMPACT: ISO 8601 date/time with no optional - * punctuation. Eg, "19941106T094937-0100". - * @SOUP_DATE_ISO8601_FULL: ISO 8601 date/time with all optional - * punctuation. Eg, "1994-11-06T09:49:37-01:00". - * @SOUP_DATE_ISO8601_XMLRPC: ISO 8601 date/time as used by XML-RPC. - * Eg, "19941106T09:49:37". - * @SOUP_DATE_ISO8601: An alias for @SOUP_DATE_ISO8601_FULL. - * - * Date formats that soup_date_to_string() can use. - * - * @SOUP_DATE_HTTP and @SOUP_DATE_COOKIE always coerce the time to - * UTC. @SOUP_DATE_ISO8601_XMLRPC uses the time as given, ignoring the - * offset completely. @SOUP_DATE_RFC2822 and the other ISO 8601 - * variants use the local time, appending the offset information if - * available. - * - * This enum may be extended with more values in future releases. - **/ typedef enum { SOUP_DATE_HTTP = 1, SOUP_DATE_COOKIE, diff --git a/libsoup/soup-dns.h b/libsoup/soup-dns.h index 2a8bb0fc..6ff030c0 100644 --- a/libsoup/soup-dns.h +++ b/libsoup/soup-dns.h @@ -14,25 +14,12 @@ void soup_dns_init (void); char *soup_dns_ntop (struct sockaddr *sa); -/** - * SoupDNSLookup: - * - * An opaque type that represents a DNS lookup operation. - **/ typedef struct SoupDNSLookup SoupDNSLookup; SoupDNSLookup *soup_dns_lookup_name (const char *name); SoupDNSLookup *soup_dns_lookup_address (struct sockaddr *sockaddr); void soup_dns_lookup_free (SoupDNSLookup *lookup); -/** - * SoupDNSCallback: - * @lookup: the completed lookup - * @success: %TRUE if @lookup completed successfully, %FALSE if it failed - * @user_data: the data passed to soup_dns_lookup_resolve_async() - * - * The callback function passed to soup_dns_lookup_resolve_async(). - **/ typedef void (*SoupDNSCallback) (SoupDNSLookup *lookup, gboolean success, gpointer user_data); gboolean soup_dns_lookup_resolve (SoupDNSLookup *lookup); diff --git a/libsoup/soup-gnutls.c b/libsoup/soup-gnutls.c index 838d470e..b402850a 100644 --- a/libsoup/soup-gnutls.c +++ b/libsoup/soup-gnutls.c @@ -26,6 +26,11 @@ #include "soup-ssl.h" #include "soup-misc.h" +/** + * soup_ssl_supported: + * + * Can be used to test if libsoup was compiled with ssl support. + **/ gboolean soup_ssl_supported = TRUE; #define DH_BITS 1024 diff --git a/libsoup/soup-message-body.c b/libsoup/soup-message-body.c index ae1a5669..068493c2 100644 --- a/libsoup/soup-message-body.c +++ b/libsoup/soup-message-body.c @@ -9,6 +9,54 @@ #include "soup-message-body.h" +/** + * SECTION:soup-message-body + * @short_description: HTTP message body + * @see_also: #SoupMessage + * + * #SoupMessageBody represents the request or response body of a + * #SoupMessage. + * + * In addition to #SoupMessageBody, libsoup also defines a "smaller" + * data buffer type, #SoupBuffer, which is primarily used as a + * component of #SoupMessageBody. In particular, when using chunked + * encoding to transmit or receive a message, each chunk is + * represented as a #SoupBuffer. + **/ + +/** + * SoupMemoryUse: + * @SOUP_MEMORY_STATIC: The memory is statically allocated and + * constant; libsoup can use the passed-in buffer directly and not + * need to worry about it being modified or freed. + * @SOUP_MEMORY_TAKE: The caller has allocated the memory for the + * #SoupBuffer's use; libsoup will assume ownership of it and free it + * (with g_free()) when it is done with it. + * @SOUP_MEMORY_COPY: The passed-in data belongs to the caller; the + * #SoupBuffer will copy it into new memory, leaving the caller free + * to reuse the original memory. + * @SOUP_MEMORY_TEMPORARY: The passed-in data belongs to the caller, + * but will remain valid for the lifetime of the #SoupBuffer. The + * difference between this and @SOUP_MEMORY_STATIC is that if you copy + * a @SOUP_MEMORY_TEMPORARY buffer, it will make a copy of the memory + * as well, rather than reusing the original memory. + * + * Describes how #SoupBuffer should use the data passed in by the + * caller. + **/ + +/** + * SoupBuffer: + * @data: the data + * @length: length of @data + * + * A data buffer, generally used to represent a chunk of a + * #SoupMessageBody. + * + * @data is a #char because that's generally convenient; in some + * situations you may need to cast it to #guchar or another type. + **/ + typedef struct { SoupBuffer buffer; SoupMemoryUse use; @@ -146,6 +194,27 @@ soup_buffer_get_type (void) return type; } + +/** + * SoupMessageBody: + * @data: the data + * @length: length of @data + * + * A #SoupMessage request or response body. + * + * Note that while @length always reflects the full length of the + * message body, @data is normally %NULL, and will only be filled in + * after soup_message_body_flatten() is called. For client-side + * messages, this automatically happens for the response body after it + * has been fully read, unless you set the + * %SOUP_MESSAGE_OVERWRITE_CHUNKS flags. Likewise, for server-side + * messages, the request body is automatically filled in after being + * read. + * + * As an added bonus, when @data is filled in, it is always terminated + * with a '\0' byte (which is not reflected in @length). + **/ + typedef struct { SoupMessageBody body; GSList *chunks, *last; diff --git a/libsoup/soup-message-body.h b/libsoup/soup-message-body.h index 144d75dd..329c7736 100644 --- a/libsoup/soup-message-body.h +++ b/libsoup/soup-message-body.h @@ -10,26 +10,6 @@ G_BEGIN_DECLS -/** - * SoupMemoryUse: - * @SOUP_MEMORY_STATIC: The memory is statically allocated and - * constant; libsoup can use the passed-in buffer directly and not - * need to worry about it being modified or freed. - * @SOUP_MEMORY_TAKE: The caller has allocated the memory for the - * #SoupBuffer's use; libsoup will assume ownership of it and free it - * (with g_free()) when it is done with it. - * @SOUP_MEMORY_COPY: The passed-in data belongs to the caller; the - * #SoupBuffer will copy it into new memory, leaving the caller free - * to reuse the original memory. - * @SOUP_MEMORY_TEMPORARY: The passed-in data belongs to the caller, - * but will remain valid for the lifetime of the #SoupBuffer. The - * difference between this and @SOUP_MEMORY_STATIC is that if you copy - * a @SOUP_MEMORY_TEMPORARY buffer, it will make a copy of the memory - * as well, rather than reusing the original memory. - * - * Describes how #SoupBuffer should use the data passed in by the - * caller. - **/ typedef enum { SOUP_MEMORY_STATIC, SOUP_MEMORY_TAKE, @@ -37,17 +17,6 @@ typedef enum { SOUP_MEMORY_TEMPORARY, } SoupMemoryUse; -/** - * SoupBuffer: - * @data: the data - * @length: length of @data - * - * A data buffer, generally used to represent a chunk of a - * #SoupMessageBody. - * - * @data is a #char because that's generally convenient; in some - * situations you may need to cast it to #guchar or another type. - **/ typedef struct { const char *data; gsize length; @@ -66,25 +35,6 @@ SoupBuffer *soup_buffer_new_subbuffer (SoupBuffer *parent, SoupBuffer *soup_buffer_copy (SoupBuffer *buffer); void soup_buffer_free (SoupBuffer *buffer); -/** - * SoupMessageBody: - * @data: the data - * @length: length of @data - * - * A #SoupMessage request or response body. - * - * Note that while @length always reflects the full length of the - * message body, @data is normally %NULL, and will only be filled in - * after soup_message_body_flatten() is called. For client-side - * messages, this automatically happens for the response body after it - * has been fully read, unless you set the - * %SOUP_MESSAGE_OVERWRITE_CHUNKS flags. Likewise, for server-side - * messages, the request body is automatically filled in after being - * read. - * - * As an added bonus, when @data is filled in, it is always terminated - * with a '\0' byte (which is not reflected in @length). - **/ typedef struct { const char *data; goffset length; diff --git a/libsoup/soup-message-headers.c b/libsoup/soup-message-headers.c index 9e7ae04b..a1314918 100644 --- a/libsoup/soup-message-headers.c +++ b/libsoup/soup-message-headers.c @@ -10,6 +10,15 @@ #include "soup-message-headers.h" #include "soup-misc.h" +/** + * SECTION:soup-message-headers + * @short_description: HTTP message headers + * @see_also: #SoupMessage + * + * #SoupMessageHeaders represents the HTTP message headers associated + * with a request or response. + **/ + typedef void (*SoupHeaderSetter) (SoupMessageHeaders *, const char *); static const char *intern_header_name (const char *name, SoupHeaderSetter *setter); diff --git a/libsoup/soup-message-headers.h b/libsoup/soup-message-headers.h index e6243ec5..b6eb94e4 100644 --- a/libsoup/soup-message-headers.h +++ b/libsoup/soup-message-headers.h @@ -42,20 +42,6 @@ void soup_message_headers_foreach (SoupMessageHeaders *hdrs, /* Specific headers */ -/** - * SoupEncoding: - * @SOUP_ENCODING_UNRECOGNIZED: unknown / error - * @SOUP_ENCODING_NONE: no body is present (which is not the same as a - * 0-length body, and only occurs in certain places) - * @SOUP_ENCODING_CONTENT_LENGTH: Content-Length encoding - * @SOUP_ENCODING_EOF: Response body ends when the connection is closed - * @SOUP_ENCODING_CHUNKED: chunked encoding (currently only supported - * for response) - * @SOUP_ENCODING_BYTERANGES: multipart/byteranges (Reserved for future - * use: NOT CURRENTLY IMPLEMENTED) - * - * How a message body is encoded for transport - **/ typedef enum { SOUP_ENCODING_UNRECOGNIZED, SOUP_ENCODING_NONE, diff --git a/libsoup/soup-message-queue.h b/libsoup/soup-message-queue.h index d3b0185e..24e8ddb9 100644 --- a/libsoup/soup-message-queue.h +++ b/libsoup/soup-message-queue.h @@ -13,14 +13,7 @@ G_BEGIN_DECLS typedef struct SoupMessageQueue SoupMessageQueue; -/** - * SoupMessageQueueIter: - * - * An opaque data structure used to iterate the elements of a - * #SoupMessageQueue. - **/ typedef struct { - /*< private >*/ GList *cur, *next; } SoupMessageQueueIter; diff --git a/libsoup/soup-message.c b/libsoup/soup-message.c index b22de522..c5e70d43 100644 --- a/libsoup/soup-message.c +++ b/libsoup/soup-message.c @@ -16,6 +16,43 @@ #include "soup-misc.h" #include "soup-uri.h" +/** + * SECTION:soup-message + * @short_description: An HTTP request and response. + * @see_also: #SoupMessageHeaders, #SoupMessageBody + * + **/ + +/** + * SoupMessage: + * @method: the HTTP method + * @status_code: the HTTP status code + * @reason_phrase: the status phrase associated with @status_code + * @request_body: the request body + * @request_headers: the request headers + * @response_body: the response body + * @response_headers: the response headers + * + * Represents an HTTP message being sent or received. + * + * As described in the #SoupMessageBody documentation, the + * @request_body and @response_body %data fields will not necessarily + * be filled in at all times. When they are filled in, they will be + * terminated with a '\0' byte (which is not included in the %length), + * so you can use them as ordinary C strings (assuming that you know + * that the body doesn't have any other '\0' bytes). + * + * For a client-side #SoupMessage, @request_body's %data is usually + * filled in right before libsoup writes the request to the network, + * but you should not count on this; use soup_message_body_flatten() + * if you want to ensure that %data is filled in. @response_body's + * %data will be filled in before #SoupMessage::finished is emitted, + * unless you set the %SOUP_MESSAGE_OVERWRITE_CHUNKS flag. + * + * For a server-side #SoupMessage, @request_body's %data will be + * filled in before #SoupMessage::got_body is emitted. + **/ + G_DEFINE_TYPE (SoupMessage, soup_message, G_TYPE_OBJECT) enum { @@ -1021,6 +1058,20 @@ soup_message_cleanup_response (SoupMessage *req) } /** + * SoupMessageFlags: + * @SOUP_MESSAGE_NO_REDIRECT: The session should not follow redirect + * (3xx) responses received by this message. + * @SOUP_MESSAGE_OVERWRITE_CHUNKS: Each chunk of the response will be + * freed after its corresponding %got_chunk signal is emitted, meaning + * %response will still be empty after the message is complete. You + * can use this to save memory if you expect the response to be large + * and you are able to process it a chunk at a time. + * + * Various flags that can be set on a #SoupMessage to alter its + * behavior. + **/ + +/** * soup_message_set_flags: * @msg: a #SoupMessage * @flags: a set of #SoupMessageFlags values @@ -1028,7 +1079,7 @@ soup_message_cleanup_response (SoupMessage *req) * Sets the specified flags on @msg. **/ void -soup_message_set_flags (SoupMessage *msg, guint flags) +soup_message_set_flags (SoupMessage *msg, SoupMessageFlags flags) { g_return_if_fail (SOUP_IS_MESSAGE (msg)); @@ -1043,7 +1094,7 @@ soup_message_set_flags (SoupMessage *msg, guint flags) * * Return value: the flags **/ -guint +SoupMessageFlags soup_message_get_flags (SoupMessage *msg) { g_return_val_if_fail (SOUP_IS_MESSAGE (msg), 0); @@ -1052,6 +1103,14 @@ soup_message_get_flags (SoupMessage *msg) } /** + * SoupHTTPVersion: + * @SOUP_HTTP_1_0: HTTP 1.0 (RFC 1945) + * @SOUP_HTTP_1_1: HTTP 1.1 (RFC 2616) + * + * Indicates the HTTP protocol version being used. + **/ + +/** * soup_message_set_http_version: * @msg: a #SoupMessage * @version: the HTTP version diff --git a/libsoup/soup-message.h b/libsoup/soup-message.h index 636b61a2..02733640 100644 --- a/libsoup/soup-message.h +++ b/libsoup/soup-message.h @@ -20,35 +20,6 @@ G_BEGIN_DECLS #define SOUP_IS_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SOUP_TYPE_MESSAGE)) #define SOUP_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_MESSAGE, SoupMessageClass)) -/** - * SoupMessage: - * @method: the HTTP method - * @status_code: the HTTP status code - * @reason_phrase: the status phrase associated with @status_code - * @request_body: the request body - * @request_headers: the request headers - * @response_body: the response body - * @response_headers: the response headers - * - * Represents an HTTP message being sent or received. - * - * As described in the #SoupMessageBody documentation, the - * @request_body and @response_body %data fields will not necessarily - * be filled in at all times. When they are filled in, they will be - * terminated with a '\0' byte (which is not included in the %length), - * so you can use them as ordinary C strings (assuming that you know - * that the body doesn't have any other '\0' bytes). - * - * For a client-side #SoupMessage, @request_body's %data is usually - * filled in right before libsoup writes the request to the network, - * but you should not count on this; use soup_message_body_flatten() - * if you want to ensure that %data is filled in. @response_body's - * %data will be filled in before #SoupMessage::finished is emitted, - * unless you set the %SOUP_MESSAGE_OVERWRITE_CHUNKS flag. - * - * For a server-side #SoupMessage, @request_body's %data will be - * filled in before #SoupMessage::got_body is emitted. - **/ struct SoupMessage { GObject parent; @@ -106,13 +77,6 @@ void soup_message_set_response (SoupMessage *msg, const char *resp_body, gsize resp_length); -/** - * SoupHTTPVersion: - * @SOUP_HTTP_1_0: HTTP 1.0 (RFC 1945) - * @SOUP_HTTP_1_1: HTTP 1.1 (RFC 2616) - * - * Indicates the HTTP protocol version being used. - **/ typedef enum { SOUP_HTTP_1_0 = 0, SOUP_HTTP_1_1 = 1 @@ -128,28 +92,15 @@ SoupURI *soup_message_get_uri (SoupMessage *msg); void soup_message_set_uri (SoupMessage *msg, SoupURI *uri); -/** - * SoupMessageFlags: - * @SOUP_MESSAGE_NO_REDIRECT: The session should not follow redirect - * (3xx) responses received by this message. - * @SOUP_MESSAGE_OVERWRITE_CHUNKS: Each chunk of the response will be - * freed after its corresponding %got_chunk signal is emitted, meaning - * %response will still be empty after the message is complete. You - * can use this to save memory if you expect the response to be large - * and you are able to process it a chunk at a time. - * - * Various flags that can be set on a #SoupMessage to alter its - * behavior. - **/ typedef enum { SOUP_MESSAGE_NO_REDIRECT = (1 << 1), SOUP_MESSAGE_OVERWRITE_CHUNKS = (1 << 3), } SoupMessageFlags; void soup_message_set_flags (SoupMessage *msg, - guint flags); + SoupMessageFlags flags); -guint soup_message_get_flags (SoupMessage *msg); +SoupMessageFlags soup_message_get_flags (SoupMessage *msg); /* Specialized signal handlers */ guint soup_message_add_header_handler (SoupMessage *msg, diff --git a/libsoup/soup-method.c b/libsoup/soup-method.c deleted file mode 100644 index 26f5c245..00000000 --- a/libsoup/soup-method.c +++ /dev/null @@ -1,83 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* - * soup-method.c: HTTP Method related processing. - * - * Copyright (C) 2001-2002, Ximian, Inc. - */ - -#include <glib.h> - -#include "soup-method.h" - -/** - * soup_method_get_id: - * @method: an HTTP method - * - * Converts @method into a corresponding #SoupMethodId (possibly - * %SOUP_METHOD_ID_UNKNOWN). - * - * Return value: the #SoupMethodId - **/ -SoupMethodId -soup_method_get_id (const char *method) -{ - g_return_val_if_fail (method != NULL, SOUP_METHOD_ID_UNKNOWN); - - switch (*method) { - case 'H': - if (g_ascii_strcasecmp (method, "HEAD") == 0) - return SOUP_METHOD_ID_HEAD; - break; - case 'G': - if (g_ascii_strcasecmp (method, "GET") == 0) - return SOUP_METHOD_ID_GET; - break; - case 'P': - if (g_ascii_strcasecmp (method, "POST") == 0) - return SOUP_METHOD_ID_POST; - if (g_ascii_strcasecmp (method, "PUT") == 0) - return SOUP_METHOD_ID_PUT; - if (g_ascii_strcasecmp (method, "PATCH") == 0) - return SOUP_METHOD_ID_PATCH; - if (g_ascii_strcasecmp (method, "PROPFIND") == 0) - return SOUP_METHOD_ID_PROPFIND; - if (g_ascii_strcasecmp (method, "PROPPATCH") == 0) - return SOUP_METHOD_ID_PROPPATCH; - break; - case 'D': - if (g_ascii_strcasecmp (method, "DELETE") == 0) - return SOUP_METHOD_ID_DELETE; - break; - case 'C': - if (g_ascii_strcasecmp (method, "CONNECT") == 0) - return SOUP_METHOD_ID_CONNECT; - if (g_ascii_strcasecmp (method, "COPY") == 0) - return SOUP_METHOD_ID_COPY; - break; - case 'M': - if (g_ascii_strcasecmp (method, "MKCOL") == 0) - return SOUP_METHOD_ID_MKCOL; - if (g_ascii_strcasecmp (method, "MOVE") == 0) - return SOUP_METHOD_ID_MOVE; - break; - case 'O': - if (g_ascii_strcasecmp (method, "OPTIONS") == 0) - return SOUP_METHOD_ID_OPTIONS; - break; - case 'T': - if (g_ascii_strcasecmp (method, "TRACE") == 0) - return SOUP_METHOD_ID_TRACE; - break; - case 'L': - if (g_ascii_strcasecmp (method, "LOCK") == 0) - return SOUP_METHOD_ID_LOCK; - break; - case 'U': - if (g_ascii_strcasecmp (method, "UNLOCK") == 0) - return SOUP_METHOD_ID_UNLOCK; - break; - } - - return SOUP_METHOD_ID_UNKNOWN; -} - diff --git a/libsoup/soup-method.h b/libsoup/soup-method.h index dd3181b9..861f7ef1 100644 --- a/libsoup/soup-method.h +++ b/libsoup/soup-method.h @@ -8,6 +8,29 @@ G_BEGIN_DECLS +/** + * SECTION:soup-method + * @short_description: HTTP method definitions + * + * soup-method.h contains a number of defines for standard HTTP and + * WebDAV headers. You do not need to use these defines; you can pass + * arbitrary strings to soup_message_new() if you prefer. + * + * The thing that these defines <emphasis>are</emphasis> useful for is + * performing quick comparisons against #SoupMessage's %method field; + * because that field always contains an interned string, and these + * macros return interned strings, you can compare %method directly + * against these macros rather than needing to use strcmp(). This is + * most useful in SoupServer handlers. Eg: + * + * <informalexample><programlisting> + * if (msg->method != SOUP_METHOD_GET && msg->method != SOUP_METHOD_HEAD) { + * soup_message_set_status (msg, SOUP_METHOD_NOT_IMPLEMENTED); + * return; + * } + * </programlisting></informalexample> + **/ + #define SOUP_METHOD_POST (g_intern_static_string ("POST")) #define SOUP_METHOD_GET (g_intern_static_string ("GET")) #define SOUP_METHOD_HEAD (g_intern_static_string ("HEAD")) diff --git a/libsoup/soup-misc.c b/libsoup/soup-misc.c index 4c9e7330..79a7399b 100644 --- a/libsoup/soup-misc.c +++ b/libsoup/soup-misc.c @@ -11,6 +11,12 @@ #include "soup-misc.h" /** + * SECTION:soup-misc + * @short_description: Miscellaneous functions + * + **/ + +/** * soup_str_case_hash: * @key: ASCII string to hash * diff --git a/libsoup/soup-misc.h b/libsoup/soup-misc.h index f35a56c6..36996064 100644 --- a/libsoup/soup-misc.h +++ b/libsoup/soup-misc.h @@ -35,11 +35,6 @@ guint soup_str_case_hash (gconstpointer key); gboolean soup_str_case_equal (gconstpointer v1, gconstpointer v2); -/** - * soup_ssl_supported: - * - * Can be used to test if libsoup was compiled with ssl support. - **/ extern gboolean soup_ssl_supported; #define SOUP_SSL_ERROR soup_ssl_error_quark() diff --git a/libsoup/soup-server.c b/libsoup/soup-server.c index 3c6702ee..fdfcca2a 100644 --- a/libsoup/soup-server.c +++ b/libsoup/soup-server.c @@ -26,6 +26,39 @@ #include "soup-socket.h" #include "soup-ssl.h" +/** + * SECTION:soup-server + * @short_description: HTTP server + * @see_also: #SoupAuthDomain + * + * #SoupServer implements a simple HTTP server. + * + * To begin, create a server using soup_server_new(). Add at least one + * handler by calling soup_server_add_handler(); the handler will be + * called to process any requests underneath the path passed to + * soup_server_add_handler(). (If you want all requests to go to the + * same handler, just pass "/" (or %NULL) for the path.) Any request + * that does not match any handler will automatically be returned to + * the client with a 404 (Not Found) status. + * + * To add authentication to some or all paths, create an appropriate + * #SoupAuthDomain (qv), and add it to the server via + * soup_server_add_auth_domain. + * + * Additional processing options are available via #SoupServer's + * signals; Connect to #SoupServer::request-started to be notified + * every time a new request is being processed. (This gives you a + * chance to connect to the #SoupMessage "got-" signals in case you + * want to do processing before the body has been fully read.) + * + * Once the server is set up, start it processing connections by + * calling soup_server_run_async() or soup_server_run(). #SoupServer + * runs via the glib main loop; if you need to have a server that runs + * in another thread (or merely isn't bound to the default main loop), + * create a #GMainContext for it to use, and set that via the + * #SOUP_SERVER_ASYNC_CONTEXT property. + **/ + G_DEFINE_TYPE (SoupServer, soup_server, G_TYPE_OBJECT) enum { diff --git a/libsoup/soup-server.h b/libsoup/soup-server.h index bbcf8f3e..2481a1fa 100644 --- a/libsoup/soup-server.h +++ b/libsoup/soup-server.h @@ -70,17 +70,17 @@ GMainContext *soup_server_get_async_context (SoupServer *server); /* Handlers and auth */ -void soup_server_add_handler (SoupServer *serv, +void soup_server_add_handler (SoupServer *server, const char *path, SoupServerCallback callback, gpointer data, GDestroyNotify destroy); -void soup_server_remove_handler (SoupServer *serv, +void soup_server_remove_handler (SoupServer *server, const char *path); -void soup_server_add_auth_domain (SoupServer *serv, +void soup_server_add_auth_domain (SoupServer *server, SoupAuthDomain *auth_domain); -void soup_server_remove_auth_domain (SoupServer *serv, +void soup_server_remove_auth_domain (SoupServer *server, SoupAuthDomain *auth_domain); /* I/O */ diff --git a/libsoup/soup-session-async.c b/libsoup/soup-session-async.c index b2476d72..a383900d 100644 --- a/libsoup/soup-session-async.c +++ b/libsoup/soup-session-async.c @@ -14,6 +14,15 @@ #include "soup-message-private.h" #include "soup-misc.h" +/** + * SECTION:soup-session-async + * @short_description: Soup session for asynchronous (main-loop-based) I/O. + * + * #SoupSessionAsync is an implementation of #SoupSession that uses + * non-blocking I/O via the glib main loop. It is intended for use in + * single-threaded programs. + **/ + static gboolean run_queue (SoupSessionAsync *sa, gboolean try_pruning); static void queue_message (SoupSession *session, SoupMessage *req, diff --git a/libsoup/soup-session-sync.c b/libsoup/soup-session-sync.c index ce7c6ff4..2db8435f 100644 --- a/libsoup/soup-session-sync.c +++ b/libsoup/soup-session-sync.c @@ -14,6 +14,14 @@ #include "soup-message-private.h" #include "soup-misc.h" +/** + * SECTION:soup-session-sync + * @short_description: Soup session for blocking I/O in multithreaded programs. + * + * #SoupSessionSync is an implementation of #SoupSession that uses + * synchronous I/O, intended for use in multi-threaded programs. + **/ + typedef struct { GMutex *lock; GCond *cond; diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c index 469c523e..501fd8bc 100644 --- a/libsoup/soup-session.c +++ b/libsoup/soup-session.c @@ -27,6 +27,12 @@ #include "soup-ssl.h" #include "soup-uri.h" +/** + * SECTION:soup-session + * @short_description: Soup session state object + * + **/ + typedef struct { SoupURI *root_uri; diff --git a/libsoup/soup-socket.c b/libsoup/soup-socket.c index f54afdfc..4b0ffb44 100644 --- a/libsoup/soup-socket.c +++ b/libsoup/soup-socket.c @@ -24,6 +24,12 @@ #include <sys/time.h> #include <sys/types.h> +/** + * SECTION:soup-socket + * @short_description: A network socket + * + **/ + G_DEFINE_TYPE (SoupSocket, soup_socket, G_TYPE_OBJECT) enum { @@ -515,6 +521,15 @@ got_address (SoupAddress *addr, guint status, gpointer user_data) } /** + * SoupSocketCallback: + * @sock: the #SoupSocket + * @status: an HTTP status code indicating success or failure + * @user_data: the data passed to soup_socket_connect_async() + * + * The callback function passed to soup_socket_connect_async(). + **/ + +/** * soup_socket_connect_async: * @sock: a client #SoupSocket (which must not already be connected) * @callback: callback to call after connecting @@ -1009,6 +1024,16 @@ read_from_buf (SoupSocket *sock, gpointer buffer, gsize len, gsize *nread) } /** + * SoupSocketIOStatus: + * @SOUP_SOCKET_OK: Success + * @SOUP_SOCKET_WOULD_BLOCK: Cannot read/write any more at this time + * @SOUP_SOCKET_EOF: End of file + * @SOUP_SOCKET_ERROR: Other error + * + * Return value from the #SoupSocket IO methods. + **/ + +/** * soup_socket_read: * @sock: the socket * @buffer: buffer to read into diff --git a/libsoup/soup-socket.h b/libsoup/soup-socket.h index d95d04e7..71e9545c 100644 --- a/libsoup/soup-socket.h +++ b/libsoup/soup-socket.h @@ -41,14 +41,6 @@ typedef struct { #define SOUP_SOCKET_ASYNC_CONTEXT "async-context" #define SOUP_SOCKET_TIMEOUT "timeout" -/** - * SoupSocketCallback: - * @sock: the #SoupSocket - * @status: an HTTP status code indicating success or failure - * @user_data: the data passed to soup_socket_connect_async() - * - * The callback function passed to soup_socket_connect_async(). - **/ typedef void (*SoupSocketCallback) (SoupSocket *sock, guint status, gpointer user_data); @@ -77,15 +69,6 @@ SoupAddress *soup_socket_get_local_address (SoupSocket *sock); SoupAddress *soup_socket_get_remote_address (SoupSocket *sock); -/** - * SoupSocketIOStatus: - * @SOUP_SOCKET_OK: Success - * @SOUP_SOCKET_WOULD_BLOCK: Cannot read/write any more at this time - * @SOUP_SOCKET_EOF: End of file - * @SOUP_SOCKET_ERROR: Other error - * - * Return value from the #SoupSocket IO methods. - **/ typedef enum { SOUP_SOCKET_OK, SOUP_SOCKET_WOULD_BLOCK, diff --git a/libsoup/soup-status.c b/libsoup/soup-status.c index 23d09025..923b72ab 100644 --- a/libsoup/soup-status.c +++ b/libsoup/soup-status.c @@ -9,6 +9,145 @@ #include "soup-status.h" +/** + * SECTION:soup-status + * @short_description: HTTP (and libsoup) status codes + * + **/ + +/** + * SOUP_STATUS_IS_TRANSPORT_ERROR: + * @status: a status code + * + * Tests if @status is a libsoup transport error. + * + * Return value: %TRUE or %FALSE + **/ +/** + * SOUP_STATUS_IS_INFORMATIONAL: + * @status: an HTTP status code + * + * Tests if @status is an Informational (1xx) response. + * + * Return value: %TRUE or %FALSE + **/ +/** + * SOUP_STATUS_IS_SUCCESSFUL: + * @status: an HTTP status code + * + * Tests if @status is a Successful (2xx) response. + * + * Return value: %TRUE or %FALSE + **/ +/** + * SOUP_STATUS_IS_REDIRECTION: + * @status: an HTTP status code + * + * Tests if @status is a Redirection (3xx) response. + * + * Return value: %TRUE or %FALSE + **/ +/** + * SOUP_STATUS_IS_CLIENT_ERROR: + * @status: an HTTP status code + * + * Tests if @status is a Client Error (4xx) response. + * + * Return value: %TRUE or %FALSE + **/ +/** + * SOUP_STATUS_IS_SERVER_ERROR: + * @status: an HTTP status code + * + * Tests if @status is a Server Error (5xx) response. + * + * Return value: %TRUE or %FALSE + **/ + +/** + * SoupKnownStatusCode: + * @SOUP_STATUS_NONE: No status available. (Eg, the message has not + * been sent yet) + * @SOUP_STATUS_CANCELLED: Message was cancelled locally + * @SOUP_STATUS_CANT_RESOLVE: Unable to resolve destination host name + * @SOUP_STATUS_CANT_RESOLVE_PROXY: Unable to resolve proxy host name + * @SOUP_STATUS_CANT_CONNECT: Unable to connect to remote host + * @SOUP_STATUS_CANT_CONNECT_PROXY: Unable to connect to proxy + * @SOUP_STATUS_SSL_FAILED: SSL negotiation failed + * @SOUP_STATUS_IO_ERROR: A network error occurred, or the other end + * closed the connection unexpectedly + * @SOUP_STATUS_MALFORMED: Malformed data (usually a programmer error) + * @SOUP_STATUS_TRY_AGAIN: Try again. (Only returned in certain + * specifically documented cases) + * @SOUP_STATUS_CONTINUE: 100 Continue (HTTP) + * @SOUP_STATUS_SWITCHING_PROTOCOLS: 101 Switching Protocols (HTTP) + * @SOUP_STATUS_PROCESSING: 102 Processing (WebDAV) + * @SOUP_STATUS_OK: 200 Success (HTTP). Also used by many lower-level + * soup routines to indicate success. + * @SOUP_STATUS_CREATED: 201 Created (HTTP) + * @SOUP_STATUS_ACCEPTED: 202 Accepted (HTTP) + * @SOUP_STATUS_NON_AUTHORITATIVE: 203 Non-Authoritative Information + * (HTTP) + * @SOUP_STATUS_NO_CONTENT: 204 No Content (HTTP) + * @SOUP_STATUS_RESET_CONTENT: 205 Reset Content (HTTP) + * @SOUP_STATUS_PARTIAL_CONTENT: 206 Partial Content (HTTP) + * @SOUP_STATUS_MULTI_STATUS: 207 Multi-Status (WebDAV) + * @SOUP_STATUS_MULTIPLE_CHOICES: 300 Multiple Choices (HTTP) + * @SOUP_STATUS_MOVED_PERMANENTLY: 301 Moved Permanently (HTTP) + * @SOUP_STATUS_FOUND: 302 Found (HTTP) + * @SOUP_STATUS_MOVED_TEMPORARILY: 302 Moved Temporarily (old name, + * RFC 2068) + * @SOUP_STATUS_SEE_OTHER: 303 See Other (HTTP) + * @SOUP_STATUS_NOT_MODIFIED: 304 Not Modified (HTTP) + * @SOUP_STATUS_USE_PROXY: 305 Use Proxy (HTTP) + * @SOUP_STATUS_NOT_APPEARING_IN_THIS_PROTOCOL: 306 [Unused] (HTTP) + * @SOUP_STATUS_TEMPORARY_REDIRECT: 307 Temporary Redirect (HTTP) + * @SOUP_STATUS_BAD_REQUEST: 400 Bad Request (HTTP) + * @SOUP_STATUS_UNAUTHORIZED: 401 Unauthorized (HTTP) + * @SOUP_STATUS_PAYMENT_REQUIRED: 402 Payment Required (HTTP) + * @SOUP_STATUS_FORBIDDEN: 403 Forbidden (HTTP) + * @SOUP_STATUS_NOT_FOUND: 404 Not Found (HTTP) + * @SOUP_STATUS_METHOD_NOT_ALLOWED: 405 Method Not Allowed (HTTP) + * @SOUP_STATUS_NOT_ACCEPTABLE: 406 Not Acceptable (HTTP) + * @SOUP_STATUS_PROXY_AUTHENTICATION_REQUIRED: 407 Proxy Authentication + * Required (HTTP) + * @SOUP_STATUS_PROXY_UNAUTHORIZED: shorter alias for + * %SOUP_STATUS_PROXY_AUTHENTICATION_REQUIRED + * @SOUP_STATUS_REQUEST_TIMEOUT: 408 Request Timeout (HTTP) + * @SOUP_STATUS_CONFLICT: 409 Conflict (HTTP) + * @SOUP_STATUS_GONE: 410 Gone (HTTP) + * @SOUP_STATUS_LENGTH_REQUIRED: 411 Length Required (HTTP) + * @SOUP_STATUS_PRECONDITION_FAILED: 412 Precondition Failed (HTTP) + * @SOUP_STATUS_REQUEST_ENTITY_TOO_LARGE: 413 Request Entity Too Large + * (HTTP) + * @SOUP_STATUS_REQUEST_URI_TOO_LONG: 414 Request-URI Too Long (HTTP) + * @SOUP_STATUS_UNSUPPORTED_MEDIA_TYPE: 415 Unsupported Media Type + * (HTTP) + * @SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE: 416 Requested Range + * Not Satisfiable (HTTP) + * @SOUP_STATUS_INVALID_RANGE: shorter alias for + * %SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE + * @SOUP_STATUS_EXPECTATION_FAILED: 417 Expectation Failed (HTTP) + * @SOUP_STATUS_UNPROCESSABLE_ENTITY: 422 Unprocessable Entity + * (WebDAV) + * @SOUP_STATUS_LOCKED: 423 Locked (WebDAV) + * @SOUP_STATUS_FAILED_DEPENDENCY: 424 Failed Dependency (WebDAV) + * @SOUP_STATUS_INTERNAL_SERVER_ERROR: 500 Internal Server Error + * (HTTP) + * @SOUP_STATUS_NOT_IMPLEMENTED: 501 Not Implemented (HTTP) + * @SOUP_STATUS_BAD_GATEWAY: 502 Bad Gateway (HTTP) + * @SOUP_STATUS_SERVICE_UNAVAILABLE: 503 Service Unavailable (HTTP) + * @SOUP_STATUS_GATEWAY_TIMEOUT: 504 Gateway Timeout (HTTP) + * @SOUP_STATUS_HTTP_VERSION_NOT_SUPPORTED: 505 HTTP Version Not + * Supported (HTTP) + * @SOUP_STATUS_INSUFFICIENT_STORAGE: 507 Insufficient Storage + * (WebDAV) + * @SOUP_STATUS_NOT_EXTENDED: 510 Not Extended (RFC 2774) + * + * These represent the known HTTP status code values, plus various + * network and internal errors. + **/ + static struct { guint code; const char *phrase; diff --git a/libsoup/soup-status.h b/libsoup/soup-status.h index 50fb370a..983250b3 100644 --- a/libsoup/soup-status.h +++ b/libsoup/soup-status.h @@ -12,55 +12,6 @@ G_BEGIN_DECLS -/** - * SOUP_STATUS_IS_TRANSPORT_ERROR: - * @status: a status code - * - * Tests if @status is a libsoup transport error. - * - * Return value: %TRUE or %FALSE - **/ -/** - * SOUP_STATUS_IS_INFORMATIONAL: - * @status: an HTTP status code - * - * Tests if @status is an Informational (1xx) response. - * - * Return value: %TRUE or %FALSE - **/ -/** - * SOUP_STATUS_IS_SUCCESSFUL: - * @status: an HTTP status code - * - * Tests if @status is a Successful (2xx) response. - * - * Return value: %TRUE or %FALSE - **/ -/** - * SOUP_STATUS_IS_REDIRECTION: - * @status: an HTTP status code - * - * Tests if @status is a Redirection (3xx) response. - * - * Return value: %TRUE or %FALSE - **/ -/** - * SOUP_STATUS_IS_CLIENT_ERROR: - * @status: an HTTP status code - * - * Tests if @status is a Client Error (4xx) response. - * - * Return value: %TRUE or %FALSE - **/ -/** - * SOUP_STATUS_IS_SERVER_ERROR: - * @status: an HTTP status code - * - * Tests if @status is a Server Error (5xx) response. - * - * Return value: %TRUE or %FALSE - **/ - #define SOUP_STATUS_IS_TRANSPORT_ERROR(status) ((status) > 0 && (status) < 100) #define SOUP_STATUS_IS_INFORMATIONAL(status) ((status) >= 100 && (status) < 200) #define SOUP_STATUS_IS_SUCCESSFUL(status) ((status) >= 200 && (status) < 300) @@ -68,89 +19,6 @@ G_BEGIN_DECLS #define SOUP_STATUS_IS_CLIENT_ERROR(status) ((status) >= 400 && (status) < 500) #define SOUP_STATUS_IS_SERVER_ERROR(status) ((status) >= 500 && (status) < 600) -/** - * SoupKnownStatusCode: - * @SOUP_STATUS_NONE: No status available. (Eg, the message has not - * been sent yet) - * @SOUP_STATUS_CANCELLED: Message was cancelled locally - * @SOUP_STATUS_CANT_RESOLVE: Unable to resolve destination host name - * @SOUP_STATUS_CANT_RESOLVE_PROXY: Unable to resolve proxy host name - * @SOUP_STATUS_CANT_CONNECT: Unable to connect to remote host - * @SOUP_STATUS_CANT_CONNECT_PROXY: Unable to connect to proxy - * @SOUP_STATUS_SSL_FAILED: SSL negotiation failed - * @SOUP_STATUS_IO_ERROR: A network error occurred, or the other end - * closed the connection unexpectedly - * @SOUP_STATUS_MALFORMED: Malformed data (usually a programmer error) - * @SOUP_STATUS_TRY_AGAIN: Try again. (Only returned in certain - * specifically documented cases) - * @SOUP_STATUS_CONTINUE: 100 Continue (HTTP) - * @SOUP_STATUS_SWITCHING_PROTOCOLS: 101 Switching Protocols (HTTP) - * @SOUP_STATUS_PROCESSING: 102 Processing (WebDAV) - * @SOUP_STATUS_OK: 200 Success (HTTP). Also used by many lower-level - * soup routines to indicate success. - * @SOUP_STATUS_CREATED: 201 Created (HTTP) - * @SOUP_STATUS_ACCEPTED: 202 Accepted (HTTP) - * @SOUP_STATUS_NON_AUTHORITATIVE: 203 Non-Authoritative Information - * (HTTP) - * @SOUP_STATUS_NO_CONTENT: 204 No Content (HTTP) - * @SOUP_STATUS_RESET_CONTENT: 205 Reset Content (HTTP) - * @SOUP_STATUS_PARTIAL_CONTENT: 206 Partial Content (HTTP) - * @SOUP_STATUS_MULTI_STATUS: 207 Multi-Status (WebDAV) - * @SOUP_STATUS_MULTIPLE_CHOICES: 300 Multiple Choices (HTTP) - * @SOUP_STATUS_MOVED_PERMANENTLY: 301 Moved Permanently (HTTP) - * @SOUP_STATUS_FOUND: 302 Found (HTTP) - * @SOUP_STATUS_MOVED_TEMPORARILY: 302 Moved Temporarily (old name, - * RFC 2068) - * @SOUP_STATUS_SEE_OTHER: 303 See Other (HTTP) - * @SOUP_STATUS_NOT_MODIFIED: 304 Not Modified (HTTP) - * @SOUP_STATUS_USE_PROXY: 305 Use Proxy (HTTP) - * @SOUP_STATUS_NOT_APPEARING_IN_THIS_PROTOCOL: 306 [Unused] (HTTP) - * @SOUP_STATUS_TEMPORARY_REDIRECT: 307 Temporary Redirect (HTTP) - * @SOUP_STATUS_BAD_REQUEST: 400 Bad Request (HTTP) - * @SOUP_STATUS_UNAUTHORIZED: 401 Unauthorized (HTTP) - * @SOUP_STATUS_PAYMENT_REQUIRED: 402 Payment Required (HTTP) - * @SOUP_STATUS_FORBIDDEN: 403 Forbidden (HTTP) - * @SOUP_STATUS_NOT_FOUND: 404 Not Found (HTTP) - * @SOUP_STATUS_METHOD_NOT_ALLOWED: 405 Method Not Allowed (HTTP) - * @SOUP_STATUS_NOT_ACCEPTABLE: 406 Not Acceptable (HTTP) - * @SOUP_STATUS_PROXY_AUTHENTICATION_REQUIRED: 407 Proxy Authentication - * Required (HTTP) - * @SOUP_STATUS_PROXY_UNAUTHORIZED: shorter alias for - * %SOUP_STATUS_PROXY_AUTHENTICATION_REQUIRED - * @SOUP_STATUS_REQUEST_TIMEOUT: 408 Request Timeout (HTTP) - * @SOUP_STATUS_CONFLICT: 409 Conflict (HTTP) - * @SOUP_STATUS_GONE: 410 Gone (HTTP) - * @SOUP_STATUS_LENGTH_REQUIRED: 411 Length Required (HTTP) - * @SOUP_STATUS_PRECONDITION_FAILED: 412 Precondition Failed (HTTP) - * @SOUP_STATUS_REQUEST_ENTITY_TOO_LARGE: 413 Request Entity Too Large - * (HTTP) - * @SOUP_STATUS_REQUEST_URI_TOO_LONG: 414 Request-URI Too Long (HTTP) - * @SOUP_STATUS_UNSUPPORTED_MEDIA_TYPE: 415 Unsupported Media Type - * (HTTP) - * @SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE: 416 Requested Range - * Not Satisfiable (HTTP) - * @SOUP_STATUS_INVALID_RANGE: shorter alias for - * %SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE - * @SOUP_STATUS_EXPECTATION_FAILED: 417 Expectation Failed (HTTP) - * @SOUP_STATUS_UNPROCESSABLE_ENTITY: 422 Unprocessable Entity - * (WebDAV) - * @SOUP_STATUS_LOCKED: 423 Locked (WebDAV) - * @SOUP_STATUS_FAILED_DEPENDENCY: 424 Failed Dependency (WebDAV) - * @SOUP_STATUS_INTERNAL_SERVER_ERROR: 500 Internal Server Error - * (HTTP) - * @SOUP_STATUS_NOT_IMPLEMENTED: 501 Not Implemented (HTTP) - * @SOUP_STATUS_BAD_GATEWAY: 502 Bad Gateway (HTTP) - * @SOUP_STATUS_SERVICE_UNAVAILABLE: 503 Service Unavailable (HTTP) - * @SOUP_STATUS_GATEWAY_TIMEOUT: 504 Gateway Timeout (HTTP) - * @SOUP_STATUS_HTTP_VERSION_NOT_SUPPORTED: 505 HTTP Version Not - * Supported (HTTP) - * @SOUP_STATUS_INSUFFICIENT_STORAGE: 507 Insufficient Storage - * (WebDAV) - * @SOUP_STATUS_NOT_EXTENDED: 510 Not Extended (RFC 2774) - * - * These represent the known HTTP status code values, plus various - * network and internal errors. - **/ typedef enum { SOUP_STATUS_NONE, diff --git a/libsoup/soup-uri.c b/libsoup/soup-uri.c index 3856b48b..a0f8b5ff 100644 --- a/libsoup/soup-uri.c +++ b/libsoup/soup-uri.c @@ -12,6 +12,18 @@ #include "soup-uri.h" #include "soup-misc.h" +/** + * SECTION:soup-uri + * @short_description: URIs + * + * A #SoupURI represents a (parsed) URI. + * + * Many applications will not need to use #SoupURI directly at all; on + * the client side, soup_message_new() takes a stringified URI, and on + * the server side, the path and query components are provided for you + * in the server callback. + **/ + static void append_uri_encoded (GString *str, const char *in, const char *extra_enc_chars); static const char *http_scheme, *https_scheme; diff --git a/libsoup/soup-value-utils.c b/libsoup/soup-value-utils.c index 03d9b75d..af214f33 100644 --- a/libsoup/soup-value-utils.c +++ b/libsoup/soup-value-utils.c @@ -9,6 +9,34 @@ #include <string.h> +/** + * SECTION:soup-value-utils + * @short_description: #GValue utilities + * + **/ + +/** + * SOUP_VALUE_SETV: + * @val: a #GValue + * @type: a #GType + * @args: #va_list pointing to a value of type @type + * + * Copies an argument of type @type from @args into @val. @val will + * point directly to the value in @args rather than copying it, so you + * must g_value_copy() it if you want it to remain valid. + **/ + +/** + * SOUP_VALUE_GETV: + * @val: a #GValue + * @type: a #GType + * @args: #va_list pointing to a value of type pointer-to-@type + * + * Extracts a value of type @type from @val into @args. The return + * value will point to the same data as @val rather than being a copy + * of it. + **/ + static void soup_value_hash_value_free (gpointer val) { diff --git a/libsoup/soup-value-utils.h b/libsoup/soup-value-utils.h index 127b7d80..19f7ccec 100644 --- a/libsoup/soup-value-utils.h +++ b/libsoup/soup-value-utils.h @@ -11,16 +11,6 @@ G_BEGIN_DECLS -/** - * SOUP_VALUE_SETV: - * @val: a #GValue - * @type: a #GType - * @args: #va_list pointing to a value of type @type - * - * Copies an argument of type @type from @args into @val. @val will - * point directly to the value in @args rather than copying it, so you - * must g_value_copy() it if you want it to remain valid. - **/ #define SOUP_VALUE_SETV(val, type, args) \ G_STMT_START { \ char *error = NULL; \ @@ -32,16 +22,6 @@ G_STMT_START { \ g_free (error); \ } G_STMT_END -/** - * SOUP_VALUE_GETV: - * @val: a #GValue - * @type: a #GType - * @args: #va_list pointing to a value of type pointer-to-@type - * - * Extracts a value of type @type from @val into @args. The return - * value will point to the same data as @val rather than being a copy - * of it. - **/ #define SOUP_VALUE_GETV(val, type, args) \ G_STMT_START { \ char *error = NULL; \ diff --git a/libsoup/soup-xmlrpc.c b/libsoup/soup-xmlrpc.c index 66f614bc..9ebfe83a 100644 --- a/libsoup/soup-xmlrpc.c +++ b/libsoup/soup-xmlrpc.c @@ -21,6 +21,12 @@ #include "soup-misc.h" #include "soup-session.h" +/** + * SECTION:soup-xmlrpc + * @short_description: XML-RPC support + * + **/ + static xmlNode *find_real_node (xmlNode *node); static gboolean insert_value (xmlNode *parent, GValue *value); |