mirror of
https://github.com/openharmony/third_party_libsoup.git
synced 2026-07-01 15:14:10 -04:00
6958 lines
242 KiB
Plaintext
6958 lines
242 KiB
Plaintext
2009-04-13 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.26.1
|
||
|
||
* NEWS: update
|
||
|
||
2009-04-13 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-proxy-resolver-gnome.c (get_proxy_async): fix
|
||
use of async context here
|
||
|
||
2009-04-13 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 578809 – warnings in soup_address_equal_by_ip
|
||
|
||
* libsoup/soup-session.c (get_host_for_message): don't try to look
|
||
up unresolved addresses in the hosts hash; just return NULL. The
|
||
"cancel other messages for the bad host" code in connect_result()
|
||
will loop over the whole queue, including messages with unresolved
|
||
addresses.
|
||
|
||
2009-04-13 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 578746 – http_proxy env var set to "http://:80" in session
|
||
despite proxy mode "none"
|
||
|
||
* libsoup/soup-proxy-resolver-gnome.c (update_proxy_settings):
|
||
Don't set anything if proxy_mode is NONE, and properly ignore the
|
||
proxy host if it's empty.
|
||
|
||
2009-04-11 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 578645 – crash in Rhythmbox Music Player
|
||
|
||
* libsoup/soup-proxy-resolver-gnome.c
|
||
(soup_proxy_resolver_gnome_init): unlock id.lock before freeing
|
||
it. (Fixes the case where SoupProxyResolverGNOME is first
|
||
initialized from a thread other than the main thread, while the
|
||
default main loop is running.)
|
||
|
||
2009-04-08 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.26.0.9, aka "I can't believe it's not 2.26.1!",
|
||
a pre-release to give the proxy resolver fix a bit of extra
|
||
testing before next week.
|
||
|
||
* NEWS: Update
|
||
|
||
2009-04-08 Dan Winship <danw@gnome.org>
|
||
|
||
Re-fix GNOME proxy resolution (qv bug 571527)
|
||
|
||
* libsoup/soup-proxy-resolver-gnome.c: New and improved GNOME
|
||
proxy resolver; gets information out of GConf in a thread-safe
|
||
manner, and then passes it on to libproxy via environment
|
||
variables, so that libproxy won't try to access GConf itself, but
|
||
we still can use it for PAC, WPAD, and ignore_hosts.
|
||
|
||
* libsoup/soup-proxy-resolver-gconf.c:
|
||
* libsoup/soup-proxy-resolver-libproxy.c: gone now
|
||
|
||
* libsoup/soup-gnome-features.c: update for the fact that
|
||
SoupProxyResolverGNOME is actually a real type now, not
|
||
compile-time-defined alias
|
||
|
||
2009-04-08 Dan Winship <danw@gnome.org>
|
||
|
||
Fix ISO 8601 parsing to accept either "." or ","
|
||
|
||
* libsoup/soup-date.c (parse_iso8601_date): accept either "." or
|
||
"," as decimal separator, per the spec. qv glib bug 578369.
|
||
|
||
2009-04-05 Dan Winship <danw@gnome.org>
|
||
|
||
Don't allow CR/LF in header names or values
|
||
|
||
* libsoup/soup-message-headers.c (soup_message_headers_append):
|
||
Don't let the caller create a header with whitespace or ":" in its
|
||
name, or with CR or LF in its value, since that would result in us
|
||
generating syntactically invalid headers.
|
||
|
||
2009-04-03 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 577386 – Fails to handle HTTPS redirect from a certain site.
|
||
|
||
* libsoup/soup-gnutls.c (soup_gnutls_read): Treat abnormal
|
||
EOFs as though they were normal, rather than as errors. Shrug.
|
||
|
||
Reported by Diego Escalante Urrelo.
|
||
|
||
2009-04-03 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 577360 – handle cookies with same name but different path
|
||
|
||
* libsoup/soup-cookie-jar.c (soup_cookie_jar_add_cookie): check
|
||
both name and path when matching cookies; "foo=one; path=/bar"
|
||
should not replace "foo=two; path=/". They are separate cookies.
|
||
|
||
Reported by Alexander V. Butenko.
|
||
|
||
2009-04-02 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 577630 – libsoup should ignore broken Content-Type headers
|
||
|
||
* libsoup/soup-message-headers.c (content_type_setter): Ignore
|
||
Content-Type if it's not at least minimally syntactically correct.
|
||
(soup_message_headers_get_content_type): Document that.
|
||
|
||
* tests/header-parsing.c (do_content_type_tests): test it.
|
||
|
||
2009-04-02 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 577728 – soup_header_g_string_append_param should handle NULL values
|
||
|
||
* libsoup/soup-headers.c (soup_header_g_string_append_param):
|
||
allow @value to be %NULL.
|
||
|
||
* tests/header-parsing.c (do_append_param_tests): test
|
||
soup_header_g_string_append_param()
|
||
|
||
2009-04-02 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 576760 – soup_message_headers_get_content_type returns bad headers
|
||
|
||
* libsoup/soup-message-headers.c (soup_message_headers_get_one)
|
||
(soup_message_headers_get_list): New replacements for
|
||
soup_message_headers_get(), indicating explicitly whether the
|
||
caller expects the header to be a list or not; for non-list-type
|
||
headers, if there's more than one, the second one should be
|
||
ignored rather than concatenated to the first.
|
||
(soup_message_headers_get): deprecate this.
|
||
|
||
* libsoup/*.c:
|
||
* tests/*.c: Update to use soup_message_headers_get_one() or
|
||
_get_list() as appropriate.
|
||
|
||
* tests/header-parsing.c (do_content_type_tests): Add some tests
|
||
of Content-Type parsing/setting, including making sure that
|
||
duplicate Content-Type headers are ignored.
|
||
|
||
* docs/reference/libsoup-2.4-sections.txt: update
|
||
|
||
2009-03-27 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 576583 – Tests fail if "localhost" resolves to ::1
|
||
|
||
* tests/*.c: Use "127.0.0.1" in URIs rather than "localhost",
|
||
since the default SoupServer config only listen on IPv4 (qv bug
|
||
522519), and tests/httpd.conf.in only configures apache to listen
|
||
on IPv4, and we don't handle multiple IP addresses (qv bug 526321)
|
||
but the machine might be configured to return "::1" rather than
|
||
"127.0.0.1" first for "localhost". Patch from Andreas Rottmann.
|
||
|
||
2009-03-27 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-cookie.c (soup_cookie_new): Fix docs to not claim
|
||
that the cookie domain can be %NULL. Add some g_return_if_fail()s.
|
||
|
||
2009-03-27 Dan Winship <danw@gnome.org>
|
||
|
||
* docs/reference/client-howto.xml: clarify that SoupSessionAsync
|
||
is not thread-safe, and that setting a non-default GMainContext on
|
||
a non-threadsafe object means you can only use that object from
|
||
that GMainContext's thread.
|
||
|
||
2009-03-26 Milan Crha <mcrha@redhat.com>
|
||
|
||
Bug 574957 - soup-session-sync doesn't unlock mutex on proxy error
|
||
|
||
* libsoup/soup-session-sync.c: (wait_for_connection):
|
||
Unlock private lock also on proxy error.
|
||
|
||
2009-03-24 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 571283 - Allow LF LF instead of CRLF CRLF as header/body separator
|
||
|
||
* libsoup/soup-message-io.c (read_metadata): Change how this
|
||
works; instead of taking a boundary string, just always pass "\n"
|
||
as the boundary to soup_socket_read_until(), but call it multiple
|
||
times if the caller wants us to read until a blank line.
|
||
(io_read): update to deal with the fact that the headers might be
|
||
terminated by LF LF rather than CRLF CRLF.
|
||
|
||
2009-03-23 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 566530 - Handle (illegal) unencoded spaces in URIs
|
||
|
||
* libsoup/soup-uri.c (uri_normalized_copy): optionally fix up
|
||
parts with unencoded spaces in them.
|
||
(soup_uri_new_with_base): tell uri_normalized_copy() to fix up
|
||
spaces in the path and query components
|
||
|
||
* tests/uri-parsing.c (abs_tests): test parsing and unparsing a
|
||
URI with an unencoded space in it.
|
||
|
||
* tests/redirect-test.c (tests, server_callback): add a test of
|
||
redirecting to a URI with an unencoded space in it.
|
||
|
||
2009-03-15 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.26.0
|
||
|
||
* NEWS: Update
|
||
|
||
2009-03-14 Xan Lopez <xan@gnome.org>
|
||
|
||
Add G_{BEGIN,END}_DECLS guards to public headers.
|
||
|
||
* libsoup/soup-auth.h:
|
||
* libsoup/soup-cookie-jar-sqlite.h:
|
||
* libsoup/soup-cookie-jar-text.h:
|
||
* libsoup/soup-proxy-resolver.h:
|
||
|
||
2009-03-11 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c (soup_session_cancel_message): add more
|
||
detail to the doc comment
|
||
|
||
* libsoup/soup-message.c (SoupMessage): Note in the doc comment
|
||
that reason phrases are not very useful, and should not be
|
||
presented to the user.
|
||
|
||
* libsoup/soup-status.c: add a comment explaining why reason
|
||
phrases aren't localized. Also some misc doc fixes.
|
||
(soup_status_get_phrase): Note in the doc comment that you
|
||
shouldn't present reason phrases to the user.
|
||
|
||
2009-03-09 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 571527 – gvfsd-http crashed with SIGSEGV in
|
||
g_hash_table_lookup().
|
||
|
||
As currently written, libproxy's gnome plugin causes intermittent
|
||
gvfsd-http crashes, and I didn't have time to come up with either
|
||
a fix or a workaround. So for 2.26.0 we will fall back to using
|
||
the GConf-based proxy resolver. Hopefully to be fixed for 2.26.1.
|
||
|
||
* configure.in: require both gconf and libproxy if building
|
||
--with-gnome
|
||
|
||
* libsoup/soup-proxy-resolver-gconf.c: bring this back.
|
||
|
||
* libsoup/soup-gnome-features.c
|
||
(soup_proxy_resolver_gnome_get_type): use gconf instead of
|
||
libproxy
|
||
|
||
* libsoup/Makefile.am: updates
|
||
|
||
2009-03-08 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/*.c: gtk-doc updates. In particular, document a bunch of
|
||
convenience #defines, and add "Since" tags where appropriate.
|
||
|
||
2009-03-06 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session-async.c (run_queue): Process messages in
|
||
the CONNECTING iostate before messages in the QUEUED iostate.
|
||
Otherwise, if a bunch of messages are queued all at once, and the
|
||
server doesn't support persistent connections, some messages can
|
||
get stranded in the queue. Fixes #574365 (reported by Xan Lopez)
|
||
and removes a five-year-old FIXME...
|
||
|
||
2009-02-20 Gustavo Noronha Silva <gns@gnome.org>
|
||
|
||
* libsoup/soup-message-headers.c
|
||
(soup_message_headers_get_content_type): now returns NULL if there
|
||
is no Content-Type header; fix documentation to account for this
|
||
change and to actually be correct about how the Content-Type is
|
||
returned.
|
||
|
||
2009-02-19 Dan Winship <danw@gnome.org>
|
||
|
||
Bug 572153 – SoupServer doesn't support SOUP_ENCODING_EOF
|
||
|
||
* libsoup/soup-message-io.c (io_write): Various fixes to make
|
||
SOUP_ENCODING_EOF work correctly when sending response
|
||
bodies. (Previously, the code assumed that SoupServer responses
|
||
would always be chunked or Content-Length-encoded.)
|
||
|
||
* libsoup/soup-message-client-io.c (get_request_headers): when
|
||
changing a request body from SOUP_ENCODING_NONE to
|
||
SOUP_ENCODING_CONTENT_LENGTH, return the new encoding value to
|
||
soup-message-io, not the old one.
|
||
|
||
* libsoup/soup-message.c (set_property): when setting
|
||
priv->server_side to TRUE, set the default encoding on the
|
||
response headers to CONTENT_LENGTH. (Moved from SoupServer.)
|
||
(soup_message_cleanup_response): If priv->server_side is TRUE,
|
||
re-fix the response header encoding after clearing the headers.
|
||
Otherwise the response headers revert to SOUP_ENCODING_EOF after
|
||
sending a "100 Continue".
|
||
(soup_message_is_keepalive): reorganize a little, fix a bug in the
|
||
HTTP/1.0 case.
|
||
|
||
* libsoup/soup-server.c (start_request): remove request encoding
|
||
override from here.
|
||
|
||
* tests/streaming-test.c: new test of SoupServer response
|
||
streaming, testing chunked, content-length, and eof-terminated
|
||
responses
|
||
|
||
2009-02-19 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-socket.c (soup_socket_read_until): explain why @len
|
||
normally needs to be at least @boundary_len+1. Suggested by
|
||
Benjamin Otte.
|
||
(soup_socket_class_init): add longer gtk-docs to the non-blocking
|
||
property, to explain the way non-blocking I/O works in SoupSocket.
|
||
|
||
2009-02-19 Xan Lopez <xan@gnome.org>
|
||
|
||
* libsoup/soup-cookie-jar-sqlite.c:
|
||
(callback):
|
||
(try_create_table):
|
||
(exec_query_with_try_create_table):
|
||
(load):
|
||
(changed):
|
||
|
||
Fix a series of issues that prevented SoupCookieJarSQLite from working:
|
||
|
||
- Try to create cookies table on errors. The table was never created before.
|
||
- Store max_age in a gulong, not int.
|
||
- Parse correctly boolean values from query. It's 0/1, not FALSE/TRUE.
|
||
- The host is stored as host in the table, not as domain.
|
||
|
||
#572409
|
||
|
||
2009-02-16 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.25.91
|
||
|
||
* NEWS: update
|
||
|
||
2009-02-15 Dan Winship <danw@gnome.org>
|
||
|
||
* docs/reference/client-howto.xml: Updates: Mention
|
||
SoupSessionFeature (and link to SoupLogger, SoupCookieJar, and
|
||
SoupProxyResolverGNOME specifically). Mention forms and XML-RPC
|
||
support. Mention header-parsing methods. Give a concrete example
|
||
of connecting to SoupMessage signals. Document the (minimal)
|
||
thread-safety guarantees
|
||
|
||
* docs/reference/build-howto.xml: basic notes on pkg-config and
|
||
#include usage.
|
||
|
||
2009-02-06 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-manager.c (authenticate_auth): Fix crash when
|
||
getting a 407 when using SoupProxyResolverGNOME (or when not using
|
||
any proxy). Launchpad bug #326099. (Note that this doesn't
|
||
actually make proxy-auth-with-SoupProxyResolverGNOME *work*, it
|
||
just makes it not crash.)
|
||
|
||
2009-02-02 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.25.5
|
||
|
||
* NEWS: update
|
||
|
||
2009-02-02 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-proxy-resolver-gconf.h:
|
||
* libsoup/soup-proxy-resolver-gconf.c: Remove this, as it was
|
||
incomplete, and libproxy is now officially a dependency of GNOME.
|
||
|
||
* libsoup/Makefile.am:
|
||
* libsoup/soup-gnome-features.c: remove gconf-vs-libproxy ifdefs
|
||
|
||
* configure.in: Remove GConf checks, require libproxy if building
|
||
libsoup-gnome.
|
||
|
||
2009-01-29 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-body.c (soup_message_body_wrote_chunk): Fix
|
||
this; previously it would discard the entire message body after
|
||
writing a SOUP_MEMORY_TEMPORARY chunk. Part of WebKit bug 18343.
|
||
|
||
* libsoup/soup-message-io.c (io_write): use
|
||
io->write_chunk->length *before* freeing io->write_chunk.
|
||
|
||
* tests/chunk-test.c (do_temporary_test): new test to make sure
|
||
that TEMPORARY buffers are handled properly.
|
||
|
||
2009-01-21 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session-feature.h: remove the dummy typedef for
|
||
struct SoupSessionFeature that was needed because we weren't
|
||
scanning soup-types.h. Fixes the build with non-GNU compilers.
|
||
|
||
* libsoup/soup-session-feature.c: document
|
||
SoupSessionFeatureInterface
|
||
|
||
* docs/reference/Makefile.am (IGNORE_HFILES): oops, don't ignore
|
||
soup-types.h
|
||
|
||
* docs/reference/libsoup-2.4-docs.sgml:
|
||
* docs/reference/libsoup-2.4-sections.txt: Split
|
||
SoupSessionFeature into its own file.
|
||
|
||
2009-01-12 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-cookie-jar.c (request_started): Don't pass NULL to
|
||
soup_message_headers_replace(), call soup_message_headers_remove()
|
||
if there are no cookies. Likely fix for webkit bug #23240.
|
||
|
||
* libsoup/soup-message-headers.c (soup_message_headers_append):
|
||
g_return_if_fail (value != NULL)
|
||
|
||
2009-01-05 Dan Winship <danw@gnome.org>
|
||
|
||
2.25.4
|
||
|
||
* NEWS: update
|
||
|
||
2008-12-23 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: belated post-release bump to 2.25.4
|
||
|
||
* libsoup/soup-session.c (soup_session_get_features)
|
||
(soup_session_get_feature): add these to query session features.
|
||
#565392.
|
||
|
||
2008-12-23 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: add some more warning CFLAGS, inspired by Benjamin
|
||
Otte's blog post, although none of them picked out any actual
|
||
bugs. Annoyingly, the most interesting warnings came from
|
||
-Wwrite-strings and -Wshadow, both of which I decided against
|
||
keeping, because they had too many false positives.
|
||
|
||
* libsoup/soup-cookie-jar.c (soup_cookie_jar_get_cookies): rename
|
||
a variable to avoid shadowing.
|
||
|
||
* libsoup/soup-message-headers.c
|
||
(soup_message_headers_get_ranges): move a variable declaration to
|
||
avoid a possibly-confusing shadowing.
|
||
|
||
* tests/forms-test.c:
|
||
* tests/header-parsing.c:
|
||
* tests/range-test.c:
|
||
* tests/test-utils.c: constify some "char *"s that should have
|
||
already been const.
|
||
|
||
* tests/get.c (find_hrefs): rename an arg whose name shadowed a
|
||
global, to avoid possible future confusion
|
||
(get_url): Likewise with a functional-internal shadowing.
|
||
|
||
2008-12-15 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.25.3
|
||
|
||
* NEWS: update
|
||
|
||
2008-12-09 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-uri.c (soup_uri_new): Explicitly document the fact
|
||
that you have to call soup_uri_set_path() when using
|
||
soup_uri_new(NULL), since path is required to be non-%NULL.
|
||
|
||
* libsoup/soup-connection.c (connect_message): initialize
|
||
uri->path
|
||
|
||
* libsoup/soup-cookie.c (soup_cookie_applies_to_uri):
|
||
g_return_val_if_fail() rather than crashing if uri->path is %NULL.
|
||
Also, fix the cookie/uri path comparison to not potentially read
|
||
off the end of uri->path. #562191, Mark Lee.
|
||
|
||
2008-12-04 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-form.c (soup_form_decode): Correctly handle forms
|
||
that have URI-encoded parameter names. #563302, Evan Nemerson.
|
||
|
||
* tests/forms-test.c: test that
|
||
|
||
2008-12-03 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-proxy-resolver-gconf.c (finalize): disconnect from
|
||
gconf notifications. Fixes a crash, #563145.
|
||
|
||
2008-12-01 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.25.2
|
||
|
||
* NEWS: update
|
||
|
||
2008-11-28 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-manager.c (auth_type_compare_func): Fix this
|
||
so we choose the *strongest* auth type first, rather than the
|
||
weakest. Doh. #562339, Pontus Oldberg.
|
||
|
||
* libsoup/soup-server.c (soup_server_add_auth_domain): use
|
||
g_slist_append() rather than prepend(), so auth headers get added
|
||
in the same order as the SoupAuthDomains were.
|
||
|
||
* tests/auth-test.c (do_select_auth_test): add a test of selecting
|
||
between Basic and Digest auth
|
||
|
||
2008-11-28 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/Makefile.am (libsoupgnomeincludedir): make this
|
||
$(includedir)/libsoup-gnome-2.4/libsoup rather than being the same
|
||
as $(libsoupincludedir). Makes it easier to split into two
|
||
packages.
|
||
|
||
2008-11-28 Dan Winship <danw@gnome.org>
|
||
|
||
* docs/reference/client-howto.xml: fix method name in example.
|
||
#562411, Andreas Bruse.
|
||
|
||
2008-11-24 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-logger.c: clarify exactly when stuff gets logged
|
||
(and in particular, that SoupSession::authenticate gets emitted
|
||
before the response it is authenticating gets logged).
|
||
|
||
2008-11-06 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/Makefile.am (libsoup_gnome_2_4_la_LIBADD): fix linking
|
||
with --as-needed. #559342, pointed out by Götz Waschk
|
||
|
||
2008-11-04 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.25.1
|
||
|
||
* NEWS: update
|
||
|
||
2008-11-04 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-address.c (soup_address_is_resolved):
|
||
* libsoup/soup-cookie.c (soup_cookie_copy):
|
||
* libsoup/soup-cookie-jar.c (soup_cookie_jar_class_init):
|
||
* libsoup/soup-message-headers.c (SoupMessageHeadersType):
|
||
* libsoup/soup-proxy-resolver.c
|
||
(soup_proxy_resolver_get_proxy_async)
|
||
(soup_proxy_resolver_get_proxy_sync):
|
||
* libsoup/soup-status.c (soup_status_proxyify): misc doc fixes
|
||
|
||
* libsoup/soup-cookie-jar-text.h: remove a "deprecated" API that
|
||
was never actually released
|
||
|
||
* libsoup/soup.h: include soup-proxy-resolver.h
|
||
|
||
* docs/reference/Makefile.am (SCAN_OPTIONS): set
|
||
--deprecated-guards correctly
|
||
(IGNORE_HFILES): ignore some more internal files
|
||
(GTKDOC_LIBS): link against libsoup-gnome, not libsoup
|
||
|
||
* docs/reference/libsoup-2.4-docs.sgml:
|
||
* docs/reference/libsoup-2.4.types:
|
||
* docs/reference/libsoup-2.4-sections.txt: add new stuff
|
||
|
||
2008-11-04 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-cookie-jar-text.c: implementation of SoupCookieJar
|
||
that persists to a text file in the old Mozilla cookies.txt
|
||
format. Written by Xan Lopez and myself.
|
||
|
||
* libsoup/soup-cookie-jar-sqlite.c: implementation of
|
||
SoupCookieJar that persists to an sqlite database in the new
|
||
Mozilla cookies.sqlite format. (Part of libsoup-gnome.) Written by
|
||
Diego Escalante Urrelo, based on soup-cookie-jar-text.c.
|
||
|
||
* libsoup/soup-cookie-jar.c: add various functionality needed by
|
||
the two new subclasses. (Mostly written by Xan.) Does not break
|
||
API/ABI compat with 2.24.
|
||
|
||
* libsoup/soup-cookie.c (soup_cookie_get_type): register
|
||
SoupCookie as a boxed type.
|
||
(domain_matches): fix a bug here that meant "foo.com" couldn't set
|
||
a cookie for domain=.foo.com
|
||
(soup_cookie_applies_to_uri): fix path checking
|
||
|
||
* configure.in: if building --with-gnome, require sqlite3
|
||
|
||
2008-11-03 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session-sync.c (process_queue_item): don't remove
|
||
the item from the queue here; it should already have happened in
|
||
all circumstances. Possible fix for #559052.
|
||
|
||
* libsoup/soup-session.c (cancel_message): don't remove the item
|
||
from the queue here; the call to soup_message_finished() will do
|
||
that.
|
||
|
||
* libsoup/soup-message-queue.c (soup_message_queue_remove): This
|
||
should only be called once, so g_return_if_fail (!item->removed)
|
||
|
||
* tests/test-utils.c (test_init): install a new default g_log
|
||
handler that increments the error count when it's called so that a
|
||
test won't pass if it triggers a g_warning() or
|
||
g_return_if_fail().
|
||
|
||
2008-11-03 Dan Winship <danw@gnome.org>
|
||
|
||
* tests/Makefile.am (get_LDADD): fix srcdir/builddir mixup.
|
||
|
||
2008-11-03 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-headers.c (set_content_foo): don't leak the
|
||
header string
|
||
|
||
* libsoup/soup-multipart.c (generate_boundary): avoid a (harmless)
|
||
valgrind warning
|
||
|
||
* libsoup/soup-proxy-resolver-static.c (get_proxy_sync): don't
|
||
leak the address on error
|
||
|
||
* libsoup/soup-session-sync.c (wait_for_connection): don't leak
|
||
proxy_addr
|
||
|
||
* tests/misc-test.c: don't leak the SoupMessage signal ids
|
||
|
||
* tests/range-test.c (main): don't leak base_uri
|
||
|
||
* tests/libsoup.supp: update this using lots and lots of wildcards
|
||
|
||
2008-11-03 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c (message_finished): Fix the signal
|
||
handler disconnection here: for "finished" we were passing the
|
||
wrong user_data to g_signal_handlers_disconnect_by_func(), and for
|
||
"got_body" it turns out you can't use _disconnect_by_func() when
|
||
there's a metamarshal, making it incompatible
|
||
withsoup_message_add_header_handler(). Fixes a crash in
|
||
evolution-exchange, #559054.
|
||
|
||
* tests/misc-test.c (do_msg_reuse_test): Ensure that SoupSession
|
||
and its features disconnect all of their signals from a message
|
||
when they're done with it.
|
||
|
||
2008-10-31 Dan Winship <danw@gnome.org>
|
||
|
||
Add libsoup-gnome, for new features that depend on GNOME
|
||
libraries.
|
||
|
||
* configure.in: Check for libproxy and/or gconf, accept
|
||
--without-gnome option, output libsoup-gnome-2.4.pc
|
||
|
||
* libsoup-gnome-2.4.pc: pc file for libsoup with GNOME support
|
||
|
||
* libsoup/Makefile.am: build libsoup-gnome.la if so configured
|
||
|
||
* libsoup/soup-gnome.h: base header for libsoup-gnome
|
||
|
||
* libsoup/soup-proxy-resolver-libproxy.c: An implementation of
|
||
SoupProxyResolver that uses libproxy.
|
||
|
||
* libsoup/soup-proxy-resolver-gconf.c: An implementation of
|
||
SoupProxyResolver that uses the proxy keys in GConf. Does not
|
||
completely handle ignore_hosts; this is currently just used as a
|
||
fallback if libproxy is not available.
|
||
|
||
* libsoup/soup-gnome-features.c: provides
|
||
SOUP_TYPE_PROXY_RESOLVER_GNOME (abstracting over
|
||
SoupProxyResolverGConf and SoupProxyResolverLibproxy) and
|
||
SOUP_TYPE_GNOME_FEATURES_2_26, which adds "all GNOME-specific
|
||
features in libsoup 2.26", which is currently just the proxy
|
||
resolver.
|
||
|
||
* libsoup/soup-session-async.c (resolved_proxy_addr): set
|
||
item->resolved_proxy_addr
|
||
(run_queue): resolve the proxy if !item->resolved_proxy_addr, not
|
||
if !item->proxy_addr, since the proxy addr might resolve to NULL.
|
||
|
||
* tests/Makefile.am (get_LDADD):
|
||
* tests/get.c: If we built libsoup-gnome, use it in "get" for
|
||
automatic proxy support
|
||
|
||
2008-10-31 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup-2.4.pc.in: rename from libsoup.pc.in; the attempt to
|
||
keep the source tree API-version-generic wasn't really working,
|
||
and we're probably not ever going to change the API version again
|
||
anyway.
|
||
|
||
* Makefile.am (pkgconfig_DATA): install the .pc file the normal
|
||
way rather than using an install-data-local rule to rename the .pc
|
||
file as we install it
|
||
|
||
* libsoup/Makefile.am (libsoupincludedir):
|
||
* tests/Makefile.am (LIBS):
|
||
* docs/reference/Makefile.am (GTKDOC_LIBS): Say "2.4" everywhere,
|
||
instead of 2.4 in some places and $(SOUP_API_VERSION) in others.
|
||
|
||
* configure.in: updates for .pc renaming. Also, use
|
||
AS_HELP_STRING() in AC_ARG_ENABLE() and AC_ARG_WITH() rules
|
||
|
||
2008-10-31 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-proxy-resolver.c: new abstract base class for a
|
||
SoupSessionFeature that determines what proxy to use for a given
|
||
URI.
|
||
|
||
* libsoup/soup-proxy-resolver-static.c: a SoupProxyResolver that
|
||
always returns the same value.
|
||
|
||
* libsoup/soup-session.c (set_property, get_property): implement
|
||
the SOUP_SESSION_PROXY_URI property by creating/destroying a
|
||
SoupProxyResolverStatic as needed.
|
||
(soup_session_get_connection): Use the proxy address passed by the
|
||
caller rather than priv->proxy_uri.
|
||
|
||
* libsoup/soup-session-async.c (run_queue): if the session has a
|
||
proxy resolver, use it, and pass the resolved proxy to
|
||
soup_session_get_connection().
|
||
(request_restarted): clear the previously-resolved proxy address
|
||
when restarting the message
|
||
|
||
* libsoup/soup-session-sync.c (wait_for_connection): if the
|
||
session has a proxy resolver, use it, and pass the resolved proxy
|
||
to soup_session_get_connection().
|
||
|
||
* libsoup/soup-message-queue.h (SoupMessageQueueItem): add
|
||
proxy-address-resolving fields
|
||
|
||
* libsoup/soup-status.c (soup_status_proxify): moved from
|
||
soup-connection; turn SOUP_STATUS_CANT_RESOLVE into
|
||
SOUP_STATUS_CANT_RESOLVE_PROXY, and SOUP_STATUS_CANT_CONNECT into
|
||
SOUP_STATUS_CANT_CONNECT_PROXY (and pass all other statuses
|
||
through unchanged)
|
||
|
||
2008-10-30 Dan Winship <danw@gnome.org>
|
||
|
||
* tests/simple-httpd.c: do directory listings. (wrote this a long
|
||
time ago, it just never made it into svn)
|
||
|
||
2008-10-27 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-cookie.c (soup_cookie_free): free the expires date,
|
||
if set
|
||
|
||
* libsoup/soup-auth-domain-basic.h:
|
||
* libsoup/soup-auth-domain-digest.h:
|
||
* libsoup/soup-auth-domain.h:
|
||
* libsoup/soup-cookie-jar.h:
|
||
* libsoup/soup-logger.h:
|
||
* libsoup/soup-multipart.h: add G_BEGIN/END_DECLS
|
||
|
||
* libsoup/soup-date.c: add some g_return_if_fails
|
||
|
||
Patches from and inspired by Xan Lopez, #522125
|
||
|
||
2008-10-22 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in:
|
||
* tests/Makefile.am: fix up some of the regression test
|
||
configuration stuff, and print warnings when some tests aren't run
|
||
do to missing dependencies
|
||
|
||
2008-10-20 Dan Winship <danw@gnome.org>
|
||
|
||
* tests/Makefile.am (INCLUDES): add SOUP_MAINTAINER_FLAGS here
|
||
too.
|
||
|
||
* tests/dns.c (main):
|
||
* tests/getbug.c (main):
|
||
* tests/server-auth-test.c (do_test): replace deprecated glib
|
||
functions
|
||
|
||
2008-10-20 Cosimo Cecchi <cosimoc@gnome.org>
|
||
|
||
* configure.in:
|
||
* libsoup/Makefile.am:
|
||
* libsoup/soup-status.h:
|
||
* libsoup/soup-types.h:
|
||
* libsoup/soup-uri.c: (soup_uri_to_string):
|
||
Build with G_DISABLE_DEPRECATED and G_DISABLE_SINGLE_INCLUDES; enforce
|
||
the first switch under maintainer mode and the second one
|
||
unconditionally (#557072).
|
||
|
||
2008-10-19 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth.c (soup_auth_update): compare scheme name
|
||
case-insensitively, to prevent an infinite loop when it's not in
|
||
standard form. #536285
|
||
|
||
2008-10-10 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-headers.c
|
||
(soup_message_headers_get_ranges): if the caller passed the
|
||
total_length of the message body, then sort sort the ranges and
|
||
merge overlapping ones to generate a minimal set.
|
||
|
||
* tests/range-test.c: test it
|
||
|
||
2008-10-09 Andrew W. Nosenko <andrew.w.nosenko@gmail.com>
|
||
|
||
* libsoup/soup-uri.c (soup_uri_to_string): Verify whether uri is
|
||
non-NULL and avoid crash on NULL pointer dereference therefore.
|
||
|
||
2008-10-03 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-connection.c: Change the SoupURI properties to
|
||
SoupAddress properties.
|
||
|
||
* libsoup/soup-address.c (soup_address_resolve_async)
|
||
(soup_address_resolve_sync): Redo slightly so that multiple
|
||
simultaneous attempts to resolve the same address won't cause
|
||
problems.
|
||
(soup_address_hash_by_name, soup_address_equal_by_name):
|
||
(soup_address_hash_by_ip, soup_address_equal_by_ip): methods to
|
||
hash addresses by name or IP address
|
||
|
||
* libsoup/soup-message.c (soup_message_get_address): gets a
|
||
SoupAddress corresponding to the message's URI
|
||
|
||
* libsoup/soup-auth-manager.c (SoupAuthHost): hash hosts by
|
||
soup_address_hash_by_name() rather than by URI.
|
||
|
||
* libsoup/soup-session.c (soup_session_get_connection): pass
|
||
addresses to soup_connection_new(), not URIs.
|
||
(SoupSessionHost): hash hosts by soup_address_hash_by_ip() rather
|
||
than by URI. This requires that the addresses will have already
|
||
been resolved by the SoupSession subclasses before calling
|
||
soup_session_get_connection(), but also means that now requests
|
||
made to different virtual hosts on the same IP address can share a
|
||
connection.
|
||
|
||
* libsoup/soup-message-queue.c (SoupMessageQueueItem): add
|
||
address-resolving state
|
||
|
||
* libsoup/soup-session-sync.c (process_queue_item): resolve the
|
||
message's address before getting a connection
|
||
|
||
* libsoup/soup-session-async.c (run_queue, resolve_msg_addr)
|
||
(resolved_msg_addr): resolve the message's address before getting
|
||
a connection
|
||
(request_restarted): if the message gets requeued to a different
|
||
host, we'll need to re-resolve the address.
|
||
|
||
* libsoup/soup-uri.c (soup_uri_copy_root, soup_uri_host_hash)
|
||
(soup_uri_host_equal): No longer needed
|
||
|
||
* libsoup/soup-dns.c (do_async_callback): disconnect from the
|
||
cancellable before invoking the callback
|
||
|
||
* tests/proxy-test.c (tests): fix the 403 example; hostnames are
|
||
resolved by the session now, even when sending to a proxy, so we
|
||
need to use a hostname that actually exists
|
||
|
||
2008-10-03 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-queue.c: Make this more complicated, with a
|
||
SoupMessageQueueItem to keep track of the session's per-message
|
||
state. (Part of the process of moving session-related state out of
|
||
SoupMessagePrivate.)
|
||
|
||
* libsoup/soup-session.c: Update to work in terms of
|
||
SoupMessageQueueItem
|
||
|
||
* libsoup/soup-session-async.c:
|
||
* libsoup/soup-session-sync.c: use SoupMessageQueueItem (and get
|
||
rid of SoupSessionAsyncQueueData and SoupSessionSyncAsyncData).
|
||
|
||
2008-10-01 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-multipart.c: New type and methods for working with
|
||
multipart HTTP bodies (eg, multipart/form-data and
|
||
multipart/byte-ranges)
|
||
|
||
* libsoup/soup-message-headers.c (soup_message_headers_get_ranges)
|
||
(soup_message_headers_set_ranges)
|
||
(soup_message_headers_set_range)
|
||
(soup_message_headers_get_content_range)
|
||
(soup_message_headers_set_content_range): New methods for dealing
|
||
with the Range and Content-Range headers.
|
||
|
||
* libsoup/soup-form.h (SOUP_FORM_MIME_TYPE_URLENCODED)
|
||
(SOUP_FORM_MIME_TYPE_MULTIPART): #define these MIME types here
|
||
|
||
* libsoup/soup-form.c (soup_form_decode_multipart): new utility
|
||
for parsing multipart/form-data forms.
|
||
(soup_form_request_new_from_multipart): new utility for
|
||
constructing multipart/form-data forms
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse): this is now
|
||
non-static, for use by soup-multipart
|
||
|
||
* libsoup/soup-message-server-io.c (get_response_headers)
|
||
(handle_partial_get): if the client requested a partial GET, and
|
||
the SoupServer is returning the full body, rebuild the response to
|
||
include only the requested range instead
|
||
|
||
* tests/forms-test.c: renamed from query-test and updated to do
|
||
both application/x-www-form-urlencoded and multipart/form-data
|
||
tests
|
||
|
||
* tests/range-test.c: test of Range/Content-Range functionality
|
||
|
||
2008-10-01 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-headers.c (soup_header_parse_param_list)
|
||
(soup_header_parse_semi_param_list): Update these to deal with
|
||
RFC2231-encoded UTF-8 header params
|
||
(soup_header_g_string_append_param): new utility method to do
|
||
parameters with quoted-strings (handling escaping) and RFC2231.
|
||
|
||
* libsoup/soup-auth-digest.c (get_authorization):
|
||
* libsoup/soup-auth-domain-basic.c (challenge):
|
||
* libsoup/soup-auth-domain-digest.c (challenge): use
|
||
soup_header_g_string_append_param so we handle escaping correctly
|
||
|
||
* libsoup/soup-message-headers.c
|
||
(soup_message_headers_get_content_type)
|
||
(soup_message_headers_set_content_type)
|
||
(soup_message_headers_get_content_disposition)
|
||
(soup_message_headers_set_content_disposition): New convenience
|
||
methods.
|
||
|
||
* tests/header-parsing.c (do_rfc2231_tests): new test of RFC2231
|
||
encoded header parsing in Content-Disposition.
|
||
|
||
* tests/get.c (get_url): use
|
||
soup_message_headers_get_content_type()
|
||
|
||
* docs/reference/libsoup-2.4-sections.txt: update
|
||
|
||
2008-10-01 Dan Winship <danw@gnome.org>
|
||
|
||
* tests/xmlrpc-test.c (main): add a new -s flag to indicate that
|
||
it's being run from inside xmlrpc-server-test.
|
||
(test_echo): if we aren't running inside xmlrpc-server-test, and
|
||
the response strings don't match the request strings, then compare
|
||
them to echo_strings_broken instead; a bug in php-xmlrpc manifests
|
||
when using libxml2 >= 2.7.1, resulting in incorrect responses. :-/
|
||
|
||
* tests/xmlrpc-server-test.c (do_xmlrpc_tests): Pass -s to
|
||
xmlrpc-test
|
||
|
||
2008-10-01 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: bump version to 2.25.0
|
||
|
||
2008-10-01 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-cookie-jar.c:
|
||
* libsoup/soup-cookie.c:
|
||
* libsoup/soup-cookie.h:
|
||
* libsoup/soup-headers.c:
|
||
* libsoup/soup-logger.c:
|
||
* libsoup/soup-session-feature.c:
|
||
* libsoup/soup-session-feature.h:
|
||
* libsoup/soup-session.c: doc fixups
|
||
|
||
* docs/reference/libsoup-2.4-docs.sgml:
|
||
* docs/reference/libsoup-2.4-sections.txt:
|
||
* docs/reference/libsoup-2.4.types: Add missing bits
|
||
|
||
2008-09-30 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-xmlrpc.c (parse_value):
|
||
soup_value_hash_insert_value() copies the value, so we have to
|
||
g_value_unset() our copy.
|
||
|
||
* tests/chunk-test.c:
|
||
* tests/misc-test.c:
|
||
* tests/ntlm-test.c: fix leaks
|
||
|
||
* tests/libsoup.supp: update
|
||
|
||
2008-09-30 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session-async.c (do_idle_run_queue): store the
|
||
GSource in priv, don't ref the session. Otherwise the session
|
||
won't get destroyed if you abort it and then don't return to its
|
||
main loop. (addendum to #498509, Arnout Vandecappelle)
|
||
(finalize): Destroy the idle_run_queue source when finalizing.
|
||
(run_queue, got_connection): Ref the session when calling
|
||
soup_connection_connect_async(), and do a
|
||
do_idle_run_queue()+unref in got_connection, to ensure correct
|
||
handling regardless of what the application does with its own ref
|
||
on the session.
|
||
(final_finished): Likewise, ref/do_idle_run_queue/unref rather
|
||
than calling run_queue directly and playing with weak pointers.
|
||
|
||
* libsoup/soup-session.c (connect_result): ref the session around
|
||
the cancel-if-error loop
|
||
|
||
Fixes #533473, crash in seahorse when connecting to a
|
||
non-responsive key server.
|
||
|
||
* tests/misc-test.c (do_callback_unref_test): Add a test for the
|
||
bug in #533473.
|
||
|
||
* tests/test-utils.c (soup_test_session_abort_unref): abort and
|
||
unref a SoupSession, and consider it an error if the session still
|
||
exists afterward. Suggested by Arnout Vandecappelle.
|
||
(test_server_shutdown): Likewise, consider it an error if the
|
||
server is leaked.
|
||
|
||
* tests/*.c: Use soup_test_session_abort_unref().
|
||
|
||
2008-09-26 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-manager-ntlm.c
|
||
* libsoup/soup-auth-manager.c
|
||
* libsoup/soup-cookie-jar.c
|
||
* libsoup/soup-dns.c
|
||
* libsoup/soup-logger.c:
|
||
* libsoup/soup-message-body.h:
|
||
* libsoup/soup-message.h
|
||
* libsoup/soup-misc.h:
|
||
* libsoup/soup-xmlrpc.h:
|
||
|
||
* tests/continue-test.c:
|
||
* tests/ntlm-test.c: Fix warnings pointed out by gcc -pedantic.
|
||
#553976, Sander Dijkhuis.
|
||
|
||
2008-09-23 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.24.0.1
|
||
|
||
* NEWS: Update
|
||
|
||
* libsoup/soup-session.c (redirect_handler):
|
||
* libsoup/soup-message.c (soup_message_new):
|
||
(soup_message_new_from_uri, soup_message_set_uri): Revert the
|
||
2008-08-25 change; it breaks the rhythmbox DAAP plugin. #553466.
|
||
To be revisited.
|
||
|
||
2008-09-22 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.24.0
|
||
|
||
2008-09-08 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.23.92
|
||
|
||
* NEWS: update
|
||
|
||
2008-09-07 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c (redirect_handler): a 302 response to
|
||
HEAD (or any other safe method) should be treated like a 307, not
|
||
a 303. #551190, Jonathan Matthew.
|
||
|
||
* tests/redirect-test.c: test that
|
||
|
||
2008-09-01 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.23.91
|
||
|
||
* NEWS: update
|
||
|
||
2008-08-25 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-uri.h (SOUP_URI_VALID_FOR_HTTP): new macro to check
|
||
if a URI is a valid http or https URI.
|
||
|
||
* libsoup/soup-uri.c (soup_uri_new_with_base): Update http/https
|
||
check to use SOUP_URI_VALID_FOR_HTTP().
|
||
|
||
* libsoup/soup-session.c (redirect_handler): Check
|
||
SOUP_URI_VALID_FOR_HTTP() and call it an error if the check fails.
|
||
|
||
* libsoup/soup-message.c (soup_message_new): Remove the uri->host
|
||
check from here. Update docs to clarify that @uri must be an
|
||
http/https URI.
|
||
(soup_message_new_from_uri): Check SOUP_URI_VALID_FOR_HTTP().
|
||
Update docs.
|
||
(soup_message_set_uri): Check SOUP_URI_VALID_FOR_HTTP(). Update
|
||
docs.
|
||
|
||
Should prevent the crash in #528882, but there's still something
|
||
going wrong there at a higher level.
|
||
|
||
2008-08-22 Bastien Nocera <hadess@hadess.net>
|
||
|
||
* libsoup/soup-date.c (soup_date_to_time_t),
|
||
(soup_date_to_timeval):
|
||
* libsoup/soup-date.h: Add a SoupDate to GTimeVal conversion
|
||
function, for use in gvfs. #549006, with help from Dan Winship
|
||
<danw@gnome.org>
|
||
|
||
2008-08-18 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup.pc.in (Requires): Revert previous commit; that would
|
||
still fail in the case of an application linking against a library
|
||
that privately links against libsoup. The only correct solution in
|
||
the face of --as-needed (or on OSes where the linker always works
|
||
that way) is for the module that actually calls g_thread_init() to
|
||
explicitly link against libgthread.
|
||
|
||
2008-08-14 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup.pc.in (Requires): Add gthread-2.0; the app must call
|
||
g_thread_init(), but libsoup won't pull it in itself if built with
|
||
--as-needed, so make sure it gets pulled in from here. Noted by
|
||
Zeeshan Ali.
|
||
|
||
* libsoup/soup-auth.c (soup_auth_authenticate): g_return_if_fail
|
||
if either username or password is NULL. Noted on the mailing list.
|
||
|
||
* libsoup/soup-auth-basic.c (authenticate): remove redundant check
|
||
|
||
2008-08-04 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.23.6
|
||
|
||
* NEWS: update
|
||
|
||
2008-07-26 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-misc.c (soup_add_completion): Add this to schedule
|
||
a callback in a GMainContext "right away", as opposed to
|
||
soup_add_idle(), which uses a lower priority and therefore may not
|
||
end up calling the callback for a long time if the application is
|
||
busy with I/O. #536676, Benjamin Otte.
|
||
|
||
* libsoup/soup-dns.c (resolver_thread, async_cancel)
|
||
(soup_dns_lookup_resolve_async):
|
||
* libsoup/soup-message-io.c (soup_message_io_unpause):
|
||
* libsoup/soup-session-sync.c (queue_message_thread):
|
||
* libsoup/soup-session-async.c (do_idle_run_queue):
|
||
* libsoup/soup-socket.c (async_cancel)
|
||
(soup_socket_connect_async):
|
||
* tests/test-utils.c (test_server_shutdown): Use
|
||
soup_add_completion() rather than soup_add_idle().
|
||
|
||
* docs/reference/libsoup-2.4-sections.txt: add soup_add_completion
|
||
|
||
2008-07-26 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-client-io.c (get_request_headers): don't
|
||
add a Host header to the message if the caller already added one.
|
||
#539803, Marc Maurer.
|
||
|
||
* libsoup/soup-logger.c (print_request): likewise
|
||
|
||
* tests/misc-test.c: new test file for small miscellaneous test
|
||
cases.
|
||
(do_host_test): test Host-header overriding
|
||
|
||
2008-07-26 Dan Winship <danw@gnome.org>
|
||
|
||
* tests/Makefile.am (LIBS): add $(GLIB_LIBS) so this still works
|
||
when building with weird LDFLAGS. #541506, Götz Waschk.
|
||
|
||
* docs/reference/Makefile.am (GTKDOC_LIBS): likewise
|
||
|
||
* libsoup/soup-auth-digest.c (soup_auth_digest_parse_algorithm):
|
||
if the server response doesn't include an algorithm, it is
|
||
supposed to default to MD5. #544681, Mads Chr. Olesen.
|
||
|
||
* libsoup/soup-message-io.c (SoupMessageIOData): change
|
||
read_length, write_length, and written to goffset so we can
|
||
properly handle message bodies > 4G. #539861, Peter Christensen.
|
||
|
||
* libsoup/soup-gnutls.c: Fix horrible bizarre brokenness in
|
||
GIOChannel subclassing. #536417, Tor Lillqvist.
|
||
|
||
2008-06-04 Tor Lillqvist <tml@novell.com>
|
||
|
||
* libsoup/soup-socket.c (set_fdflags): The SO_RCVTIMEO and
|
||
SO_SNDTIMEO options to setsockopt() take int values, in
|
||
milliseconds, on Windows. Not struct timeval. Eek. So passing a
|
||
struct timeval meant that the tv_sec value (which is first in the
|
||
struct) is interpreted as milliseconds. setsockopt apparently
|
||
doesn't even get upset by the fact that the option size doesn't
|
||
match the sizeof(int) it should expect.
|
||
|
||
2008-05-02 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-cookie.c (soup_cookie_applies_to_uri): fix the path
|
||
checking
|
||
|
||
2008-04-29 Tor Lillqvist <tml@novell.com>
|
||
|
||
* libsoup/soup-dns.c (soup_dns_is_ip_address): Fix compilation
|
||
error in the !HAVE_IPV6 && !HAVE_INET_PTON && !HAVE_INET_ATON
|
||
case.
|
||
|
||
2008-04-21 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.23.1, bump AGE and CURRENT
|
||
|
||
* NEWS: update
|
||
|
||
2008-04-20 Dan Winship <danw@gnome.org>
|
||
|
||
Fixes for GnuTLS support on Win32. #528752, patch from Marc Maurer
|
||
|
||
* libsoup/soup-gnutls.c (soup_ssl_wrap_iochannel): add an argument
|
||
saying whether or not the socket is non-blocking, since there's no
|
||
way to determine this from the fd in WinSock.
|
||
(do_handshake, soup_gnutls_read, soup_gnutls_write): Update for
|
||
that.
|
||
|
||
* libsoup/soup-socket.c (soup_socket_start_proxy_ssl): Update for
|
||
that
|
||
|
||
* libsoup/soup-nossl.c (soup_ssl_wrap_iochannel): update the
|
||
declaration here too
|
||
|
||
* tests/ssl-test.c: Some updates to get this closer to working on
|
||
Windows...
|
||
|
||
2008-04-14 Chris Lord <chrislord.net@gmail.com>
|
||
|
||
reviewed by: Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-cookie-jar.c (soup_cookie_jar_set_cookie):
|
||
Check that the cookie was parsed successfully before setting it
|
||
|
||
2008-04-08 Dan Winship <danw@gnome.org>
|
||
|
||
Initial HTTP cookie support imported from development git repo,
|
||
including patches from Xan Lopez.
|
||
|
||
TODO: make sure the logic in soup_cookie_jar_get_cookies() is
|
||
right. Add a test program to tests/.
|
||
|
||
* libsoup/soup-cookie.c: Code for parsing and generating HTTP
|
||
cookies.
|
||
|
||
* libsoup/soup-cookie-jar.c: Code for managing SoupCookies and
|
||
integrating cookie management with a SoupSession.
|
||
|
||
* libsoup/soup-date.c (soup_date_is_past): New, checks if a
|
||
SoupDate refers to a time in the past
|
||
|
||
* libsoup/soup-dns.c (soup_dns_is_ip_address): New, checks if a
|
||
string is a valid IP address
|
||
|
||
* libsoup/soup-headers.c (soup_header_parse_semi_param_list): New,
|
||
like soup_header_parse_param_list, but for semicolon-delimited
|
||
data.
|
||
|
||
2008-04-08 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-manager.c: Make this a GObject and
|
||
specifically a SoupSessionFeature. Add an "authenticate" signal,
|
||
and emit that rather than explicitly calling into the SoupSession
|
||
and telling it when to emit its own authenticate signal.
|
||
|
||
* libsoup/soup-auth-manager-ntlm.c: Make this a subclass of
|
||
SoupAuthManager, with NTLM support controllable via a property.
|
||
|
||
* libsoup/soup-session.c (soup_session_init): create an
|
||
auth_manager of type SOUP_TYPE_AUTH_MANAGER_NTLM, but defaulting
|
||
to USE_NTLM=FALSE. Connect to its "authenticate" signal, and call
|
||
soup_session_add_feature() on it.
|
||
(set_property, get_property): proxy the USE_NTLM property to the
|
||
auth manager.
|
||
(auth_manager_authenticate): signal handler for SoupAuthManager
|
||
"authenticate" signal. (Replaces soup_session_emit_authenticate(),
|
||
which is no longer needed)
|
||
|
||
2008-04-08 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session-feature.c: New interface type representing
|
||
a feature that can be added to a SoupSession.
|
||
|
||
* libsoup/soup-session.c (soup_session_add_feature): Add a feature
|
||
to the session by prepending it to priv->features and calling
|
||
soup_session_feature_attach() on it.
|
||
(soup_session_add_feature_by_type): Add a feature to the session
|
||
by creating an object of the indicated type and passing it to
|
||
soup_session_add_feature.
|
||
(soup_session_remove_feature)
|
||
(soup_session_remove_feature_by_type): Likewise, remove features
|
||
(soup_session_class_init, set_property): register/handle
|
||
construct-time feature adding/removing properties
|
||
(dispose): cleanup features
|
||
|
||
* libsoup/soup-logger.c: port to SoupSessionFeature
|
||
|
||
* tests/test-utils.c (soup_test_session_new): Use
|
||
soup_session_add_feature rather than soup_logger_attach.
|
||
|
||
2008-04-08 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: Having branched for gnome-2-22, bump version to
|
||
2.23.0 for the GNOME 2.23 series. SOUP_API_VERSION will stay at
|
||
2.4, which is confusing but seemed like the best solution at this
|
||
point.
|
||
|
||
2008-04-07 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.4.1. Bump AGE and CURRENT.
|
||
|
||
* NEWS: update
|
||
|
||
* docs/reference/libsoup-2.4-sections.txt: add new symbols
|
||
|
||
2008-04-07 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-io.c (soup_message_io_pause): If pausing a
|
||
message that was waiting to unpause, cancel the unpause.
|
||
|
||
2008-04-05 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-dns.c (resolve_address, resolve_name): Don't
|
||
cache negative results, even if the DNS server explicitly states
|
||
that the host does not exist; some servers give different answers
|
||
to clients inside and outside their firewall. #523269, Jörgen
|
||
Scheibengruber.
|
||
|
||
2008-04-05 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-body.c (soup_message_body_set_accumulate)
|
||
(soup_message_body_get_accumulate): New, replaces
|
||
SOUP_MESSAGE_OVERWRITE_CHUNKS, but can be set on either the
|
||
incoming or outgoing message body.
|
||
(soup_message_body_get_chunk): update to still dtrt if !accumulate
|
||
(soup_message_body_got_chunk, soup_message_body_wrote_chunk): New
|
||
methods to handle accumulating/discarding chunks.
|
||
|
||
* libsoup/soup-message-io.c (read_body_chunk): Use
|
||
soup_message_body_got_chunk.
|
||
(io_write): Use soup_message_body_wrote_chunk, to discard unneeded
|
||
chunks after writing them. Fixes most of #522146.
|
||
|
||
* libsoup/soup-message.c (soup_message_class_init): add a new
|
||
flag, "server-side", to indicate whether the message is
|
||
client-side or server-side, and update several methods to use it.
|
||
(got_body): Update for accumulate
|
||
(soup_message_set_flags): If the caller changes OVERWRITE_CHUNKS,
|
||
update the corresponding accumulate flag.
|
||
|
||
* libsoup/soup-message.h (SOUP_MESSAGE_OVERWRITE_CHUNKS):
|
||
deprecated now
|
||
|
||
* tests/chunk-test.c (do_request_test): Use
|
||
soup_message_body_set_accumulate() now, and verify that the chunks
|
||
are being discarded appropriately.
|
||
(do_response_test): Use
|
||
soup_message_body_set_accumulate() instead of OVERWRITE_CHUNKS.
|
||
|
||
* tests/pull-api.c (do_fully_async_test)
|
||
(do_synchronously_async_test): Use
|
||
soup_message_body_set_accumulate().
|
||
|
||
2008-04-05 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-dns.c (resolve_address): fix test for
|
||
AI_ADDRCONFIG. Noticed while looking at #526321.
|
||
|
||
2008-04-05 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-socket.c (soup_socket_class_init)
|
||
(soup_socket_write): globally ignore SIGPIPE rather than only
|
||
doing it around socket write calls, since with SSL even socket
|
||
read calls may need to write, and also because SIGPIPE is
|
||
completely moronic and no one should be using it, and the previous
|
||
"solution" wasn't thread-safe anyway. Fixes #524397, reported by
|
||
Curtis Magyar.
|
||
|
||
2008-04-05 Dan Winship <danw@gnome.org>
|
||
|
||
Misc fixes noticed by "sparse" or by running gcc with additional
|
||
-W flags
|
||
|
||
* libsoup/soup-auth-manager-ntlm.c (ntlm_authorize_post): fix a
|
||
potentially uninitialized variable. (Grumble. gcc needs
|
||
-Wdo-optimization-so-you-can-generate-code-flow-related-warnings-
|
||
but-then-emit-unoptimized-code-for-ease-of-debugging)
|
||
|
||
* libsoup/soup-gnutls.c (soup_gnutls_channel_funcs): make this
|
||
static
|
||
|
||
* libsoup/soup-uri.c (uri_decoded_copy, uri_normalized_copy): add
|
||
"static". (This doesn't change the generated code; the prototype
|
||
was already declared static and so gcc was treating the function
|
||
as static even though the main declaration *wasn't* declared
|
||
static. I'm not sure if this is a bug in gcc or an oddity of the
|
||
spec, but it's confusing, so...)
|
||
|
||
* libsoup/soup-xmlrpc.c (soup_xmlrpc_build_method_response):
|
||
s/FALSE/NULL/
|
||
|
||
* libsoup/soup-xmlrpc.h: add G_GNUC_PRINTF to
|
||
soup_xmlrpc_build_format
|
||
|
||
* tests/*.c: misc minor fixes, mostly involving missing "const"s
|
||
and "static"s to get better warnings, and then remove some unused
|
||
variables.
|
||
|
||
* tests/continue-test.c (do_message): fix a crash when the test
|
||
fails
|
||
|
||
* tests/test-utils.h (debug_printf): add G_GNUC_PRINTF to
|
||
prototype
|
||
|
||
2008-04-05 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-method.c: Explicitly assign each of the variables
|
||
to NULL, because that apparently causes the OS X linker to treat
|
||
them differently than if they are left implicitly NULL. #522957.
|
||
|
||
2008-04-04 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message.c: add a new signal "wrote-body-data" to
|
||
address the problem that "wrote-chunk" is not usable for progress
|
||
info (especially with non-chunked encoding). #525101, suggested by
|
||
Christian Kellner.
|
||
|
||
* libsoup/soup-message-io.c (write_data): emit wrote-body-data as
|
||
appropriate.
|
||
(io_write): update so that (a) Content-Length writes can be done
|
||
in multiple chunks (as long as the caller explicitly sets the
|
||
Content-Length header beforehand), and (b) the body data doesn't
|
||
get copied an extra time. Based on a patch from Christian.
|
||
|
||
* libsoup/soup-message-client-io.c (get_request_headers): Don't
|
||
update the Content-Length header if it's already set, even if it
|
||
doesn't match the (current) body length.
|
||
|
||
* tests/chunk-test.c: test some chunk-encoding-related behavior
|
||
|
||
2008-04-03 Dan Winship <danw@gnome.org>
|
||
|
||
Be more aggressive about closing unused persistent connections
|
||
when needed, to avoid slow load times in WebKit.
|
||
|
||
* libsoup/soup-session-async.c (run_queue): Remove the
|
||
"try_pruning" flag from here and from all the callers, and
|
||
*always* try pruning idle connections if it would help.
|
||
|
||
* libsoup/soup-session.c (soup_session_try_prune_connection):
|
||
Rather than only closing a single connection, close all idle
|
||
connections.
|
||
|
||
2008-03-29 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message.h (SoupMessage): de-constify
|
||
msg->reason_phrase; it's no more const than any other struct
|
||
field.
|
||
|
||
* libsoup/soup-message.c (finalize)
|
||
(soup_message_cleanup_response, soup_message_set_status)
|
||
(soup_message_set_status_full): don't need to cast reason_phase to
|
||
non-const when freeing it now
|
||
|
||
* libsoup/soup-message-client-io.c (parse_response_headers):
|
||
Likewise, remove reason-phrase non-const casts
|
||
|
||
2008-03-29 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-date.c (parse_day): fix the test for no-day-parsed
|
||
(parse_year): likewise fix the test for no-year-parsed
|
||
(parse_time): don't accept empty components here
|
||
(parse_textual_date): don't accept a comma if it wasn't preceded
|
||
by a weekday
|
||
(soup_date_weekday): Fix leap year handling here; the code this
|
||
was originally based on only had to work between 1970 and 2038, so
|
||
it didn't worry about the mod 100 and mod 400 rules...
|
||
|
||
* tests/date.c: Add date/string conversion tests (in particular,
|
||
to make sure soup_date_weekday is working). Also add test cases
|
||
with missing components and make sure they *don't* parse.
|
||
|
||
2008-03-25 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-domain-digest.c (accepts): don't crash if the
|
||
auth_callback returns NULL (meaning "unrecognized user").
|
||
|
||
* tests/server-auth-test.c (do_test, do_auth_tests): Test bad
|
||
usernames as well as bad passwords.
|
||
(main): Remove erroneous local run_tests variable.
|
||
|
||
Pointed out by Curtis Magyar.
|
||
|
||
2008-03-19 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth.c (soup_auth_new): compare WWW-Authenticate
|
||
auth schemes case-insensitively.
|
||
|
||
* libsoup/soup-auth-digest.c (update): allow Digest
|
||
WWW-Authenticate header with no "qop" option. (The original RFC
|
||
2069 style of Digest auth.)
|
||
(soup_auth_digest_parse_qop): this returns a bitfield, so don't
|
||
return -1 if there are no recognized values.
|
||
|
||
* tests/httpd.conf.in: use "AuthDigestQop none" in /Digest/realm3
|
||
so we test that
|
||
|
||
Fixes #498484 (Digest auth against Apple's Calendar Server).
|
||
|
||
2008-03-18 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c (soup_session_class_init): Add a new
|
||
property, SOUP_SESSION_IDLE_TIMEOUT, to specify a timeout after
|
||
which idle connections should be closed.
|
||
(soup_session_get_connection): pass the idle_timeout value on to
|
||
the connection.
|
||
|
||
* libsoup/soup-connection.c (soup_connection_class_init): Add
|
||
SOUP_CONNECTION_IDLE_TIMEOUT.
|
||
(start_idle_timer, stop_idle_timer): add/remove a timeout to call
|
||
soup_connection_disconnect().
|
||
(socket_connect_result, soup_connection_connect_sync): start the
|
||
idle timer after connection is complete
|
||
(set_current_request): call stop_idle_timer() when starting a new
|
||
request
|
||
(clear_current_request): call start_idle_timer() when finishing a
|
||
request
|
||
(dispose): call stop_idle_timer() when destroying the connection
|
||
|
||
#518214, based on a patch from Jorn Baayen.
|
||
|
||
2008-03-18 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-io.c (soup_message_io_unpause): if delaying
|
||
the unpause to idle time, we need to keep track of the idle source
|
||
(soup_message_io_stop): if the message is waiting to unpause
|
||
itself, cancel that
|
||
|
||
* libsoup/soup-server.c (soup_server_pause_message): call
|
||
soup_message_io_pause(), not soup_message_io_unpause(). Duh.
|
||
|
||
2008-03-15 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c: Define two new signals, request_queued
|
||
and request_unqueued, to provided a clearer (and
|
||
clearly-documented) lifecycle for messages, helping us (and other
|
||
people) avoid bugs like #522601, SoupSession::authenticate signal
|
||
emitted multiple times per message (reported and analyzed by Tommi
|
||
Komulainen).
|
||
|
||
* libsoup/soup-logger.c:
|
||
* libsoup/soup-auth-manager.c:
|
||
* libsoup/soup-auth-manager-ntlm.c: Use request_queued/unqueued
|
||
|
||
* tests/auth-test.c (do_async_auth_test): add a regression test
|
||
|
||
2008-03-14 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-client-io.c (get_request_headers): Fix Host
|
||
header syntax when the host is an IPv6 address literal. Noticed
|
||
while poking at #522519.
|
||
|
||
2008-03-14 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-private.h (SoupMessagePrivate): add
|
||
an orig_http_version field.
|
||
|
||
* libsoup/soup-message.c (soup_message_init): initialize
|
||
orig_http_version.
|
||
(soup_message_set_http_version): If called before the status code
|
||
is received, set orig_http_version too.
|
||
(soup_message_cleanup_response): Restore orig_http_version, so
|
||
that we don't send an HTTP/1.0 request in response to an HTTP/1.0
|
||
redirect. #521848, Tommi Komulainen.
|
||
|
||
* libsoup/soup-message-server-io.c (get_response_headers):
|
||
actually output "HTTP/1.0", not "HTTP/1.1", if the message's http
|
||
version is 1.0.
|
||
|
||
* tests/redirect-test.c (server_callback): Add a regression test;
|
||
set http_version to 1.0 when returning a redirect, but require it
|
||
to be 1.1 when processing the following request
|
||
|
||
2008-03-13 Xan Lopez <xan@gnome.org>
|
||
|
||
* libsoup/soup-address.c:
|
||
* libsoup/soup-auth-domain-basic.c:
|
||
* libsoup/soup-auth-domain-digest.c:
|
||
* libsoup/soup-auth-domain.c:
|
||
* libsoup/soup-auth.c:
|
||
* libsoup/soup-connection.c:
|
||
* libsoup/soup-message.c:
|
||
* libsoup/soup-server.c:
|
||
* libsoup/soup-session.c:
|
||
* libsoup/soup-socket.c:
|
||
|
||
Use G_OBJECT_WARN_INVALID_PROPERTY_ID in all get/set_property functions.
|
||
|
||
Bug #522115
|
||
|
||
2008-03-13 Xan Lopez <xan@gnome.org>
|
||
|
||
* tests/dns.c: (main):
|
||
* tests/get.c: (main):
|
||
* tests/getbug.c: (main):
|
||
* tests/simple-httpd.c: (main):
|
||
* tests/simple-proxy.c: (main):
|
||
* tests/ssl-test.c: (main):
|
||
* tests/test-utils.c: (test_init):
|
||
|
||
g_thread_init should be called before any other glib function. (#522117)
|
||
|
||
2008-03-10 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.4.0!
|
||
|
||
* NEWS: update
|
||
|
||
2008-02-28 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c (finalize): free priv->user_agent.
|
||
#518798, Wouter Cloetens.
|
||
(redirect_handler): PROPFIND is defined to be "safe and
|
||
idempotent", so allow automatic redirects of it. (Pointed out by
|
||
Christian Kellner. FIXME: need a way for apps to declare
|
||
additional safe methods). Also, treat 302 like 307, not like 303,
|
||
because that behavior is universal in the real world, despite the
|
||
spec's protests.
|
||
|
||
* tests/redirect-test.c (tests): update POST 302 behavior check
|
||
|
||
* tests/Makefile.am (TESTS): oops, add redirect-test so it gets
|
||
run by "make check"/"make distcheck"
|
||
|
||
* tests/ssl-test.c: Re-revert the change from 2008-02-09; the
|
||
problem with ssl-test.c was not that soup_gnutls_init() wasn't
|
||
thread-safe, it's that the server thread doesn't do anything that
|
||
would ever cause soup_gnutls_init() to be called, and so if the
|
||
client thread doesn't start first, the server thread will run
|
||
without initializing GNUTLS.
|
||
|
||
2008-02-27 Benjamin Otte <otte@gnome.org>
|
||
|
||
* libsoup/soup-socket.c: (read_from_network), (soup_socket_read),
|
||
(soup_socket_read_until), (soup_socket_write):
|
||
ensure that nread/nwrote parameters aren't NULL. They are also
|
||
properly set on error paths now.
|
||
|
||
2008-02-25 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.3.4
|
||
|
||
* NEWS: Update
|
||
|
||
2008-02-25 Dan Winship <danw@gnome.org>
|
||
|
||
* docs/reference/Makefile.am (DOC_MODULE): rename from libsoup to
|
||
libsoup-2.4
|
||
(TARGET_DIR): don't need to override this now
|
||
|
||
* docs/reference/libsoup-2.4.types:
|
||
* docs/reference/libsoup-2.4-docs.txt:
|
||
* docs/reference/libsoup-2.4-overrides.txt:
|
||
* docs/reference/libsoup-2.4-sections.txt: Rename these from
|
||
unversioned, to match DOC_MODULE
|
||
|
||
Fixes doc installation to work with devhelp again. #518384, Mart
|
||
Raudsepp.
|
||
|
||
2008-02-25 Benjamin Otte <otte@gnome.org>
|
||
|
||
* libsoup/soup-address.h:
|
||
* libsoup/soup-auth-domain.h:
|
||
* libsoup/soup-auth.h:
|
||
* libsoup/soup-message.h:
|
||
* libsoup/soup-server.h:
|
||
* libsoup/soup-session-async.h:
|
||
* libsoup/soup-session-sync.h:
|
||
* libsoup/soup-session.h:
|
||
* libsoup/soup-socket.h:
|
||
* libsoup/soup-types.h:
|
||
* libsoup/soup-uri.h:
|
||
use an underscore for struct definitions. Fixes bug #518317.
|
||
|
||
2008-02-20 Sebastian Dröge <slomo@circular-chaos.org>
|
||
|
||
* libsoup.pc.in: Add gobject-2.0 and gio-2.0 to Requires.
|
||
Move libxml-2.0 and the SSL dependency to Requires.private
|
||
as no header is including them. Fixes bug #517631.
|
||
|
||
2008-02-11 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: post-release bump to 2.3.3
|
||
|
||
2008-02-11 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.3.2
|
||
(SOUP_CURRENT): bump for API changes
|
||
|
||
* NEWS: update
|
||
|
||
2008-02-09 Dan Winship <danw@gnome.org>
|
||
|
||
* Misc gtk-doc fix-ups
|
||
|
||
2008-02-09 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-misc.h: remove prototype for
|
||
soup_signal_connect_once, which is only used by soup-connection
|
||
now, and will go away once that code is rewritten.
|
||
|
||
* libsoup/soup-connection.c: prototype it here now (the definition
|
||
is still in soup-misc.c)
|
||
|
||
2008-02-09 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-manager-ntlm.c: mark the DES magic number
|
||
arrays const
|
||
|
||
* libsoup/soup-date.c (months, days): add an extra "const" to each
|
||
of these declarations, as one "const" is apparently not enough.
|
||
(soup_date_to_time_t): remove redundant copy of days_before array.
|
||
|
||
* libsoup/soup-dns.c (soup_dns_init): use g_once_init_enter/leave
|
||
|
||
* libsoup/soup-gnutls.c (soup_ssl_supported)
|
||
(soup_gnutls_channel_funcs): Mark these const
|
||
(soup_gnutls_init, init_dh_params): Use g_once_init_enter/leave
|
||
|
||
* libsoup/soup-status.c (reason_phrases): mark this const
|
||
|
||
* tests/ssl-test.c: Remove the workaround for soup_gnutls_init()
|
||
not being thread-safe, since it is now.
|
||
|
||
2008-02-08 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-headers.c (SoupMessageHeadersIter)
|
||
(soup_message_headers_iter_init, soup_message_headers_iter_next):
|
||
Add an iterator type for SoupMessageHeaders.
|
||
|
||
* libsoup/soup-message-client-io.c (get_request_headers):
|
||
* libsoup/soup-message-server-io.c (get_response_headers): Use
|
||
SoupMessageHeadersIter.
|
||
|
||
* libsoup/soup-logger.c (print_request, print_response): Use
|
||
SoupMessageHeadersIter. And take advantage of the simplification
|
||
to fix the kludge where 'direction' was stored as a field in
|
||
SoupLoggerPrivate rather than being an argument to
|
||
soup_logger_print.
|
||
|
||
* tests/get.c (get_url):
|
||
* tests/header-parsing.c (check_headers):
|
||
* tests/simple-httpd.c (server_callback): Use
|
||
SoupMessageHeadersIter
|
||
|
||
2008-02-06 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-server.c (soup_server_add_auth_domain): Ref the
|
||
auth domain when adding it.
|
||
|
||
* tests/continue-test.c (setup_server):
|
||
* tests/server-auth-test.c (main): Add unrefs here to avoid
|
||
leaking now
|
||
|
||
2008-02-06 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message.c (soup_message_set_chunk_allocator): New
|
||
method that lets the application set a callback function to use to
|
||
allocate SoupBuffers for reading into, so as to avoid needing
|
||
extra copies.
|
||
|
||
* libsoup/soup-message-body.c (soup_buffer_new_with_owner): new,
|
||
to create a SoupBuffer pointing to memory owned by another object,
|
||
with a GDestroyNotify to unref/free that object when the
|
||
SoupBuffer is freed.
|
||
(soup_buffer_get_owner): Returns the owner of a buffer created
|
||
with soup_buffer_new_with_owner.
|
||
(soup_buffer_free, etc): update SoupBuffer code for owned buffers.
|
||
|
||
Suggested by Wouter Cloetens, #513810.
|
||
|
||
* tests/simple-httpd.c (do_get): Use mmap() and
|
||
soup_buffer_new_with_owner(), as a demo/test.
|
||
|
||
2008-02-06 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-date.c (soup_date_to_time_t): clamp the result to
|
||
the time_t range, and document that. Remove the #ifdef HAVE_TIMEGM
|
||
branch.
|
||
|
||
* configure.in: remove check for timegm
|
||
|
||
2008-02-04 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/Makefile.am: Fix the handling of soup-enum-types.h to
|
||
ensure that it gets built before the things that depend on it.
|
||
|
||
2008-02-03 Benjamin Otte <otte@gnome.org>
|
||
|
||
* libsoup/soup-socket.c: update documentation to new API
|
||
|
||
2008-02-02 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c: fix default connections-per-host again;
|
||
it was defined in two places. Add SOUP_SESSION_USER_AGENT property
|
||
(setup_message): set the User-Agent request header on the request
|
||
|
||
* libsoup/soup-server.c: add SOUP_SERVER_SERVER_HEADER property
|
||
(start_request): set the Server response header on the request.
|
||
|
||
* tests/get.c:
|
||
* tests/simple-httpd.c: set the User-Agent/Server headers
|
||
|
||
2008-02-02 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse_request): if the
|
||
request headers contain an unrecognized Expect: header, return
|
||
SOUP_STATUS_EXPECTATION_FAILED. Also, process Connection headers
|
||
in HTTP/1.0 messages as required by 2616 14.10.
|
||
(soup_headers_parse_response): Likewise handle Connection headers
|
||
in HTTP/1.0 messages
|
||
|
||
* tests/header-parsing.c: test those things
|
||
|
||
2008-02-02 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c (redirect_handler): Misc fixes: don't
|
||
redirect on "300 Multiple Choices", "304 Not Modified", "305 Use
|
||
Proxy", or any unrecognized status code. Don't redirect unsafe
|
||
methods on 301, 302, or 307. Redirect POST to GET on 303.
|
||
|
||
* tests/redirect-test.c: test of redirection handling behavior.
|
||
|
||
2008-02-02 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-method.h (SOUP_METHOD_GET, etc): Fix these so that
|
||
direct comparisons against them actually *are* faster than doing
|
||
strcmp, as the docs claim.
|
||
|
||
* libsoup/soup-uri.h (SOUP_URI_SCHEME_HTTP,
|
||
SOUP_URI_SCHEME_HTTPS): likewise
|
||
|
||
2008-02-01 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-address.c: Use GObject properties.
|
||
(soup_address_new, soup_address_new_from_sockaddr)
|
||
(soup_address_new_any): Make these just wrappers around
|
||
g_object_new.
|
||
|
||
* libsoup/soup-message-body.c (soup_message_body_get_type):
|
||
* libsoup/soup-message-headers.c (soup_message_headers_get_type):
|
||
* libsoup/soup-server.c (soup_client_context_get_type):
|
||
Register these as boxed types, for language bindings.
|
||
|
||
* libsoup/soup-date.c (soup_date_get_type):
|
||
* libsoup/soup-message-body.c (soup_buffer_get_type):
|
||
* libsoup/soup-value-utils.c (soup_byte_array_get_type):
|
||
* libsoup/soup-uri.c (soup_uri_get_type): Upgrade to the latest
|
||
yummiest type-registering idiom.
|
||
|
||
2008-02-01 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-connection.c (soup_connection_disconnect):
|
||
Reorganize this; emitting DISCONNECTED may cause the session to
|
||
unref the connection, causing it to be destroyed, so do everything
|
||
else before that. #437835 and dups. Also, call
|
||
soup_message_cleanup_response() when requeuing an IO_ERROR-ed
|
||
message, so soup_session_send_message() will requeue it rather
|
||
than treating it as failed.
|
||
|
||
* docs/reference/Makefile.am (TARGET_DIR): override this to
|
||
include the API version, to fix the last remaining parallel
|
||
install issue between libsoup 2.2 and 2.4. #512810, Daniel
|
||
Gryniewicz.
|
||
|
||
* tests/query-test.c (do_test): don't use "stdout" as a variable
|
||
name; it's allowed to be a macro (and it is one on Solaris).
|
||
#513602, patch from Jeff Cai.
|
||
|
||
2008-01-31 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-date.c (soup_date_to_time_t): new
|
||
|
||
* libsoup/soup-form.c (soup_form_decode): Remove "_urlencoded"
|
||
from name. (And add back-compat #define.)
|
||
(soup_form_encode): New, takes varargs parameters for each form
|
||
construction.
|
||
(soup_form_encode_hash, soup_form_encode_datalist): renamed, with
|
||
back-compat #defines
|
||
(soup_form_request_new, soup_form_request_new_from_hash)
|
||
(soup_form_request_new_from_datalist): New methods to construct a
|
||
GET or POST message with form data.
|
||
|
||
* libsoup/soup-uri.c (soup_uri_set_query_from_fields): New, takes
|
||
varargs like soup_form_encode().
|
||
|
||
* libsoup/soup-value-utils.c (soup_value_hash_new_with_vals)
|
||
(soup_value_hash_insert_vals, soup_value_hash_lookup_vals): New
|
||
routines to work with multiple value hash values at once.
|
||
(soup_value_array_new): tiny wrapper, for naming consistency
|
||
(soup_value_array_new_with_vals, soup_value_array_append_vals):
|
||
New routines to work with multiple value array values at once.
|
||
|
||
2008-01-28 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: post-release bump to 2.3.1
|
||
|
||
2008-01-28 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: Bump version to 2.3.0.1
|
||
|
||
* NEWS: Update
|
||
|
||
* docs/reference/Makefile.am (content_files): include
|
||
porting-2.2-2.4.xml
|
||
|
||
2008-01-28 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message.c (soup_message_set_auth)
|
||
(soup_message_set_proxy_auth): Use soup_message_headers_replace(),
|
||
not soup_message_headers_append(), since only a single
|
||
Authorization/Proxy-Authorization header is allowed. #512517.
|
||
|
||
* libsoup/soup-auth-manager-ntlm.c (ntlm_request_started): Don't
|
||
set an NTLM Authorization header if the message already has a
|
||
Basic or Digest one.
|
||
|
||
* tests/ntlm-test.c: Add some Basic auth and mixed NTLM/Basic auth
|
||
tests
|
||
|
||
2008-01-28 Wouter Bolsterlee <wbolster@svn.gnome.org>
|
||
|
||
* docs/reference/libsoup-docs.sgml:
|
||
|
||
Changed section titles so that they actually show
|
||
something useful in DevHelp.
|
||
|
||
2008-01-27 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-dns.c (resolver_thread): fix mutex use to avoid a
|
||
race condition
|
||
|
||
* libsoup/soup-xmlrpc.c (soup_xmlrpc_build_faultv):
|
||
(soup_xmlrpc_set_response, soup_xmlrpc_set_fault):
|
||
(soup_xmlrpc_parse_method_call): Fix misc server-side stuff
|
||
(soup_xmlrpc_parse_method_response): Fix fault parsing
|
||
|
||
* libsoup/soup-xmlrpc.h (SoupXMLRPCFault): add semi-standard fault
|
||
codes from
|
||
http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php
|
||
|
||
* tests/xmlrpc-server.php (sum): return a <fault> if the arguments
|
||
are wrong (so that xmlrpc-test can test that case).
|
||
(dateChange): change to take two parameters, a date and a struct,
|
||
instead of putting the date in the struct, since we weren't
|
||
previously testing multiple parameter handling.
|
||
|
||
* tests/xmlrpc-test.c (main): Add a -u flag to specify an
|
||
alternate URL.
|
||
(do_xmlrpc): Remove level 3 debug output, which is now redundant
|
||
with the SoupLogger stuff.
|
||
(test_dateChange): update for dateChange prototype change
|
||
(test_fault_malformed, test_fault_method, test_fault_args): test
|
||
handling of faults
|
||
|
||
* tests/xmlrpc-server-test.c: Test the server-side XML-RPC API (by
|
||
implementing the same methods as xmlrpc-server.php and then
|
||
using xmlrpc-test)
|
||
|
||
2008-01-27 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-headers.c (soup_header_parse_quality_list): fix to
|
||
not sometimes read beyond the end of the string.
|
||
|
||
* libsoup/soup-message-body.c (soup_message_body_append): When
|
||
appending a 0-length SOUP_MEMORY_TAKE buffer, we need to free the
|
||
passed-in buffer rather than just ignoring it.
|
||
|
||
* libsoup/soup-message-headers.c (soup_message_headers_free): Fix
|
||
leak introduced by patch for 511980.
|
||
|
||
* libsoup/soup-server.c (got_headers): fix leak when decoding path
|
||
|
||
* libsoup/soup-session.c (finalize): free ntlm_manager
|
||
|
||
* tests/libsoup.supp: update for libsoup 2.4, glib 2.14, etc
|
||
|
||
* tests/header-parsing.c (do_qvalue_tests):
|
||
* tests/uri-parsing.c (main): more cleanup
|
||
|
||
2008-01-27 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-logger.c (soup_logger_attach): Fix session ids by
|
||
using weak refs for the logger cleanup rather than trying to use
|
||
the same qdata for two different things.
|
||
(print_request, print_response): use full type names in the
|
||
Soup-Debug line, since SoupSessionSync and SoupSessionAsync get
|
||
numbered separately.
|
||
|
||
2008-01-27 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session-async.c (final_finished): Don't run the
|
||
queue again if the callback destroyed the session. #511868, Stef
|
||
Walter.
|
||
|
||
2008-01-25 Srinivasa Ragavan <sragavan@novell.com>
|
||
|
||
** Fix for bug #511980
|
||
|
||
* libsoup/soup-message-headers.c: (soup_message_headers_clear):
|
||
Instead of destroying the hashtable, just remove the contents of the
|
||
table.
|
||
|
||
2008-01-23 Tor Lillqvist <tml@novell.com>
|
||
|
||
* configure.in: Allow autogening even without AM_PATH_LIBGCRYPT
|
||
available
|
||
|
||
* libsoup/soup-date.c (soup_date_new_from_time_t): Correct use of
|
||
gmtime().
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse_status_line): Return
|
||
FALSE if neither HTTP nor ICY. Avoids crash in
|
||
tests/header-parsing.
|
||
|
||
* libsoup/soup-socket.c: On Windows SHUT_RDWR is called SD_BOTH.
|
||
(set_nonblocking): Fix typo.
|
||
|
||
* tests/continue-test.c: Seems to build fine without <pthread.h>,
|
||
so drop that.
|
||
|
||
2008-01-18 Dan Winship <danw@gnome.org>
|
||
|
||
* tests/server-auth-test.c: test SOUP_AUTH_DOMAIN_REMOVE_PATH
|
||
|
||
2008-01-18 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: require glib 2.15.3, not 2.15.0, since
|
||
AM_PATH_GLIB_2_0 didn't know about gio until post-2.15.2. Pointed
|
||
out by Matthew Barnes, #510216.
|
||
|
||
2008-01-18 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-domain.c
|
||
(soup_auth_domain_set_generic_auth_callback):
|
||
(soup_auth_domain_check_password): add a new generic auth callback
|
||
that can be used with any subclass to do cleartext password
|
||
checking against messages. Suggested by Mathias Hasselmann.
|
||
|
||
* libsoup/soup-auth-domain-basic.c: Implement generic auth
|
||
|
||
* libsoup/soup-auth-domain-digest.c: Implement generic auth.
|
||
(soup_auth_domain_digest_evil_check_password): Gone, use the
|
||
generic version now.
|
||
|
||
2008-01-17 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-digest.c (soup_auth_digest_compute_hex_urp)
|
||
(soup_auth_digest_compute_hex_a1)
|
||
(soup_auth_digest_compute_response): cast the second arg to
|
||
g_checksum_update to (guchar *) to avoid warnings
|
||
|
||
2008-01-16 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse_status_line): Deal
|
||
with Shoutcast servers, which return "ICY 200 OK", but are
|
||
otherwise straight HTTP/1.0. #502325, Wouter Cloetens.
|
||
|
||
* tests/header-parsing.c (resptests): add a test for it
|
||
|
||
2008-01-16 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-manager.c (authorize_handler, etc): Allow the
|
||
session authenticate signal to be handled asynchronously, by
|
||
pausing the message and then authenticating the auth later.
|
||
(auth_type_compare_func): make this work. oops.
|
||
(extract_challenge): plug leak
|
||
|
||
* libsoup/soup-auth-manager-ntlm.c: Make this work async too.
|
||
|
||
* libsoup/soup-headers.c (soup_header_parse_list):
|
||
(soup_header_parse_param_list): plug leaks
|
||
|
||
* tests/auth-test.c (do_async_auth_test): test async auth
|
||
|
||
* docs/reference/client-howto.xml (Handling Authentication):
|
||
mention async auth
|
||
|
||
2008-01-16 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: Bomb out if glib 2.15.0 isn't found.
|
||
(AM_PATH_GLIB_2_0 doesn't do this itself.)
|
||
|
||
2008-01-15 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-manager-ntlm.c: Replaces SoupConnectionNTLM;
|
||
now works as a SoupSession::request_started watcher.
|
||
|
||
* libsoup/soup-connection.c: remove the no-longer-needed
|
||
"authenticate" signal
|
||
|
||
* libsoup/soup-session.c: Use a SoupAuthManagerNTLM if USE_NTLM is
|
||
set. Remove connection-authenticate-signal references.
|
||
|
||
2008-01-15 Dan Winship <danw@gnome.org>
|
||
|
||
* Merge libsoup-2.4 branch to trunk
|
||
|
||
2008-01-15 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-dns.c (resolve_status): Fix the logic here
|
||
|
||
2008-01-15 Dan Winship <danw@gnome.org>
|
||
|
||
* docs/reference/porting-2.2-2.4.xml: add a few more updates
|
||
|
||
2008-01-15 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-digest.c: Use GChecksum for MD5
|
||
|
||
* libsoup/soup-md5-utils.[ch]: gone
|
||
|
||
2008-01-15 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-server.c (soup_server_run_async):
|
||
(soup_server_quit): Don't ref/unref the server here. It doesn't
|
||
match the way other things work. #494128, Mathias Hasselmann.
|
||
|
||
2008-01-14 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-address.h:
|
||
* libsoup/soup-auth-domain-basic.h:
|
||
* libsoup/soup-auth-domain-digest.h:
|
||
* libsoup/soup-auth-domain.h:
|
||
* libsoup/soup-auth.h:
|
||
* libsoup/soup-logger.h:
|
||
* libsoup/soup-message.h:
|
||
* libsoup/soup-server.h:
|
||
* libsoup/soup-session-async.h:
|
||
* libsoup/soup-session-sync.h:
|
||
* libsoup/soup-session.h:
|
||
* libsoup/soup-socket.h: Add padding for future expansion to class
|
||
structs
|
||
|
||
2008-01-14 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-uri.c: Add more documentation.
|
||
(soup_uri_is_https): gone, replaced by SOUP_URI_SCHEME_HTTP /
|
||
SOUP_URI_SCHEME_HTTPS
|
||
(soup_uri_new): allow passing NULL to get back an "empty" SoupURI.
|
||
(soup_uri_to_string): rename just_path to just_path_and_query, to
|
||
avoid fooling people.
|
||
(soup_uri_decode, soup_uri_normalize): Change these to return the
|
||
decoded/normalized string rather than modifying it in place.
|
||
(soup_uri_set_scheme, etc): provide setters for SoupURI parts.
|
||
(soup_uri_set_query_from_form): set uri->query via
|
||
soup_form_encode_urlencoded().
|
||
|
||
2008-01-14 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: require glib 2.15.0, and gio
|
||
|
||
* libsoup/soup-dns.c (soup_dns_lookup_resolve)
|
||
(soup_dns_lookup_resolve_async): Add GCancellables, and support
|
||
cancellation of DNS lookups.
|
||
(resolve_address, resolve_name): If we get a DNS failure (eg,
|
||
because we're disconnected from the network), don't cache that
|
||
result, just try again next time someone asks. [#508593]
|
||
|
||
* libsoup/soup-address.c (soup_address_resolve_async)
|
||
(soup_address_resolve_sync): Add GCancellables, pass them to
|
||
soup-dns.
|
||
|
||
* libsoup/soup-socket.c (soup_socket_connect_async)
|
||
(soup_socket_connect_sync): Add GCancellables and implement
|
||
cancellation.
|
||
(soup_socket_start_ssl, soup_socket_start_proxy_ssl)
|
||
(soup_socket_read, soup_socket_read_until, soup_socket_write): add
|
||
GCancellables, though these routines don't actually implement
|
||
cancellation yet.
|
||
(soup_socket_disconnect): Don't close() the socket if someone is
|
||
doing I/O on it, as that creates a race condition. (The fd number
|
||
might be quickly recycled.) Instead, keep the socket open but
|
||
dead, via shutdown().
|
||
|
||
2008-01-14 Benjamin Otte <otte@gnome.org>
|
||
|
||
* libsoup/soup-socket.c: (soup_socket_class_init): clarify docs for
|
||
new-connection signal.
|
||
|
||
2008-01-14 Dan Winship <danw@gnome.org>
|
||
|
||
* tests/test-utils.c: renamed from apache-wrappers and expanded.
|
||
(test_init): do option parsing and general setup
|
||
(test_cleanup): print error count and do cleanup
|
||
(debug_printf): define here rather than in each test, and rename
|
||
from dprintf [#501631]
|
||
(soup_test_server_new): create a SoupServer, optionally in its own
|
||
thread, and clean it up when exiting.
|
||
(soup_test_session_new): create a SoupSession, optionally with
|
||
an attached SoupLogger (if requested via command line)
|
||
|
||
* tests/*.c: use test-utils
|
||
|
||
2008-01-13 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-logger.c: New HTTP debug logging object. (Based on
|
||
E2K_DEBUG and its clones.)
|
||
|
||
* libsoup/soup-message.c (soup_message_class_init)
|
||
(soup_message_add_header_handler)
|
||
(soup_message_add_status_code_handler): Change things around a
|
||
little; remove the "requeuing or cancelling the message stops
|
||
signal emission" rule, and instead make that be a feature of just
|
||
the header and status code handlers. (Makes the basic signal
|
||
handlers behave more predictably.)
|
||
|
||
2008-01-11 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-domain.c (soup_auth_domain_set_filter):
|
||
* libsoup/soup-auth-domain-basic.c
|
||
(soup_auth_domain_basic_set_auth_callback):
|
||
* libsoup/soup-auth-domain-digest.c
|
||
(soup_auth_domain_digest_set_auth_callback):
|
||
* libsoup/soup-message.c (soup_message_cleanup_response)
|
||
(soup_message_set_flags, soup_message_set_http_version)
|
||
(soup_message_set_uri, soup_message_set_status)
|
||
(soup_message_set_status_full):
|
||
* libsoup/soup-message-client-io.c (parse_response_headers):
|
||
* libsoup/soup-message-server-io.c (parse_request_headers):
|
||
Call g_object_notify() when changing properties.
|
||
|
||
* libsoup/soup-session.c (soup_session_class_init): bump the
|
||
default value of SOUP_SESSION_MAX_CONNS_PER_HOST down to 2, per
|
||
RFC 2616.
|
||
|
||
* libsoup/soup-message-body.c (soup_buffer_copy): When copying a
|
||
TEMPORARY buffer, keep a reference to the copy, so that a second
|
||
copy will get that same buffer, rather than actually copying it
|
||
again.
|
||
|
||
* libsoup/soup-types.h: remove SoupMessageFilter, which doesn't
|
||
exist any more
|
||
|
||
2008-01-07 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c (soup_session_class_init): Change
|
||
request_started signal to have a SoupSocket as its last parameter.
|
||
|
||
* libsoup/soup-server.c: Fix request_* signals to all be (server,
|
||
msg, client) rather than (server, client, msg).
|
||
|
||
2008-01-07 Dan Winship <danw@gnome.org>
|
||
|
||
* docs/reference/porting-2.2-2.4.xml: Notes on porting from 2.2 to
|
||
2.4
|
||
|
||
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:
|
||
* libsoup/soup-soap-response.c: For the second time, remove SOAP
|
||
support from libsoup... These APIs are not really all that helpful
|
||
in the grand scheme of SOAPiness, and are only used by the
|
||
Evolution GroupWise backend, which can just import this code and
|
||
integrate it better there.
|
||
|
||
* libsoup/soup-misc.c (soup_xml_real_node):
|
||
* libsoup/soup-xmlrpc.c: Move soup_xml_real_node out of soup-misc
|
||
to soup-xmlrpc, and make it private. libxml is no longer exposed
|
||
in the public API.
|
||
|
||
2008-01-06 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-date.c (soup_date_new_from_now): new method to
|
||
generate a date relative to now.
|
||
(soup_date_new, etc): document SoupDate methods
|
||
|
||
* libsoup/soup-server.c (got_headers): set Date header, as
|
||
required by RFC 2616
|
||
|
||
2008-01-06 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-server.c (got_headers): if raw_paths isn't set,
|
||
decode the request's uri->path before doing anything else
|
||
(soup_server_class_init): add "raw-paths" property, to tell
|
||
SoupServer to NOT decode the Request-URI path.
|
||
|
||
* libsoup/soup-auth-domain.c (soup_auth_domain_covers): Revert
|
||
earlier path-decoding change; that happens at the SoupServer level
|
||
now.
|
||
|
||
2008-01-06 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-body.c (soup_buffer_get_type): Register
|
||
SoupBuffer as a boxed type.
|
||
|
||
* libsoup/soup-message.c (soup_message_class_init): Use
|
||
SOUP_TYPE_BUFFER in got_chunk signal definition
|
||
|
||
* libsoup/soup-server.c (soup_client_context_get_type): Register
|
||
SoupClientContext as a pointer type
|
||
(soup_server_class_init): use SOUP_TYPE_CLIENT_CONTEXT in signal
|
||
definitions.
|
||
|
||
* libsoup/soup-marshal.list: clean this up
|
||
|
||
2008-01-06 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-server.c (SoupClientContext): Make this opaque.
|
||
(soup_client_context_get_socket)
|
||
(soup_client_context_get_auth_domain)
|
||
(soup_client_context_get_auth_user): New accessors
|
||
(soup_server_class_init): Make the signals take a
|
||
SoupClientContext rather than a SoupSocket.
|
||
(start_request, check_auth, call_handler, request_finished): Clean
|
||
these up by using a SoupClientContext to communicate between them.
|
||
(soup_server_add_handler): tweak the argument order to match the
|
||
gtk standard (callback, user_data, destroynotify).
|
||
|
||
2008-01-06 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-address.c: remove the "dns_result" signal, which
|
||
was just an implementation detail of soup_address_resolve_async().
|
||
|
||
2008-01-06 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/*.c: misc documentation updates/gtk-doc fixes
|
||
|
||
* libsoup/soup-server.c: finally start documenting this properly.
|
||
|
||
* libsoup/soup-status.h (SoupStatusClass): kill this, since
|
||
soup_message_add_status_class_handler() is gone now.
|
||
|
||
* libsoup/soup-status.c (soup_status_get_phrase): Update docs to
|
||
explain that you probably don't want to use this.
|
||
|
||
* libsoup/soup-misc.h (SOUP_SSL_ERROR, SoupSSLError): Move these
|
||
here, since soup-ssl.h isn't installed.
|
||
|
||
* docs/references: start updating this...
|
||
|
||
2008-01-04 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-body.c (soup_buffer_new)
|
||
(soup_message_body_append): Reorder the arguments to match
|
||
soup_message_set_request/response, so it's not confusing.
|
||
|
||
* libsoup/soup-message.c (wrote_chunk): remove the "chunk" arg
|
||
from the signal, as it turns out to be *in*convenient, since most
|
||
callers use this signal to mean "need another chunk", so they want
|
||
it to have the same prototype as "wrote_headers", which means
|
||
"need first chunk".
|
||
|
||
2008-01-04 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-domain.c: add documentation
|
||
(soup_auth_domain_set_filter): take a GDestroyNotify, for better
|
||
bindability
|
||
|
||
* libsoup/soup-auth-domain-basic.c:
|
||
* libsoup/soup-auth-domain-digest.c: Add documentation. Replace
|
||
authentication signals with more-easily-bindable authentication
|
||
callbacks (with GDestroyNotifys).
|
||
(soup_auth_domain_digest_evil_check_password): Add this for the
|
||
benefit of code that depends on being able to do the equivalent
|
||
of the old soup_server_auth_check_passwd().
|
||
|
||
2008-01-02 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-body.h (SoupMessageBody): add data and
|
||
length parameters like SoupBuffer, to make this easier for callers
|
||
to use.
|
||
|
||
* libsoup/soup-message-body.c (soup_message_body_append)
|
||
(soup_message_body_append_buffer)
|
||
(soup_message_body_truncate): Update body->length
|
||
(soup_message_body_flatten): Fill in body->data (and NUL-terminate
|
||
it as an added bonus).
|
||
|
||
* libsoup/soup-message.c (got_body): flatten the newly-gotten
|
||
body.
|
||
(soup_message_get_request, soup_message_get_response): gone
|
||
|
||
* libsoup/soup-message-client-io.c (get_request_headers):
|
||
* libsoup/soup-message-server-io.c (get_response_headers):
|
||
* libsoup/soup-soap-message.c (soup_soap_message_parse_response):
|
||
* tests/*.c: simplify
|
||
|
||
2008-01-02 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/Makefile.am (soup_headers): oops, move soup-auth.h here
|
||
|
||
2008-01-02 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-form.c: new HTML-form-related methods (just URI
|
||
decoding/encoding at the moment).
|
||
|
||
* libsoup/soup-server.h (SoupServerCallback): change the prototype
|
||
to include the decoded path and query rather than the undecoded
|
||
URI.
|
||
|
||
* libsoup/soup-server.c (call_handler): %-decode the URI path
|
||
before looking up a handler. Decode query if available. Pass path
|
||
and query to the callback.
|
||
|
||
* libsoup/soup-auth-domain.c (soup_auth_domain_covers): fix this
|
||
to %-decode the URI path before testing it
|
||
|
||
* libsoup/soup-message-body.c (soup_message_body_append): allow
|
||
0-length appends
|
||
|
||
* tests/query-test.c: URI query parsing test
|
||
|
||
2008-01-02 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-uri.c:
|
||
* libsoup/soup-uri.h: Change all the "const SoupURI *" to just
|
||
"SoupURI *", since the const is just there to be annoying.
|
||
|
||
* */*.c: update
|
||
|
||
2008-01-02 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-body.c (soup_message_body_get_length)
|
||
(soup_message_body_get_chunk): Use goffset rather than gsize for
|
||
references to the entire size of the message body. (SoupBuffer
|
||
still uses gsize, so individual chunks can only be G_MAXSIZE
|
||
long.)
|
||
|
||
* libsoup/soup-message-headers.c
|
||
(soup_message_headers_get_content_length):
|
||
(soup_message_headers_set_content_length): Likewise, use goffset.
|
||
|
||
2008-01-02 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-headers.c (soup_message_headers_get):
|
||
Renamed from soup_message_headers_find, and with new behavior; now
|
||
multiple headers with the same name are automatically merged
|
||
together into a single comma-separated value, to ensure that apps
|
||
treat multivalued headers the same regardless of how upstream
|
||
servers generate them.
|
||
(soup_message_headers_find_nth): no longer needed/wanted
|
||
|
||
* libsoup/soup-auth-manager.c: Update to deal with
|
||
SoupMessageHeaders change. (Ugh.)
|
||
|
||
* tests/header-parsing.c: Update multiple-values test, and undo a
|
||
change that mistakenly got committed while debugging something
|
||
earlier.
|
||
|
||
2008-01-01 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-manager.c:
|
||
* libsoup/soup-dns.c:
|
||
* libsoup/soup-gnutls.c:
|
||
* libsoup/soup-message.c:
|
||
* libsoup/soup-message-io.c:
|
||
* libsoup/soup-message-queue.c:
|
||
* libsoup/soup-misc.c:
|
||
* libsoup/soup-path-map.c:
|
||
* libsoup/soup-server.c:
|
||
* libsoup/soup-session.c:
|
||
* libsoup/soup-session-sync.c:
|
||
* libsoup/soup-socket.c: Use g_slice.
|
||
|
||
2008-01-01 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c (soup_session_cancel_message): add a
|
||
"status_code" argument rather than having the caller set the
|
||
status code separately, to prevent a race condition.
|
||
|
||
2008-01-01 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c (soup_session_queue_message): change the
|
||
callback type to include the SoupSession as a parameter as well.
|
||
|
||
* *.c: update
|
||
|
||
2007-12-31 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c (soup_session_class_init): change
|
||
the "authenticate" signal to include a SoupAuth rather than its
|
||
components, and to have a "retrying" parameter rather than
|
||
separating "authenticate" and "reauthenticate".
|
||
|
||
* libsoup/soup-connection.c (soup_connection_class_init): Likewise
|
||
|
||
* libsoup/soup-auth-manager.c (authenticate_auth): update
|
||
|
||
* libsoup/soup-auth.c: make various attributes into gobject
|
||
properties.
|
||
(soup_auth_is_for_proxy): check whether an auth is plain or proxy
|
||
(soup_auth_get_host): get the hostname associated with an auth
|
||
|
||
* libsoup/soup-auth-ntlm.c: dummy class used by SoupConnectionNTLM
|
||
in the authenticate signal
|
||
|
||
* libsoup/soup-connection-ntlm.c (ntlm_authorize_pre): update for
|
||
authenticate signals changes; use a fake SoupAuthNTLM to assist.
|
||
|
||
2007-12-20 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message.c (soup_message_add_header_handler)
|
||
(soup_message_add_status_code_handler): Make these be wrappers
|
||
around g_signal_connect() rather than having a completely separate
|
||
system.
|
||
(soup_message_class_init): improve signal docs. Use
|
||
"got_foo_signal_wrapper" to wrap the got-foo signals.
|
||
(got_foo_signal_wrapper): Wraps the marshaller for the got-foo
|
||
signals and cancels the signal emission if the message gets
|
||
cancelled or requeued.
|
||
(got_informational, got_headers, got_chunk, got_body): remove
|
||
no-longer-needed default implementations.
|
||
|
||
* libsoup/soup-message-handlers.c: gone
|
||
|
||
* tests/ntlm-test.c (do_message): Simplify now that callback
|
||
processing doesn't happen in two separate phases.
|
||
|
||
2007-12-20 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-domain.c:
|
||
* libsoup/soup-auth-domain-basic.c:
|
||
* libsoup/soup-auth-domain-digest.c: New server-side auth system.
|
||
|
||
* libsoup/soup-server.c: remove SoupServerAuth / SoupAuthContext
|
||
stuff, add SoupAuthDomain support.
|
||
(SoupServerCallbackFn): improve the args here
|
||
(SoupClientContext): renamed from SoupServerContext and made less
|
||
redundant
|
||
|
||
* libsoup/soup-server-auth.c: gone!
|
||
|
||
* libsoup/soup-auth-digest.c (soup_auth_digest_parse_algorithm)
|
||
(soup_auth_digest_get_algorithm, soup_auth_digest_parse_qop)
|
||
(soup_auth_digest_get_qop, soup_auth_digest_compute_hex_urp)
|
||
(soup_auth_digest_compute_hex_a1)
|
||
(soup_auth_digest_compute_response): New routines shared between
|
||
client-side and server-side digest auth.
|
||
|
||
* tests/server-auth-test.c: test server-side auth, using curl for
|
||
the client side
|
||
|
||
* configure.in: check for curl, for server-auth-test
|
||
|
||
2007-12-20 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-headers.c (soup_header_parse_list)
|
||
(soup_header_parse_quality_list): New methods to parse list-type
|
||
headers (with optional qvalues) correctly.
|
||
(soup_header_parse_param_list): Rename to match the other methods,
|
||
and update the semantics a bit.
|
||
(soup_header_contains): Correctly check for a token in a list
|
||
|
||
* libsoup/soup-message.c (soup_message_is_keepalive):
|
||
* libsoup/soup-message-client-io.c (get_request_headers):
|
||
* libsoup/soup-message-server-io.c (parse_request_headers): Use
|
||
soup_header_contains() with Connection headers.
|
||
|
||
* tests/header-parsing.c (do_qvalue_tests): add
|
||
soup_header_parse_quality_list() test
|
||
|
||
2007-12-20 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth-manager.c: Move auth-related code from
|
||
SoupSession and SoupAuth here, and make various cleanups and
|
||
beginnings of cleanups.
|
||
|
||
* libsoup/soup-session.c: lots of stuff moved to
|
||
soup-auth-manager.c
|
||
|
||
* libsoup/soup-auth.c (soup_auth_new_from_headers): partly moved
|
||
to soup-auth-manager.c, partly renamed to soup_auth_new().
|
||
(soup_auth_update): new method to update an existing auth based on
|
||
a new WWW-Authenticate/Proxy-Authenticate header. Also replaces
|
||
the old "construct" method.
|
||
|
||
* libsoup/soup-auth-digest.c (update): Implement. If the new auth
|
||
has stale=true, don't invalidate the auth, just update the nonce.
|
||
(get_authorization): add a header handler to the message to catch
|
||
Authentication-Info/Proxy-Authentication-Info headers so that if
|
||
there's a nextnonce, we can start using it. #471380.
|
||
|
||
* libsoup/soup-auth-basic.c (update): Implement. (Updating an
|
||
existing Basic auth always invalidates it.)
|
||
|
||
* tests/http.conf.in:
|
||
* tests/auth-test.c: add a test for digest nonce handling
|
||
|
||
2007-12-20 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-path-map.c: New type representing a sparse
|
||
path->something mapping
|
||
|
||
* libsoup/soup-server.c: Use SoupPathMap to record handlers. Make
|
||
SoupServerHandler a private type.
|
||
(soup_server_new): Rewrite this to just be a thin wrapper, and put
|
||
all of the code into a constructor override. #491653
|
||
(soup_server_add_handler): Turn the "unregister" arg into a
|
||
GDestroyNotify, for better bindability.
|
||
|
||
2007-12-19 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-server.c: define new request_started, request_read,
|
||
request_finished, and request_aborted signals, for finer-grained
|
||
tracking than normal handlers allow.
|
||
(check_auth): split this out of call_handler, and run it
|
||
immediately after "got_headers", not "got_body", so that we can
|
||
preemptively reject "Expect: 100-continue" messages that will
|
||
require auth.
|
||
|
||
* libsoup/soup-message-io.c (io_write, io_read): Fix up
|
||
100-continue processing
|
||
|
||
* tests/continue-test.c: new test of client/server 100-continue
|
||
processing
|
||
|
||
2007-12-19 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-socket.c: Cleanup. Remove the "connect_result"
|
||
signal. Make local_address and remote_address
|
||
into (construct-only) properties.
|
||
(soup_socket_connect_async, soup_socket_connect_sync): Replace
|
||
soup_socket_connect. _async takes a callback+user_data (like the
|
||
old soup_socket_client_new_async), but doesn't implement the
|
||
callback in terms of a connect_result signal.
|
||
(soup_socket_client_new_async, soup_socket_client_new_sync): Gone.
|
||
(Unused since the async_context addition anyway). Replaced by the
|
||
new construct properties and connect methods.
|
||
(soup_socket_read, soup_socket_read_until, soup_socket_write):
|
||
Make these actually take a GError rather than doing an ugly hack
|
||
to preserve the old API.
|
||
(SOUP_SOCKET_FLAG_NODELAY, SOUP_SOCKET_FLAG_REUSEADDR)
|
||
(SOUP_SOCKET_FLAG_CLOEXEC): kill these off (all three are always
|
||
TRUE now); SoupSocket is libsoup's socket API; it's not
|
||
necessarily intended to be generically useful for everyone.
|
||
|
||
* *.c: Update for SoupSocket changes
|
||
|
||
2007-12-19 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-server-message.c: Kill!
|
||
|
||
* libsoup/soup-message-server-io.c (parse_request_headers):
|
||
Generate the full request URL from the socket's data, since we no
|
||
longer have soup_server_message_get_server().
|
||
|
||
* libsoup/soup-server.c (request_finished, call_handler)
|
||
(start_request, new_connection): update
|
||
|
||
2007-12-19 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-headers.c: Add some more fields to
|
||
SoupMessageHeaders, and start caching the parsed values of certain
|
||
important headers.
|
||
(soup_message_headers_get/set_encoding): replaces old SoupMessage
|
||
methods, and only deals with the declared transfer encoding, not
|
||
the wire encoding.
|
||
(soup_message_headers_get/set_content_length): Handle
|
||
Content-Length.
|
||
(soup_message_headers_get_expectations): Handle Expect. (Replaces
|
||
the SOUP_MESSAGE_EXPECT_CONTINUE flag).
|
||
|
||
* libsoup/soup-message.c (soup_message_get_request_encoding):
|
||
(soup_message_get_response_encoding):
|
||
(soup_message_set_response_encoding): replaced by
|
||
SoupMessageHeaders methods.
|
||
|
||
* libsoup/soup-message-client-io.c:
|
||
* libsoup/soup-message-server-io.c:
|
||
* libsoup/soup-message-io.c: Update for SoupMessageHeaders changes
|
||
with encoding/content-length stuff.
|
||
|
||
2007-12-19 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-body.c (SoupMessageBody): new opaque type
|
||
for request/response bodies allowing less hacky handling of
|
||
chunked encoding.
|
||
(SoupBuffer): refcounted buffer type
|
||
|
||
* libsoup/soup-message.h (SoupMessage): turn request and response
|
||
members into SoupMessageBody.
|
||
(SoupOwnership, SoupDataBuffer): gone, replaced by
|
||
SoupMessageBody/SoupBuffer.
|
||
|
||
* libsoup/soup-message.c (soup_message_wrote_chunk)
|
||
(soup_message_got_chunk): add the chunk as a signal param rather
|
||
than having it be visible in msg->request/response.
|
||
(soup_message_add_chunk, soup_message_add_final_chunk)
|
||
(soup_message_pop_chunk): replaced by SoupMessageBody methods now.
|
||
|
||
2007-12-19 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-xmlrpc.c:
|
||
* libsoup/soup-value-utils.c: Oops. Change the API a bunch so this
|
||
works on x86; apparently I was doing illegal things with va_lists
|
||
before that only work on x86_64.
|
||
|
||
2007-12-14 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message.c: use GObject properties for SoupMessage
|
||
fields.
|
||
|
||
* libsoup/soup-message-server-io.c:
|
||
* libsoup/soup-soap-message.c: update for that
|
||
|
||
2007-12-14 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-uri.c: Rename from SoupUri to SoupURI. Use the
|
||
slice allocator and register as a boxed type.
|
||
(SoupURI): Rename "protocol" field to "scheme" and "passwd" to
|
||
"password". Make scheme an interned string. Replace
|
||
SOUP_PROTOCOL_HTTPS with soup_uri_is_https().
|
||
|
||
* *.c: update
|
||
|
||
2007-12-14 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/Makefile.am: Use glib-mkenums to build soup-enum-types.c
|
||
and soup-enum-types.h
|
||
|
||
* libsoup/soup-address.h (SoupAddressFamily): redo this definition
|
||
again, to make glib-mkenums happy.
|
||
|
||
2007-12-13 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-xmlrpc.c: New easier-to-use and
|
||
easier-to-do-language-bindings-of XML-RPC code.
|
||
|
||
* libsoup/soup-xmlrpc-message.c:
|
||
* libsoup/soup-xmlrpc-response.c: gone
|
||
|
||
* libsoup/soup-value-utils.c: Utilites for working with
|
||
GValueArray, and GHashTables of GValues, used by soup-xmlrpc.
|
||
|
||
* tests/getbug.c:
|
||
* tests/xmlrpc-test.c: Update to use new XML-RPC stuff
|
||
|
||
2007-12-13 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-date.c: Make a SoupDate type, and redo in terms of
|
||
that rather than struct tm and time_t. Also be much more liberal
|
||
when parsing.
|
||
|
||
* libsoup/soup-xmlrpc-message.c (soup_xmlrpc_message_write_datetime):
|
||
* libsoup/soup-xmlrpc-response.c (soup_xmlrpc_value_get_datetime):
|
||
Use SoupDate.
|
||
|
||
* tests/date.c: Use SoupDate, test parsing lots more formats
|
||
|
||
* tests/xmlrpc-test.c: update for SoupDate
|
||
|
||
2007-12-12 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message.c:
|
||
* libsoup/soup-message-private.h: Remove SoupMessageStatus,
|
||
msg->status, and soup_message_io_* from the public API, as they
|
||
all really belong to the session, not the message. (For now
|
||
they've just been moved to soup-message-private.h, but some day
|
||
they'll be fully refactored away from SoupMessage.)
|
||
|
||
* libsoup/soup-server.c (soup_server_pause_message)
|
||
(soup_server_unpause_message):
|
||
* libsoup/soup-session.c (soup_session_pause_message)
|
||
(soup_session_unpause_message): session/server-level methods to
|
||
replace soup_message_io_pause() and soup_message_io_unpause().
|
||
|
||
* libsoup/soup-server-message.c: Remove some unused methods
|
||
|
||
* */*.c: Update
|
||
|
||
2007-12-05 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-connection.c:
|
||
* libsoup/soup-session.c: replace message filters with a
|
||
"request_started" signal
|
||
|
||
* libsoup/soup-message-filter.c: gone
|
||
|
||
* libsoup/soup-types.h (SOUP_MAKE_INTERFACE): no longer needed
|
||
|
||
2007-12-05 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-uri.c: Update for RFC 3986 changes, bgo 266516, and
|
||
general conformance
|
||
(soup_uri_get_protocol): match protocols case-insensitively
|
||
(soup_uri_new_with_base): Don't fully %-decode the fragment,
|
||
query, and path, but do %-decode anything which isn't supposed to
|
||
be encoded. Recognize IPv6 address literals. Use stricter
|
||
"../"-stripping rules on the path. Reject URIs with junk between
|
||
the port number and the path.
|
||
(soup_uri_to_string): Update for the fact that the host might be
|
||
an IPv6 literal, and for the fact that path, query, and fragment
|
||
are now pre-escaped.
|
||
(soup_uri_equal): compare hostnames case-insensitively
|
||
(uri_encoded_char): update to match RFC 3986
|
||
(append_uri_encoded): use uppercase hex letters as recommended by
|
||
RFC 3986.
|
||
(soup_uri_normalize): decode only %-escapes that don't belong
|
||
there.
|
||
|
||
* docs/reference/tmpl/soup-uri.sgml: add some more SoupUri docs
|
||
|
||
* tests/uri-parsing.c: Add new tests from RFC 3986, RFC 2732, RFC
|
||
2616, bgo 266516, and elsewhere. Update some tests to match new
|
||
parsing/unparsing rules.
|
||
|
||
2007-12-05 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message.c (soup_message_new)
|
||
(soup_message_new_from_uri): g_intern_string() the method name
|
||
rather than assuming it's static. Also remove the NULL==GET
|
||
assumption.
|
||
|
||
* libsoup/soup-method.c:
|
||
* libsoup/soup-method.h: remove the SOUP_METHOD_ID_* macros, and
|
||
have the SOUP_METHOD_* macros return interned strings
|
||
|
||
* libsoup/soup-server.h (SoupServerContext): remove method_id
|
||
field.
|
||
|
||
* libsoup/soup-server-message.c (finalize): no longer needed,
|
||
since smsg->method is now an interned string just like with a
|
||
normal SoupMessage.
|
||
|
||
* libsoup/soup-soap-message.c (soup_soap_message_new_from_uri):
|
||
remove NULL==GET assumption
|
||
|
||
* *.c: update
|
||
|
||
2007-12-05 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message.h (SoupHTTPVersion): rename (from
|
||
SoupHttpVersion)
|
||
|
||
* libsoup/soup-message-headers.c: New opaque type representing
|
||
message headers, and new methods that work on it. Uses an array
|
||
rather than a hash table, to preserve header ordering as required
|
||
by RFC 2616. (Also fixes the API wart that
|
||
"soup_message_get_header", etc, did not actually take a
|
||
SoupMessage.)
|
||
|
||
* libsoup/soup-message.c: Kill off old header-manipulating
|
||
methods.
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse_request): return a
|
||
guint rather than gboolean, so we can properly return
|
||
SOUP_STATUS_HTTP_VERSION_NOT_SUPPORTED where appropriate. Also fix
|
||
up HTTP-Version parsing to conform with the RFC.
|
||
(soup_headers_parse_status_line): Likewise update HTTP-Version
|
||
parsing.
|
||
|
||
* libsoup/soup-message-server-io.c (parse_request_headers): set
|
||
return status appropriately on parse errors
|
||
|
||
* tests/header-parsing.c: update / add more tests
|
||
|
||
* *.c: update
|
||
|
||
2007-12-05 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-misc.c: remove deprecated base64 methods
|
||
|
||
* tests/auth-test.c (identify_auth): oops, update to use
|
||
g_base64_decode.
|
||
|
||
2007-12-05 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/Makefile.am (libsoupinclude_HEADERS): remove
|
||
soup-connection.h and soup-message-queue.h
|
||
|
||
* libsoup/soup-types.h: remove SoupConnection and SoupMessageQueue
|
||
which are no longer public
|
||
|
||
* libsoup/soup.h: sync this to reality for the first time in years
|
||
|
||
* libsoup/soup-session.c (soup_session_get_queue): Add this, for
|
||
subclasses, as the queue is no longer a public part of the session
|
||
struct.
|
||
|
||
* libsoup/soup-message.h:
|
||
* libsoup/soup-message-private.h: Move soup_message_send_request()
|
||
and soup_message_receive_request() to soup-message-private.h,
|
||
remove soup_message_send_request_internal().
|
||
|
||
* libsoup/soup-session-private.h: Move "protected" SoupSession
|
||
methods (soup_session_get_connection,
|
||
soup_session_try_prune_connection) here from soup-session.h
|
||
Add soup_session_get_queue.
|
||
|
||
2007-12-05 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: bump version to 2.3.0 and SOUP_API_VERSION to 2.4,
|
||
and drop AGE/CURRENT/REVISION all to 0.
|
||
|
||
* libsoup/Makefile.am: Rename library to libsoup-2.4.la
|
||
|
||
(start of libsoup-2.4 branch)
|
||
|
||
2007-11-26 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.2.104
|
||
|
||
* NEWS: update
|
||
|
||
2007-11-21 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-io.c (soup_message_io_cleanup): make this
|
||
non-static.
|
||
|
||
* libsoup/soup-message.c (finalize): Use soup_message_io_cleanup()
|
||
rather than soup_message_io_stop(), to avoid leaks when finalizing
|
||
an unfinished message. (Another part of #498509, Wouter Cloetens.)
|
||
|
||
2007-11-20 Dan Winship <danw@gnome.org>
|
||
|
||
Fix up SOUP_SESSION_ASYNC_CONTEXT. #498509, Wouter Cloetens
|
||
|
||
* libsoup/soup-message-io.c (soup_message_io_unpause): don't leak
|
||
the async_context
|
||
|
||
* libsoup/soup-server.c (soup_server_quit): disconnect the
|
||
"new_connection" handler.
|
||
(soup_server_get_async_context): Convenience method to return the
|
||
server's async_context.
|
||
|
||
* libsoup/soup-server-message.c: don't circularly ref the server,
|
||
there's no need anyway.
|
||
|
||
* libsoup/soup-session.c (soup_session_get_async_context):
|
||
Convenience method to return the session's async_context.
|
||
|
||
* libsoup/soup-session-async.c (queue_message): call run_queue in
|
||
the session's async_context, not the main context.
|
||
(send_message): don't leak the async_context
|
||
|
||
* libsoup/soup-session-sync.c (queue_message_thread): don't leak
|
||
the async_context
|
||
|
||
* tests/context-test.c: test that SOUP_SESSION_ASYNC_CONTEXT works
|
||
and doesn't leak
|
||
|
||
2007-11-20 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-connection.c (soup_connection_connect_async): don't
|
||
leak the SoupAddress.
|
||
|
||
* libsoup/soup-dns.c (soup_dns_lookup_resolve_async): fix a leak
|
||
when re-looking up an address
|
||
|
||
* libsoup/soup-session.c (soup_session_abort): close all
|
||
connections in addition to cancelling messages (needed because
|
||
connections currently end up holding a ref on their session,
|
||
preventing them from being destroyed).
|
||
|
||
* tests/auth-test.c:
|
||
* tests/ntlm-test.c:
|
||
* tests/proxy-test.c:
|
||
* tests/pull-api.c:
|
||
* tests/ssl-test.c:
|
||
* tests/xmlrpc-test.c: clean up more memory on exit, to help find
|
||
leaks in the library
|
||
|
||
* tests/libsoup.supp: add a zillion new suppressions so we
|
||
can use --leak-resolution=med
|
||
|
||
2007-11-16 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message-io.c (read_body_chunk): Fix the guards
|
||
around the got_chunk emission so that it doesn't get messed up if
|
||
you pause the I/O from the got_chunk handler. (#452280, Marco
|
||
Barisione).
|
||
(soup_message_io_pause, soup_message_io_unpause): Update docs
|
||
again; these are now allowed with client-side I/O as well. Fix
|
||
unpause() to unpause asynchronously on async sockets.
|
||
|
||
* libsoup/soup-session-async.c (send_message): Iterate session's
|
||
async_context, not the default main context.
|
||
|
||
* tests/pull-api.c: Test/sample of creating a pull-style API using
|
||
SoupSessionAsync.
|
||
|
||
* tests/index.txt: new file to act as DirectoryIndex for the
|
||
tests. (In particular, pull-api wants this to be largeish.)
|
||
|
||
2007-10-28 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.2.103
|
||
|
||
* NEWS: update
|
||
|
||
2007-10-28 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-server.c (start_request, request_finished): ref the
|
||
socket around the processing of the message, since otherwise it
|
||
might already be freed when request_finished runs. #459896.
|
||
|
||
* libsoup/soup-message-io.c (soup_message_io_pause)
|
||
(soup_message_io_unpause): Clarify the docs here; this is for
|
||
server-side use only. Inspired by #452280.
|
||
|
||
* docs/reference/server-howto.xml: You need to watch the
|
||
"finished" signal on the message if using soup_message_io_pause()
|
||
or chunked encoding, because the client might disconnect while
|
||
you're paused. Clarification inspired by #471385.
|
||
|
||
* tests/simple-proxy.c (client_msg_failed): Fix this to DTRT since
|
||
server-howto.xml points to it as an example of what to do.
|
||
|
||
2007-10-28 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-session.c (finalize): free proxy-related stuff
|
||
|
||
* libsoup/soup-session-async.c (idle_run_queue): clean up the weak
|
||
pointer. (From the dev repo, but identical to a patch from Rob
|
||
Bradford in #484988.)
|
||
|
||
* tests/*.c: fix leaks
|
||
|
||
2007-10-28 Dan Winship <danw@gnome.org>
|
||
|
||
* tests/auth-test.c:
|
||
* tests/date.c:
|
||
* tests/header-parsing.c:
|
||
* tests/ntlm-test.c:
|
||
* tests/proxy-test.c:
|
||
* tests/uri-parsing.c:
|
||
* tests/xmlrpc-test.c: Make these less verbose by default (to make
|
||
it easier to see what failed when a "make check" fails).
|
||
|
||
2007-10-15 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.2.102
|
||
|
||
* NEWS: update
|
||
|
||
2007-10-08 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-nossl.c: Update for current soup-ssl.h prototypes
|
||
|
||
* tests/proxy-test.c (run_test): wrap https tests in #if HAVE_SSL
|
||
|
||
2007-10-05 Dan Winship <danw@gnome.org>
|
||
|
||
* configure.in: 2.2.101
|
||
|
||
* NEWS: update
|
||
|
||
* tests/httpd.conf.in:
|
||
* tests/Makefile.am:
|
||
* tests/ssl-test.c: srcdir != builddir fixes
|
||
|
||
2007-10-05 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-connection-ntlm.c (ntlm_authorize_pre): Don't crash
|
||
if the authenticate callback returns a username and no password
|
||
(even though it's not supposed to do that). #480987
|
||
|
||
2007-09-24 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-auth.h (SoupAuth): add "realm" field to the struct.
|
||
(SoupAuthClass) remove "get_realm" virtual method.
|
||
|
||
* libsoup/soup-auth.c (soup_auth_new_from_header_list): Parse the
|
||
WWW-Authenticate/Proxy-Authenticate header here, set realm, and
|
||
pass the params hash to the construct method.
|
||
(soup_auth_get_info): Return an identifier for the auth:
|
||
"SCHEME:REALM"
|
||
|
||
* libsoup/soup-auth-basic.c:
|
||
* libsoup/soup-auth-digest.c: update
|
||
|
||
* libsoup/soup-session.c (invalidate_auth, update_auth_internal):
|
||
use soup_auth_get_info().
|
||
|
||
2007-09-24 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-date.c (soup_date_parse): minor rfc850-date parsing
|
||
improvement suggested by RFC2616 19.3.
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse_request): allow
|
||
erroneous trailing whitespace after HTTP version. #475169
|
||
|
||
* libsoup/soup-message-server-io.c (parse_request_headers): fix
|
||
the parsing of the Host header to assume it already includes the
|
||
port (which it should; the only reason this ever worked is because
|
||
SoupUri ignores the second port number when parse_request_headers
|
||
generates a URL like "http://localhost:9999:9999/").
|
||
|
||
* tests/header-parsing.c (reqtests): add a test for #475169
|
||
|
||
2007-09-23 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message.c (soup_message_class_init): remove a
|
||
mysterious partial sentence in the ::wrote-chunk docstring.
|
||
#458116
|
||
|
||
* docs/reference/libsoup-sections.txt: Remove documentation of MD5
|
||
methods, which are not public. #440092
|
||
|
||
2007-09-23 Dan Winship <danw@gnome.org>
|
||
|
||
* libsoup/soup-message.c (soup_message_set_auth)
|
||
(soup_message_set_proxy_auth): Only remove the Authorization /
|
||
Proxy-Authorization header from the message if it was previously
|
||
set by soup_message_set_auth(). (Eg, not if it was added by
|
||
SoupConnectionNTLM.) #471389
|
||
|
||
* libsoup/soup-connection-ntlm.h: fix a search-and-replace-o
|
||
|
||
* tests/ntlm-test.c: Simple NTLM regression test; doesn't really
|
||
test the crypto/encoding bits, just that the right headers are
|
||
being sent at the right times.
|
||
|
||
2007-09-14 Dan Winship <danw@gnome.org>
|
||
|
||
Make "make check" pass on Fedora 7:
|
||
|
||
* configure.in: update apache/php tests with additional filenames
|
||
|
||
* tests/httpd.conf.in: updates for configure.in changes and
|
||
slightly-more-recent apache
|
||
|
||
* tests/ssl-test.c (start_writing): fix uninitialized struct field
|
||
(main): start server after setting up client since otherwise
|
||
there's a race condition since soup_gnutls_init() isn't actually
|
||
thread-safe. (FIXME)
|
||
|
||
* tests/xmlrpc-server.php: rewrite to not use $HTTP_RAW_POST_DATA
|
||
(which only exists if register_globals is set)
|
||
|
||
2007-06-01 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-message-filter.h (SOUP_IS_MESSAGE_FILTER_CLASS):
|
||
fix. noted by "cascardo" on libsoup-list.
|
||
|
||
2007-05-16 Jonathon Jongsma <jjongsma@gnome.org>
|
||
|
||
* libsoup/*.h: add G_BEGIN_DECLS / G_END_DECLS to all installed
|
||
headers so that libsoup can be used from C++ programs. #438776
|
||
|
||
2007-04-16 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-ssl.h: Make a real SoupSSLCredentials type rather
|
||
than just using gpointer
|
||
|
||
* libsoup/soup-server.c (SoupServerPrivate): use it
|
||
|
||
* libsoup/soup-session.c (SoupSessionPrivate): use it
|
||
|
||
* libsoup/soup-gnutls.c: Use it, and consistently use "creds"
|
||
rather than "cred" as the abbreviation for "credentials".
|
||
|
||
* docs/reference/libsoup-sections.txt:
|
||
* docs/reference/tmpl/soup-misc.sgml:
|
||
* docs/reference/tmpl/soup-ssl.sgml: update
|
||
|
||
2007-03-29 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-session-sync.c (queue_message): Implement this by
|
||
sending the message (synchronously) in another thread and then
|
||
queueing the callback back in the main thread.
|
||
|
||
* libsoup/soup-session.c (soup_session_queue_message): update docs
|
||
to be more explicit about what thread the callback occurs in
|
||
|
||
2007-03-17 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-message.c (soup_message_set_auth)
|
||
(soup_message_get_auth, soup_message_set_proxy_auth)
|
||
(soup_message_get_proxy_auth): get/set auth/proxy_auth info for a
|
||
message.
|
||
|
||
* libsoup/soup-session.c (add_auth): Use soup_message_set_auth and
|
||
soup_message_set_proxy_auth.
|
||
(update_auth_internal): Call soup_message_get_auth or
|
||
soup_message_get_proxy_auth to determine the message's prior auth,
|
||
rather than calling lookup_auth() again, since it isn't guaranteed
|
||
to return the same thing now as it did when the message was
|
||
originally sent. Fixes erroneous 401s when queuing multiple
|
||
messages at once to an as-yet-unauthenticated-to server. #271540
|
||
|
||
* libsoup/soup-session-async.c (queue_message): don't run the
|
||
queue right away, do it at idle time. Otherwise in some cases
|
||
(especially errors), the message callbacks could be invoked before
|
||
queue_message returns.
|
||
|
||
* tests/auth-test.c: add a regression test for #271540.
|
||
|
||
2007-03-17 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: require glib 2.12. check for timegm().
|
||
|
||
* libsoup/soup-date.c (soup_mktime_utc): Use timegm if available.
|
||
(soup_date_iso8601_parse): use g_time_val_from_iso8601. #337010,
|
||
patch from Emmanuele Bassi.
|
||
|
||
* libsoup/soup-types.h: remove local copy of
|
||
G_GNUC_NULL_TERMINATED since we now depend on a new-enough copy of
|
||
glib.
|
||
|
||
* libsoup/soup-misc.c (soup_base64_encode_close)
|
||
(soup_base64_encode_step, soup_base64_encode)
|
||
(soup_base64_decode_step): Make these just be wrappers around the
|
||
glib base64 methods. (For now; eventually they'll just go away.)
|
||
|
||
* libsoup/soup-auth-basic.c (authenticate):
|
||
* libsoup/soup-auth-digest.c (authenticate):
|
||
* libsoup/soup-connection-ntlm.c (soup_ntlm_parse_challenge)
|
||
(soup_ntlm_response):
|
||
* libsoup/soup-server-auth.c (soup_server_auth_new):
|
||
* libsoup/soup-soap-message.c (soup_soap_message_write_base64):
|
||
* libsoup/soup-xmlrpc-message.c
|
||
(soup_xmlrpc_message_write_base64):
|
||
* libsoup/soup-xmlrpc-response.c (soup_xmlrpc_value_get_base64):
|
||
Use glib base64 methods
|
||
|
||
2007-03-16 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-message.c (soup_message_get_response_encoding):
|
||
update the handling of CONNECT: it has no response body by
|
||
default, but does have a body if its headers say so.
|
||
|
||
* tests/proxy-test.c: test libsoup's behavior when talking to
|
||
proxies.
|
||
|
||
* tests/httpd.conf.in: Load mod_proxy and mod_ssl, and add
|
||
sections configuring them, for proxy-test
|
||
|
||
* configure.in: update the apache-module-dir-finding code to deal
|
||
with the fact that some modules (eg, mod_ssl) might only be in the
|
||
mpm-specific module dir, while others (eg, mod_php5) might only be
|
||
in the generic module dir.
|
||
|
||
2007-03-12 Dan Winship <danw@novell.com>
|
||
|
||
* tests/Makefile.am (INCLUDES): add $(LIBGNUTLS_CFLAGS) for
|
||
ssl-test. #417617, patch from Elijah Newren.
|
||
|
||
2007-03-12 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-session-sync.c (wait_for_connection): if
|
||
soup_connection_connect_sync() returns SOUP_STATUS_TRY_AGAIN, then
|
||
try again. (Duh.) Fixes SSL-via-proxy-when-using-synchronous-I/O-
|
||
where-the-proxy-closes-the-connection-when-returning-407. (Reported
|
||
by Varadhan.)
|
||
|
||
* tests/get.c: Rewrite to use soup_session_send_message rather
|
||
than soup_session_queue_message, and add a "-s" flag to use
|
||
SoupSessionSync rather than SoupSessionAsync (so we can test bugs
|
||
in the sync code paths).
|
||
|
||
2007-03-08 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-gnutls.c (do_handshake): don't return
|
||
G_IO_STATUS_AGAIN if we're doing blocking I/O; just keep retrying
|
||
until the handshake is complete.
|
||
(soup_gnutls_read, soup_gnutls_write): if we get
|
||
GNUTLS_E_REHANDSHAKE, call do_handshake() immediately rather than
|
||
returning G_IO_STATUS_AGAIN; if the socket is blocking then
|
||
G_IO_STATUS_AGAIN is wrong, and if the socket is non-blocking, we
|
||
might already need to return SOUP_SSL_ERROR_HANDSHAKE_NEEDS_WRITE
|
||
or SOUP_SSL_ERROR_HANDSHAKE_NEEDS_READ.
|
||
|
||
#415402, based on a patch from Jacob Berkman.
|
||
|
||
* tests/ssl-test.c: basic ssl test. In particular, tests that
|
||
rehandshake requests are handled correctly during both synchronous
|
||
and asynchronous I/O. Might eventually test other stuff too...
|
||
|
||
* configure.in:
|
||
* tests/Makefile.am: updates for ssl-test
|
||
|
||
2007-02-19 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: Get gcrypt libs/cflags.
|
||
|
||
* libsoup/Makefile.am (INCLUDES, libsoup_2_2_la_LIBADD): add
|
||
gcrypt flags. Patch from "Cygwin Ports Maintainer", #384498
|
||
|
||
2007-02-12 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: 2.2.100
|
||
|
||
2007-02-12 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse_status_line): Fix
|
||
this to handle "\0"-terminated status lines (eg, from WebDAV
|
||
responses), like the docs say it does. #406997
|
||
(soup_headers_parse): Balance that out by rejecting internal "\0"s
|
||
here.
|
||
(soup_headers_parse_request, soup_headers_parse_response): Update
|
||
docs to warn that @dest may be modified even on error. (This was
|
||
always true, it just wasn't documented.)
|
||
|
||
2007-01-16 Dan Winship <danw@novell.com>
|
||
|
||
* tests/header-parsing.c (do_request_tests, do_response_tests):
|
||
initialize "errors" to 0. duh. Pointed out by Michael Wolf.
|
||
|
||
2007-01-08 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: 2.2.99
|
||
|
||
* NEWS: update
|
||
|
||
2007-01-06 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse): Rewrite this to be
|
||
easier to understand and more correct, and make the "str" param
|
||
const rather than overwriting it during parsing.
|
||
(soup_headers_parse_request, soup_headers_parse_response):
|
||
Likewise, make "str" param const. Fix the doc comment to describe
|
||
the correct constraint on str. Make the parsing slightly more
|
||
lenient as per sections 4.1 and 19.3 of RFC 2616.
|
||
|
||
* tests/header-parsing.c: new regression test, for Request-Line,
|
||
Status-Line, and message-header parsing.
|
||
|
||
Inspired by #391970 (crash in SoupServer when certain invalid
|
||
requests are received).
|
||
|
||
2006-12-05 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-message.c (soup_message_set_uri): Remove the calls
|
||
to soup_message_io_stop() here; the corresponding calls were
|
||
needed back in the SoupContext days, but they are wrong now and
|
||
cause async-redirects-to-other-hosts to fail. #382251. Also
|
||
clarify docs with respect to soup_session_requeue_message().
|
||
|
||
* libsoup/soup-message-io.c (soup_message_io_stop): Clarify docs
|
||
|
||
* libsoup/soup-session.c (finalize): Free ssl_creds. Pointed out
|
||
by Chris Austin.
|
||
|
||
2006-11-20 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: 2.2.98
|
||
|
||
* NEWS: update
|
||
|
||
2006-11-20 Dan Winship <danw@novell.com>
|
||
|
||
Patch from Andrew W. Nosenko:
|
||
|
||
* libsoup/soup-message-client-io.c (parse_response_headers): Avoid
|
||
memory leak when parse_response_headers() is called on a message
|
||
that has a 'reason_phrase' already for some reason.
|
||
|
||
* libsoup/soup-gnutls.c (soup_gnutls_free): Avoid memory leak:
|
||
hostname was not freed.
|
||
(soup_ssl_wrap_iochannel): Avoid memory leak: SoupGNUTLSChannel
|
||
'chan' was not freed in case of initialization error. Avoid double
|
||
close of the "real" (plain, non-ssl) channel FD.
|
||
|
||
* libsoup/soup-socket.c (soup_socket_start_proxy_ssl): Avoid
|
||
memory leak: the "real" (plain, non-ssl) GIOChannel was never
|
||
"finally" unreffed (one more *_ref() than *_unref()) in case of
|
||
ssl-wrapping.
|
||
|
||
2006-11-20 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-connection-ntlm.c (send_request):
|
||
* libsoup/soup-session-sync.c (queue_message):
|
||
* libsoup/soup-status.c (reason_phrases): Add some missing
|
||
"static"s. Patch from Matthias Clasen, #376387
|
||
|
||
* libsoup/soup-xmlrpc-response.c (soup_xmlrpc_value_get_type)
|
||
(soup_xmlrpc_value_get_string): <value>foo</value> should mean the
|
||
same thing as <value><string>foo</string></value>. Pointed out by
|
||
Todd Kulesza. #364490
|
||
|
||
2006-11-06 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: Bump version to 2.2.97. Bump AGE and CURRENT for
|
||
addition of soup_xml_real_node.
|
||
|
||
* NEWS: update
|
||
|
||
2006-11-06 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-misc.c (soup_xml_real_node): new method to find a
|
||
"real" (ie, not comment or whitespace) xml node
|
||
|
||
* libsoup/soup-soap-response.c (parse_parameters)
|
||
(soup_soap_response_from_string)
|
||
(soup_soap_parameter_get_first_child)
|
||
(soup_soap_parameter_get_next_child): Use soup_xml_real_node.
|
||
Based on a patch from Andrew W. Nosenko.
|
||
|
||
* libsoup/soup-xmlrpc-message.c (soup_xmlrpc_message_from_string):
|
||
don't call xmlKeepBlanksDefault, which changes libxml's behavior
|
||
globally! Instead, use soup_xml_real_node() when traversing the
|
||
xml tree.
|
||
|
||
* libsoup/soup-xmlrpc-response.c
|
||
(soup_xmlrpc_response_from_string): don't call
|
||
xmlKeepBlanksDefault.
|
||
(exactly_one_child): rewrite in terms of soup_xml_real_node()
|
||
(which means it handles comments now as well)
|
||
(soup_xmlrpc_value_get_struct)
|
||
(soup_xmlrpc_value_array_get_iterator)
|
||
(soup_xmlrpc_value_array_iterator_prev)
|
||
(soup_xmlrpc_value_array_iterator_next): Use soup_xml_real_node.
|
||
|
||
2006-11-05 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse_request): document
|
||
this (in particular, point out that str+len must point to exactly
|
||
the right place). Allow req_method and req_path to be NULL.
|
||
(soup_headers_parse_status_line, soup_headers_parse_response):
|
||
document. Also, change "status_phrase" argument to "reason_phrase"
|
||
to match the spec. Inspired by #339889.
|
||
|
||
2006-11-03 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/*.c: fix lots of warnings. Partially from patches from
|
||
Andrew W. Nosenko, and also some fixes from libsoup-pre214-branch.
|
||
|
||
2006-11-03 Dan Winship <danw@novell.com>
|
||
|
||
* Makefile.am (uninstall-local): uninstall the pkgconfig file.
|
||
Based on #356809 from Matthew Barnes.
|
||
|
||
* libsoup/soup-server.c (get_property): Fix leaks pointed out by
|
||
Paolo Borelli. #351500
|
||
|
||
* libsoup/soup-uri.c (soup_uri_get_protocol): Fix an off by one
|
||
pointed out by Andrew W. Nosenko.
|
||
|
||
* configure.in: Use pkgconfig to find gnutls. Remove old static
|
||
linking stuff that was only needed for rcd.
|
||
|
||
* acinclude.m4: remove gnutls stuff
|
||
|
||
* libsoup.pc.in: Use Requires rather than putting xml/ssl
|
||
dependencies directly into Libs/Cflags. From Mikhail Zabaluev.
|
||
#343340.
|
||
|
||
* libsoup/Makefile.am (libsoup_2_2_la_LDFLAGS): fix build on
|
||
cygwin. From "Cygwin Ports maintainer", #321827.
|
||
|
||
2006-07-24 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: 2.2.96. bump AGE and CURRENT for new API
|
||
|
||
* NEWS: update
|
||
|
||
* libsoup/soup-xmlrpc-message.c (soup_xmlrpc_message_from_string):
|
||
New, from Fernando Herrera, bug 348532.
|
||
|
||
2006-07-21 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-auth.c (soup_auth_new_from_header_list): if the
|
||
constructed auth doesn't have a realm, it's invalid, as per RFC
|
||
2617. Based on a patch from Nate Nielsen on libsoup-list.
|
||
(soup_auth_get_realm): remove "if available" from docs; all auths
|
||
always have a realm.
|
||
|
||
* libsoup/soup-message-server-io.c (get_response_headers): If the
|
||
server handler set a Content-Length header on the message, don't
|
||
add a second one. (Preserves compatibility with an old hacky way
|
||
that people might have been handling HEAD from SoupServer.)
|
||
|
||
* README: update to mention mailing list and bugzilla
|
||
|
||
* HACKING: kill this since there's nothing here that isn't either
|
||
obvious, or redundant with the README
|
||
|
||
2006-07-21 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-server-message.c (soup_server_message_init):
|
||
initialize encoding to SOUP_TRANSFER_CONTENT_LENGTH rather than
|
||
SOUP_TRANSFER_UNKNOWN, since SOUP_TRANSFER_UNKNOWN has never
|
||
actually worked here, and so there was an undocumented requirement
|
||
that you manually set the encoding on every response
|
||
(which SoupServer itself was not doing on internal errors).
|
||
Problem pointed out by Dennis Jacobfeuerborn on libsoup-list.
|
||
(soup_server_message_set_encoding): reject the new
|
||
SoupTransferEncoding values, for compatibility
|
||
|
||
* libsoup/soup-message.h (SoupTransferEncoding): Clarify that
|
||
SOUP_TRANSFER_UNKNOWN is essentially an error value, since in the
|
||
public API, it always has been, due to bugs. Add some new values,
|
||
currently just for internal use: SOUP_TRANSFER_NONE (for cases
|
||
like HEAD which never have a body), SOUP_TRANSFER_EOF (to replace
|
||
SOUP_TRANSFER_UNKNOWN), and SOUP_TRANSFER_BYTERANGES (which isn't
|
||
actually implemented yet).
|
||
|
||
* libsoup/soup-message.c (soup_message_get_request_encoding,
|
||
soup_message_get_response_encoding): figure out the body encoding
|
||
being used by the request/response, including all the tricky
|
||
cases like HEAD/1xx/etc.
|
||
(soup_message_is_keepalive): if the response encoding is
|
||
SOUP_TRANSFER_EOF, then the message isn't keepalive.
|
||
|
||
* libsoup/soup-message-client-io.c (parse_response_headers): use
|
||
soup_message_get_response_encoding.
|
||
|
||
* libsoup/soup-message-server-io.c (parse_request_headers): use
|
||
soup_message_get_request_encoding.
|
||
(get_response_headers): use both soup_server_message_get_encoding
|
||
and soup_message_get_response_encoding, to properly distinguish
|
||
between the wire encoding and the alleged-by-headers encoding
|
||
(which differ for HEAD, etc).
|
||
|
||
* libsoup/soup-message-io.c (io_error, read_body_chunk):
|
||
s/SOUP_TRANSFER_UNKNOWN/SOUP_TRANSFER_EOF/.
|
||
(io_body_state): if encoding is SOUP_TRANSFER_NONE, jump right to
|
||
SOUP_MESSAGE_IO_STATE_FINISHING.
|
||
|
||
* libsoup/soup-server.c (request_finished): Check
|
||
soup_socket_is_connected() *before* soup_message_is_keepalive(),
|
||
since the message will be invalid if the client unexpectedly
|
||
dropped the connection.
|
||
|
||
* tests/simple-httpd.c (server_callback): handle HEAD requests.
|
||
Remove no-longer-necessary soup_server_message_set_encoding()
|
||
call.
|
||
|
||
* tests/get.c: add -d (debug) flag to print headers, and -h flag
|
||
to do a HEAD rather than GET
|
||
|
||
2006-07-10 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: 2.2.95.1, and bump SOUP_AGE/SOUP_CURRENT this
|
||
time. Pointed out by Daniel Holbach.
|
||
|
||
2006-07-10 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: 2.2.95
|
||
|
||
* NEWS: update
|
||
|
||
2006-06-19 Dan Winship <danw@novell.com>
|
||
|
||
* tests/Makefile.am (noinst_PROGRAMS): don't build xmlrpc-test
|
||
unless we have apache/php/xmlrpc-epi. Fixes the build. #345342
|
||
|
||
* configure.in: fix some quoting
|
||
|
||
2006-06-14 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: add tests for apache mod_php5 and xmlrpc-epi-php
|
||
|
||
* tests/xmlrpc-test.c: XML-RPC regression test
|
||
|
||
* tests/xmlrpc-server.php: PHP server for xmlrpc-test
|
||
|
||
* tests/httpd.conf.in: add php stuff
|
||
|
||
* tests/apache-wrapper.c (apache_cleanup): Use "graceful-stop"
|
||
rather than "stop", so that it stops listening on the socket
|
||
before exiting, so that we can immediately start another apache
|
||
(eg, in "make check").
|
||
|
||
* libsoup/soup-date.c (soup_mktime_utc): Fix a bug in leap-year
|
||
counting.
|
||
|
||
* libsoup/soup-xmlrpc-message.c
|
||
(soup_xmlrpc_message_write_datetime): rename from
|
||
"..._write_time", to make it consistent with the XML-RPC type name
|
||
and the corresponding SoupXmlrpcResponse method. Also, fix it to
|
||
use the same ISO 8601 format as the spec, and use the right value
|
||
for the seconds field.
|
||
(soup_xmlrpc_message_write_base64): Change the buf arg to a
|
||
gconstpointer rather than a const char *.
|
||
|
||
* libsoup/soup-xmlrpc-response.c (soup_xmlrpc_value_get_base64):
|
||
Return a GByteArray containing the decoded data, rather than
|
||
the base64-encoded string.
|
||
(soup_xmlrpc_value_dump_internal): Update for that (and don't
|
||
leak it).
|
||
(soup_xmlrpc_value_array_get_iterator,
|
||
soup_xmlrpc_value_array_iterator_get_value): Make these actually
|
||
work.
|
||
|
||
2006-06-12 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: 2.2.94
|
||
|
||
* NEWS: update
|
||
|
||
2006-06-12 Dan Winship <danw@novell.com>
|
||
|
||
* docs/reference/client-howto.xml:
|
||
* docs/reference/server-howto.xml: New client and server API
|
||
tutorials.
|
||
|
||
* docs/reference/*: reorganize, regenerate, fill in some missing
|
||
pieces, etc
|
||
|
||
* libsoup/soup-connection.c (soup_connection_new): document the
|
||
varargs param
|
||
|
||
* libsoup/soup-date.h: sync prototypes to declarations for gtk-doc.
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse_response): fix typo
|
||
in doc.
|
||
|
||
2006-06-12 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-xmlrpc-response.c (soup_xmlrpc_value_get_int,
|
||
soup_xmlrpc_value_get_double): Further fixes from Brent Smith.
|
||
#344458.
|
||
(soup_xmlrpc_value_get_boolean): Similar fix, plus actually set
|
||
the output parameter and make the return value match the other
|
||
get_* methods.
|
||
|
||
2006-06-09 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: Add tests for apache, output tests/httpd.conf
|
||
|
||
* tests/htdigest:
|
||
* tests/htpasswd:
|
||
* tests/httpd.conf.in: Apache 2.2 config files for auth-test
|
||
|
||
* tests/apache-wrapper.c (apache_init, apache_cleanup): functions
|
||
to start/stop apache
|
||
|
||
* tests/auth-test.c: Use apache-wrapper functions to start a local
|
||
apache process to test authentication against, since the auth-test
|
||
tree at developer.ximian.com went missing a long time ago. #311825
|
||
|
||
* tests/Makefile.am (auth_test_SOURCES): use apache-wrapper.c
|
||
(TESTS): include auth-test if HAVE_APACHE.
|
||
|
||
* libsoup/soup-session.c (lookup_auth): Fix this in the case of a
|
||
URI pointing to a directory rather than a file.
|
||
|
||
2006-06-08 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-xmlrpc-response.c (soup_xmlrpc_value_get_int,
|
||
soup_xmlrpc_value_get_double, soup_xmlrpc_value_get_boolean):
|
||
Check return value of strtol/g_ascii_strtod correctly. #344222,
|
||
patch from Brent Smith.
|
||
|
||
2006-06-07 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-xmlrpc-response.c
|
||
(soup_xmlrpc_response_from_string): record whether or not the
|
||
response was a fault.
|
||
(soup_xmlrpc_response_is_fault): test that. #343973, patch from
|
||
Brent Smith.
|
||
|
||
2006-05-29 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: 2.2.93
|
||
|
||
* NEWS: update
|
||
|
||
2006-05-29 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-message-io.c (SoupMessageIOState): add a new state
|
||
"FINISHING" which means "done I/O, but not yet done processing and
|
||
cleanup" before "DONE" (which now always means "completely done").
|
||
(soup_message_io_stop): disconnect the socket if the read state is
|
||
"< FINISHING", not "!= DONE".
|
||
(io_error): on an EOF-that-signals-end-of-data, set state to
|
||
FINISHING and run io_read().
|
||
(io_read, io_write): remove the g_return_if_fails from before.
|
||
s/DONE/FINISHING/ in most places. In the FINISHING handler, stop
|
||
listening for the readable/writable signal (eg, so we don't end up
|
||
reading a following pipelined request), and set the state to DONE.
|
||
(soup_message_io_unpause): Only reconnect the readable/writable
|
||
signals if the io state isn't DONE. Guard the calls to
|
||
io_read/io_write better so that it's safe to call this even after
|
||
they are both DONE, since it may be easier for us to test that
|
||
than for the caller to.
|
||
|
||
Fixes 334469, 342640, and another bug caused by the earlier
|
||
workaround to 334469. Based on patches and analysis from William
|
||
Jon McCann and Armin Bauer.
|
||
|
||
* tests/simple-proxy.c (main): add g_thread_init (NULL) to make
|
||
this work again. (Pointed out by Alex Larsson)
|
||
|
||
2006-05-26 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-socket.c: #include <sys/time.h> for struct timeval.
|
||
#342048
|
||
|
||
* libsoup/soup-connection.c (soup_connection_connect_sync): Start
|
||
SSL after CONNECTing! Doh. Part of bnc #174255.
|
||
(SoupConnectionMode): new enum for the three types of
|
||
SoupConnection (direct, proxy, tunnel).
|
||
(set_property): set priv->mode according to proxy_uri and
|
||
conn_uri.
|
||
(socket_connect_result, soup_connection_connect_sync): use
|
||
priv->mode to decide whether or not to tunnel.
|
||
(send_request): Only pass TRUE for is_proxy to
|
||
soup_message_send_request if mode is PROXY, not if it's TUNNEL.
|
||
(Also part of bnc #174255).
|
||
|
||
2006-05-26 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-message-io.c (soup_message_io_in_progress): tests
|
||
if IO is currently in progress on a message.
|
||
|
||
* libsoup/soup-session-async.c (run_queue): don't process messages
|
||
that are io_in_progress. #342545, fix based on analysis from Wang
|
||
Xin. (In the future we may want to re-fix this by adding a
|
||
REQUEUED message status separate from QUEUED.)
|
||
|
||
2006-05-22 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-session.c (cleanup_hosts): Don't free the hosts
|
||
while holding host_lock; that's not allowed and can cause
|
||
deadlock. #309867. Based on a patch from Veerapuram Varadhan for
|
||
part of bnc #174255.
|
||
|
||
2006-04-10 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: bump version to 2.2.92
|
||
|
||
* NEWS: update
|
||
|
||
2006-04-10 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-message-io.c (io_write, io_read): g_return_if_fail
|
||
if these get called after the IO is done. This isn't supposed to
|
||
happen, but apparently does. Workaround for #334469.
|
||
|
||
* libsoup/soup-auth-digest.c (qop_types, algorithm_types):
|
||
NULL-terminate these so we don't crash when trying to parse an
|
||
invalid value. (Flip side of the previous #328615 patch.)
|
||
|
||
2006-04-02 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-server-auth.c (soup_server_auth_context_challenge):
|
||
Write out correct digest algorithm value. #328615.
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse_request): Rewrite
|
||
Request-Line-parsing code to not have a lame max length. #335040.
|
||
|
||
* Makefile.am (install-data-local): Install the .pc file mode 644,
|
||
not 755. #330878
|
||
|
||
* libsoup/soup-auth-digest.c:
|
||
* libsoup/soup-auth.c:
|
||
* libsoup/soup-message-client-io.c:
|
||
* libsoup/soup-message-server-io.c:
|
||
* libsoup/soup-message.c:
|
||
* libsoup/soup-method.c:
|
||
* libsoup/soup-server-auth.c:
|
||
* tests/get.c: replace locale-ish strcasecmps with
|
||
g_ascii_strcasecmp
|
||
|
||
* libsoup/*.c: fix most signed/unsigned mismatch warnings
|
||
|
||
2006-03-03 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: bump version to 2.2.91.
|
||
|
||
* NEWS: Update
|
||
|
||
2006-03-03 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-dns.c (soup_dns_lookup_resolve_async): Take a
|
||
GMainContext as well, and update the resolution code to dispatch
|
||
each lookup result in the correct context.
|
||
|
||
* libsoup/soup-address.c (soup_address_resolve_async_full): New
|
||
method that takes a GMainContext to pass to
|
||
soup_dns_lookup_resolve_async.
|
||
|
||
* libsoup/soup-socket.c (soup_socket_connect): Use
|
||
soup_address_resolve_async_full. Fixes a problem reported by Armin
|
||
Bauer.
|
||
|
||
* configure.in: update to require glib 2.6, since apparently the
|
||
code does.
|
||
|
||
2006-02-25 Veerapuram Varadhan <vvaradhan@novell.com>
|
||
|
||
* libsoup/soup-connection.c:
|
||
* libsoup/soup-session.c:
|
||
* libsoup/soup-socket.c: add a "timeout" property,
|
||
which gets passed from server to socket, and session to connection
|
||
to socket, allowing blocking non-responsive sync connections to
|
||
return. Combination of "EAGAIN" && "Blocking" connection is treated
|
||
as error and the connection will be terminated and the control
|
||
is returned to the caller immediately.
|
||
|
||
2006-02-02 Tor Lillqvist <tml@novell.com>
|
||
|
||
* configure.in: Don't use getaddrinfo() etc or try to support IPv6
|
||
on Windows, as they are present by default on XP only. We do want
|
||
to support Windows 2000, too.
|
||
|
||
2005-12-21 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-date.c (soup_date_iso8601_parse): fix two bugs in
|
||
the YYYYMMDD case.
|
||
|
||
* tests/date.c: add three more ISO 8601 cases, to exercise all the
|
||
code paths.
|
||
|
||
#324671, from Emmanuele Bassi
|
||
|
||
2005-11-25 Dan Winship <danw@novell.com>
|
||
|
||
* README: sync to text on wiki, and point to wiki
|
||
|
||
* TODO: moved to http://live.gnome.org/LibSoup_2fToDo
|
||
|
||
2005-11-17 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-message-io.c (io_cleanup): clear priv->io_data
|
||
right away, to protect against this being re-entered mid-cleanup
|
||
(when we unref the connection). #321208, based on a patch from
|
||
Jedy Wang.
|
||
|
||
2005-11-16 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-xmlrpc-message.c
|
||
(soup_xmlrpc_message_start_member): add the "name" element to the
|
||
struct member. #321362, patch from Sebastian Bauer.
|
||
|
||
2005-11-10 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: bump version to 2.2.90. This will not be
|
||
officially released, but once these patches have gotten some
|
||
testing they may be pulled up to the gnome-2-12 branch.
|
||
|
||
* libsoup/soup-connection.c:
|
||
* libsoup/soup-server.c:
|
||
* libsoup/soup-session.c:
|
||
* libsoup/soup-socket.c: add an "async-context" property,
|
||
which gets passed from server to socket, and session to connection
|
||
to socket, allowing async usage outside the main thread. Based on
|
||
patches from Armin Bauer and Jürg Billeter.
|
||
|
||
* libsoup/soup-misc.c (soup_add_io_watch, soup_add_idle,
|
||
soup_add_timeout): utility routines to add watches, idles, and
|
||
timeouts to non-default GMainContexts.
|
||
|
||
* libsoup/soup-message-io.c (io_write): set the read state
|
||
appropriately after writing a "100 Continue" response
|
||
(io_read): More 100-Continue stuff. I don't think this is quite
|
||
right so it will probably change again later.
|
||
|
||
2005-11-01 Dan Winship <danw@novell.com>
|
||
|
||
* docs/reference/libsoup-docs.sgml: tell it to generate an index
|
||
|
||
* docs/reference/tmpl/*.sgml: regen with newer gtk-doc
|
||
|
||
2005-11-01 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-connection.c (set_current_request,
|
||
clear_current_request): Cast the argument to
|
||
g_object_add/remove_weak_pointer to the wrong type, to make gcc
|
||
4.1 happy, because C is stupid and "void **" means "a pointer to a
|
||
void *", not "a pointer to any kind of pointer".
|
||
|
||
* libsoup/soup-xmlrpc-response.c
|
||
(soup_xmlrpc_value_dump_internal): fix gccism. #320349, from
|
||
Roland Illig.
|
||
|
||
2005-10-27 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-socket.c (soup_socket_client_new_async,
|
||
soup_socket_client_new_sync): unref the SoupAddress passed to
|
||
soup_socket_connect to avoid a leak. Based on a patch from Wang
|
||
Xin.
|
||
(socket_read_watch, read_from_network, socket_write_watch,
|
||
soup_socket_write): request and handle G_IO_ERR and G_IO_HUP
|
||
events when polling, since poll() will return them whether or not
|
||
you asked for them, but glib will ignore them unless you did,
|
||
which will result in CPU suckage if such an error occurs. #319305,
|
||
patch from Jonathan Matthew.
|
||
|
||
2005-10-27 Dan Winship <danw@novell.com>
|
||
|
||
bgo #316313 / bnc #116762, and probably also bgo #318252
|
||
|
||
* libsoup/soup-message-io.c (soup_message_io_stop): clear io->conn
|
||
after releasing it, to make sure we can't accidentally release it
|
||
twice.
|
||
|
||
* libsoup/soup-connection.c (clear_current_request): Call
|
||
soup_message_io_stop() on the cleared request.
|
||
|
||
* libsoup/soup-connection-ntlm.c (ntlm_authorize_post): do a
|
||
little dance here to make sure the session can't queue another
|
||
message on the connection while we're in the process of requeuing
|
||
the original one.
|
||
|
||
2005-08-30 Tor Lillqvist <tml@novell.com>
|
||
|
||
* libsoup-zip.in: Include documentation in developer zipfile.
|
||
|
||
2005-08-22 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-soap-message.c (soup_soap_message_class_init): Call
|
||
g_type_class_add_private.
|
||
|
||
* configure.in: Bump to 2.2.6.1
|
||
|
||
* NEWS: update
|
||
|
||
2005-08-22 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: Bump to 2.2.6. Bump SOUP_AGE and SOUP_CURRENT for
|
||
soup_server_get_socket() addition.
|
||
|
||
* NEWS: update
|
||
|
||
2005-08-22 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-connection.c (set_current_request,
|
||
clear_current_request): Fix g_object_add/remove_weak_pointer usage
|
||
to prevent a crash when canceling a request. From Tambet.
|
||
|
||
2005-08-16 Dan Winship <danw@novell.com>
|
||
|
||
Fix a connection leak reported by Tambet.
|
||
|
||
* libsoup/soup-connection.c (send_request): rather than tracking
|
||
the message progress via signals, call
|
||
soup_message_send_request_internal() and have it call
|
||
soup_connection_release() when it's done.
|
||
(request_restarted, request_done): gone
|
||
(clear_current_request): handle disconnecting (if necessary) and
|
||
updating last_used time here.
|
||
(soup_connection_release): Call clear_current_request().
|
||
(dispose): Call clear_current_request()
|
||
|
||
* libsoup/soup-message-client-io.c
|
||
(soup_message_send_request_internal): New. Takes a SoupConnection
|
||
in addition to the other args, and passes that on to
|
||
soup-message-io.
|
||
|
||
* libsoup/soup-message-io.c (SoupMessageIOData): add a
|
||
SoupConnection field.
|
||
(io_cleanup): if io->conn is set, unref it.
|
||
(soup_message_io_stop): if io->conn is set, and we ended in a
|
||
clean state, call soup_connection_release() on it.
|
||
(soup_message_io_client): Add a SoupConnection arg, which gets
|
||
reffed and stored in io->conn.
|
||
|
||
* TODO: misc updates
|
||
|
||
2005-08-15 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-connection.h (soup_connection_new):
|
||
* libsoup/soup-server.h (soup_server_new):
|
||
* libsoup/soup-session-async.h (soup_session_async_new_with_options):
|
||
* libsoup/soup-session-sync.h (soup_session_sync_new_with_options):
|
||
* libsoup/soup-socket.h (soup_socket_new): use G_GNUC_NULL_TERMINATED.
|
||
|
||
* libsoup/soup-types.h (G_GNUC_NULL_TERMINATED): steal the
|
||
definition of this from glib 2.8 for use when compiling against
|
||
glib 2.6.
|
||
|
||
2005-08-15 Tambet Ingo <tambet@ximian.com>
|
||
|
||
* libsoup/soup-socket.c (update_fdflags, set_property): Fix compilation
|
||
errors.
|
||
|
||
* libsoup/soup-server.c (soup_server_get_listener): ditto.
|
||
|
||
2005-08-12 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-server.c (soup_server_get_listener): new method to
|
||
get the server's listening socket.
|
||
|
||
* libsoup/soup-socket.c: add a new "cloexec" property, to set
|
||
FD_CLOEXEC on the socket. Update everything for that.
|
||
|
||
2005-08-05 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-socket.c (finalize): Free priv->read_buf. From
|
||
Tambet.
|
||
(soup_socket_connect): Make sure that get_iochannel() gets called
|
||
if the connect succeeds right away, or the socket will fail on
|
||
the first read or write. [#312540]
|
||
|
||
2005-08-01 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: drop version back down to 2.2.5 and
|
||
SOUP_API_VERSION back to 2.2; due to various snafus, there has
|
||
never yet been an official release of the 2.4 API and the GNOME
|
||
2.12 betas have been shipping with libsoup 2.2 tarballs (while
|
||
jhbuild has been using 2.4, with evolution and related packages
|
||
having configure hacks to build against either). As there never
|
||
ended up being any API-incompatible changes in the 2.4 series, we
|
||
can just merge it back into the 2.2 series and kill off 2.4.
|
||
|
||
* NEWS: Copy in the 2.2-series news from the gnome-2-10 branch,
|
||
and add new NEWS
|
||
|
||
* libsoup-zip.in: s/2.2/@SOUP_API_VERSION@/
|
||
|
||
* libsoup/Makefile.am (libsoupincludedir, lib_LTLIBRARIES,
|
||
libsoup_2_2_la_LDFLAGS, libsoup_2_2_la_LIBADD,
|
||
libsoup_2_2_la_SOURCES): s/4/2/ in all the places automake won't
|
||
let us use a variable.
|
||
|
||
2005-08-01 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-md5-utils.c (soup_md5_final_hex): Finalize a
|
||
SoupMD5Context and write out the digest in hex digits.
|
||
|
||
* libsoup/soup-auth-digest.c (authenticate, compute_response):
|
||
* libsoup/soup-server-auth.c (check_digest_passwd): Use that,
|
||
rather than duplicating the code in both places here.
|
||
|
||
Patch from Wim Lewis.
|
||
|
||
2005-07-15 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-session.c (redirect_handler): Allow relative URIs,
|
||
since some servers are lame. Based on a patch from Jean-Yves
|
||
Lefort. [#270688]
|
||
|
||
* tests/uri-parsing.c: add some more tests to make sure that
|
||
things that should be %-escaped do get %-escaped
|
||
|
||
2005-07-06 Tor Lillqvist <tml@novell.com>
|
||
|
||
* libsoup/soup-date.c (soup_gmtime): Mention in the doc comment
|
||
that gmtime() is thread-safe on Windows.
|
||
(soup_date_generate): Use soup_gmtime() instead of gmtime_r().
|
||
|
||
2005-06-14 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: check for gmtime_r
|
||
|
||
* libsoup/soup-date.c: date/time-manipulation functions
|
||
|
||
* libsoup/soup-xmlrpc-message.c:
|
||
* libsoup/soup-xmlrpc-response.c: XMLRPC message classes, from
|
||
Mariano Suarez-Alvarez, Fernando Herrera, and Jeff Bailey.
|
||
[#300227]
|
||
|
||
* tests/date.c: soup-date test code
|
||
|
||
* tests/getbug.c: XMLRPC test code. (Should be switched to use
|
||
bugzilla.gnome.org once bgo supports XMLRPC.)
|
||
|
||
* TODO: XMLRPC is implemented now (but shares the problem with
|
||
SOAP that the API is not very good).
|
||
|
||
2005-06-14 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/*.[ch]: add/fix gtk-doc comments, make functions match
|
||
prototypes, etc
|
||
|
||
* docs/reference/*: update, fix, etc
|
||
|
||
2005-06-13 Tor Lillqvist <tml@novell.com>
|
||
|
||
* configure.in: Check also for inet_ntop(). Pre-cache knowledge
|
||
that we do have inet_pton() and inet_ntop() on Windows (because we
|
||
implement them ourselves in soup-dns.c).
|
||
|
||
* libsoup/soup-dns.c (inet_pton, inet_ntop): Fix the Win32
|
||
implementations, they were completely bogus.
|
||
(soup_dns_ntop): Make it compile if HAVE_INET_NTOP.
|
||
|
||
2005-06-08 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-connection-ntlm.c (ntlm_authorize_pre): Fix this to
|
||
use just the domain name for the domain, not the whole
|
||
DOMAIN\username. Based on a patch by Jeroen Hautekeete in #306877.
|
||
|
||
2005-05-26 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-session.c (cleanup_hosts): lock host_lock around
|
||
this, since it can be called from set_property(). Possible fix for
|
||
bnc #81641.
|
||
|
||
2005-05-05 Dan Winship <danw@novell.com>
|
||
|
||
* docs/reference/Makefile.am (SCANGOBJ_OPTIONS): Use
|
||
--type-init-func to force g_thread_init to be called. [#302674]
|
||
|
||
2005-04-18 Tor Lillqvist <tml@novell.com>
|
||
|
||
* configure.in: Call AC_LIBTOOL_WIN32_DLL. Check for Win32, set
|
||
Automake conditional OS_WIN32. Pre-cache information that we do
|
||
have getaddrinfo(), getnameinfo(), and IPv6 on Win32. (The tests
|
||
wouldn't notice as they don't include the necessary headers or
|
||
link with -lws2_32. Easiest to just pre-cache it.)
|
||
|
||
* libsoup-zip.in: New file, to build zipfile-based distribution of
|
||
libsoup for Win32.
|
||
|
||
* Makefile.am (EXTRA_DIST)
|
||
* configure.in (AC_OUTPUT): Add libsoup-zip(.in).
|
||
|
||
* libsoup/Makefile.am: Use -no-undefined on Win32. Link with
|
||
WinSock library -lws2_32.
|
||
|
||
* libsoup/soup-portability.h: New file. On Unix it includes the
|
||
traditional BSD socket etc headers. On Win32 it includes
|
||
winsock2.h and ws2tcpip.h.
|
||
|
||
* libsoup/*.c
|
||
* libsoup/*.h: Correspondingly, don't include the BSD socket API
|
||
headers directly.
|
||
|
||
* libsoup/soup-address.h
|
||
* libsoup/soup-dns.h: Include soup-portability.h
|
||
|
||
* libsoup/soup-address.c (soup_address_class_init): This function
|
||
should get called before libsoup uses the WinSock API, so this is
|
||
a good place to call WSAStartup().
|
||
|
||
* libsoup/soup-auth-digest.c (get_protection_space): Use
|
||
g_strsplit() instead of the relatively unportable strtok_r().
|
||
|
||
* libsoup/soun-dns.c: Remove unused headers. Implement
|
||
inet_pton() and inet_ntop() on Win32 using WSAStringToAddress()
|
||
and WSAAddressToString().
|
||
|
||
* libsoup/soup-socket.c (SOUP_CLOSE_SOCKET, SOUP_IS_SOCKET_ERROR,
|
||
SOUP_IS_INVALID_SOCKET, SOUP_IS_CONNECT_STATUS_INPROGRESS):
|
||
Portability macros.
|
||
(soup_socket_class_init): Call soup_address_get_type() to make
|
||
sure WSAStartup() gets called (through soup_address_class_init()).
|
||
(update_fdflags): Use ioctlsocket(FIONBIO) on Win32.
|
||
(soup_socket_write): Conditionalize SIGPIPE use.
|
||
|
||
* tests/get.c: mkdir() is different in Microsoft's C library.
|
||
|
||
* tests/simple-httpd.c: Rename TRY_AGAIN label to AGAIN to avoid
|
||
some clash with winsock2.h (which includes windows.h). The Win32
|
||
headers pollute the namespace wildly.
|
||
|
||
2005-04-15 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-dns.c (resolve_name): make this work with
|
||
pre-EAI_OVERFLOW glibc [#300620]
|
||
|
||
2005-04-12 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: Remove the various gethostbyname_r checks and just
|
||
check for getnameinfo/getaddrinfo.
|
||
|
||
* libsoup/soup-dns.c: de-nastify. Make this use threads instead of
|
||
forking. Change the API around a bunch in the process.
|
||
|
||
* libsoup/soup-address.c: Update for soup-dns changes
|
||
|
||
* tests/dns.c: take multiple hostnames on the command line and
|
||
resolve them all at once (patch from tml)
|
||
|
||
2005-04-11 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: require glib-2.0 >= 2.4.0
|
||
|
||
* libsoup/*.c: use G_DEFINE_TYPE and
|
||
g_type_class_add_private/G_TYPE_INSTANCE_GET_PRIVATE
|
||
|
||
* libsoup/soup-types.h: kill SOUP_MAKE_TYPE and
|
||
SOUP_MAKE_TYPE_WITH_IFACE
|
||
|
||
* tests/revserver.c: use GThread. (patch from tml)
|
||
|
||
2005-04-11 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: bump version to 2.3.0. bump SOUP_API_VERSION to
|
||
2.4
|
||
|
||
* libsoup.pc.in: rename from libsoup-2.2.pc.in
|
||
|
||
* Makefile.am (EXTRA_DIST, pkgconfig_DATA, install-data-local):
|
||
install the .pc file by hand, renaming it to include the
|
||
SOUP_API_VERSION
|
||
|
||
* libsoup/Makefile.am: s/2.2/2.4/
|
||
|
||
2005-03-09 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-gnutls.c (soup_gnutls_read): return G_IO_STATUS_EOF
|
||
if gnutls returns 0. [#73352]
|
||
(verify_certificate): put an #ifdef around
|
||
GNUTLS_CERT_NOT_TRUSTED so it works with gnutls 1.2.x. [#57811]
|
||
|
||
2005-01-08 Not Zed <NotZed@Ximian.com>
|
||
|
||
** See ximian bug #70323.
|
||
|
||
* libsoup/soup-connection-ntlm.c: replace all unsigned long/long
|
||
types with guint32, as the code needs 32 bit longs.
|
||
|
||
2004-10-20 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-gnutls.c: Commit the alleged changes from the 10-06
|
||
commit, which somehow did not actually get committed then.
|
||
|
||
* libsoup/soup-connection.c (SoupConnectionPrivate): add a flag
|
||
indicating whether or not the connection is connected.
|
||
(tunnel_connect_finished): If successful, set connected. If the
|
||
server returns a 3xx response, translate it to 407 (under the
|
||
assumption that it's trying to redirect us to an HTML login page,
|
||
as in bug 68531). Use soup_socket_start_proxy_ssl() rather than
|
||
soup_socket_start_ssl().
|
||
(socket_connect_result, soup_connection_connect_sync): If
|
||
successful, set connected
|
||
(soup_connection_disconnect): Don't emit "disconnected" if we
|
||
aren't yet connected, or the message that was waiting for this
|
||
connection may get stranded in the queue. (also part of 68531)
|
||
|
||
* libsoup/soup-socket.c (soup_socket_start_proxy_ssl): New, starts
|
||
SSL and lets the caller pass the expected hostname. Fixes a
|
||
problem where SSL certification validation would always fail if
|
||
you used a proxy, because it was comparing the cert against the
|
||
proxy's hostname. (68583)
|
||
|
||
2004-10-06 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-ssl.h (SoupSocketError): add
|
||
SOUP_SSL_ERROR_CERTIFICATE.
|
||
|
||
* libsoup/soup-gnutls.c (do_handshake): Pass the GError to
|
||
verify_certificate.
|
||
(verify_certificate): Set the GError appropriately rather than
|
||
spewing g_warnings.
|
||
|
||
* libsoup/soup-socket.c (read_from_network, soup_socket_write): If
|
||
the GIOChannel operation returns an error, store it as GOBject
|
||
data on the socket (as a hack so soup-message-io.c can access it
|
||
without us needing to change SoupSocket's API).
|
||
|
||
* libsoup/soup-message-io.c (io_error): peek at the socket's
|
||
"last_error" datum and set the message's status to SSL_FAILED
|
||
(with the GError's message string) rather than IO_ERROR, if
|
||
appropriate. For 64414.
|
||
|
||
2004-09-30 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-gnutls.c (soup_gnutls_init): Add this, with some
|
||
extra initialization needed for libgcrypt 1.2 or higher. Fixes
|
||
66342.
|
||
(soup_ssl_get_client_credentials,
|
||
soup_ssl_get_server_credentials): Call soup_gnutls_init().
|
||
|
||
2004-08-26 Dan Winship <danw@novell.com>
|
||
|
||
* configure.in: Bump version to 2.2.0.
|
||
|
||
* AUTHORS: Update this to reflect the last 2 years.
|
||
|
||
* NEWS: Brief summary of 1.99.x -> 2.2 changes
|
||
|
||
* README, TODO: Updates
|
||
|
||
2004-08-26 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/*: add/fix lots of gtk-doc comments
|
||
|
||
* libsoup/soup-misc.c (soup_str_case_hash, soup_str_case_equal):
|
||
Fix bug noticed while documenting. (We were using the
|
||
locale-case-insensitive functions rather than the g_ascii_ ones.)
|
||
|
||
* libsoup/soup-message.h (SoupMessageFlags): remove the (never
|
||
implemented) NO_PIPELINE and NO_COOKIE flags.
|
||
|
||
* docs/reference/tmpl/*.sgml: Regenerate, fill in some stuff.
|
||
There are still problems here with gtk-doc not recognizing many of
|
||
the objects in libsoup...
|
||
|
||
2004-08-13 JP Rosevear <jpr@novell.com>
|
||
|
||
* configure.in: bump version, libtool number
|
||
|
||
2004-08-09 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-connection.c (soup_connection_connect_sync): Don't
|
||
use conn after emitting the "connect_result" signal, since it
|
||
might be destroyed by that. Based on a patch from hpj.
|
||
|
||
2004-08-02 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-uri.h: Add flag "broken_encoding" to SoupUri.
|
||
|
||
* libsoup/soup-uri.c: (soup_uri_to_string): if broken_encoding is
|
||
set, don't re-encode the URL parts. Based on a patch by
|
||
Alfred.Peng@Sun.COM.
|
||
|
||
2004-07-19 JP Rosevear <jpr@novell.com>
|
||
|
||
* configure.in: bump version, libtool number
|
||
|
||
2004-07-15 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-session-sync.c (send_message): Simplify this. If
|
||
the message comes back from soup_connection_send_request not
|
||
FINISHED, get a new connection rather than reusing the old one.
|
||
This fixes a race condition in which a connection could end up
|
||
double-booked, and fixes the handling of messages that get
|
||
redirected to another server.
|
||
|
||
2004-07-13 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-session.c (connect_result): If the connection
|
||
attempt succeeded, reserve the connection before releasing
|
||
host_lock. Otherwise, another thread might find it in the
|
||
connection pool before the caller can queue a message on it.
|
||
#60693
|
||
|
||
* libsoup/soup-session-async.c (got_connection): Call
|
||
soup_connection_release(), since we don't have a specific message
|
||
in mind for the connection, so we need it to be considered idle.
|
||
|
||
* libsoup/soup-connection.c (soup_connection_release): New
|
||
function, to undo a soup_connection_reserve().
|
||
(soup_connection_send_request, soup_connection_reserve,
|
||
soup_connection_authenticate, soup_connection_reauthenticate):
|
||
Document these
|
||
|
||
2004-07-12 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-session-sync.c (send_message): signal the
|
||
"connections available" condition after the message finishes. Duh.
|
||
|
||
* libsoup-2.2.pc.in (Cflags, Libs): add XML_CFLAGS and XML_LIBS
|
||
|
||
2004-07-08 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-soap-response.c: Revert previous change for now; it
|
||
breaks the build on distros with older libxmls.
|
||
|
||
2004-07-08 Dan Winship <danw@novell.com>
|
||
|
||
* tests/dict.c: Basic SOAP test, using Aonaware's SOAP->DICT
|
||
gateway
|
||
|
||
2004-07-07 Fernando Herrera <fherrera@onirica.com>
|
||
|
||
* libsoup/soup-soap-response.c: (finalize), (init),
|
||
(soup_soap_response_from_string): Use a parse context for the
|
||
xml document, so we can safely use the option to ignore
|
||
blank spaces and '\n'.
|
||
|
||
2004-07-06 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-uri.c (soup_uri_new_with_base): if the protocol is
|
||
http or https, require a hostname. For #61049
|
||
|
||
* tests/uri-parsing.c (rel_tests, do_uri): Update for that
|
||
|
||
2004-06-03 JP Rosevear <jpr@novell.com>
|
||
|
||
* configure.in: bump version to 2.1.11, libtool number
|
||
|
||
2004-06-01 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-address.c: Redo the various IPv4/IPv6-abstracting
|
||
macros to not use ?: expressions as lvalues, since that's
|
||
apparently a GNU extension.
|
||
(soup_address_resolve_async): Use a timeout rather than an idle
|
||
handler to poll the dns result. (soup-dns really should be
|
||
rewritten to not require polling, but this is easier for now.)
|
||
#59240
|
||
|
||
* libsoup/soup-server.c (call_handler): Don't use GNU-only
|
||
non-constant structure initialization
|
||
|
||
* tests/dns.c: Simple test of the dns code
|
||
|
||
* tests/Makefile.am (noinst_PROGRAMS): build it
|
||
|
||
2004-05-19 JP Rosevear <jpr@novell.com>
|
||
|
||
* configure.in (SOUP_API_VERSION): bump version, libtool numbers
|
||
|
||
2004-05-18 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-ssl.h:
|
||
* libsoup/soup-nossl.c: define some GError codes and stuff
|
||
|
||
* libsoup/soup-gnutls.c: add missing #include <gnutls/x509.h>
|
||
(do_handshake): when returning G_IO_STATUS_AGAIN, set the GError
|
||
to SOUP_SSL_ERROR_HANDSHAKE_NEEDS_READ or _NEEDS_WRITE
|
||
appropriately.
|
||
|
||
* libsoup/soup-socket.c (soup_socket_write): Handle
|
||
SOUP_SSL_ERROR_HANDSHAKE_NEEDS_READ, by setting an io watch for
|
||
G_IO_IN instead of G_IO_OUT. Fixes the rcd-sucking-up-all-cpu bug
|
||
(#58434)
|
||
(read_from_network): Handle the reverse case (which would cause
|
||
hanging rather than spinning, and might be the cause of some
|
||
connector 1.5 slowness?)
|
||
|
||
2004-05-11 Dan Winship <danw@novell.com>
|
||
|
||
* libsoup/soup-misc.c (soup_signal_connect_once): Do this less
|
||
kludgefully, using the magic of GClosure, to fix x86_64 problems
|
||
reported by snorp.
|
||
|
||
2004-05-04 Sivaiah Nallagatla <snallagatla@novell.com>
|
||
|
||
* libsoup/soup-soap-message.c (finalize) : free
|
||
the elements of priv structure before freeing priv
|
||
|
||
2004-04-20 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-connection-ntlm.c (ntlm_authorize_post): if
|
||
re-sending the message, call soup_message_restarted()
|
||
(send_request): Connect to "restarted" signal, and remove the 401
|
||
handlers from there; doing it here didn't work because if the
|
||
connection was closed, the message would be re-sent on a new
|
||
connection, but would still have the handlers from the old
|
||
connection attached to it, which would make authentication fail.
|
||
|
||
* libsoup/soup-message-handlers.c (soup_message_run_handlers):
|
||
Copy the handler list before starting, to protect against handlers
|
||
that modify the handler list.
|
||
|
||
2004-04-15 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-connection.c (soup_connection_connect_sync):
|
||
Connect to the socket's "disconnect" signal. (We were only doing
|
||
this from the async version before, which meant that synchronous
|
||
SoupConnections could outlive their sockets and start causing
|
||
errors.) #57004
|
||
|
||
* libsoup/soup-connection-ntlm.c (send_request): Remove the old
|
||
Authorization header before adding a new one.
|
||
|
||
2004-04-02 JP Rosevear <jpr@ximian.com>
|
||
|
||
* configure.in: bump version, libtool number
|
||
|
||
2004-03-15 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-soap-message.c (soup_soap_message_persist): Fix up
|
||
types to kill a warning with -Wall -O2
|
||
|
||
2004-03-05 JP Rosevear <jpr@ximian.com>
|
||
|
||
* configure.in: bump version, libtool number
|
||
|
||
2004-03-02 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-dns.c (check_hostent): Only loop on EINTR if
|
||
bytes_read is -1, since the value of errno is irrelevant when
|
||
bytes_read is 0. Probably #54960.
|
||
|
||
2004-03-01 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-response.h: removed not-implemented function's
|
||
prototype.
|
||
|
||
2004-02-27 Rodney Dawes <dobey@ximian.com>
|
||
|
||
* configure.in:
|
||
* libsoup/Makefile.am: Use a different variable for linking to the
|
||
static version of gnutls, so we don't pull the .a files into the .pc
|
||
|
||
Fixes #53346
|
||
|
||
2004-02-20 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message-io.c (read_metadata, read_body_chunk,
|
||
write_data): Pass gsize *, not guint *, to soup_socket_read/write,
|
||
to make this work on 64-bit platforms. (Grr. C type checking
|
||
sucks.) #54631
|
||
|
||
* tests/revserver.c: Likewise
|
||
|
||
2004-02-18 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
Fixes #54512
|
||
|
||
* libsoup/soup-soap-response.c (soup_soap_parameter_get_int_value):
|
||
don't leak the value returned from xmlNodeGetContent().
|
||
(soup_soap_parameter_get_string_value,
|
||
soup_soap_parameter_get_property): return a g_strdup'ed
|
||
string, not the value returned by xmlNodeGetContent, so that
|
||
callers can use g_free, and not xmlFree.
|
||
|
||
* libsoup/soup-soap-response.h: made soup_parameter_get_property
|
||
not return const.
|
||
|
||
2004-02-17 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-soap-message.h (SOUP_IS_SOAP_MESSAGE_CLASS): Fix a
|
||
typo. #54433, from Mariano Suarez-Alvarez.
|
||
|
||
* libsoup/soup-soap-response.h (SOUP_IS_SOAP_RESPONSE_CLASS):
|
||
Likewise
|
||
|
||
2004-02-17 Rodney Dawes <dobey@ximian.com>
|
||
|
||
* libsoup/soup-message.c (soup_message_new): HTTP connections require
|
||
a hostname, and we also hash on the host for message queueing in the
|
||
session, if the host is NULL we free the SoupUri and return NULL
|
||
|
||
2004-02-14 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: Use POSIX-compliant "test $foo = bar", rather than
|
||
GNU-only "test $foo == bar". #54354, from Julio M. Merino Vidal.
|
||
|
||
2004-02-12 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-dns.c (check_hostent): Call read() in a do-while
|
||
loop to prevent DNS errors from short reads.
|
||
|
||
2004-02-11 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bumped version number to 2.1.7 and libtool
|
||
current.
|
||
|
||
2004-02-11 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-connection.c (soup_connection_disconnect): Update
|
||
Joe's comment here with a gory explanation of exactly what's going
|
||
on. (It's not just an SSL bug either, it affects all connections.)
|
||
|
||
2004-02-10 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-connection.c (soup_connection_disconnect): Add a
|
||
workaround for SSL connections which time-out but don't close the
|
||
socket until we try sending data again later.
|
||
|
||
* libsoup/soup-socket.c (soup_socket_connect, soup_socket_listen):
|
||
Don't free the sockaddr from soup_address_get_sockaddr(); we don't
|
||
own it, the SoupAddress does.
|
||
|
||
2004-02-09 JP Rosevear <jpr@ximian.com>
|
||
|
||
* configure.in: Bump libtool numbers
|
||
|
||
2004-02-05 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-session.c (soup_session_add_filter): Ref the filter
|
||
when adding it.
|
||
(soup_session_remove_filter): And unref it here (we were already
|
||
unreffing it in dispose().)
|
||
|
||
2004-02-05 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-dns.c (soup_dns_entry_unref): Don't try to free the
|
||
hostent if it's NULL.
|
||
(soup_dns_entry_check_lookup): If the entry is resolved, but the
|
||
hostent is NULL, uncache it.
|
||
|
||
2004-02-04 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-connection-ntlm.c (ntlm_authorize_pre): Always
|
||
remove the WWW-Authenticate headers before returning, so the
|
||
session won't fall back to Basic auth. Also, leave the connection
|
||
in the "authenticating" state rather than setting it to
|
||
"authenticated".
|
||
(ntlm_authorize_post): Only requeue the message if it's in the
|
||
"authenticating" state (and set it to "authenticated"). Fixes an
|
||
"unepectedly disconnected" error if authentication fails.
|
||
|
||
2004-02-03 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message-io.c (io_cleanup): Call
|
||
soup_message_io_stop so we don't get a callback on the io after
|
||
it's been cleaned up.
|
||
|
||
* libsoup/soup-session.c (add_auth): Only remove the Authorization
|
||
header if we have another one to add. (Otherwise it messes up
|
||
SoupConnectionNTLM.)
|
||
|
||
* libsoup/soup-socket.c (read_from_buf): Use memmove rather than
|
||
memcpy here, since the source and destination will overlap if
|
||
*nread is small and read_buf->len is large. (Noticed by valgrind,
|
||
#53625.)
|
||
|
||
2004-02-02 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-gnutls.c (soup_gnutls_close): Call gnutls_bye()
|
||
with the GNUTLS_SHUT_WR flag (instead of RDWR) and check only for
|
||
GNUTLS_E_INTERRUPTED. GNUTLS_E_AGAIN will be returned by recv()
|
||
when there are no messages on the wire on a non-blocking socket.
|
||
This sends a SSL hangup message and then allows us to immediately
|
||
close the socket.
|
||
|
||
2004-01-30 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* configure.in: bumped version number to 2.1.6.
|
||
|
||
2004-01-29 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-response.[ch] (soup_soap_parameter_get_property):
|
||
new function.
|
||
|
||
2004-01-29 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-response.[ch]
|
||
(soup_soap_parameter_get_string_value): removed 'const' from return
|
||
type.
|
||
|
||
2004-01-29 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-gnutls.c (verify_certificate): Initialize the
|
||
certificate before we try to use it. Ahem.
|
||
|
||
2004-01-23 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump version to 2.1.5 and SOUP_RELEASE to 2
|
||
|
||
2004-01-21 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Require at least GnuTLS 1.0.0.
|
||
|
||
* libsoup/soup-gnutls.c: Fix the use of deprecated GnuTLS
|
||
functions.
|
||
(verify_certificate): Use gnutls_x509_crt_import() and
|
||
gnutls_x509_crt_check_hostname() instead of
|
||
gnutls_x509_check_certificates_hostname().
|
||
(init_dh_params): Use gnutls_dh_params_generate2() instead of
|
||
gnutls_dh_params_generate() and gnutls_dh_params_set().
|
||
|
||
2004-01-20 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-gnutls.c (soup_gnutls_close): gnutls_bye() doesn't
|
||
close the socket itself, so we need to do it or else our
|
||
connections stay in CLOSE_WAIT forever.
|
||
|
||
2004-01-16 Jason Leach <leach@wam.umd.edu>
|
||
|
||
* libsoup/Makefile.am: builddir != srcdir fixes.
|
||
|
||
2004-01-14 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-gnutls.c (verify_certificate): Remove the
|
||
check for GNUTLS_CERT_CORRUPTED, it's not in 1.0.x.
|
||
|
||
2004-01-12 JP Rosevear <jpr@ximian.com>
|
||
|
||
* configure.in: bump version and libtool revision
|
||
|
||
2004-01-12 Dan Winship <danw@ximian.com>
|
||
|
||
* tests/simple-httpd.c (main): Add a g_thread_init() so this works
|
||
again.
|
||
|
||
2004-01-10 Larry Ewing <lewing@ximian.com>
|
||
|
||
* libsoup-2.2.pc.in (Libs): use LIBGNUTLS_LIBS in the substitution
|
||
string.
|
||
|
||
2004-01-09 Joe Shaw <joe@ximian.com>
|
||
|
||
* acinclude.m4: Include the libgnutls.m4 file.
|
||
|
||
* configure.in: Remove manual checking for libgnutls-config and
|
||
use the AM_PATH_LIBGNUTLS so we can pass in a minimum required
|
||
version, which is 0.9.7 for now.
|
||
|
||
* libsoup/Makefile.am: Some changes for the above change.
|
||
|
||
* libsoup/soup-gnutls.c: Check for HAVE_SSL, not
|
||
HAVE_GNUTLS_GNUTLS_H.
|
||
(verify_certificate): Uncomment the SSL certificate hostname
|
||
check.
|
||
|
||
* libsoup/soup-session.c (set_property): Be smart about flushing
|
||
our SSL credentials only when the CA file is set to something
|
||
different than it was before.
|
||
|
||
2004-01-09 Harish K <kharish@novell.com>
|
||
* libsoup/soup-soap-response.c (soup_soap_response_from_string):
|
||
added code to ignore Header element, if present, while creating
|
||
response objects.
|
||
|
||
2004-01-05 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: Remove no-longer-relevant socklen_t check
|
||
|
||
* libsoup/soup-address.c: Reorder #includes for FreeBSD (From Joe
|
||
Marcus Clarke, #52566)
|
||
|
||
* libsoup/soup-dns.c: Likewise
|
||
|
||
2003-12-29 JP Rosevear <jpr@ximian.com>
|
||
|
||
* configure.in: bump version and libtool numbers
|
||
|
||
2003-12-22 Dan Winship <danw@ximian.com>
|
||
|
||
* README, TODO: Update these
|
||
|
||
2003-12-22 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-socket.c: Lots of thread-safety stuff, primarly so
|
||
you can disconnect a socket from one thread while doing I/O in
|
||
another.
|
||
|
||
* libsoup/soup-message-io.c (soup_message_io_cancel): Split into
|
||
soup_message_io_stop() and io_cleanup(), to separate out the "stop
|
||
reading/writing" and "free data" phases to allow thread-safe
|
||
synchronous cancellation.
|
||
(soup_message_io_finished): call both soup_message_io_stop() and
|
||
io_cleanup()
|
||
(io_error): Only set SOUP_STATUS_IO_ERROR on the message if it
|
||
doesn't already have a transport error status (eg, CANCELLED).
|
||
(new_iostate): Call io_cleanup() if needed.
|
||
|
||
* libsoup/soup-status.h: add "SOUP_STATUS_NONE" for 0, to make it
|
||
clearer that it's not a status.
|
||
|
||
* libsoup/soup-message.c (finalize, restarted, finished,
|
||
soup_message_set_uri): s/soup_message_io_cancel/soup_message_io_stop/
|
||
(soup_message_cleanup_response): s/0/SOUP_STATUS_NONE/
|
||
|
||
* libsoup/soup-connection.c (send_request): Remove
|
||
soup_message_io_cancel call.
|
||
|
||
* libsoup/soup-session-sync.c (send_message): Connect to the
|
||
connection's "disconnected" signal rather than using a weak ref,
|
||
since that's what we really care about, and it's possible that the
|
||
connection may have an extra ref on it somewhere that would keep
|
||
it from being destroyed even if it was disconnected.
|
||
|
||
2003-12-20 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-session.c (lookup_auth): If const_path is NULL un
|
||
the non-proxy case, then use the root ("/").
|
||
|
||
2003-12-19 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message-filter.c: New. An interface for objects
|
||
that want to act on every message passing through a session.
|
||
(Initially being used for authentication, but could also be used
|
||
for cache handling, cookie management, etc.)
|
||
|
||
* libsoup/soup-connection.c (class_init, etc): Add a message
|
||
filter property.
|
||
(send_request): If the connection has a message filter set, run
|
||
it on the message before sending it.
|
||
(soup_connection_connect_async, etc): When setting up a tunnel, if
|
||
we get back a 407 and the session tries to requeue the message,
|
||
either re-send it, or return SOUP_STATUS_TRY_AGAIN (depending on
|
||
whether or not the proxy closed the connection).
|
||
(soup_connection_connect_sync): Likewise
|
||
(send_request, request_done): Ref/unref the connection
|
||
|
||
* libsoup/soup-session.c (soup_session_get_type): Implement the
|
||
SoupMessageFilter interface.
|
||
(soup_session_get_connection): Use the session as the connection's
|
||
message filter
|
||
(soup_session_add_filter, soup_session_remove_filter): Add/remove
|
||
filters from the session
|
||
(setup_message): do auth handling, and call each of the session's
|
||
filters' setup_message methods as well.
|
||
(soup_session_send_message_via): No longer needed.
|
||
(connect_result): Handle SOUP_STATUS_TRY_AGAIN.
|
||
|
||
* libsoup/soup-session-async.c (run_queue): Use
|
||
soup_connection_send_request, since soup_session_send_message_via
|
||
is gone now.
|
||
|
||
* libsoup/soup-session-sync.c (send_message): Likewise
|
||
|
||
* libsoup/soup-message.c (soup_message_is_keepalive): A successful
|
||
response to a CONNECT is always keepalive, even if it's HTTP/1.0
|
||
with no Connection header.
|
||
|
||
* libsoup/soup-status.h: add SOUP_STATUS_TRY_AGAIN
|
||
|
||
* libsoup/soup-types.h: Add SoupMessageFilter, and macros for
|
||
gobject interface types.
|
||
|
||
* tests/get.c (main): Add a -p flag to specify a proxy
|
||
|
||
* tests/simple-proxy.c: Fix #includes
|
||
|
||
2003-12-18 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-connection.c (soup_connection_disconnect): Actually
|
||
disconnect the socket rather than just unreffing it, since the IO
|
||
code may be holding an extra ref on it.
|
||
(send_request): connect to the "restarted" signal too
|
||
(request_restarted): Deal with "Connection: close"
|
||
|
||
* libsoup/soup-connection-ntlm.c (ntlm_authorize_pre): Make this
|
||
not go into an infinite loop if the server only supports Basic.
|
||
|
||
2003-12-17 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/Makefile.am: install soup-message-queue.h with the rest
|
||
of the headers.
|
||
|
||
2003-12-17 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: Add gthread to glib check
|
||
|
||
* libsoup/soup-session.c: Make this an abstract class.
|
||
|
||
* libsoup/soup-session-async.c: A SoupSession class for
|
||
asynchronous gmain-based operation; replaces the old SoupSession.
|
||
|
||
* libsoup/soup-session-sync.c: A SoupSession class for synchronous
|
||
blocking operation for use with threaded apps.
|
||
|
||
* libsoup/soup-types.h, libsoup/soup.h: add the new session
|
||
subclasses
|
||
|
||
* libsoup/soup-connection.c (soup_connection_connect_sync): Don't
|
||
try to unref the socket if the socket creation fails.
|
||
(soup_connection_reserve): New, to explicitly mark a connection as
|
||
being in use without queueing a message on it.
|
||
|
||
* libsoup/soup-dns.c (check_hostent): Oof. Fix the logic of the
|
||
"block" flag to not be reversed.
|
||
|
||
* libsoup/soup-message.c (finished): set status to FINISHED here.
|
||
(soup_message_cancel): Gone; needs to be done at the session
|
||
level.
|
||
|
||
* libsoup/soup-message-queue.c: Add a mutex and make all of the
|
||
operations thread-safe.
|
||
|
||
* libsoup/soup-socket.c (disconnect_internal): Make this
|
||
thread-safe.
|
||
(soup_socket_connect): Make the sync case work correctly.
|
||
|
||
* libsoup/Makefile.am: add the SoupSession subclasses
|
||
|
||
* tests/Makefile.am: libsoup depends on libgthread now, so
|
||
revserver doesn't need to explicitly.
|
||
|
||
* tests/get.c, tests/auth-test.c, tests/simple-proxy.c: Use
|
||
soup_session_async_new().
|
||
|
||
2003-12-16 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-response.[ch] (soup_soap_parameter_get_int_value):
|
||
new function.
|
||
|
||
2003-12-16 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-connection.c (socket_connect_result,
|
||
soup_connection_connect_sync): Only set up a tunnel if the
|
||
destination protocol is HTTPS.
|
||
|
||
* libsoup/soup-message.c (class_init): Add a default handler for
|
||
wrote_body.
|
||
(wrote_body): Run the SOUP_HANDLER_POST_REQUEST handlers here.
|
||
(soup_message_cancel): Don't set the status to
|
||
SOUP_STATUS_CANCELLED and call soup_message_finished() if the
|
||
status is already SOUP_MESSAGE_STATUS_FINISHED.
|
||
|
||
* libsoup/soup-session.c (set_property): Don't cancel the session
|
||
if the proxy URI set as a property isn't different from the old
|
||
one.
|
||
(get_host_for_message): Refactor some code so that we can easily
|
||
get the right SoupSessionHost for proxies as well as from the
|
||
message.
|
||
(authenticate_auth): Take a gboolean proxy parameter. Check it to
|
||
see which URI (message URI or proxy URI) to use for
|
||
authentication. Add a long comment about lack of clarity in RFC
|
||
2617 with respect to proxies and protection spaces.
|
||
|
||
2003-12-15 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-socket.h (soup_socket_read, soup_socket_read_until,
|
||
soup_socket_write): s/guint/gsize/ to match the definitions in
|
||
soup-socket.c. #52167.
|
||
|
||
2003-12-12 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-message.c: removed debugging of the messages here.
|
||
|
||
2003-12-12 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-message.c (soup_soap_message_start_envelope):
|
||
added information for SOAP-ENV namespace.
|
||
|
||
2003-12-10 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message-client-io.c (parse_response_headers): if we
|
||
receive an HTTP/1.0 response to an HTTP/1.1 request, downgrade the
|
||
message's http_version so the keep-alive handling is correct.
|
||
Fixes a problem noticed almost simultaneously by Rodrigo and Joe.
|
||
|
||
* libsoup/soup-message.c (soup_message_restarted, etc): Add a
|
||
"restarted" signal as suggested by Joe.
|
||
|
||
* libsoup/soup-message-io.c (soup_message_io_finished): emit
|
||
either "restarted" or "finished" as appropriate
|
||
|
||
* libsoup/soup-session.c (soup_session_queue_message): Connect to
|
||
"restarted" and run the queue if a message gets restarted
|
||
|
||
* libsoup/soup-status.h: Remove a stray comma that gtk-doc doesn't
|
||
like.
|
||
|
||
2003-12-10 Tambet Ingo <tambet@ximian.com>
|
||
|
||
* configure.in: Use autoconfig to check for socklen_t ...
|
||
|
||
* libsoup/soup-address.c: ... and remove it from here ...
|
||
|
||
* libsoup/soup-dns.c: ... and here.
|
||
|
||
2003-12-09 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-message.c (soup_soap_message_persist):
|
||
(soup_soap_message_parse_response): print out request/response's
|
||
contents, if in debug mode.
|
||
|
||
2003-12-07 JP Rosevear <jpr@ximian.com>
|
||
|
||
* configure.in: Bump version
|
||
|
||
2003-11-28 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-response.[ch]
|
||
(soup_soap_parameter_get_first_child,
|
||
soup_soap_parameter_get_first_child_by_name,
|
||
soup_soap_parameter_get_next_child,
|
||
soup_soap_parameter_get_next_child_by_name): new functions to
|
||
manage SoupSoapParameter's children.
|
||
(soup_soap_response_get_first_parameter): dont return a GList, but
|
||
a SoupSoapParameter contained in the GList.
|
||
|
||
2003-11-26 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-response.[ch]
|
||
(soup_soap_parameter_get_string_value): new function.
|
||
|
||
2003-11-26 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-response.[ch]: added SoupSoapParameter
|
||
structure, to "hide" the usage of xmlNode's.
|
||
(soup_soap_parameter_get_name): functions to manage SOAP
|
||
response parameters.
|
||
(soup_soap_response_get_first_parameter,
|
||
soup_soap_response_get_first_parameter_by_name,
|
||
soup_soap_response_get_next_parameter,
|
||
soup_soap_response_get_next_parameter_by_name):
|
||
new functions for an easy access to the response's parameters.
|
||
(soup_soap_response_from_string): removed warnings.
|
||
|
||
2003-11-25 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-response.c (soup_soap_response_set_method_name):
|
||
fixed typo.
|
||
|
||
2003-11-25 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-response.[ch] (soup_soap_response_get_method_name,
|
||
soup_soap_response_set_method_name, soup_soap_message_get_parameters):
|
||
new functions.
|
||
(finalize): NULL out new private fields.
|
||
(soup_soap_response_from_string): added validation code.
|
||
|
||
2003-11-23 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-response.[ch]: new class for managing SOAP
|
||
responses.
|
||
|
||
* libsoup/soup-soap-message.[ch] (soup_soap_message_parse_response):
|
||
new function.
|
||
|
||
* libsoup/Makefile.am: added new files.
|
||
|
||
2003-11-18 Rodney Dawes <dobey@ximian.com>
|
||
|
||
* gtk-doc.make: Add gtk-doc.make to cvs for systems without gtk-doc
|
||
|
||
2003-11-18 Rodney Dawes <dobey@ximian.com>
|
||
|
||
* acinclude.m4: Add GTK_DOC_CHECK
|
||
|
||
2003-11-18 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: Replace old gtk-doc test with GTK_DOC_CHECK()
|
||
(AC_OUTPUT): add docs/Makefile, docs/reference/Makefile
|
||
|
||
* autogen.sh (REQUIRED_AUTOMAKE_VERSION): 1.6, for gtk-doc.make
|
||
|
||
* Makefile.am: updates for gtk-doc
|
||
(SUBDIRS): add back "docs"
|
||
|
||
* docs/Makefile.am (EXTRA_DIST): remove, since those old docs
|
||
aren't around any more
|
||
|
||
* docs/reference/*: set up gtk-doc
|
||
|
||
* libsoup/Makefile.am (INCLUDES): Change G_LOG_DOMAIN to
|
||
"libsoup". Remove unused defines.
|
||
|
||
* libsoup/soup-connection.c: Fix doc comments
|
||
* libsoup/soup-message.c: Likewise
|
||
* libsoup/soup-misc.c: Likewise
|
||
* libsoup/soup-socket.c: Likewise
|
||
* libsoup/soup-uri.c: Likewise
|
||
|
||
* libsoup/soup-address.h: Fixes to please gtk-doc
|
||
* libsoup/soup-connection.h: Likewise
|
||
* libsoup/soup-message.h: Likewise
|
||
* libsoup/soup-message-private.h: Likewise
|
||
* libsoup/soup-misc.h: Likewise
|
||
* libsoup/soup-server-auth.h: Likewise
|
||
* libsoup/soup-socket.h: Likewise
|
||
* libsoup/soup-status.h: Likewise
|
||
|
||
2003-11-18 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: Fix up the SSL checks some. Remove some useless
|
||
old header checks.
|
||
|
||
* libsoup/soup-misc.h: declare soup_ssl_supported.
|
||
|
||
* libsoup/soup-gnutls.c: add soup_ssl_supported declaration.
|
||
|
||
* libsoup/soup-nossl.c: Not an SSL implementation, built if
|
||
HAVE_SSL is not defined.
|
||
|
||
* libsoup/Makefile.am (libsoup_2_2_la_SOURCES): add soup-nossl.c
|
||
|
||
* libsoup/soup-socket.c (soup_socket_start_ssl): Return success or
|
||
failure.
|
||
(listen_watch): Deal with soup_socket_start_ssl failing.
|
||
|
||
* libsoup/soup-connection.c (tunnel_connect_finished,
|
||
socket_connect_result, soup_connection_connect_sync): Deal with
|
||
the soup_socket_start_ssl failing.
|
||
|
||
* libsoup/soup-server.c (soup_server_new): Deal with
|
||
soup_ssl_get_server_credentials failing
|
||
|
||
2003-11-18 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-message.[ch] (soup_soap_message_start_fault,
|
||
soup_soap_message_end_fault, soup_soap_message_start_fault_detail,
|
||
soup_soap_message_end_fault_detail, soup_soap_message_start_header,
|
||
soup_soap_message_end_header,
|
||
soup_soap_message_start_header_element,
|
||
soup_soap_message_end_header_element, soup_soap_message_write_int,
|
||
soup_soap_message_write_double, soup_soap_message_write_base64,
|
||
soup_soap_message_write_time, soup_soap_message_write_string,
|
||
soup_soap_message_write_buffer, soup_soap_message_set_element_type,
|
||
soup_soap_message_set_null, soup_soap_message_add_attribute,
|
||
soup_soap_message_add_namespace,
|
||
soup_soap_message_set_default_namespace,
|
||
soup_soap_message_get_namespace_prefix,
|
||
soup_soap_message_set_encoding_style, soup_soap_message_reset,
|
||
soup_soap_message_persist): new functions from old SoupSerializer.
|
||
|
||
2003-11-17 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-message.[ch] (soup_soap_message_new,
|
||
soup_soap_message_new_from_uri): added a bunch of initialization
|
||
parameters.
|
||
(soup_soap_message_get_xml_doc, soup_soap_message_start_envelope,
|
||
soup_soap_message_end_envelope, soup_soap_message_start_body,
|
||
soup_soap_message_end_body, soup_soap_message_start_element,
|
||
soup_soap_message_end_element):
|
||
new functions.
|
||
|
||
* configure.in: depend on libxml-2.0 for the SOAP code.
|
||
|
||
* libsoup/Makefile.am: use XML CFLAGS and LIBS.
|
||
|
||
2003-11-17 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Add in the --enable-libgpg-error flag from the 2.0
|
||
branch.
|
||
|
||
* acinclude.m4: Include the gpg-error macros.
|
||
|
||
2003-11-17 Rodrigo Moya <rodrigo@ximian.com>
|
||
|
||
* libsoup/soup-soap-message.[ch]: new class to make it easier to
|
||
build SOAP messages.
|
||
|
||
* libsoup/Makefile.am: added new files.
|
||
|
||
* configure.in: increased version number.
|
||
|
||
2003-10-24 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-address.c (update_address_from_entry): Call
|
||
soup_dns_entry_get_hostent() on the SoupAddress passed in, not the
|
||
one in addr->priv->lookup. Fixes a crash on synchronous DNS
|
||
lookups.
|
||
|
||
* libsoup/soup-server.c (soup_server_new): We need to ref the
|
||
address we're binding to, because soup_socket_get_local_address()
|
||
doesn't ref for us.
|
||
|
||
2003-10-23 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-socket.c (init): Initialize flags to default
|
||
values.
|
||
|
||
2003-09-23 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-gnutls.c (SoupGNUTLSCred): Remove refcounting, but
|
||
note whether or not the CA file has been loaded.
|
||
(SoupGNUTLSChannel): add a "hostname" field.
|
||
(verify_certificate): Remove the comment about not being able to
|
||
verify the hostname because of soup problems. Now it's because of
|
||
GNUTLS problems instead.
|
||
(soup_ssl_wrap_iochannel): Renamed from soup_ssl_get_iochannel,
|
||
and takes a hostname and a creds argument now.
|
||
(soup_ssl_get_client_credentials,
|
||
soup_ssl_get_server_credentials): Return client/server credentials
|
||
structures.
|
||
(soup_ssl_free_client_credentials,
|
||
soup_ssl_free_server_credentials): and free them.
|
||
|
||
* libsoup/soup-session.c (class_init, set_property, get_property):
|
||
add ssl_ca_file property
|
||
(get_host_for_message): when returning an SSL host for the first
|
||
time, create a client credentials structure for the session.
|
||
(run_queue): Pass the ssl creds to the new connection. Also fix an
|
||
unrelated bug that caused infinite loops on "bad hostname".
|
||
|
||
* libsoup/soup-server.c: Use GObject properties, including
|
||
ssl_cert_file and ssl_key_file properties.
|
||
(soup_server_new): Remove "protocol" argument; if the cert file
|
||
and key file properties were set, create a server credential
|
||
structure from them and pass that to soup_socket_server_new.
|
||
|
||
* libsoup/soup-connection.c (SoupConnectionPrivate): Rename
|
||
dest_uri to origin_uri to match RFC 2616 terminology. Add an
|
||
"ssl_creds" field.
|
||
(class_init, set_property, get_property): add SSL_CREDS property
|
||
(soup_connection_connect_async, soup_connection_connect_sync):
|
||
Pass ssl_creds to soup_socket_client_new calls.
|
||
|
||
* libsoup/soup-socket.c: Use GObject properties, including an
|
||
ssl_creds property
|
||
(soup_socket_set_flags): Gone (replaced with boolean properties)
|
||
(soup_socket_new): Make this take a list of properties
|
||
(listen_watch): copy ssl creds from listener to new socket
|
||
(soup_socket_start_ssl): Pass remote hostname and socket creds
|
||
structure to soup_ssl_wrap_iochannel.
|
||
(soup_socket_client_new_async, soup_socket_client_new_sync,
|
||
soup_socket_server_new): Replace the SSL boolean with an ssl_creds
|
||
structure.
|
||
|
||
* libsoup/soup-misc.c (soup_set_ssl_ca_file,
|
||
soup_set_ssl_cert_files, soup_get_ssl_ca_file,
|
||
soup_get_ssl_cert_files): Gone. SSL state is now per-session or
|
||
per-server.
|
||
|
||
* tests/get.c: add a "-c CAfile" argument, for loading a CA
|
||
certificate file to validate https connections against
|
||
|
||
* tests/simple-httpd.c: Add "-c certfile" and "-k keyfile"
|
||
arguments for loading an SSL server certificate. Only start an SSL
|
||
server if those arguments were used.
|
||
|
||
* tests/test-cert.pem:
|
||
* tests/test-key.pem: SSL certificate for testing simple-httpd
|
||
|
||
* tests/revserver.c: Update for API changes
|
||
* tests/simple-proxy.c: Likewise
|
||
|
||
2003-09-22 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message-io.c: Move RESPONSE_BLOCK_SIZE #define here
|
||
from soup-private.h
|
||
|
||
* libsoup/soup-misc.c (soup_load_config, etc): Remove all this.
|
||
(soup_set_security_policy, soup_get_security_policy): Remove,
|
||
since the GNUTLS backend doesn't actually implement it.
|
||
(soup_set_ssl_ca_dir, soup_get_ssl_ca_dir): Likewise
|
||
|
||
* libsoup/soup-misc.h: sync to soup-misc.c. Don't #include extra
|
||
stuff.
|
||
|
||
* libsoup/soup-types.h (SOUP_MAKE_TYPE): Move this here from
|
||
soup-private.h
|
||
|
||
* libsoup/soup-ssl.h: Merge soup_ssl_get_iochannel and
|
||
soup_ssl_get_server_iochannel into a single function that takes a
|
||
SoupSSLType.
|
||
|
||
* libsoup/soup-gnutls.c: Remove soup_get_ssl_ca_dir() reference.
|
||
(soup_ssl_get_iochannel): Renamed from soup_gnutls_get_iochannel.
|
||
(soup_gnutls_set_security_policy): Gone
|
||
|
||
* libsoup/soup-gnutls.h
|
||
* libsoup/soup-ssl.c: Gone; soup-ssl.h is the #include file for
|
||
soup-gnutls.c now
|
||
|
||
* libsoup/soup-socket.c: Move soup_sockaddr_max
|
||
#define here from soup-private.h
|
||
(soup_socket_start_ssl): Update for new soup_ssl_get_iochannel
|
||
prototype.
|
||
|
||
* libsoup/soup-private.h: Gone
|
||
|
||
* libsoup/soup-address.c: Fix #includes for soup-private.h and
|
||
soup-misc.h changes
|
||
* libsoup/soup-auth-digest.c: Likewise
|
||
* libsoup/soup-auth.c: Likewise
|
||
* libsoup/soup-connection-ntlm.c: Likewise
|
||
* libsoup/soup-connection.c: Likewise
|
||
* libsoup/soup-dns.c: Likewise
|
||
* libsoup/soup-gnutls.c: Likewise
|
||
* libsoup/soup-headers.c: Likewise
|
||
* libsoup/soup-message-client-io.c: Likewise
|
||
* libsoup/soup-message-handlers.c: Likewise
|
||
* libsoup/soup-message-io.c: Likewise
|
||
* libsoup/soup-message-server-io.c: Likewise
|
||
* libsoup/soup-message.c: Likewise
|
||
* libsoup/soup-server-message.c: Likewise
|
||
* libsoup/soup-server.c: Likewise
|
||
* libsoup/soup-session.c: Likewise
|
||
* libsoup/soup-socket.c: Likewise
|
||
* tests/auth-test.c: Likewise
|
||
|
||
2003-09-19 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-address.c (update_address_from_entry): free the
|
||
hostent.
|
||
|
||
* libsoup/soup-connection-ntlm.c (ntlm_authorize_pre): Don't leak
|
||
the domain
|
||
|
||
* libsoup/soup-gnutls.c (soup_gnutls_get_iochannel): Add some more
|
||
iochannel initialization. Not sure how this worked before...
|
||
|
||
* libsoup/soup-message.c (soup_message_cleanup_response): Renamed
|
||
from soup_message_prepare (and a few things removed).
|
||
|
||
* libsoup/soup-message-client-io.c (soup_message_send_request):
|
||
s/soup_message_prepare/soup_message_cleanup_response/
|
||
|
||
* libsoup/soup-message-io.c (io_read): Replace the final "\r\n"
|
||
with "\0" on the headers before passing them to the parse
|
||
function.
|
||
(io_read): Call soup_message_cleanup_response after returning an
|
||
informational response so the data doesn't leak.
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse): Update for
|
||
soup-message-io.c:io_read change
|
||
|
||
* libsoup/soup-server.c (soup_server_new,
|
||
soup_server_new_with_host): Don't leak the SoupAddress.
|
||
|
||
* libsoup/soup-session.c (class_init): Make PROP_PROXY_URI not
|
||
CONSTRUCT_ONLY.
|
||
(set_property): If the proxy uri changes, call
|
||
soup_session_abort() and cleanup_hosts().
|
||
(request_finished, final_finished): Fix a bug when requeuing
|
||
messages.
|
||
|
||
* tests/libsoup.supp: valgrind suppression file for soup tests
|
||
|
||
* tests/Makefile.am (EXTRA_DIST): dist it.
|
||
(noinst_PROGRAMS): move the former check_PROGRAMS to
|
||
noinst_PROGRAMS instead.
|
||
|
||
2003-09-18 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message.c: Add wrote_informational and
|
||
got_informational signals.
|
||
|
||
* libsoup/soup-message-client-io.c (get_request_headers): Set the
|
||
EXPECT_CONTINUE flag on the message if that header is set.
|
||
|
||
* libsoup/soup-message-server-io.c (parse_request_headers):
|
||
Likewise
|
||
|
||
* libsoup/soup-message-io.c (io_write): Set read_state to HEADERS
|
||
when blocking on an expect-continue. Emit wrote_informational
|
||
instead of wrote_headers in the 1xx case.
|
||
(io_read): Set read_state to BLOCKING, not NOT_STARTED after
|
||
reading a 100 Continue response. Emit got_informational instead of
|
||
got_headers in the 1xx case.
|
||
|
||
* libsoup/soup-session.c (soup_session_send_message): Reorder
|
||
things to deal with the fact that the message could finish right
|
||
away if there is a connection available and the server is very
|
||
close.
|
||
|
||
* libsoup/soup-status.h: Rename SOUP_STATUS_CLASS_TRANSPORT to
|
||
SOUP_STATUS_CLASS_TRANSPORT_ERROR.
|
||
|
||
2003-09-17 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-session.c (find_oldest_connection): Fix two bugs
|
||
(one that pruned too little, one that pruned too much).
|
||
(queue_message): When requeuing, don't run the queue;
|
||
final_finished will take care of that later.
|
||
(soup_session_abort): New, to cancel all pending requests.
|
||
|
||
* libsoup/soup-socket.c (soup_socket_connect, got_address): ref
|
||
the socket while waiting for the address to resolve
|
||
|
||
2003-09-17 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-connection.c (soup_connection_new): Replaces the
|
||
three previous soup_connection_new* functions and uses gobject
|
||
properties to set the destination and proxy uris.
|
||
(class_init): set up two more signals, authenticate and
|
||
reauthenticate.
|
||
(soup_connection_send_request): virtualize
|
||
(send_request): Default implementation
|
||
|
||
* libsoup/soup-connection-ntlm.c: New SoupConnection subclass that
|
||
also handles NTLM authentication. Includes all of the NTLM code
|
||
formerly in soup-auth-ntlm.c.
|
||
|
||
* libsoup/soup-auth-ntlm.[ch]: Gone.
|
||
|
||
* libsoup/soup-auth.c: Remove NTLM refs
|
||
|
||
* libsoup/soup-session.c (class_init): Add gobject properties for
|
||
proxy, max_conns, use_ntlm. Change the "authenticate" and
|
||
"reauthenticate" signal prototypes to not pass a SoupAuth (so they
|
||
can be used for authenticating SoupConnectionNTLM as well, which
|
||
doesn't use a SoupAuth).
|
||
(soup_session_new): Renamed from soup_session_new_default.
|
||
(soup_session_new_with_options): Replaces
|
||
soup_session_new_with_proxy and soup_session_new_full. Takes
|
||
gobject properties.
|
||
(run_queue): Create a new connection of type SoupConnection or
|
||
SoupConnectionNTLM depending on our "use_ntlm" property. Connect
|
||
to its authenticate and reauthenticate signals.
|
||
(connection_authenticate, connection_reauthenticate): proxy these
|
||
signals.
|
||
|
||
* libsoup/soup-address.c (update_address_from_entry): Fix a
|
||
crasher when failing to resolve the address.
|
||
|
||
* libsoup/soup-dns.c (check_hostent): Fix some "how was this
|
||
working before" bugs.
|
||
|
||
* libsoup/soup-message-client-io.c (soup_message_send_request):
|
||
call soup_message_prepare() to clean up the existing response
|
||
state.
|
||
|
||
* libsoup/soup-message-io.c (io_error): Set the read_state to DONE
|
||
when processing an OK EOF.
|
||
|
||
* libsoup/soup-status.h (SoupStatusClass): fix the numbering of
|
||
these so that SOUP_STATUS_CLASS_SUCCESS is 2, etc.
|
||
|
||
* tests/auth-test.c (authenticate, reauthenticate): Update for new
|
||
prototypes.
|
||
(main): Use soup_session_new.
|
||
* tests/get.c (main): Likewise.
|
||
* tests/simple-proxy.c (main): Likewise.
|
||
|
||
2003-09-10 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-session.c: Add "authenticate" and "reauthenticate"
|
||
signals.
|
||
(invalidate_auth): Remove the call to soup_auth_invalidate.
|
||
(authenticate_auth): soup_auth_fn is gone. If the URI doesn't
|
||
contain authentication, then emit "authenticate" or
|
||
"reauthenticate" (depending on whether or not this is the first
|
||
time we've asked for a password for this auth).
|
||
(update_auth_internal): If the server rejects our
|
||
username/password, don't bail out immediately. Try doing a
|
||
"reauthenticate" first.
|
||
|
||
* libsoup/soup-misc.c (soup_set_authorize_callback): Gone
|
||
|
||
* libsoup/soup-auth.c (soup_auth_new_from_header_list): Remove the
|
||
"pref" arg.
|
||
(soup_auth_invalidate): Remove this; it doesn't actually do
|
||
anything useful for us.
|
||
|
||
* libsoup/soup-auth-basic.c (invalidate): Remove
|
||
* libsoup/soup-auth-digest.c: (invalidate): Remove
|
||
* libsoup/soup-auth-ntlm.c: (invalidate): Remove
|
||
|
||
* libsoup/soup-uri.c: Remove all references to "authmech".
|
||
(soup_uri_set_auth): Remove this too.
|
||
|
||
* tests/auth-test.c: Update to use the "authenticate" and
|
||
"reauthenticate" signals instead of encoding usernames and
|
||
passwords in the URIs. Add a few more test cases.
|
||
|
||
2003-09-10 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message-private.h (SoupMessagePrivate): Remove the
|
||
"status" field from here, since it's mostly used by SoupSession,
|
||
which shouldn't need access to SoupMessagePrivate.
|
||
|
||
* libsoup/soup-message.h (SoupMessage): Move it here.
|
||
(SoupCallbackFn): Remove this alias for SoupMessageCallbackFn.
|
||
(soup_message_set_uri): also moved from soup-message-private.h
|
||
|
||
* libsoup/soup-message.c: s/msg->priv->status/msg->status/.
|
||
|
||
* libsoup/soup-message-handlers.c:
|
||
s/SoupCallbackFn/SoupMessageCallbackFn/ everywhere.
|
||
|
||
* libsoup/soup-message-io.c (soup_message_io_client,
|
||
soup_message_io_server, soup_message_io_unpause): Don't set up an
|
||
idle handler, just jump right in to reading/writing; if this is a
|
||
synchronous socket, then the caller wants to block, and if it's
|
||
not, then we'll quickly get an EAGAIN anyway.
|
||
|
||
* libsoup/soup-session.c: (queue_message): Likewise.
|
||
(*) Update for SoupMessageStatus move and remove
|
||
soup-message-private.h include.
|
||
|
||
* libsoup/soup-server-message.c: Remove soup-message-private.h
|
||
include.
|
||
|
||
* libsoup/soup-server.c: Likewise.
|
||
|
||
* libsoup/soup-connection.c (soup_connection_is_connected,
|
||
soup_connection_is_new): Remove these, since they weren't being
|
||
used.
|
||
|
||
* libsoup/soup-md5-utils.c: Moved from md5-utils.c and renamed, to
|
||
avoid namespace pollution.
|
||
|
||
* libsoup/soup-auth-digest.c: Update for that.
|
||
* libsoup/soup-server-auth.c: Likewise
|
||
|
||
* tests/auth-test.c: Remove soup-message-private.h include
|
||
|
||
2003-09-09 Dan Winship <danw@ximian.com>
|
||
|
||
Beginnings of improved synchronous API support
|
||
|
||
* libsoup/soup-dns.c: Simplify this by making it not automatically
|
||
return the result: force the caller to poll. (This isn't really a
|
||
performance issue: the results should come back quickly anyway.)
|
||
Also, make the cache thread-safe.
|
||
(soup_dns_entry_from_name): Was soup_gethostbyname
|
||
(soup_dns_entry_from_addr): Was soup_gethostbyaddr
|
||
(soup_dns_entry_check_lookup): Used to poll to see if DNS is done
|
||
(soup_dns_entry_get_hostent): Gets the hostent from an entry (and
|
||
blocks if it's not resolved yet).
|
||
|
||
* libsoup/soup-address.c: Update for soup-dns changes.
|
||
(soup_address_new): Don't automatically start resolving the
|
||
hostname now, since we don't know if the caller is going to want
|
||
it resolved synchronously or asynchronously.
|
||
(soup_address_resolve_async): Renamed from soup_address_resolve.
|
||
(soup_address_resolve_sync): New routine to do blocking
|
||
synchronous DNS.
|
||
|
||
* libsoup/soup-socket.c (soup_socket_connect): Now returns a
|
||
status value directly when connecting synchronously.
|
||
(soup_socket_client_new_async, soup_socket_client_new_sync):
|
||
Separate async/sync client socket functions.
|
||
(soup_socket_get_iochannel): Made static since it was not used
|
||
outside soup-socket.
|
||
|
||
* libsoup/soup-connection.c (soup_connection_new,
|
||
soup_connection_new_proxy, soup_connection_new_tunnel): Just set
|
||
up the data, don't actually start connecting.
|
||
(soup_connection_connect_async, soup_connection_connect_sync): New
|
||
async and sync SoupConnection connecting routines.
|
||
(soup_connection_get_socket): Remove this since it wasn't being
|
||
used.
|
||
|
||
* libsoup/soup-session.c (final_finished): Run the queue since a
|
||
connection is now freed up.
|
||
(run_queue): Update for soup_connection_new* changes.
|
||
|
||
* libsoup/soup-misc.c (soup_substring_index): Remove, since it
|
||
wasn't being used any more.
|
||
|
||
* libsoup/soup-private.h: Remove some prototypes for functions
|
||
that no longer exist.
|
||
|
||
* libsoup/soup-uri.c (soup_uri_copy_root): New utility function
|
||
(copies the protocol, host, and port of a SoupUri).
|
||
|
||
* tests/auth-test.c:
|
||
* tests/get.c:
|
||
* tests/simple-proxy.c: belatedly update for soup-session change
|
||
|
||
* tests/revserver.c: Handle each new connection in its own thread,
|
||
using synchronous SoupSocket calls.
|
||
|
||
2003-09-05 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-session.c: Move a bunch of logic here from
|
||
soup-context. Now the session keeps track of hosts (instead of
|
||
having a global soup_hosts hash) and their connections.
|
||
(soup_session_new_with_proxy, soup_session_new_full): New session
|
||
constructors to specify a proxy or a proxy and connection limits
|
||
(send_request): Add Authorization and Proxy-Authorization headers
|
||
before sending off the request.
|
||
(soup_session_queue_message, et al): Improve the way this works.
|
||
There's no need to use timeouts to wait for connections to become
|
||
free; we *know* when they become free.
|
||
|
||
* libsoup/soup-private.h: Remove SoupHost and some other
|
||
no-longer-used stuff.
|
||
|
||
* libsoup/soup-misc.c (soup_set_proxy, soup_get_proxy,
|
||
soup_set_connection_limit, soup_set_connection_limit): Gone. These
|
||
are all per-session now.
|
||
|
||
* libsoup/soup-message.c: Remove all SoupContext references
|
||
(mostly replaced with SoupUri references)
|
||
(cleanup_message): priv->connect_tag and priv->connection are gone
|
||
now, so this was just soup_message_io_cancel(). So remove
|
||
cleanup_message and replace it with that everywhere.
|
||
(soup_message_disconnect): Gone.
|
||
(soup_message_set_uri): Replaces soup_message_set_context.
|
||
(soup_message_set_connection, soup_message_get_connection): Gone
|
||
|
||
* libsoup/soup-message-server-io.c (parse_request_headers):
|
||
s/soup_message_set_context/soup_message_set_uri/
|
||
|
||
* libsoup/soup-message-private.h (SoupMessagePrivate): Remove
|
||
connect_tag, context, and connection.
|
||
|
||
* libsoup/soup-message-client-io.c (encode_http_auth): Gone.
|
||
|
||
* libsoup/soup-context.c: Gone
|
||
|
||
* tests/auth-test.c (identify_auth): update for session/context
|
||
changes
|
||
|
||
2003-09-03 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-status.h: Renamed from soup-error.h, with types
|
||
and defines renamed accordingly.
|
||
|
||
* libsoup/soup-message.h (SoupMessage): Rename errorcode to
|
||
status_code and errorphrase to reason_phrase. Remove errorclass.
|
||
(SOUP_MESSAGE_IS_ERROR): Remove this. You can't classify redirects
|
||
as being either "errors" or "not errors", so its semantics are
|
||
guaranteed to be wrong sometimes.
|
||
|
||
* libsoup/soup-message.c (soup_message_set_status,
|
||
soup_message_set_status_full): Renamed
|
||
|
||
* libsoup/soup-message-handlers.c
|
||
(soup_message_add_status_code_handler,
|
||
soup_message_add_status_class_handler): Rename.
|
||
|
||
* libsoup/soup-session.c (soup_session_send_message): Make this
|
||
return a status code rather than a status class.
|
||
|
||
* libsoup/soup-message-private.h (SoupMessagePrivate): Remove some
|
||
unrelated unused fields (retries, callback, user_data).
|
||
|
||
* ...: Updates
|
||
|
||
2003-09-02 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-session.c: First draft at the new object to
|
||
maintain formerly-global state. (Not yet complete; still need to
|
||
get rid of SoupContext).
|
||
|
||
* libsoup/soup-message-queue.c: Data structure used by SoupSession
|
||
|
||
* libsoup/soup-queue.c: Gone. Mostly moved into soup-session, but
|
||
some bits went into soup-connection.
|
||
|
||
* libsoup/soup-connection.c (soup_connection_send_request): New,
|
||
to send a request on a connection. The connection updates its
|
||
internal state and then hands off to soup_message_send_request.
|
||
(request_done): Callback set up by soup_connection_send_request.
|
||
Marks the connection as no-longer-in-use, and disconnects it if
|
||
the message says to.
|
||
(soup_connection_set_in_use, soup_connection_mark_old): No longer
|
||
needed; the connection takes care of this itself now.
|
||
(soup_connection_new_proxy): New, to create a new connection that
|
||
is explicitly marked as being through an HTTP proxy.
|
||
(soup_connection_new_tunnel): New, to create a new HTTPS
|
||
connection through a proxy. (Includes the code to send the
|
||
CONNECT.)
|
||
|
||
* libsoup/soup-context.c (try_existing_connections): Don't need to
|
||
call soup_connection_set_in_use.
|
||
(try_create_connection): Use soup_connection_new,
|
||
soup_connection_new_proxy, or soup_connection_new_tunnel as
|
||
appropriate.
|
||
|
||
* libsoup/soup-message.c (soup_message_prepare): Replaces
|
||
queue_message.
|
||
(soup_message_queue, soup_message_requeue, soup_message_prepare):
|
||
Gone. This must be done via a SoupSession now.
|
||
(soup_message_set_connection): don't need to mark in_use/not
|
||
in_use. Also, msg->priv->socket is gone now.
|
||
(soup_message_get_socket): Gone.
|
||
|
||
* libsoup/soup-message-handlers.c (soup_message_run_handlers):
|
||
Remove references to global handlers.
|
||
(redirect_handler, authorize_handler): Moved to soup-session.c.
|
||
|
||
* libsoup/soup-misc.c (soup_shutdown): Gone; just unref the
|
||
session to shut down now.
|
||
|
||
* libsoup/soup.h: add soup-session.h
|
||
|
||
* libsoup/Makefile.am: updates
|
||
|
||
* tests/auth-test.c, tests/get.c, tests/simple-proxy.c: Use
|
||
SoupSession.
|
||
|
||
2003-08-29 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message-io.c: Major rewrite. There is now only a
|
||
single IO state object (instead of one for reading and one for
|
||
writing), and the IO code handles switching back and forth between
|
||
reading and writing as appropriate (including handling the extra
|
||
switches needed for "Expect: 100-continue").
|
||
(soup_message_io_client, soup_message_io_server): The new entry
|
||
points.
|
||
(soup_message_io_cancel): If the caller cancels the IO when we
|
||
were expecting to read more data, disconnect the socket.
|
||
|
||
* libsoup/soup-message.h (SoupMessageFlags): add
|
||
SOUP_MESSAGE_EXPECT_CONTINUE, to indicate that the IO code should
|
||
do the special expect-continue handling.
|
||
|
||
* libsoup/soup-message.c: Move all the signal stuff here. Remove
|
||
the "done_reading" and "done_writing" signals and replace them
|
||
with a single "finished" signal. (A single signal. Say that 10
|
||
times fast!)
|
||
(soup_message_got_headers, etc): Functions to emit signals.
|
||
(got_headers, got_chunk, got_body): Default signal methods that
|
||
call soup_message_run_handlers.
|
||
(finished): Default signal method that replaces
|
||
soup_message_issue_callback.
|
||
([various]): s/soup_message_issue_callback/soup_message_finished/
|
||
(soup_message_requeue): There's no soup_message_set_read_callbacks
|
||
any more, so if the caller requeues while it's still reading, just
|
||
cancel the read.
|
||
(soup_message_add_chunk, soup_message_add_final_chunk,
|
||
soup_message_pop_chunk): Moved here from soup-server-message,
|
||
although we don't actually quite support using chunked encoding
|
||
for requests yet.
|
||
|
||
* libsoup/soup-server-message.c (soup_server_message_new): No
|
||
longer takes a socket argument.
|
||
(soup_server_message_add_chunk, soup_server_message_get_chunk):
|
||
Moved into SoupMessage.
|
||
|
||
* libsoup/soup-message-handlers.c (global_handlers): Make these
|
||
POST_BODY rather than PRE_BODY, so they won't mess up the IO
|
||
channel when the requeue the message.
|
||
(soup_message_run_handlers): Don't need to issue the message
|
||
callback from here any more.
|
||
(authorize_handler): Just leave the error as 401 or 407 (see
|
||
soup-error.h change)
|
||
|
||
* libsoup/soup-message-client-io.c (soup_message_send_request):
|
||
Replaces soup_message_write_request and
|
||
soup_message_read_response.
|
||
|
||
* libsoup/soup-message-server-io.c: Parallel to
|
||
soup-message-client-io.c, this defines the server-side header
|
||
handling.
|
||
(soup_message_read_request): Its entry point.
|
||
|
||
* libsoup/soup-server.c: Lots of code moved into
|
||
soup-message-server-io.c. Update for other changes.
|
||
|
||
* libsoup/soup-queue.c: Update for changes
|
||
|
||
* libsoup/soup-socket.c (read_from_network, soup_socket_write):
|
||
Don't call soup_socket_disconnect() on an error, just return
|
||
SOUP_SOCKET_ERROR. Otherwise soup_socket_disconnect() could emit
|
||
signals that will mess up the caller of the read/write function.
|
||
|
||
* libsoup/soup-connection.c (soup_connection_disconnect): When
|
||
disconnecting the socket, disconnect from its signals first to
|
||
prevent bad reentrancy.
|
||
|
||
* libsoup/soup-error.h: Kill off SOUP_ERROR_CANT_AUTHENTICATE and
|
||
SOUP_ERROR_CANT_AUTHENTICATE_PROXY, since they don't really say
|
||
anything that SOUP_ERROR_UNATHORIZED and
|
||
SOUP_ERROR_PROXY_UNAUTHORIZED don't say. (And now, all of the
|
||
"transport" errors actually are transport-related.)
|
||
|
||
* tests/auth-test.c (main): s/CANT_AUTHENTICATE/UNAUTHORIZED/
|
||
|
||
* tests/simple-proxy.c: Complicate this a bunch. In particular,
|
||
use SOUP_MESSAGE_OVERWRITE_CHUNKS and the GOT_CHUNK signal, and
|
||
pass the data back to the client in chunked format.
|
||
|
||
2003-08-27 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-types.h: New header with typedefs, to avoid
|
||
#include loops among other headers.
|
||
|
||
* libsoup/Makefile.am (libsoupinclude_HEADERS): add it
|
||
|
||
* libsoup/*.[ch], tests/*.c: Update for soup-types.h
|
||
|
||
2003-08-26 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message-client-io.c (soup_message_write_request,
|
||
soup_message_read_response): Higher-than-soup-message-io-level
|
||
functions to do client-side IO. (Code that used to be in
|
||
soup-queue.c)
|
||
(get_request_header_cb): Fix a bug in the generation of the Host:
|
||
header; need to include the port number if it's not the default.
|
||
|
||
* libsoup/soup-message-io.c (soup_message_write,
|
||
soup_message_write_simple): Take separate user_datas for the get_*
|
||
callbacks and the done callbacks.
|
||
|
||
* libsoup/soup-queue.c: Update to use soup_message_write_request
|
||
and soup_message_read_response.
|
||
|
||
* libsoup/soup-connection.c (soup_connection_new): Change the
|
||
prototype to take a SoupUri and a callback.
|
||
|
||
* libsoup/soup-context.c (try_create_connection,
|
||
soup_context_connect_cb): Update for soup_connection_new change.
|
||
|
||
* libsoup/soup-server.c (read_done_cb, issue_bad_request): Update
|
||
for soup_message_write changes
|
||
|
||
* libsoup/soup-uri.c (soup_uri_uses_default_port): new utility
|
||
function
|
||
|
||
2003-08-26 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message-private.h: Define SoupMessage signal stuff
|
||
(READ_HEADERS, READ_CHUNK, READ_BODY, READ_ERROR, WROTE_HEADERS,
|
||
WROTE_CHUNK, WROTE_BODY, WRITE_ERROR).
|
||
|
||
* libsoup/soup-message.c (class_init): set up signals
|
||
(requeue_read_finished): Update for changes.
|
||
|
||
* libsoup/soup-message-io.c (soup_message_read): Split out
|
||
parse_headers_cb from read_headers_cb. Also add a SoupDataBuffer *
|
||
arg to say where to store the message body. Set up
|
||
read_headers_cb, read_chunk_cb, read_body_cb, and error_cb as
|
||
signal handlers.
|
||
(do_read): Call r->parse_headers_cb, then emit READ_HEADERS
|
||
(read_body_chunk): emit READ_CHUNK.
|
||
(issue_final_callback): Set r->body. emit READ_BODY.
|
||
(failed_read): emit READ_ERROR.
|
||
(soup_message_read_set_callbacks): Disconnect old signal handlers,
|
||
connect new ones.
|
||
(soup_message_read_cancel): Disconnect signal handlers.
|
||
(soup_message_write, soup_message_write_simple): Set up
|
||
wrote_body_cb and error_cb as signal handlers.
|
||
(do_write): emit WROTE_HEADERS and WROTE_CHUNK, even though
|
||
nothing currently ever listens for them. emit WROTE_BODY when
|
||
done.
|
||
(failed_write): emit WRITE_ERROR
|
||
|
||
* libsoup/soup-queue.c (soup_queue_parse_headers_cb,
|
||
soup_queue_read_headers_cb): Split this into two unequal chunks.
|
||
(read_header_cb only runs the pre-body handlers).
|
||
(soup_queue_read_chunk_cb, soup_queue_read_done_cb): Update
|
||
prototypes.
|
||
(soup_queue_write_done_cb): Update call to soup_message_read
|
||
|
||
* libsoup/soup-server.c (parse_headers_cb): Renamed from
|
||
read_headers_cb
|
||
(read_done_cb): Update prototype
|
||
(start_request): Update soup_message_read call.
|
||
|
||
2003-08-25 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message-io.c (soup_message_read,
|
||
soup_message_write, soup_message_write_simple): Add a "user_data"
|
||
arg, pass it to the callbacks.
|
||
|
||
* libsoup/soup-message.c (soup_message_requeue,
|
||
requeue_read_finished, requeue_read_error): Update for that
|
||
|
||
* libsoup/soup-queue.c: Likewise
|
||
|
||
* libsoup/soup-server.c: Likewise
|
||
|
||
2003-08-25 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message.c (soup_message_new): Take a uri string
|
||
instead of a context. Also, swap the args (so the method comes
|
||
before the URI, just like in the protocol).
|
||
(soup_message_new_from_uri): Like soup_messgae_new, but takes a
|
||
SoupUri instead of a string
|
||
(soup_message_set_request, soup_message_set_response): Replace
|
||
soup_message_new_full.
|
||
(cleanup_message): Was soup_message_cleanup, but is static now.
|
||
(queue_message): Do the pre-queuing message cleanup here instead
|
||
of in soup_queue_message.
|
||
(soup_message_queue): Set the callback and user_data, then call
|
||
queue_message.
|
||
(requeue_read_error, requeue_read_finished, soup_message_requeue):
|
||
Use queue_message
|
||
(soup_message_get_uri): Replaces soup_message_get_context.
|
||
|
||
* libsoup/soup-message.h (SoupMessage): Remove msg->context. (It's
|
||
part of SoupMessagePrivate now)
|
||
|
||
* libsoup/soup-context.c: #include soup-message-private
|
||
(soup_context_from_uri): constify the uri arg.
|
||
|
||
* libsoup/soup-queue.c: Various context/uri fixes
|
||
(proxy_https_connect): Use soup_message_new_from_uri.
|
||
(soup_queue_message): Drastically simplified since most of the
|
||
work is in soup-messsage.c:queue_message() now
|
||
|
||
* libsoup/soup-auth-digest.c (compute_response,
|
||
get_authorization): Use soup_message_get_uri.
|
||
|
||
* libsoup/soup-server-auth.c (parse_digest): Likewise
|
||
|
||
* libsoup/soup-server.c (call_handler): Likewise
|
||
|
||
* tests/simple-httpd.c (server_callback): Likewise.
|
||
|
||
* tests/simple-proxy.c (server_callback): Likewise
|
||
|
||
* tests/get.c (got_url): Likewise.
|
||
(get_url): Update soup_message_new usage.
|
||
|
||
* tests/auth-test.c: #include soup-message-private. Update for
|
||
context changes and soup_message_new change.
|
||
|
||
2003-08-22 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message-private.h: New file containing
|
||
SoupMessagePrivate and some other soup-message-internal
|
||
types/functions. Also includes the new, expanded SoupMessageStatus
|
||
enum.
|
||
|
||
* libsoup/soup-message-io.c: Replaces what used to be in
|
||
soup-transfer, but now all the interfaces take SoupMessages
|
||
instead of SoupReader/SoupWriter and deal with maintaining
|
||
msg->priv->{read,write}_state themselves. Fixes up all the
|
||
refcounting madness.
|
||
|
||
* libsoup/soup-message-handlers.c: Move the handler code here,
|
||
mostly unchanged. (But rename SoupHandlerType to SoupHandlerPhase
|
||
to make the distinction from SoupHandlerKind clearer.)
|
||
|
||
* libsoup/soup-message.c: Update for soup-message-io and new
|
||
SoupMessageStatus values. Remove handler code.
|
||
(soup_message_cleanup): Remove the hack to try to preserve the
|
||
connection if the message gets cleaned up before it finishes
|
||
reading. soup_message_requeue handles this in the requeuing case,
|
||
and there's no especially compelling reason to bother doing it in
|
||
any other case. (And the soup-message-io api doesn't support
|
||
having a read operation that's not connected to any message.)
|
||
|
||
* libsoup/soup-private.h: remove SoupMessagePrivate
|
||
|
||
* libsoup/soup-queue.c: Update for soup-message-io and new
|
||
SoupMessageStatus values.
|
||
|
||
* libsoup/soup-server-message.c: Likewise
|
||
|
||
* libsoup/soup-server.c: Likewise
|
||
|
||
* libsoup/soup-transfer.c: Gone (yay)
|
||
|
||
* libsoup/Makefile.am (libsoup_2_2_la_SOURCES): update
|
||
|
||
2003-08-20 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message.c: Make this a GObject. (Note that since
|
||
SoupMessage was not refcounted before, it's not really refcounted
|
||
now either. TBF)
|
||
(soup_message_free): Gone, replaced by g_object_unref
|
||
(soup_message_copy, soup_message_foreach_remove_header): Remove
|
||
these, since neither was currently functional.
|
||
(soup_message_is_keepalive): New utility function to look at
|
||
HTTP version and request/response headers to decide if a message
|
||
indicates the connection should be kept alive.
|
||
(soup_message_set_connection, soup_message_get_connection): New
|
||
(soup_message_get_socket): New
|
||
|
||
* libsoup/soup-server-message.c: Make this a subclass of
|
||
SoupMessage.
|
||
(soup_server_message_new): Now takes a SoupServer and SoupSocket
|
||
(soup_server_message_get_server): New
|
||
(soup_server_message_set_encoding,
|
||
soup_server_message_get_encoding): Get/set whether the message
|
||
should be sent with content-length or chunked encoding
|
||
(soup_server_message_is_started, soup_server_message_is_finished):
|
||
Private member accessors.
|
||
(soup_server_message_add_chunk): Renamed from add_data
|
||
(soup_server_message_get_chunk): Pops a chunk from the list.
|
||
(soup_server_message_get_source): Gone
|
||
|
||
* libsoup/soup-server.c: Update for SoupServerMessage changes.
|
||
(error_cb, write_done_cb): All the cleanup stuff that used to be
|
||
here happens automatically by unreffing the message now.
|
||
(get_response_header): Remove some erroneous leftover CGI stuff
|
||
(issue_bad_request): add "Connection: close" to the response.
|
||
(read_headers_cb): clean this up a bit. Reject HTTP/1.1 messages
|
||
with no Host header as per RFC 2616.
|
||
|
||
* libsoup/soup-connection.c (soup_connection_start_ssl): Gone
|
||
(soup_connection_set_in_use): Let the caller set the connection to
|
||
"not in use" even after the socket has been disconnected.
|
||
|
||
* libsoup/soup-context.c: Use soup_message_get_connection
|
||
|
||
* libsoup/soup-headers.c (soup_headers_parse_request): Remove the
|
||
check on request length, since it was rejecting
|
||
"GET / HTTP/1.0\r\n\r\n", which is a valid complete request.
|
||
|
||
* libsoup/soup-queue.c: Use soup_message_get_connection and
|
||
soup_message_get_socket.
|
||
(soup_queue_read_done_cb): Use soup_message_is_keepalive
|
||
(proxy_https_connect_cb): Use soup_socket_start_ssl rather than
|
||
soup_connection_start_ssl
|
||
|
||
* libsoup/soup-socket.c (finalize): disconnect the GIOChannel
|
||
handlers if the socket hasn't been disconnected yet.
|
||
|
||
* libsoup/soup-transfer.c (soup_reader_read_body_chunk,
|
||
reader_read): Fix these so that reader_read will exit properly if
|
||
the read is cancelled.
|
||
|
||
* tests/auth-test.c (main): s/soup_message_free/g_object_unref/
|
||
|
||
* tests/simple-httpd.c (server_callback): set the message to
|
||
content-length encoding.
|
||
* tests/simple-proxy.c (server_callback): Likewise
|
||
|
||
2003-08-19 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-socket.c (soup_socket_read,
|
||
soup_socket_read_until, soup_socket_write): New API for doing
|
||
socket IO. Works both synchronously and asynchronously, and
|
||
buffers data to prevent the "100 Continue" problem.
|
||
(soup_socket_set_flag): Replaces formerly-private
|
||
soup_set_sockopts. (primarily to let the caller turn off
|
||
SOUP_SOCKET_FLAG_NONBLOCKING).
|
||
|
||
* libsoup/soup-transfer.c (soup_transfer_read,
|
||
soup_transfer_write, soup_transfer_write_simple): Take a
|
||
SoupSocket instead of a GIOChannel. Use the new socket IO api.
|
||
Changed the prototypes of some of the callbacks to be less
|
||
hackish.
|
||
|
||
* libsoup/soup-connection.c (soup_connection_get_socket): Replaces
|
||
soup_connection_get_iochannel.
|
||
|
||
* libsoup/soup-message.c: Fix up for soup-transfer changes
|
||
|
||
* libsoup/soup-queue.c: Likewise
|
||
|
||
* libsoup/soup-server.c: Likewise
|
||
|
||
* tests/revserver.c: A slightly more complicated replacement for
|
||
timeserver. (Does both reads and writes)
|
||
|
||
2003-08-19 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-socks.[ch]: Remove this. RC doesn't let you
|
||
configure it, and no one has complained, and it looks like the
|
||
SOCKS5 auth code doesn't actually work anyway...
|
||
|
||
* libsoup/soup-queue.c (proxy_connect): Remove SOCKS code.
|
||
|
||
* libsoup/soup-uri.h: Remove SOUP_PROTOCOL_SOCKS4 and
|
||
SOUP_PROTOCOL_SOCKS5
|
||
|
||
* libsoup/soup-misc.c: Remove a references to SOCKS in a comment
|
||
|
||
* libsoup/Makefile.am (libsoup_2_2_la_SOURCES): remove
|
||
soup-socks.[ch]
|
||
|
||
2003-08-19 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-server.c: Make this a GObject. Remove
|
||
SoupServerMessage code (to soup-server-message.c). Remove CGI
|
||
server code (for now?)
|
||
(soup_server_add_handler, soup_server_remove_handler): Rename
|
||
(from register/unregister) to make it clearer what they do.
|
||
|
||
* libsoup/soup-server-message.c: Moved out of soup-server.c
|
||
|
||
* libsoup/soup-private.h: Remove SoupServer def
|
||
|
||
* libsoup/Makefile.am (libsoupinclude_HEADERS,
|
||
libsoup_2_2_la_SOURCES): add soup-server-message.[ch]
|
||
|
||
* tests/simple-httpd.c:
|
||
* tests/simple-proxy.c: Update for SoupServer changes
|
||
|
||
2003-08-18 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-address.c (SoupAddressPrivate): Make this more like
|
||
a struct sockaddr again (like it used to be). In particular, add
|
||
back the "port" field. Add a bunch of macros to try (and fail) to
|
||
simplify some of the code.
|
||
(soup_address_new): Now returns a SoupAddress directly rather than
|
||
a random handle, and the caller can just use g_object_unref to
|
||
cancel the lookup. Also, the callback now uses a
|
||
SoupKnownErrorCode rather than a special-purpose address-lookup
|
||
error code.
|
||
(soup_address_new_cancel): No longer needed.
|
||
(soup_address_new_sync): Removed
|
||
(soup_address_new_any): Replaces soup_address_ipv4_any and
|
||
soup_address_ipv6_any.
|
||
(soup_address_get_name, etc): Gone. Use soup_address_resolve()
|
||
now.
|
||
(soup_address_get_physical): Renamed from
|
||
soup_address_get_canonical_name.
|
||
(soup_address_get_sockaddr): Replaces soup_address_make_sockaddr()
|
||
|
||
* libsoup/soup-socket.c: Update for SoupAddress changes and make
|
||
similar changes here.
|
||
(soup_socket_new): Just creates a generic SoupSocket now.
|
||
(soup_socket_connect): Client setup
|
||
(soup_socket_listen): Server setup. Now also sets up an iochannel
|
||
listening for connects and emits a "new_connection" signal as they
|
||
come in.
|
||
(soup_socket_start_ssl): Turns on SSL.
|
||
(soup_socket_client_new, soup_socket_server_new): Utility
|
||
functions that wrap the above.
|
||
(soup_socket_new_cancel, soup_socket_new_sync): Gone
|
||
(soup_socket_server_accept, soup_socket_server_try_accept): No
|
||
longer needed.
|
||
(soup_socket_get_iochannel): No longer adds a ref when returning
|
||
the iochannel. Also, we set it to "close_on_unref" so that if a
|
||
caller adds a ref to it, the connection will actually remain open
|
||
even after the SoupSocket is destroyed.
|
||
(soup_socket_get_local_address, soup_socket_get_remote_address):
|
||
Let the caller get both of these.
|
||
|
||
* libsoup/soup-connection.c: Don't keep a private copy of the
|
||
socket's iochannel.
|
||
(soup_connection_new): Don't need to set socket options here.
|
||
SoupSocket does it.
|
||
(soup_connection_start_ssl): Just call soup_socket_start_ssl.
|
||
(soup_connection_get_iochannel): Just return the socket's
|
||
iochannel (and don't ref it)
|
||
|
||
* libsoup/soup-error.c: add SOUP_ERROR_CANT_RESOLVE and
|
||
SOUP_ERROR_CANT_RESOLVE_PROXY
|
||
|
||
* libsoup/soup-dns.c (soup_ntop): Make the address arg const.
|
||
Remove the "FIXME add a CANT_RESOLVE error" and return
|
||
SOUP_ERROR_CANT_RESOLVE instead.
|
||
|
||
* libsoup/soup-server.c: Update for socket/address changes. Don't
|
||
poke into SoupSocket's private fields.
|
||
(soup_server_run_async): Just connect to the socket's
|
||
"new_connection" signal.
|
||
|
||
* libsoup/soup-context.c (try_create_connection,
|
||
soup_context_connect_cb): Update for socket changes. Replace
|
||
SOUP_CONNECT_ERROR codes with plain SOUP_ERROR codes.
|
||
|
||
* libsoup/soup-misc.c (soup_signal_connect_once): Utility function
|
||
to connect to a signal handler and connect another function to
|
||
clean up the first signal handler after its first invocation.
|
||
(Lets us use signals to replace one-off callbacks.)
|
||
|
||
* libsoup/soup-private.h: Remove SoupSocketPrivate since it is
|
||
actually private now.
|
||
(struct _SoupServer): Remove accept_tag.
|
||
|
||
* libsoup/soup-queue.c (soup_queue_read_done_cb, start_request):
|
||
Don't unref the iochannel.
|
||
(soup_queue_connect_cb): Takes a SoupKnownErrorCode now.
|
||
|
||
* libsoup/soup-socks.c: Update for socket/address changes
|
||
|
||
* tests/simple-httpd.c (main):
|
||
s/SOUP_SERVER_ANY_PORT/SOUP_ADDRESS_ANY_PORT/
|
||
* tests/simple-proxy.c (main): Likewise
|
||
|
||
* tests/timeserver.c: Update for SoupSocket's "new_connection"
|
||
signal, and for SoupAddress changes.
|
||
|
||
2003-08-14 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-connection.c: New, split out from soup-context and
|
||
made into a GObject.
|
||
(soup_connection_disconnect): Disconnects the connection and emits
|
||
a signal. (Replaces the old "keep_alive" flag.)
|
||
(soup_connection_is_connected): Checks if the connection is still
|
||
connected
|
||
(connection_died): Just disconnect, rather than freeing the
|
||
connection. This way if anyone else is still referencing it they
|
||
won't end up with an invalid pointer.
|
||
|
||
* libsoup/soup-context.c: Make this a GObject, remove all the
|
||
SoupConnection code. Add an "ntlm_auths" field to SoupHost so that
|
||
SoupContext can keep track of connection auth stuff there without
|
||
SoupConnection needing to care. Various other updates.
|
||
|
||
* libsoup/soup-private.h: Remove SoupContext and SoupConnection
|
||
definitions.
|
||
|
||
* libsoup/*.c, tests/get.c: Update for context/connection changes
|
||
|
||
* libsoup/soup-socks.c (soup_connect_socks_proxy): Change the
|
||
definition to deal with the fact that there's no
|
||
soup_connection_get_context any more.
|
||
|
||
* libsoup/soup-queue.c (soup_queue_read_headers_cb): Don't deal
|
||
with connection persistence here.
|
||
(soup_queue_read_done_cb): Do it here instead. Disconnect the
|
||
connection when appropriate.
|
||
(proxy_connect, proxy_https_connect, proxy_https_connect_cb):
|
||
Reference-count the connection properly. (I think.)
|
||
|
||
* libsoup/soup-marshal.list: New, for SoupConnection's
|
||
"disconnected" signal.
|
||
|
||
* libsoup/Makefile.am: add rules to build soup-marshal.[ch]
|
||
|
||
* configure.in: Use AM_PATH_GLIB_2 rather than pkg-config, so that
|
||
GLIB_GENMARSHAL gets set too.
|
||
|
||
2003-08-14 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-error.c: Fix a spelling mistake.
|
||
|
||
* libsoup/*.c: Fix use of @/%/#/() in gtk-doc comments
|
||
|
||
2003-08-12 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-auth.c: Make this an abstract GObject. Tweak some
|
||
of the interfaces around a little bit.
|
||
|
||
* libsoup/soup-auth-basic.c: subclass for Basic auth
|
||
|
||
* libsoup/soup-auth-digest.c: subclass for Digest auth
|
||
|
||
* libsoup/soup-auth-ntlm.c: subclass for NTLM auth. Move all of
|
||
the code from soup-ntlm.c here, and make it private.
|
||
|
||
* libsoup/soup-ntlm.c: gone
|
||
|
||
* libsoup/soup-misc.h: Remove the definition of SoupAuthType from
|
||
here, and change the signature of SoupAuthorizeFn.
|
||
|
||
* libsoup/soup-context.c: Use g_object_unref to free auths, use
|
||
methods instead of directly access private fields.
|
||
|
||
* libsoup/soup-queue.c: Likewise
|
||
|
||
* libsoup/soup-server-auth.c (soup_server_auth_free): Remove all
|
||
NTLM references. We have no plans to implement server-side NTLM
|
||
auth.
|
||
|
||
* tests/auth-test.c (identify_auth): Update for auth api changes
|
||
|
||
2003-08-12 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in (GLIB): add gobject-2.0 to the PKG_CHECK_MODULES
|
||
call
|
||
|
||
* libsoup/soup-address.c: Make this a GObject.
|
||
(soup_address_ref, soup_address_unref): Gone.
|
||
(soup_address_copy): Gone. Wasn't being used anyway.
|
||
|
||
* libsoup/soup-dns.c: Move all of the DNS code and caching stuff
|
||
here from soup-address.c, so that soup-address doesn't need to
|
||
worry about trying to cache zero-ref addresses.
|
||
|
||
* libsoup/soup-socket.c: Make this a GObject. Use "guint"
|
||
consistently for port numbers.
|
||
(soup_socket_ref, soup_socket_unref): Gone.
|
||
|
||
* libsoup/soup-private.h: Change the SoupSocket definition to be
|
||
SoupSocketPrivate. (Still need to keep this here since soup-server
|
||
pokes around in its internals.)
|
||
(SOUP_MAKE_TYPE): Copied from gal's E_MAKE_TYPE.
|
||
|
||
* libsoup/soup-server.c (read_done_cb, write_done_cb): Unref the
|
||
reader/writer rather than leaking them.
|
||
|
||
* libsoup/*: Use GObject methods for socket/address refcounting
|
||
|
||
* tests/auth-test.c (main)
|
||
* tests/timeserver.c (main): Call g_type_init.
|
||
|
||
* tests/get.c (main): Call g_type_init.
|
||
(get_url, got_url): Fix some bugs that could make -r mode get into
|
||
infinite loops downloading the same files over and over. Plug some
|
||
memory leaks to make this more useful for valgrinding libsoup.
|
||
|
||
* tests/simple-httpd.c (main): Call g_type_init. Set up a signal
|
||
handler for SIGINT so we can exit cleanly, since valgrind won't
|
||
give a leak report if you don't. Plug a few memory leaks.
|
||
|
||
* tests/simple-proxy.c (main): Likewise
|
||
|
||
2003-08-12 Dan Winship <danw@ximian.com>
|
||
|
||
Pull over some new test programs from the soup-refactoring branch,
|
||
along with the SoupUri changes they depend on.
|
||
|
||
* tests/simple-httpd.c: A really simple HTTP server, to test the
|
||
server code.
|
||
|
||
* tests/simple-proxy.c: An even simpler HTTP proxy
|
||
|
||
* tests/get.c: Add "-r" flag to recursively get files (thereby
|
||
testing multiple-connections-at-once code). Also good for setting
|
||
up a tree to use with simple-httpd.
|
||
|
||
* tests/timeserver.c (main): Fix a bug. (s/ipv6/ipv4/ in the
|
||
normal case)
|
||
|
||
* tests/uri-parsing.c: Regression test for the new soup-uri.c
|
||
|
||
* libsoup/soup-uri.c: Rewrite/update to conform to RFC 2396, and
|
||
pull in some optimizations from camel-url. Also, make SoupProtocol
|
||
a GQuark so we can still compare them with ==, but we can also
|
||
recognize any protocol.
|
||
(soup_uri_new_with_base): New, to merge base and relative URIs
|
||
(soup_uri_to_string): Update this. Change the "show_password" flag
|
||
(which we always passed FALSE for) to "just_path", for places that
|
||
want the path+query without the protocol, host, etc.
|
||
|
||
* libsoup/soup-queue.c (soup_get_request_header): Just use
|
||
soup_uri_to_string to generate the request URI.
|
||
|
||
* libsoup/soup-auth.c (compute_response, digest_auth_func): Use
|
||
"soup_uri_to_path (uri, TRUE)" rather than trying to reassemble
|
||
the URI by hand badly.
|
||
* libsoup/soup-server-auth.c (parse_digest): Likewise
|
||
|
||
* libsoup/soup-socks.c (soup_connect_socks_proxy): Change a
|
||
switch() to an series of if()s since SOUP_PROTOCOL_* aren't
|
||
constants any more.
|
||
|
||
* libsoup/soup-context.c (soup_context_uri_hash,
|
||
soup_context_uri_equal): s/querystring/query/
|
||
|
||
2003-08-12 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: Bump API version to 2.2 and package version to
|
||
2.1.0. Remove NSS and OpenSSL checks and proxy-related config. Use
|
||
libgnutls-config to find GNUTLS.
|
||
|
||
* libsoup-2.2.pc.in: Update, and rename from soup-2.0.pc
|
||
|
||
* Makefile.am: Update for pc file rename
|
||
|
||
* libsoup/Makefile.am: s/2.0/2.2/ everywhere. Remove NSS, OpenSSL,
|
||
and libsoup-ssl-proxy stuff.
|
||
|
||
* libsoup/soup-ssl-proxy.c
|
||
* libsoup/soup-nss.[ch]
|
||
* libsoup/soup-openssl.[ch]: gone
|
||
|
||
* libsoup/soup-ssl.c: remove NSS and OpenSSL bits
|
||
|
||
* tests/Makefile.am (get_LDADD, timeserver_LDADD,
|
||
auth_test_LDADD): Update libsoup version
|
||
|
||
2003-08-07 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-auth.c (soup_auth_lookup, soup_auth_set_context,
|
||
soup_auth_invalidate): These are all really SoupContext functions,
|
||
so move them to soup-context.c (and rename them appropriately).
|
||
(soup_auth_get_protection_space): New method to get the
|
||
"protection space" of an auth (paths where it is valid).
|
||
(soup_auth_invalidate): New method to try to un-authenticate an
|
||
auth (so we can keep the domain info cached even if the auth info
|
||
is wrong).
|
||
(basic_pspace_func): Basic protection space is all directories
|
||
below the current one.
|
||
(basic_invalidate_func): Clear the encoded username/password
|
||
(digest_pspace_func): Digest protection space is either the whole
|
||
server, or "what the domain parameter says" (though we don't deal
|
||
with cross-host domains).
|
||
(digest_invalidate_func): Return FALSE; bad digest auth info isn't
|
||
cacheable.
|
||
(digest_parse_func, digest_free): Set/free domain parameter
|
||
(ntlm_pspace): NTLM protection space is always the whole server.
|
||
(ntlm_invalidate): Clear the auth state.
|
||
(soup_auth_new_ntlm): Make this non-static
|
||
(SoupAuth): Replace the quad-state "status" field with an
|
||
"authenticated" boolean.
|
||
|
||
* libsoup/soup-private.h (SoupHost): Replace the "valid_auths"
|
||
hash with separate "auth_realms" (path->realm) and "auths"
|
||
(realm->auth) hashes. Also add a "use_ntlm" flag.
|
||
|
||
* libsoup/soup-context.c (soup_context_unref): Update SoupHost
|
||
freeing code.
|
||
(connection_free): Don't the connection's auth, just free it.
|
||
(soup_context_lookup_auth): Formerly soup_auth_lookup, but now
|
||
does two-stage lookup (path->realm then realm->auth) and also
|
||
deals with NTLM hacks.
|
||
(soup_context_update_auth): Mostly formerly soup_auth_set_context,
|
||
but also large parts of authorize_handler. Updates the auth hashes
|
||
based on information from a 401 or 407 response. Does a better job
|
||
than authorize_handler did of not throwing away good information.
|
||
(soup_context_preauthenticate): New; fakes up auth info so that
|
||
requests will end up using authentication without the server
|
||
needing to return an error first.
|
||
(soup_context_authenticate_auth): Moved out of authorize_handler
|
||
so it can be used at request-sending time too, if we know that we
|
||
need it. (That way we can avoid requeuing the request if it isn't
|
||
going to be able to be authenticated.)
|
||
(soup_context_invalidate_auth): Sort of like the old
|
||
soup_auth_invalidate, but only destroys the auth data, while still
|
||
remembering the path->realm mapping.
|
||
|
||
* libsoup/soup-message.c (authorize_handler): Mostly moved into
|
||
soup_context_update_auth.
|
||
(maybe_validate_auth): Remove this; it was only useful because of
|
||
bugs elsewhere in the auth handling.
|
||
|
||
* libsoup/soup-queue.c (soup_encode_http_auth): Update for
|
||
soup_context_lookup_auth. If the returned auth isn't
|
||
authenticated, call soup_context_authenticate_auth() on it.
|
||
|
||
* tests/auth-test.c: New (from soup-refactoring branch). Tests
|
||
that the Basic/Digest auth code does the right thing. (TODO: find
|
||
a good way to add NTLM tests too.)
|
||
|
||
* tests/Makefile.am (check_PROGRAMS): add auth-test
|
||
|
||
2003-07-29 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: 1.99.25 ("Potato and Leek Soup")
|
||
|
||
* libsoup/soup-message.c (requeue_read_finished,
|
||
release_connection): Free the passed-in body data. Otherwise the
|
||
response body ends up getting leaked on most 3xx and 4xx
|
||
responses.
|
||
(soup_message_cleanup): Remove a piece of code that didn't
|
||
actually do anything and its associated confused comment.
|
||
|
||
* libsoup/soup-auth.c (ntlm_free): plug an occasional NTLM auth leak
|
||
|
||
* libsoup/soup-context.c (connection_free): plug a non-occasional
|
||
NTLM auth leak.
|
||
|
||
2003-06-26 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Version 1.99.24
|
||
|
||
2003-06-24 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: Check pkgconfig for openssl, since 0.9.7 (a) uses
|
||
it, and (b) depends on lots of new things sometimes (like on RH9).
|
||
|
||
* libsoup/soup-openssl.c:
|
||
* libsoup/soup-ssl-proxy.c: Change #ifdef HAVE_OPENSSL_SSL_H to
|
||
just #ifdef HAVE_OPENSSL since the header check doesn't get run in
|
||
the pkgconfig case
|
||
|
||
2003-06-19 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-queue.c (soup_queue_read_done_cb): unref the
|
||
old read_tag before changing/clearing it.
|
||
(soup_queue_write_done_cb): Likewise with the write_tag.
|
||
|
||
* libsoup/soup-transfer.c (issue_final_callback): ref the reader
|
||
around the stop+callback.
|
||
(soup_transfer_write_cb): Likewise.
|
||
|
||
2003-06-12 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-transfer.c (SoupReader, SoupWriter): add a
|
||
ref_count field.
|
||
(soup_transfer_read, create_writer): Set initial ref_count to 2
|
||
(one for soup-transfer, one for the caller).
|
||
(soup_transfer_read_ref, soup_transfer_read_unref): ref/unref a
|
||
reader
|
||
(soup_transfer_read_stop): Clears the GIOChannel callbacks and
|
||
drops soup-transfer's ref.
|
||
(soup_transfer_read_cancel): Now just a stop+unref
|
||
(soup_transfer_write_ref, soup_transfer_write_unref,
|
||
soup_transfer_write_stop, soup_transfer_write_cancel): Similarly.
|
||
|
||
* libsoup/soup-message.c (soup_message_cleanup): when setting up
|
||
the "finish reading" callbacks, unref the reader so it will be
|
||
destroyed once it's done reading.
|
||
(soup_message_requeue): Likewise.
|
||
|
||
* libsoup/soup-queue.c (soup_queue_read_headers_cb): Update for
|
||
prototype change (no longer returns a SoupTransferDone).
|
||
(soup_queue_read_chunk_cb): Likewise.
|
||
|
||
* libsoup/soup-server.c (read_headers_cb): Likewise
|
||
|
||
2003-06-11 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-transfer.c: Change all functions to take a
|
||
SoupReader * or SoupWriter * instead of a guint.
|
||
|
||
* libsoup/soup-private.h (SoupMessagePrivate): make read_tag and
|
||
write_tag pointers instead of guints.
|
||
|
||
2003-06-02 Chris Toshok <toshok@ximian.com>
|
||
|
||
* libsoup/soup-ssl.c: remove #include for soup-nss.h
|
||
|
||
2003-06-02 Chris Toshok <toshok@ximian.com>
|
||
|
||
* libsoup/Makefile.am (INCLUDES): remove NSS_CFLAGS.
|
||
(libsoup_2_0_la_LIBADD): remove NSS_LIBS.
|
||
(libsoup_2_0_la_SOURCES): remove soup-nss.[ch]
|
||
|
||
2003-06-02 Chris Toshok <toshok@ximian.com>
|
||
|
||
* configure.in: Bump version to 1.99.23.
|
||
|
||
2003-05-30 Chris Toshok <toshok@ximian.com>
|
||
|
||
* libsoup/soup-queue.c (soup_queue_error_cb): always force a
|
||
reconnect when there's an error with ssl connection. This fixes
|
||
#43387, but it runs the risk of sending requests multiple times to
|
||
the exchange server, and it results in lots of shorter lived
|
||
connections and more forking (in the ssl proxy case), depending on
|
||
the length of the operation.
|
||
|
||
2003-05-21 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: 1.99.22 (codename: French Onion Soup)
|
||
|
||
2003-05-20 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message.c (soup_message_requeue): Clear the
|
||
write_tag as well so we don't double-cancel it. #43395.
|
||
|
||
* libsoup/soup-queue.c (soup_queue_error_cb): The connection might
|
||
be destroyed by the end of the func, so we have to call
|
||
soup_connection_set_used at the beginning.
|
||
|
||
* libsoup/soup-openssl.c (soup_openssl_read, soup_openssl_write):
|
||
Call g_set_error() so that we don't SEGV immediately after
|
||
returning G_IO_STATUS_ERROR.
|
||
|
||
2003-05-08 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump version to 1.99.21
|
||
|
||
* libsoup/soup-queue.c (proxy_connect): If the proxy HTTPS
|
||
tunnelling fails, the other message which shares our same
|
||
connection will free it first, so set ours to NULL.
|
||
|
||
2003-05-08 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-auth.c (ntlm_auth): If the auth status is PENDING,
|
||
return an NTLM request string. Otherwise return the "response"
|
||
field (which should include the NTLM authenticate message)
|
||
(ntlm_init): Don't bother setting "response" to the NTLM request
|
||
string. Just leave it NULL in that case.
|
||
|
||
* libsoup/soup-message.c (authorize_handler): Never try to reuse
|
||
an NTLM auth returned from soup_auth_lookup. Only set the auth on
|
||
the connection when it's SOUP_AUTH_STATUS_SUCCESSFUL. Otherwise,
|
||
call soup_auth_set_context() on it just like for non-NTLM auth.
|
||
The net effect of all of this is that now we record when a context
|
||
needs NTLM auth just like with non-NTLM auth, so that that info
|
||
gets preserved across connections.
|
||
(soup_message_requeue): No longer need the hackery here to
|
||
preserve the connection auth state.
|
||
|
||
2003-05-07 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-context.c (soup_connection_set_in_use): New, to
|
||
toggle the connection's in_use flag, and set up the death watch
|
||
when it's not in use.
|
||
(connection_death): This is only hooked up when the connection is
|
||
not in use now, so don't need to check that. Should fix the
|
||
infinite connection_death loop.
|
||
(soup_connection_is_new): Keep a distinct "new" flag rather than
|
||
defining "new" as "has been released at least once".
|
||
(soup_connection_set_used): Mark a connection no-longer new.
|
||
(soup_context_connect_cb): Mark the connection as new. Don't set
|
||
up the death watch since it's in_use.
|
||
(try_existing_connections): Use soup_connection_set_in_use.
|
||
(soup_connection_release): Likewise
|
||
|
||
* libsoup/soup-message.c (requeue_read_finished): Call
|
||
soup_connection_set_used so that the connection isn't still
|
||
considered new when we send the message the second time.
|
||
|
||
* libsoup/soup-queue.c (soup_queue_error_cb): Call
|
||
soup_connection_set_used (assuming we don't close the connection)
|
||
(soup_queue_read_done_cb): Likewise.
|
||
|
||
* libsoup/soup-transfer.c (soup_transfer_read_cb): If we read
|
||
nothing, call soup_transfer_read_error_cb rather than just
|
||
cancelling, or else it will get cancelled again later.
|
||
|
||
2003-05-07 Dan Winship <danw@ximian.com>
|
||
|
||
* soup-2.0.pc.in (Libs): Don't put @OPENSSL_LIBS@ here; the
|
||
library doesn't depend on them, only the proxy does. #42473
|
||
|
||
2003-05-06 Dan Winship <danw@ximian.com>
|
||
|
||
* src/libsoup/soup-message.c (global_handlers): Change the
|
||
redirect handler to be a RESPONSE_ERROR_CLASS_HANDLER for
|
||
SOUP_ERROR_CLASS_REDIRECT rather than a RESPONSE_HEADER_HANDLER
|
||
for "Location" to get around the non-64-bit-clean union
|
||
initialization pointed out by Jeremy Katz <katzj@redhat.com>.
|
||
(redirect_handler): Update for that.
|
||
|
||
2003-04-28 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: 1.99.20
|
||
|
||
* libsoup/soup-transfer.c (soup_transfer_read_error_cb): Make sure
|
||
we always call UNIGNORE_CANCEL. Might fix #41971
|
||
|
||
2003-04-25 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-queue.c (soup_queue_error_cb): if an old connection
|
||
suddenly gets an io error while reading or writing, assume it's a
|
||
timeout or something, close the connection, and requeue the
|
||
message.
|
||
|
||
2003-04-23 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message.c (soup_message_cleanup): Don't set up the
|
||
soup-transfer callbacks to keep reading off the connection unless
|
||
we're actually going to keep the connection around afterward.
|
||
Otherwise we can just close it.
|
||
|
||
* libsoup/soup-transfer.c: Re-kludge the awful IGNORE_CANCEL
|
||
thingy so that it's possible to cancel a read from inside a
|
||
callback so that the above change actually works instead of just
|
||
crashing.
|
||
|
||
2003-04-20 Rodney Dawes <dobey@ximian.com>
|
||
|
||
* configure.in: Up version to 1.99.18
|
||
* libsoup/Makefile.am: Line separator after GNUTLS_CFLAGS
|
||
|
||
2003-04-11 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-context.c (soup_connection_purge_idle): New
|
||
function to close all idle connections. (Needed for #41117 or else
|
||
there's no way to force-discard NTLM authentication.)
|
||
|
||
* libsoup/soup-queue.c (soup_queue_shutdown): Use it
|
||
|
||
2003-04-10 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-queue.c (proxy_https_connect):
|
||
proxy_https_connect_cb() might not get called if connecting to the
|
||
proxy fails, and it causes us to double-free the connection.
|
||
Always set the message's connection to NULL before freeing it.
|
||
|
||
2003-04-09 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: 1.99.17
|
||
|
||
2003-04-07 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-context.c (connection_death): Revert Joe's changes.
|
||
We can't release the connection there because there may be
|
||
SoupMessages still pointing to it. (Needs to be revisited.)
|
||
|
||
2003-04-03 JP Rosevear <jpr@ximian.com>
|
||
|
||
* libsoup/soup-ssl.c (soup_ssl_hup_waitpid): guard against EINTR
|
||
error during waitpid
|
||
|
||
* libsoup/soup-address.c: ditto
|
||
|
||
2003-04-02 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-context.c (connection_death): Only drop the
|
||
connection if we get an error condition on the channel. Fixes a
|
||
double-free.
|
||
|
||
2003-04-02 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-context.c (connection_death): Just call
|
||
soup_connection_release() from here and return whether the
|
||
connection is in use.
|
||
|
||
2003-03-31 Ian Peters <itp@ximian.com>
|
||
|
||
* libsoup/soup-gnutls.c (soup_gnutls_close): loop on gnutls_bye in
|
||
case of EAGAIN or EINTR, since shutting down an SSL connection
|
||
requires more than just closing a socket.
|
||
|
||
2003-03-28 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-message.c (soup_message_set_context): If the new
|
||
context points to a different server from the old context, call
|
||
soup_message_cleanup. Otherwise it tries to reuse the old
|
||
connection...
|
||
|
||
2003-03-25 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump up to 1.99.16
|
||
|
||
2003-03-24 Joe Shaw <joe@ximian.com>
|
||
|
||
* soup-error.[ch]: Add SOUP_ERROR_SSL_FAILED which gives a
|
||
slightly better error message on various SSL failures than the
|
||
previous message.
|
||
|
||
* soup-queue.c (soup_queue_error_cb): Throw the
|
||
SOUP_ERROR_SSL_FAILED error when we fail an SSL handshake.
|
||
|
||
2003-03-21 Joe Shaw <joe@ximian.com>
|
||
|
||
* soup-server.c: Use non-deprecated g_main_loop_* calls
|
||
throughout.
|
||
(soup_server_unref): Don't unref the main loop if it's NULL.
|
||
Fixes a glib warning.
|
||
|
||
2003-03-18 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: comment out NSS checks. The NSS code doesn't work
|
||
and there are no current plans to fix it.
|
||
|
||
* README (Features): Mention GnuTLS, remove NSS and the rest of
|
||
the "Planned Features" section.
|
||
|
||
* MAINTAINERS: remove Alex
|
||
|
||
* libsoup/soup-openssl.c (soup_openssl_get_iochannel): Bump the
|
||
timeout to 10 seconds (and get rid of the 3 tries) so we don't
|
||
fail to connect just because the server is slow/far away.
|
||
|
||
2003-03-17 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump up to 1.99.15.
|
||
|
||
2003-03-12 Ian Peters <itp@ximian.com>
|
||
|
||
* libsoup/soup-gnutls.c: because creating client credentials is
|
||
expensive, keep the same one around as long as possible, only
|
||
recreating it if the ssl_ca_file changes. Wrap
|
||
gnutls_certificate_credentials in a refcounted struct to avoid
|
||
freeing it while another established connection may potentially
|
||
need it (say, to rehandshake).
|
||
|
||
2003-03-11 Frank Belew <frb@ximian.com>
|
||
|
||
* soup-2.0.pc.in: add ssl libs to defaults, since ssl doesn't
|
||
use pkgconfig
|
||
|
||
2003-03-10 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump up to 1.99.14.
|
||
|
||
* configure.in, libsoup/Makefile.am, libsoup/soup.gnutls.[ch],
|
||
libsoup/soup-ssl.c: Add support for GnuTLS. Patch from Ian
|
||
Peters.
|
||
|
||
2003-03-07 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump up to 1.99.13.
|
||
|
||
* libsoup/soup-context.c (soup_context_connect_cb): Add G_IO_IN to
|
||
the list of conditions to watch. If the remote end hangs up the
|
||
connection, we'll get a successful read of 0 bytes, not a HUP.
|
||
The connection will have to be released by the point we check for
|
||
it in connection_death().
|
||
|
||
* libsoup/soup-queue.c (soup_queue_error_cb): Get rid of some
|
||
(apparently) errant resetting of the read and write tags. I think
|
||
this might have been causing some reentrancy and crashes.
|
||
|
||
* libsoup/soup-socket.c (soup_socket_get_iochannel): Set the IO
|
||
channel to NULL encoding and not buffered.
|
||
|
||
* libsoup/soup-transfer.c (soup_transfer_read_cb): Remove some
|
||
incorrect comments.
|
||
|
||
2003-02-28 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump up to 1.99.12.
|
||
|
||
* libsoup/soup-transfer.c (soup_transfer_read_cb): We can get a
|
||
header_len of 0 and a total_read of 0 in the case of a SIGPIPE; in
|
||
this case we probably don't want to call the error callback, we
|
||
just want to act like our transfer was cancelled.
|
||
|
||
2003-02-27 Joe Shaw <joe@ximian.com>
|
||
|
||
Try to apply some order to the iochannel refcounting...
|
||
|
||
* configure.in: Bump up to 1.99.11.
|
||
|
||
* libsoup/soup-context.c (soup_connection_get_iochannel): The
|
||
connections needs to own a reference to the iochannel! If we're
|
||
using HTTPS, release the ref we get from soup_socket_get_iochannel
|
||
and replace it with the ref we get from soup_ssl_get_iochannel().
|
||
Then, always ref the channel that we return (ugh, but that's the
|
||
soup way).
|
||
(connection_free): Release the connection's ref to the iochannel.
|
||
|
||
* libsoup/soup-ssl.c (soup_ssl_get_iochannel_real): Ref the
|
||
iochannel. The reference we pass back will be owned by the
|
||
connection.
|
||
(soup_ssl_hup_waitpid): Release our ref.
|
||
|
||
2003-02-27 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump up to 1.99.10.
|
||
|
||
* libsoup/soup-ssl.c (soup_ssl_get_iochannel_real): Ref the
|
||
iochannel, return to the status quo. Sigh.
|
||
|
||
2003-02-26 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump up to 1.99.9.
|
||
|
||
* libsoup/soup-ssl.c (soup_ssl_hup_waitpid): Comment out the unref,
|
||
it's causing problems with HTTPS and proxies; the iochannel
|
||
refcounting is waaaaaay horked.
|
||
|
||
2003-02-26 Frank Belew <frb@ximian.com>
|
||
|
||
* libsoup/Makefile.am: added workaround to link ssl-proxy statically
|
||
|
||
2003-02-11 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump up to 1.99.8 for snaps.
|
||
|
||
* libsoup/soup-address.c (soup_gethostbyname): Fix this for Solaris.
|
||
It returns the address to the resulting hostent or NULL on failure,
|
||
unlike Linux which returns an error code.
|
||
|
||
2003-02-11 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump up to 1.99.7 for snaps.
|
||
|
||
* libsoup/soup-openssl.c (soup_openssl_get_iochannel): Print out
|
||
the error string from OpenSSL if we can't establish a connection.
|
||
|
||
2003-02-04 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump up to 1.99.6 for snaps.
|
||
|
||
* libsoup/soup-server.c (destroy_message): We already assigned
|
||
chan, so don't reassign it, and unref it in all cases.
|
||
(issue_bad_request): Always unref after a call to
|
||
soup_socket_get_iochannel(), because it refs it.
|
||
(conn_accept): Fix some funky GIOChannel reffing here.
|
||
|
||
* libsoup/soup-ssl.c (soup_ssl_get_iochannel_real): Don't call
|
||
g_io_channel_ref() on the socket. This is the exact opposite of
|
||
what we want to do. Create a temporary structure containing the
|
||
parent pid and the old socket and unref the socket when our
|
||
callback is called. This should fix GIOChannels being leaked on
|
||
SSL connections.
|
||
|
||
* libsoup/soup-ssl-proxy.c: Always close the GIOChannels after the
|
||
main loop quits.
|
||
|
||
2003-01-22 Joe Shaw <joe@ximian.com>
|
||
|
||
* configure.in: Bump up to 1.99.5 for the snaps.
|
||
|
||
* libsoup/soup-address.c (soup_address_new): If we found the
|
||
address in our hash, we need to return NULL or else Soup will
|
||
think we're doing an async lookup and do some cancellation on
|
||
us. Besides, we were returning the wrong type anyway and it
|
||
was crashing things.
|
||
|
||
2003-01-17 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-ssl-proxy.c (soup_ssl_proxy_readwrite): It's not
|
||
uncommon for us to get a G_IO_ERROR_AGAIN when trying to write
|
||
out, so keep trying until we succeed.
|
||
|
||
2003-01-10 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-openssl.c (verify_cb): Load some X509 and SSL error
|
||
strings and print out the error when the cert can't verify.
|
||
|
||
2003-01-09 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-address.c (soup_gethostbyname): Fix a memcpy
|
||
overrun noticed by valgrind
|
||
|
||
2002-12-20 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-server.c (soup_server_new_with_host): Added.
|
||
Starts a server only on the interface specified, instead of all
|
||
network interfaces.
|
||
|
||
2002-12-16 Jeremy Katz <katzj@redhat.com>
|
||
|
||
* configure.in: use $libdir instead of /usr/lib when looking for
|
||
libraries
|
||
|
||
2002-12-11 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-queue.c (proxy_https_connect_cb): I am an idiot.
|
||
Don't set a variable to NULL and then immediately try to
|
||
dereference it.
|
||
|
||
2002-12-09 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-openssl.c (soup_openssl_get_iochannel): Put a
|
||
timeout on the select()s when we get SSL_ERROR_WANT_READ/WRITE so
|
||
we don't hang forever if we don't get more data.
|
||
|
||
* libsoup/soup-ssl-proxy.c (main): Don't set our fds to blocking
|
||
or else we'll hang forever in SSL_connect() if the other side
|
||
hangs up.
|
||
|
||
* libsoup/soup-queue.c (proxy_https_connect_cb): We never want to
|
||
release the connection on message free, even if the connection was
|
||
unsuccessful.
|
||
|
||
2002-12-03 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-ssl.c (soup_ssl_get_iochannel_real): Call
|
||
g_io_channel_set_close_on_unref() on the second half of the socket
|
||
pair so we don't leak file descriptors.
|
||
|
||
2002-12-03 Frank Belew <frb@ximian.com>
|
||
|
||
* libsoup/soup-address.c: add signal.h to the list of headers to
|
||
pick up SIGKILL
|
||
|
||
2002-11-25 Joe Shaw <joe@ximian.com>
|
||
|
||
* Makefile.am: Build the tests directory again
|
||
|
||
2002-11-21 Rodney Dawes <dobey@ximian.com>
|
||
|
||
* configure.in: Don't require autoconf 2.5x, needs to work with 2.13
|
||
|
||
2002-11-20 Michael Meeks <michael@ximian.com>
|
||
|
||
* configure.in: require autoconf 2.52 not 2.53.
|
||
|
||
2002-11-18 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-address.c (soup_address_hash): Don't use s6_addr32
|
||
since it's apparently non-portable. Use s6_addr instead.
|
||
(soup_gethostbyaddr): fix a sometimes-uninitialized variable.
|
||
|
||
* libsoup/soup-error.c: Fix spelling of
|
||
SOUP_ERROR_MOVED_PERMANENTLY and its description.
|
||
|
||
* libsoup/soup-message.c (soup_message_get_request_header, etc):
|
||
Remove long-deprecated API.
|
||
|
||
* libsoup/soup-socket.c (soup_socket_connect): remove unused
|
||
variable.
|
||
|
||
* libsoup/soup-openssl.c (soup_openssl_read): Use gsize.
|
||
* libsoup/soup-server.c (cgi_read): Likewise
|
||
* libsoup/soup-socks.c (soup_socks_write, soup_socks_read):
|
||
Likewise.
|
||
* libsoup/soup-ssl-proxy.c (soup_ssl_proxy_readwrite): Likewise.
|
||
* libsoup/soup-transfer.c (soup_transfer_read_cb,
|
||
soup_transfer_write_cb): Likewise.
|
||
|
||
* tests/timeserver.c: Add "-6" to listen on the IPv6 local address
|
||
instead of IPv4. (Tested on OS X.)
|
||
|
||
2002-11-15 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/*: Change old Helix Code refs to Ximian (and update
|
||
copyright dates).
|
||
|
||
2002-11-15 Frank Belew <frb@ximian.com>
|
||
|
||
* tests/Makefile.am: uncomment lines to make timeserver build
|
||
correctly
|
||
|
||
2002-11-14 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/soup-address.c (soup_address_new): When we get an
|
||
address from the hash, call our address lookup callback or else
|
||
the connection will hang.
|
||
|
||
2002-11-13 Dan Winship <danw@ximian.com>
|
||
|
||
* tests/timeserver.c: Oops, commit this.
|
||
|
||
* tests/Makefile.am (noinst_PROGRAMS): reenable timeserver.
|
||
|
||
2002-11-13 Joe Shaw <joe@ximian.com>
|
||
|
||
* libsoup/Makefile.am: Replace the BINDIR define with LIBEXECDIR.
|
||
(install-exec-hook): Install libsoup-ssl-proxy into libexecdir
|
||
instead of bindir.
|
||
|
||
* libsoup/soup-openssl.c (soup_openssl_close): Call SSL_shutdown()
|
||
to properly shut down the SSL connection before closing the
|
||
socket.
|
||
|
||
* libsoup/soup-ssl-proxy.c (soup_ssl_proxy_readwrite): Close the
|
||
iochannels before quitting the main loop.
|
||
|
||
* tests/Makefile.am: disable building timeserver, the source file
|
||
wasn't added.
|
||
|
||
2002-11-12 Dan Winship <danw@ximian.com>
|
||
|
||
* configure.in: Check for IPv6 support in networking headers.
|
||
|
||
* libsoup/soup-address.c: Make the internal structure of
|
||
SoupAddress entirely private, and make SoupAddress be more like a
|
||
hostent and less like a sockaddr. (Ie, make it not have a port
|
||
associated with it.) Document undocumented functions. Add
|
||
completely-untested support for IPv6.
|
||
(soup_address_new_from_sockaddr): New, to parse a sockaddr into a
|
||
SoupAddress and a port.
|
||
(soup_address_ipv4_any, soup_address_ipv6_any): Return static
|
||
addresses corresponding to the IPv6 and IPv6 "any" addresses.
|
||
(soup_address_get_canonical_name): Use inet_ntop/inet_ntoa.
|
||
(soup_address_make_sockaddr): Now constructs a new sockaddr, which
|
||
may be a sockaddr_in or sockaddr_in6.
|
||
(soup_address_gethostname, soup_address_gethostaddr): Remove
|
||
these. They aren't reliable, especially on multihomed hosts.
|
||
(soup_gethostbyname, soup_gethostbyaddr): support IPv6
|
||
(soup_address_new): Keep pending lookups in a separate hash table
|
||
from completed lookups. Fix a bug when canceling a lookup when
|
||
there was more one outstanding request for it.
|
||
(soup_address_lookup_in_cache): Removed.
|
||
|
||
* libsoup/soup-socket.c: Add a port field to SoupSocket (since
|
||
it's not in SoupAddress any more).
|
||
(soup_socket_connect): Simplify this. Don't use
|
||
soup_address_lookup_in_cache, just call soup_address_new, since we
|
||
already know the code can deal with the callback being invoked
|
||
immediately.
|
||
(soup_socket_new_sync, soup_socket_new): Take a port argument.
|
||
(soup_socket_server_new): Take a SoupAddress to use as the local
|
||
address to bind to. This lets the caller choose between the IPv4
|
||
and IPv6 "any" addresses, and also lets you bind to a single
|
||
interface of a multi-homed machine.
|
||
(soup_socket_server_accept, soup_socket_server_try_accept): Merge
|
||
the common code.
|
||
|
||
* libsoup/soup-server.c (soup_server_new): Pass
|
||
soup_address_ipv4_any() to soup_socket_server_new().
|
||
|
||
* libsoup/soup-socks.c (soup_connect_socks_proxy,
|
||
soup_socks_write): Fix up for the API changes, but it won't work
|
||
with IPv6 yet.
|
||
|
||
* tests/timeserver.c: Another really simple test, for the server
|
||
socket code.
|
||
|
||
* tests/Makefile.am: build timeserver
|
||
|
||
2002-11-11 Dan Winship <danw@ximian.com>
|
||
|
||
* libsoup/soup-address.c: Move the SoupAddress code from
|
||
soup-socket.c and soup-socket-unix.c to here.
|
||
|
||
* libsoup/soup-socket.c: Move the remaining code from
|
||
soup-socket-unix.c here.
|
||
|
||
* libsoup/soup-socket-unix.c: Gone
|
||
|
||
* tests/get.c: really really trivial test program
|
||
|
||
* configure.in (AC_OUTPUT):
|
||
* Makefile.am (SUBDIRS): add tests/
|
||
|
||
2002-11-05 Dan Winship <danw@ximian.com>
|
||
|
||
* Split libsoup out of soup. ChangeLog.old contains the original
|
||
soup ChangeLog.
|
||
|
||
* Makefile.am, etc: Fix things up to work with the new directory
|
||
layout. Disable docs until we fix them.
|
||
|
||
* autogen.sh: Use gnome-autogen.sh
|
||
|
||
* configure.in: Require autoconf 2.53. Remove stuff that was only
|
||
needed for httpd or wsdl code. Remove glib1 support. Bump version
|
||
to 2.0.
|
||
|
||
* libsoup/Makefile.am: Rename library to libsoup-2.0, put includes
|
||
in ${includedir}/soup-2.0
|
||
|
||
* libsoup/*: Merge soup-0-7 back onto the trunk. Remove
|
||
SOAP-specific stuff, Windows support, and other things that
|
||
weren't being maintained.
|
||
|
||
* soup-config.in, soupConf.sh: Kill these. We only support
|
||
pkg-config now.
|