summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Alex Graveley [Thu, 15 Feb 2001 19:54:05 +0000 (19:54 +0000)]
update to return void from the callback. (main): do not requeue existing
2001-02-15 Alex Graveley <alex@ximian.com>
* tests/stress-test.c (current_temp_cb): update to return void
from the callback.
(main): do not requeue existing messages when they have finished,
as they will be freed. instead create new SoupMessage objects.
* tests/simple-test.c (current_temp_cb): update to return void
from the callback.
* src/soup-core/soup-serializer.c (soup_serializer_start_element):
support creation of the request's SOAPAction header my taking the
namespace uri and name of the first element after starting the
body tag.
* src/soup-core/soup-queue.h: add SOUP_ERROR_HANDLER which will be
used by the upcoming handler/interceptor stuff to return an
application-level error to the message callback. Make
SoupCallbackFn return void.
* src/soup-core/soup-queue.c (soup_debug_print_headers): make public.
(soup_queue_write_async): attempt to write again if the first
write was okay and didn't block.
* src/soup-core/soup-uri.c (soup_debug_print_uri): make public.
* src/soup-core/soup-message.c (soup_message_issue_callback):
message callback now returns void, meaning that soup_queue_message()
takes ownership of the message and always frees it after calling
the callback (unless it was requeued from within the callback).
* src/soup-core/soup-headers.c (soup_headers_parse_request):
renamed from soup_parse_request_headers.
(soup_headers_parse_response): renamed from soup_parse_response_headers.
(soup_headers_parse): renamed from soup_parse_headers.
Alex Graveley [Tue, 13 Feb 2001 23:55:00 +0000 (23:55 +0000)]
renamed to soup_ssl_get_iochannel.
2001-02-13 Alex Graveley <alex@ximian.com>
* src/soup-core/soup-ssl.c (soup_get_ssl_iochannel): renamed to
soup_ssl_get_iochannel.
Alex Graveley [Tue, 13 Feb 2001 22:59:58 +0000 (22:59 +0000)]
work around fact that data available in the socket does not always mean
2001-02-13 Alex Graveley <alex@ximian.com>
* src/soup-core/soup-ssl.c (soup_ssl_add_watch): work around fact
that data available in the socket does not always mean unencrypted
data is available for reading.
(soup_ssl_read_cb): called on socket data available. Only call the
real callback if SSL_pending() returns > 0 meaning there is actual
data to read. there is a bug here as SSL_pending() always returns
false, so its commented out.
* src/soup-core/soup-queue.c (soup_queue_connect): add explicit
check for SOCKS protocol, remove call to soup_setup_socket.
* src/soup-core/soup-context.c (soup_connection_get_iochannel):
add channel member to SoupConnection, and serve it up for future
requests.
* src/soup-core/soup-queue.c (soup_setup_socket): removed.
(soup_get_request_header): change default Content-Type to
"text/xml; charset=utf-8".
* src/soup-core/soup-context.c (soup_connection_setup_socket):
moved soup-queue.c:soup_setup_socket() to here.
alex [Mon, 12 Feb 2001 20:19:18 +0000 (20:19 +0000)]
Initial revision of server side request handling dispatcher.
2001-02-12 alex <alex@ximian.com>
* src/soup-core/soup-server.[ch]: Initial revision of server side
request handling dispatcher.
alex [Mon, 12 Feb 2001 04:46:34 +0000 (04:46 +0000)]
add items left before a release.
2001-02-11 alex <alex@ximian.com>
* TODO: add items left before a release.
* soup-queue.c: change default Content-Type to "text/xml" from
"text/xml\r\n\tcharset=\"utf-8\"".
* soup-serializer.[ch]: added soup_serializer_new_full which
removes unnecessary args to soup_serializer_start_envelope.
rearrange namespace args to soup_serializer_start_element to match
other methods. added soup_serializer_set_type to set the xsi:type,
and soup_serializer_set_null to set xsi:null="1".
alex [Tue, 6 Feb 2001 21:59:21 +0000 (21:59 +0000)]
remove some cruft.
2001-02-06 alex <alex@ximian.com>
* soup-config.in: remove some cruft.
* soupConf.sh.in: remove some cruft.
* src/soup-core/Makefile.am: build soup-headers.c
* src/soup-core/soup-headers.[ch]: created. refactor of header parsing
logic for use in requests and responses.
* src/soup-core/soup-message.c: free req->response_phrase as it is now
allocated.
* src/soup-core/soup-queue.c (soup_parse_headers): use
soup_parse_response_headers. (soup_queue_reqest): free
req->response_phrase.
* src/soup-core/soup-serializer.h: include <time.h>
alex [Tue, 6 Feb 2001 07:33:16 +0000 (07:33 +0000)]
use absolute paths for soup headers
* soup.h: use absolute paths for soup headers
* soup-serializer.[ch]: (soup_serializer_write_int) (soup_serializer_write_double) (soup_serializer_write_base64) (soup_serializer_write_time): added. (soup_serializer_start_element): name and prefix arguments were reversed.
* soup-misc.c (soup_base64_encode): use supplied length instead of strlen'ing a binary blob. ick.
Jeffrey Stedfast [Tue, 6 Feb 2001 05:55:14 +0000 (05:55 +0000)]
Implemented (probably somewhat broken).
2001-01-31 Jeffrey Stedfast <fejj@ximian.com>
* src/soup-core/gionspr.c: Implemented (probably somewhat broken).
Rodrigo Moya [Sat, 27 Jan 2001 00:31:08 +0000 (00:31 +0000)]
replaced @glib_cflags@ and @glib_libs@ with @GLIB_CFLAGS@ and @GLIB_LIBS@.
2001-01-25 Rodrigo Moya <rodrigo@ximian.com>
* soup-config.in: replaced @glib_cflags@ and @glib_libs@ with
@GLIB_CFLAGS@ and @GLIB_LIBS@. Added -I@includedir@/soup to
$cflags
alex [Thu, 25 Jan 2001 23:01:30 +0000 (23:01 +0000)]
Remove encodingStyle argument to several functions, replace with new
* src/soup-core/soup-serializer.[ch]: Remove encodingStyle argument to several functions, replace with new soup_serializer_set_encoding_style().
* TODO: All the stuff left to do.
alex [Tue, 23 Jan 2001 21:39:05 +0000 (21:39 +0000)]
Created from rcs2log.
* ChangeLog: Created from rcs2log.
* AUTHORS: Added Dick Porter.
* soup.pc.in, soup-config.in, soupConf.sh, soup.m4:
Created with a dash of Maintainer Love.
* soup.spec.in: RPM spec file. Needs fixing wrt to displaying the
OpenSSL license conditionally (if it was statically linked).
* Makefile.am: Updated to install new config scripts and macros.
* configure.in: add --enable-ssl, --with-ssl=[nss/openssl/none],
and --with-nss-prefix=PFX to support choosing of an SSL library to
use, even though openssl is the only one currently supported.
* src/soup-core/Makefile.am: don't install soup-ssl.h or
soup-socks.h, they're internal.
* src/soup-core/soup-ssl.c: wrap openssl calls with a conditional
to avoid building if --enable-ssl=no or NSS is chosen as the
library. soup_get_ssl_iochannel() will print "SSL Not Supported."
and return NULL if no library has been chosen.
* tests/stress-test.c: make the callback handle errors by
requeuing request and not just g_error'ing.
alex [Tue, 23 Jan 2001 07:31:21 +0000 (07:31 +0000)]
check environment for SOUP_NO_ASYNC_CONNECT, and if set use syncronous
* soup-context.c (soup_context_get_connection): check environment for SOUP_NO_ASYNC_CONNECT, and if set use syncronous name lookup and connect. Use this when debugging.
* soup-queue.c (soup_read_chunk): fix buffer overflow.
* soup-queue.c (soup_queue_read_async): set header_len to include trailing \r\n\r\n as this makes more sense.
* soup-serializer.[ch] (soup_serializer_get_xml_doc): allows getting at the serializer's internal xml tree.
* soup.h: install soup-serializer.h.
alex [Sun, 21 Jan 2001 00:49:04 +0000 (00:49 +0000)]
Update Makefile.ams and configure.in to work with new layout.
alex [Wed, 17 Jan 2001 10:49:01 +0000 (10:49 +0000)]
warn the user if a config file entry is not allowed by system config.
* src/soup-misc.c (soup_load_config_internal): warn the user if a config file entry is not allowed by system config.
* src/soup-serializer.[ch]: initial commit of simple serializer API. Uses libxml to handle tree creation.
* configure.in: check for libxml.
alex [Mon, 15 Jan 2001 23:39:51 +0000 (23:39 +0000)]
Fix a typo
alex [Mon, 15 Jan 2001 10:56:04 +0000 (10:56 +0000)]
hacked to support permissions in the global config file on which options
* src/soup-misc.c: hacked to support permissions in the global config file on which options can be set from user config files. Global config file is now always loaded first, before either a program specified file or the user's dot-file. Also supports "allow all" and "deny all" which have the expected results.
* src/soup-ssl.[ch]: move unneeded #include's to the source file.
alex [Mon, 15 Jan 2001 02:03:08 +0000 (02:03 +0000)]
Umm, ya. So I was like umm, sleepy last night and stuff. So this umm makes
* soup-socks.c: Umm, ya. So I was like umm, sleepy last night and stuff. So this umm makes last night's commit a little less embarrassing.
alex [Sun, 14 Jan 2001 10:53:00 +0000 (10:53 +0000)]
oops, forgot to mention that user local config file (~/.souprc) is now
* src/soup-misc.c: oops, forgot to mention that user local config file (~/.souprc) is now loaded after the system config file. This needs to be thought out more as administrators may not want variables overwritten.
alex [Sun, 14 Jan 2001 10:49:59 +0000 (10:49 +0000)]
SOCKS version 4 and version 5 support. This code is not very simple
* src/soup-socks.[ch]: SOCKS version 4 and version 5 support. This code is not very simple because we are attempting to make a multi-step conversation completely asyncronous. Also this includes a hack to get at GNET's GInetAddr private memebers (the sockaddr_in) for SOCKS4, as the client has to lookup the destination host address and send it to the socks proxy, and we want to use gnet to do this asyncronously.
* src/soup-context.[ch]:
* Added soup_context_get_protocol(), soup_connection_get_context(), and soup_connection_is_new() so that we can keep the abstractions between the contexts/connections and messages clean.
* soup_context_get_uri() changed to return a SoupUri instead of a string, as this is more useful.
* Made SoupProtocol a public enum so it can be returned by soup_context_get_protocol().
* src/soup-queue.c: updated to use context/connection accessors, instead of looking at private members. AB-STRAC-SHUN!
alex [Fri, 12 Jan 2001 05:59:50 +0000 (05:59 +0000)]
simple config file loading. Passing NULL as the config file name will load
* soup-misc.c (soup_load_config): simple config file loading. Passing NULL as the config file name will load from the system config file, which is $(sysconfdir)/souprc. Only options supported now are proxy-url and connection-limit.
* */.cvsignore: a little maintainer love.
alex [Thu, 11 Jan 2001 21:32:25 +0000 (21:32 +0000)]
append a '?' between path and query string in request header. NULL
* soup-queue.c (soup_get_request_header): append a '?' between path and query string in request header. NULL terminate the call to g_strconcat.
* soup-context.c (soup_context_get): bomb if url passed in does not have a protocol. do not default to HTTP.
alex [Tue, 9 Jan 2001 02:38:44 +0000 (02:38 +0000)]
Commited alpha authentication interface. Don't expect this to do anything, as I am being forced to commit it in an unready state ;-)
alex [Mon, 8 Jan 2001 06:46:34 +0000 (06:46 +0000)]
Oops. Forget to add new files and remove old ones when I renamed
* Oops. Forget to add new files and remove old ones when I renamed SoupRequest to SoupMessage.
alex [Mon, 8 Jan 2001 06:06:06 +0000 (06:06 +0000)]
make ssl work. pass the ssl iochannel to the underlying iochannel's
* soup-ssl.c (soup_ssl_add_watch): make ssl work. pass the ssl iochannel to the underlying iochannel's funcs->io_add_watch, so that our ssl functions get called. this is a hack. this will need to be fixed in order to get windows portability, as the SoupSSLChannel struct is mimicing GIOUnixChannel so the add_watch will work correctly.
* soup-queue.c (soup_queue_read_async): fix bug when searching for end of http headers where req->priv->header_len was being set whether the end was found or not.
alex [Mon, 8 Jan 2001 03:22:13 +0000 (03:22 +0000)]
Renamed SoupRequest to SoupMessage, as it contains both the request and
* Renamed SoupRequest to SoupMessage, as it contains both the request and the response, changed all API names accordingly. This had to be done, so what better time than now?
alex [Mon, 8 Jan 2001 02:58:20 +0000 (02:58 +0000)]
chunked encoding support finalized, fixed a few small buffer over
* soup-queue.c: chunked encoding support finalized, fixed a few small buffer over allocations, use strcasecmp instead of strcmp when comparing custom request headers, better error handling in soup_queue_error_async which fixes a bug found in certain IIS servers.
* soup-context.c: (soup_connection_get_iochannel) return iochannel from soup-ssl.c:soup_get_ssl_iochannel() if protocol for connection is SOUP_PROTOCOL_SHTTP.
* soup-ssl.c: simple GIOChannel wrapper around the OpenSSL library.
alex [Wed, 27 Dec 2000 22:05:34 +0000 (22:05 +0000)]
Content length is now a guint.
* soup-private.h: Content length is now a guint.
* soup-queue.c (soup_parse_headers): Added minimum status-line length check.
* soup-queue.c (soup_queue_request): Removed g_error() call for user-iwned response buffers. We now just issue a SOUP_ERROR_CANCELLED callback and print a warning.
alex [Tue, 26 Dec 2000 05:33:58 +0000 (05:33 +0000)]
Made SoupConnection wrap Gnet's TcpSocket. This means there are no gnet
* Made SoupConnection wrap Gnet's TcpSocket. This means there are no gnet references in the public interface.
* Lots of code cleanup/reorg/bugfixes.
alex [Wed, 20 Dec 2000 07:23:25 +0000 (07:23 +0000)]
Header parsing works according to spec, including multi-line headers.
* Header parsing works according to spec, including multi-line headers.
* Content-length driven responses work correctly.
* Chunked encoding almost working :)
* Updated simple-test to take a url from the command line.
alex [Wed, 13 Dec 2000 08:07:53 +0000 (08:07 +0000)]
Forgot to set the path for cases where we don't have a querystring (which
* soup-uri.c (soup_uri_new): Forgot to set the path for cases where we don't have a querystring (which is most of the time). Doh.
* soup-uri.c (soup_uri_get_default_port): No such thing as an smtp://foo@bar uri, only mailto:foo@bar.
alex [Wed, 13 Dec 2000 07:28:42 +0000 (07:28 +0000)]
Beginnings of test-suite added.
* Beginnings of test-suite added.
* Made SoupContext opaque. Removed SoupContextPrivate. Added soup_context_get_uri() to get the uri string for a given context.
* Added a response_headers hashtable to SoupRequest so the callback can do whatever it wants with passed headers. All entries in this hashtable are just parsed strings from req->priv->recv_buf, so no new strings are allocated.
* Renamed custom_headers to request_headers
* Fixed context creation logic
* Made soup_servers hashtable use case insensitive hostname matching.
* Removed SOUP_ERROR_URI_NOT_FOUND, SOUP_ERROR_URI_NOT_PERMITTED, and SOUP_ERROR_URI_OBJECT_MOVED from SoupCallbackResult enum. Its up to the application to figure out all the different HTTP states. This may change however.
* Added querystring to SoupUri, so that contexts can be cached based only on path.
* Added default port logic to SoupUri. Known protocols are https (port 443), http (80), smtp/mailto (25), and ftp (20).
alex [Tue, 12 Dec 2000 03:30:19 +0000 (03:30 +0000)]
Also changed the passing of a gchar** to a gchar* in
* Also changed the passing of a gchar** to a gchar* in soup_process_headers()'s sscanf().
alex [Tue, 12 Dec 2000 03:27:47 +0000 (03:27 +0000)]
Internal rehash of handling cases where the connection limit is reached,
* Internal rehash of handling cases where the connection limit is reached, involves setting a timeout event source to check for the ability to create a connection, and allowing either the timeout or the gnet connect routine to be canceled depending on the current connect state. Clients should now use soup_context_cancel_connect() to cancel a connection in progress.
alex [Tue, 12 Dec 2000 00:06:31 +0000 (00:06 +0000)]
Don't use glibc sscanf extensions.
* Don't use glibc sscanf extensions.
alex [Mon, 11 Dec 2000 23:46:00 +0000 (23:46 +0000)]
Better error checking on HTTP response line.
* Better error checking on HTTP response line.
* Avoid doing a lookup for every used header by iterating the hash table and doing a strcmp for all known headers. This is not necessarily faster for several cases, but it allows us to gather custom headers at the same time and avoid a second iteration.
alex [Mon, 11 Dec 2000 08:18:59 +0000 (08:18 +0000)]
Rewrote the connection pool logic, and cleaned up the request queueing
* Rewrote the connection pool logic, and cleaned up the request queueing loop.
* Added ref/unref to SoupContext.
* Made getting a connection for a SoupContext generic which cleans up the code and makes it useable for purposes other than soup.
* Connection limits handling moved to the connection pooling to avoid races, and allows for better handling when we have hit the connection limit.
* Added soup-misc.[ch] which provide global functions for getting and setting the proxy context and the connection limit.
* Changed proxy to be a SoupContext.
* Support for http headers near completion.
* Added support for custom request headers which can override the standard headers without duplication.
* Lots of code reorg and cleaning up.
alex [Thu, 7 Dec 2000 03:43:34 +0000 (03:43 +0000)]
Replaced CVS gnet feature for setting TCP_NODELAY
alex [Wed, 6 Dec 2000 22:28:48 +0000 (22:28 +0000)]
Initial version