summaryrefslogtreecommitdiff
path: root/libsoup/soup-socket.h
Commit message (Collapse)AuthorAgeFilesLines
* Do not include the header exclusion guards in the introspectionCorentin Noël2018-06-131-3/+3
|
* Mark all remaining methods with SOUP_AVAILABLE_IN_2_4Ignacio Casal Quinteiro2015-11-091-0/+16
| | | | | | | | This way we can as well redefine _SOUP_EXTERN on msvc builds with the right extern value needed for it. This is the same we do on glib and gtk+ https://bugzilla.gnome.org/show_bug.cgi?id=757146
* Add/fix some annotationsDan Winship2013-06-291-4/+4
|
* Make the new SoupSocket APIs privateDan Winship2012-04-201-3/+0
|
* soup-message-io: use gio streams rather than SoupSocketDan Winship2012-04-171-0/+2
| | | | | | | | | | | Use the socket's input/output streams for the base I/O, and add new SoupBodyInputStream and SoupBodyOutputStream that can be created from them to handle the body of a single message (including handling chunked encoding/decoding). Update chunk-test, which was assuming that the chunk_allocator callback would never be called if the message had a 0-length body; that's no longer true.
* Add SoupSession:use-thread-contextDan Winship2011-11-081-0/+1
| | | | | | | | | | | Add a SoupSession flag telling it to use g_main_context_get_thread_default() on a per-message basis, rather than using a single GMainContext for everything. In the simple case, this is just more glib-like API. In the more complicated case, it allows synchronously sending one or more messages on a SoupSessionAsync without running the main GMainLoop. https://bugs.webkit.org/show_bug.cgi?id=68238
* Default to TLS for https connections, and fall back to SSLv3 on failureDan Winship2011-08-071-0/+1
| | | | | | | | | Rather than always using SSLv3, try proper TLS+extensions first, and fall back to SSLv3-without-extensions if that gives an error that looks like it might mean "broken SSLv3-only server". Use SoupSessionHost to record the fallback status for a host. https://bugzilla.gnome.org/show_bug.cgi?id=581342
* Add SoupMessage:tls-certificate and SoupMessage:tls-errorsDan Winship2010-12-071-0/+2
| | | | | These provide more information about the certificate on the other end of a TLS connection.
* SoupSocket: port to GSocketConnection/GTlsConnectionDan Winship2010-12-071-1/+0
| | | | and remove libsoup's built-in TLS support, which is no longer needed
* New SoupMessageFlag to report whether it has dealt with a trusted certificateGustavo Noronha Silva2010-02-211-8/+9
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=610374
* Add SOUP_SESSION_SSL_STRICT, to control whether SSL cert errors are fatalDan Winship2010-02-211-1/+2
| | | | | | Based on a patch from Gustavo Noronha Silva https://bugzilla.gnome.org/show_bug.cgi?id=610374
* Notice closed connections soonerDan Winship2009-08-171-0/+1
| | | | | | Only works on UNIX; Windows has to wait for the GSocket port. http://bugzilla.gnome.org/show_bug.cgi?id=578990
* use an underscore for struct definitions. Fixes bug #518317.Benjamin Otte2008-02-251-1/+1
| | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=1093
* Merge libsoup-2.4 branch to trunkDan Winship2008-01-151-57/+32
| | | | | | * Merge libsoup-2.4 branch to trunk svn path=/trunk/; revision=1041
* add G_BEGIN_DECLS / G_END_DECLS to all installed headers so that libsoupJonathon Jongsma2007-06-011-0/+3
| | | | | | | | | 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 svn path=/trunk/; revision=925
* add a "timeout" property, which gets passed from server to socket, andVeerapuram Varadhan2006-02-241-0/+1
| | | | | | | | | | | * 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.
* bump version to 2.2.90. This will not be officially released, but onceDan Winship2005-11-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | * 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.
* use G_GNUC_NULL_TERMINATED.Dan Winship2005-08-151-1/+1
| | | | | | | | | | | | * 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.
* new method to get the server's listening socket.Dan Winship2005-08-121-0/+1
| | | | | | | | * 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.
* add/fix gtk-doc comments, make functions match prototypes, etcDan Winship2005-06-141-7/+34
| | | | | | | * libsoup/*.[ch]: add/fix gtk-doc comments, make functions match prototypes, etc * docs/reference/*: update, fix, etc
* require glib-2.0 >= 2.4.0Dan Winship2005-04-111-3/+0
| | | | | | | | | | | | * 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)
* belatedly pull up changes from gnome-2-10 branchDan Winship2005-04-111-0/+2
|
* s/guint/gsize/ to match the definitions in soup-socket.c. #52167.Dan Winship2003-12-151-7/+7
| | | | | | * 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.
* Change G_LOG_DOMAIN to "libsoup". Remove unused defines.Dan Winship2003-11-181-3/+3
| | | | | | | | | | | | | | | | | | | * 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
* declare soup_ssl_supported.Dan Winship2003-11-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | * 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
* Remove refcounting, but note whether or not the CA file has been loaded.Dan Winship2003-09-231-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Beginnings of improved synchronous API supportDan Winship2003-09-091-13/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* Renamed from soup-error.h, with types and defines renamed accordingly.Dan Winship2003-09-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* New header with typedefs, to avoid #include loops among other headers.Dan Winship2003-08-271-5/+3
| | | | | | | | | * 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
* New API for doing socket IO. Works both synchronously and asynchronously,Dan Winship2003-08-191-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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)
* Make this more like a struct sockaddr again (like it used to be). InDan Winship2003-08-181-54/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* add gobject-2.0 to the PKG_CHECK_MODULES callDan Winship2003-08-121-20/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Change old Helix Code refs to Ximian (and update copyright dates).Dan Winship2002-11-151-2/+2
| | | | | * libsoup/*: Change old Helix Code refs to Ximian (and update copyright dates).
* Check for IPv6 support in networking headers.Dan Winship2002-11-121-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Move the SoupAddress code from soup-socket.c and soup-socket-unix.c toDan Winship2002-11-111-69/+1
| | | | | | | | | | | | | | | * 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/
* Split libsoup out of soup. ChangeLog.old contains the original soupDan Winship2002-11-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | * 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.
* Bump development version to 0.7.99.Alex Graveley2002-03-121-4/+8
| | | | | | | | | 2002-03-11 Alex Graveley <alex@ximian.com> * configure.in, src/libsoup/soup-private.h: Bump development version to 0.7.99. * Merge all changes from soup-0-6 branch.
* Impl. Use instead of custom header free funcs throughout.Alex Graveley2001-10-051-1/+0
| | | | | | | | | | | 2001-10-05 Alex Graveley <alex@ximian.com> * src/libsoup/soup-message.c (soup_message_clear_headers): Impl. Use instead of custom header free funcs throughout. (soup_message_foreach_header): Impl. (global_handlers): Handle redirects before authenticating. (redirect_handler): Use soup_message_get_header. (run_handler): Ditto.
* Add defines for SOUP_PTRACE_ATTACH and SOUP_PTRACE_DETACH to removeAlex Graveley2001-10-021-17/+1
| | | | | | | | | | | | | | | | 2001-10-01 Alex Graveley <alex@ximian.com> * src/libsoup/soup-socket-unix.c (soup_address_new): Add defines for SOUP_PTRACE_ATTACH and SOUP_PTRACE_DETACH to remove architecture incompatibilities for ptrace() arguments. * configure.in: Add libdl to OpenSSL LDFLAGS. Fix NSS header paths. Define HAVE_OPENSSL and HAVE_NSS if the libraries are found successfully. * src/libsoup/soup-socket.h: Remove soup_gethostbyname and soup_gethostbyaddr, and move to: * src/libsoup/soup-private.h: here.
* Remove redundant alloca define.Alex Graveley2001-09-291-2/+9
| | | | | | | | | | | 2001-09-28 Alex Graveley <alex@ximian.com> * src/libsoup/soup-ntlm.c: Remove redundant alloca define. * src/libsoup/soup-socket.c (soup_socket_server_new): Use SOUP_SOCKET_CLOSE. * src/libsoup/soup-socket.h: Include winsock.h if windows.
* Add soup-socket-win.c.Alex Graveley2001-09-291-0/+9
| | | | | | | | | | | | | | | | | | | 2001-09-28 Alex Graveley <alex@ximian.com> * build/libsoup.dsp (SOURCE): Add soup-socket-win.c. * tests/simple-test.c (main): Take HTTP method and body parameters to use in the request. * src/libsoup/soup-socket.h: Make soup_gethostbyname and soup_gethostbyaddr public. * src/libsoup/soup-socket-unix.c: Added, split of networking code into unix-specific sections. * src/libsoup/soup-socket-win.c: Added, Windows networking code. * src/libsoup/soup-socket.c: Holds common socket functions.
* Added soup_address_copy(). Changed soup_address_new to check whether theVladimir Vukicevic2001-09-171-0/+2
| | | | | | | * src/libsoup/soup-socket.c, src/libsoup/soup-socket.h: Added soup_address_copy(). Changed soup_address_new to check whether the ports are the same before using a cached address.
* Added.Alex Graveley2001-06-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | 2001-06-01 Alex Graveley <alex@ximian.com> * src/soup-core/soup-message.c (soup_message_set_method): (soup_message_add_header_handler): (soup_message_add_response_code_handler): (soup_message_add_body_handler): Added. * src/soup-core/soup-socket.c (soup_address_get_name_sync): Allow syncronous reverse name lookups. * TODO (TODO): Updated. * src/soup-core/Makefile.am (bin_PROGRAMS): Added soup-httpd. * src/soup-core/soup-httpd.c: Added. Simple httpd server implementation. This shares a *lot* of code with soup-queue.c, so some hardc0re refactoring action is planned. * configure.in (GMODULE_LIBS): Added.
* gtk-doc fixups.Alex Graveley2001-05-221-0/+9
| | | | | | | | | | 2001-05-21 Alex Graveley <alex@ximian.com> * src/soup-core/soup-queue.c (soup_message_queue): gtk-doc fixups. * src/soup-core/soup-socket.c (soup_socket_server_new): New. (soup_socket_server_accept): New. (soup_socket_server_try_accept): New.
* Fixed all gtk-doc moans in soup-core documentationDick Porter2001-05-171-2/+2
| | | | | | 2001-05-17 Dick Porter <dick@ximian.com> * Fixed all gtk-doc moans in soup-core documentation
* SoupSocketConnectFn no longer takes a SoupAddress argument, as it can beAlex Graveley2001-04-231-20/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-04-23 Alex Graveley <alex@ximian.com> * src/soup-core/soup-socket.h: SoupSocketConnectFn no longer takes a SoupAddress argument, as it can be fetched from the SoupSocket correctly now. * src/soup-core/soup-socket.c: lots of rewrites. Cache existing SoupAddresses to avoid duplicate lookups. Handles multiple simultaneous requests for the same address. Add syncronous versions of calls which just run the main loop until completion or request. Make SoupContext use a SoupAddress instead of sockaddr. * src/soup-core/soup-uri.h: Add query_elems to SoupUri. Contains a list of query string elements, as delimited by a '&'. SoupUri.protocol is now a SoupProtocol. * src/soup-core/soup-uri.c (soup_uri_new): convert uri_string protocol to SoupProtocol equivalent. * src/soup-core/soup-private.h: remove protocol from SoupContext. Use a SoupAddress instead of a sockaddr in SoupSocket. * src/soup-core/soup-misc.c (soup_load_config_internal): kill tiny (8 byte) mem leak. * src/soup-core/soup-message.h: add SoupOwnership SOUP_BUFFER_STATIC. add SoupErrorCode SOUP_ERROR_CANT_AUTHENTICATE. * src/soup-core/soup-context.h: move SoupProtocol to soup-uri.h. * src/soup-core/soup-context.c (soup_context_new): removed. Protocol is now held only in uri. (soup_context_from_uri): added. (soup_context_get): just calls soup_context_from_uri() after creating uri. (soup_context_unref): don't evaluate a post-decremented refcount. (soup_context_connect_cb): no longer take a SoupAddress arg. (soup_context_get_protocol): removed, use uri. * src/soup-core/soup-apache.c (soup_apache_message_create): use SOUP_BUFFER_STATIC for request buffer. * src/soup-core/md5-utils.c: initial commit. MD5 encryption. * src/soup-core/soup-digest.c: initial commit. no worky. * src/soup-core/Makefile.am (libsoup_la_SOURCES): add md5-utils.h, md5-utils.c, soup-digest.h, soup-digest.c. * tests/stress-test.c (main): handle ugly refcount bug causing extra unrefs of the context.
* remove hack to look at internals of GNET by using the new forked GNET :)Alex Graveley2001-03-221-0/+130
2001-03-21 Alex Graveley <alex@ximian.com> * src/soup-core/soup-socks.c: remove hack to look at internals of GNET by using the new forked GNET :) * tests/stress-test.c: use soup_message_queue (). * tests/simple-test.c: use soup_message_queue (). * src/soup-core/soup-private.h: Added SoupAddress and SoupSocket. * src/soup-core/soup-misc.c (soup_shutdown): Added, just calls soup_queue_shutdown. * src/soup-core/soup-queue.h: Removed. Added to soup-message.h. * src/soup-core/soup-queue.c (soup_queue_message): rename to (soup_message_queue): this. * src/soup-core/soup-message.h: move SoupErrorCode, SoupCallbackFn, and soup_message_queue() here. * src/soup-core/soup-message.c (soup_message_free): Free msg->response if buffer is system owned. (soup_message_issue_callback): set msg->priv->errorcode so syncronous soup_message_send can check for completion. (soup_message_send): Added: Synchronous message send. Queues the message as per usual, then call g_main_iteration() until them essage returns. * src/soup-core/soup-context.c: API Document. Switch gnet calls to their soup-socket replacement. (soup_context_get_connection): Remove environment check for syncronous connect method. * src/soup-core/Makefile.am (INCLUDES): replace GNET_CFLAGS with GLIB_CFLAGS. (libsoup_la_LIBADD): replace GNET_LIBS with GLIB_LIBS. (soupinclude_HEADERS): Remove soup-queue.h. Add soup-socket.h. (libsoup_la_SOURCES): Add soup-socket.c. * soup.spec.in (Requires): remove GNET. Add libxml. * soup.pc.in (Libs): remove GNET. (Cflags): ditto. * soup-config.in (depend_libs): remove GNET. (depend_cflags): ditto. * configure.in: remove gnet references, look for libnsl and libresolv, add checking to determine gethostbyname_r possibility. * acconfig.h: Add undefs for all the gethostbyname_r variants. * src/soup-core/soup-socket.[ch]: Fork of GNET, minus synchronous bits. Removes dependency on GNET; we now only rely on Glib and libXml.