platform/upstream/glib.git
14 years agoFix build on !unix
Matthias Clasen [Sun, 22 Aug 2010 02:14:28 +0000 (22:14 -0400)]
Fix build on !unix

There was one code block still referring to fd_list outside of
the ifdef G_OS_UNIX. Pointed out by Sam Thursfield in bug 627392.

14 years agoBetter fix for the build problem
Matthias Clasen [Sun, 22 Aug 2010 02:09:32 +0000 (22:09 -0400)]
Better fix for the build problem

Use gnetworkingprivate.h instead, patch by Emilio Pozuelo Monfort,
bug 627407.

14 years agoMake gdbus-peer build on !linux
Matthias Clasen [Sun, 22 Aug 2010 02:06:56 +0000 (22:06 -0400)]
Make gdbus-peer build on !linux

Based on a patch by Koop Mast, bug 627088.

14 years agoFix a duplicate word
Matthias Clasen [Sun, 22 Aug 2010 01:58:51 +0000 (21:58 -0400)]
Fix a duplicate word

Pointed out in bug 627604.

14 years agoAdd some more annotations
Matthias Clasen [Sat, 21 Aug 2010 23:27:11 +0000 (19:27 -0400)]
Add some more annotations

14 years agoImprove test coverage for actions and action groups
Matthias Clasen [Sat, 21 Aug 2010 23:18:40 +0000 (19:18 -0400)]
Improve test coverage for actions and action groups

14 years agoDocument behaviour wrt. to floating variants
Matthias Clasen [Sat, 21 Aug 2010 23:18:17 +0000 (19:18 -0400)]
Document behaviour wrt. to floating variants

14 years agoDocument behaviour wrt to floating variants
Matthias Clasen [Sat, 21 Aug 2010 23:11:03 +0000 (19:11 -0400)]
Document behaviour wrt to floating variants

14 years agoAdd some annotations
Matthias Clasen [Sat, 21 Aug 2010 20:30:50 +0000 (16:30 -0400)]
Add some annotations

14 years agoSimplify/fix state logic in GAction, test it.
Ryan Lortie [Sat, 21 Aug 2010 21:35:32 +0000 (17:35 -0400)]
Simplify/fix state logic in GAction, test it.

14 years agoAdd some forgotten symbols
Matthias Clasen [Sat, 21 Aug 2010 19:40:46 +0000 (15:40 -0400)]
Add some forgotten symbols

14 years agoIgnore some more private headers
Matthias Clasen [Sat, 21 Aug 2010 19:40:32 +0000 (15:40 -0400)]
Ignore some more private headers

14 years agoFix documentation issues
Matthias Clasen [Sat, 21 Aug 2010 19:34:40 +0000 (15:34 -0400)]
Fix documentation issues

Gtk-doc is unhappy if the parameter names don't match between header
and source.

14 years agoFix GActionGroup docs
Matthias Clasen [Sat, 21 Aug 2010 19:34:18 +0000 (15:34 -0400)]
Fix GActionGroup docs

14 years agoUpdated Serbian translation
Милош Поповић [Sat, 21 Aug 2010 18:05:14 +0000 (20:05 +0200)]
Updated Serbian translation

14 years agoUpdated Traditional Chinese translation(Hong Kong and Taiwan)
Chao-Hsiung Liao [Sat, 21 Aug 2010 11:43:37 +0000 (19:43 +0800)]
Updated Traditional Chinese translation(Hong Kong and Taiwan)

14 years agoUpdated Hebrew translation.
Yaron Shahrabani [Fri, 20 Aug 2010 23:35:07 +0000 (02:35 +0300)]
Updated Hebrew translation.

14 years agoUpdated galician translations
Fran Diéguez [Fri, 20 Aug 2010 11:23:11 +0000 (13:23 +0200)]
Updated galician translations

14 years agoFix misc compiler warnings in (mostly) test programs
Dan Winship [Thu, 19 Aug 2010 22:24:53 +0000 (18:24 -0400)]
Fix misc compiler warnings in (mostly) test programs

14 years agogio.symbols: add missing g_simple_action_group stuff
Dan Winship [Thu, 19 Aug 2010 21:51:24 +0000 (17:51 -0400)]
gio.symbols: add missing g_simple_action_group stuff

14 years agogproxyaddressenumerator.h: add missing G_END_DECLS
Dan Winship [Thu, 19 Aug 2010 21:51:01 +0000 (17:51 -0400)]
gproxyaddressenumerator.h: add missing G_END_DECLS

14 years agogio/proxy: Fixed compilation warnings
Nicolas Dufresne [Thu, 19 Aug 2010 21:31:42 +0000 (17:31 -0400)]
gio/proxy: Fixed compilation warnings

* Wrong return type (NULL instead of FALSE)
* Unused static function declaration

14 years agoAdd support for g_socket_client_add_application_proxy()
Nicolas Dufresne [Thu, 19 Aug 2010 20:23:50 +0000 (16:23 -0400)]
Add support for g_socket_client_add_application_proxy()

This allow application to take control over certain proxy protocol
handling. When a proxy protocol must be used and is found in the
application proxies, GSocketClient will simply TCP connect to the proxy
server and return the connection.

Reviewed-by: Dan Winship <danw@gnome.org>
14 years agoImplemented SOCKSv4 and SOCKSv4a
Nicolas Dufresne [Tue, 25 May 2010 20:02:42 +0000 (16:02 -0400)]
Implemented SOCKSv4 and SOCKSv4a

14 years agoImplemented proxy sample code that connect to proxy
Nicolas Dufresne [Fri, 7 May 2010 20:35:04 +0000 (16:35 -0400)]
Implemented proxy sample code that connect to proxy

14 years agoImplemented g_socket_client_connect_to_uri() method
Nicolas Dufresne [Thu, 29 Apr 2010 22:51:42 +0000 (18:51 -0400)]
Implemented g_socket_client_connect_to_uri() method

Using this rather than g_socket_client_connect() or
g_socket_client_connect_to_host() allows #GSocketClient to
determine when to use application-specific proxy protocols.

Reviewed-by: Dan Winship <danw@gnome.org>
14 years agoHooked proxy enumeration into GSocketClient
Nicolas Dufresne [Tue, 10 Aug 2010 20:48:45 +0000 (16:48 -0400)]
Hooked proxy enumeration into GSocketClient

This functionnallity can be disabled using property enable-proxy. It
enumerates addresses using GSocketConnectable::proxy_enumerate() instead of
enumerate(). When the returned address is of type GProxyAddress (a type
based on GInetSocketAddress), it gets the proxy protocol handler using
g_proxy_get_default_for_protocol() and call connect() on it.

Reviewed-by: Dan Winship <danw@gnome.org>
14 years agoImplement GProxyConnection a GIOStream+GTcpConn wrapper
Nicolas Dufresne [Fri, 23 Jul 2010 00:51:23 +0000 (20:51 -0400)]
Implement GProxyConnection a GIOStream+GTcpConn wrapper

This class inherit from GTcpConnection by refing the socket of
an existing GTcpConnection and wraps a custom GIOStream into itself. This
is to allow implementing proxies that alters data stream, like when using
GSSAPI privacy inside SOCKS5.

14 years agoImplemented SOCKSv5 proxy support
Nicolas Dufresne [Thu, 29 Apr 2010 19:22:55 +0000 (15:22 -0400)]
Implemented SOCKSv5 proxy support

14 years agoGSocket: store the remote_address when connecting
Dan Winship [Fri, 25 Jun 2010 18:28:02 +0000 (14:28 -0400)]
GSocket: store the remote_address when connecting

This way, if g_socket_connect() is called with a GProxyAddress,
g_socket_get_remote_address() will later return that same address.

Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
14 years agoExtend IO_ERROR enum for Proxy support
Nicolas Dufresne [Wed, 28 Apr 2010 19:39:56 +0000 (15:39 -0400)]
Extend IO_ERROR enum for Proxy support

14 years agoImplemented proxy sample for all Connectables
Nicolas Dufresne [Fri, 7 May 2010 20:32:05 +0000 (16:32 -0400)]
Implemented proxy sample for all Connectables

14 years agoImplemented proxy_enumerate() for all Connectables
Nicolas Dufresne [Tue, 10 Aug 2010 19:45:32 +0000 (15:45 -0400)]
Implemented proxy_enumerate() for all Connectables

This patch implements method proxy_enumerate from GSocketConnectable for
all connectables (GNetworkAddress, GNetworkService, GInetSocketAddress
and GUnixSocketAddress).

Reviewed-by: Dan Winship <danw@gnome.org>
14 years agoAdded proxy_enumerate method to GSocketConnectable
Nicolas Dufresne [Tue, 10 Aug 2010 20:53:25 +0000 (16:53 -0400)]
Added proxy_enumerate method to GSocketConnectable

Reviewed-by: Dan Winship <danw@gnome.org>
14 years agoAdded GProxyAddressEnumerator to proxy sample code
Nicolas Dufresne [Fri, 7 May 2010 20:27:34 +0000 (16:27 -0400)]
Added GProxyAddressEnumerator to proxy sample code

14 years agoAdding GProxyAddressEnumerator class
Nicolas Dufresne [Tue, 10 Aug 2010 19:25:11 +0000 (15:25 -0400)]
Adding GProxyAddressEnumerator class

An implementation of GSocketAddressEnumerator that handles proxy
enumeration. This class is mainly usefull for Connectables implementation
such as NetworkService, NetworkAddress and SocketAddress to handle proxies.

Reviewed-by: Dan Winship <danw@gnome.org>
14 years agoAdded GProxy interface for proxy extension point
Nicolas Dufresne [Tue, 10 Aug 2010 19:24:37 +0000 (15:24 -0400)]
Added GProxy interface for proxy extension point

Implement an extension point for proxy protocol implementation. This
is mainly useful for socket-based proxy where it is possible to use the
proxied socket the same way it would for other stream based socket.

Reviewed-by: Dan Winship <danw@gnome.org>
14 years agoAdded method g_network_address_parse_uri()
Nicolas Dufresne [Tue, 10 Aug 2010 19:23:37 +0000 (15:23 -0400)]
Added method g_network_address_parse_uri()

This method allow creating a network address from a URI. If no port is
found in the URI, the default_port parameter will be used. Note that new
property scheme is there for future TLS implementation.

Reviewed-by: Dan Winship <danw@gnome.org>
14 years agoImplement GProxyAddress
Nicolas Dufresne [Mon, 26 Apr 2010 21:27:33 +0000 (17:27 -0400)]
Implement GProxyAddress

A GSocketInetAddress representing the proxy server address with additional
properties proxy type, destination address and port, username and password.

Reviewed-by: Dan Winship <danw@gnome.org>
14 years agoImplemented proxy sample code
Nicolas Dufresne [Fri, 7 May 2010 20:23:45 +0000 (16:23 -0400)]
Implemented proxy sample code

Reviewed-by: Dan Winship <danw@gnome.org>
14 years agoImplemented proxy-resolver extension point
Nicolas Dufresne [Fri, 7 May 2010 19:55:54 +0000 (15:55 -0400)]
Implemented proxy-resolver extension point

This extension point allow extending GLib with library like LibProxy that
interprets system proxy settings and finds the appropriate configuration
based on the type of connection being made.

Reviewed-by: Dan Winship <danw@gnome.org>
14 years agoUpdated Spanish translation
Jorge González [Thu, 19 Aug 2010 19:17:09 +0000 (21:17 +0200)]
Updated Spanish translation

14 years agoUpdated Hebrew translation.
Yaron Shahrabani [Thu, 19 Aug 2010 06:31:02 +0000 (09:31 +0300)]
Updated Hebrew translation.

14 years agoBug 627188 – gdbus-non-socket test occasionally fails
David Zeuthen [Wed, 18 Aug 2010 17:07:25 +0000 (13:07 -0400)]
Bug 627188 – gdbus-non-socket test occasionally fails

Fix logical bug in test case to avoid race condition between the
client and the server.

Signed-off-by: David Zeuthen <davidz@redhat.com>
14 years agoMake gunixcredentialsmessage.h standalone includable
Matthias Clasen [Wed, 18 Aug 2010 16:07:01 +0000 (12:07 -0400)]
Make gunixcredentialsmessage.h standalone includable

14 years agoaction: Minor fixes
Emmanuele Bassi [Wed, 18 Aug 2010 15:54:36 +0000 (16:54 +0100)]
action: Minor fixes

• Argument validation.

• Since: annotations.

• Remove (allow-none) annotations from return values.

• Coding style fixes.

14 years agoaction-group: Check aginst the correct GType macro
Emmanuele Bassi [Wed, 18 Aug 2010 15:54:11 +0000 (16:54 +0100)]
action-group: Check aginst the correct GType macro

G_TYPE_ACTION_GROUP is not a G_TYPE_ACTION.

14 years agoGDBusProxy: Call into well-known name if no name owner currently exists
David Zeuthen [Wed, 18 Aug 2010 15:35:25 +0000 (11:35 -0400)]
GDBusProxy: Call into well-known name if no name owner currently exists

This is really what (API) users expect from GDBusProxy - in
particular, mclasen and I ran into this problem while debugging a
upower issue, see

 https://bugzilla.redhat.com/show_bug.cgi?id=624125

In a nutshell, the problem is that polkitd crashes while upower holds
a PolkitAuthority object (which in turns contains a GDBusProxy for the
well-known name org.freedesktop.PolicyKit1). This means that
subsequent calls on the PolkitAuthority (which is translated into
calls into the GDBusProxy) fails since :g-name-owner is NULL.

With this fix, we'll be requesting the bus daemon to launch polkitd
since we will start calling into org.freedesktop.PolicyKit1 as soon as
we notice that there is no owner for this name.

Unfortunately our test suite doesn't cover service activation so there
is no way to reliably test this. I will file a bug about this.

Signed-off-by: David Zeuthen <davidz@redhat.com>
14 years agoGDBusProxy: Use %, not #, for referencing enum constants in gtk-doc comments
David Zeuthen [Wed, 18 Aug 2010 14:52:28 +0000 (10:52 -0400)]
GDBusProxy: Use %, not #, for referencing enum constants in gtk-doc comments

Signed-off-by: David Zeuthen <davidz@redhat.com>
14 years agoG_OPTION_FLAG_NO_ARG is only for callback options
Christian Persch [Tue, 17 Aug 2010 23:02:22 +0000 (01:02 +0200)]
G_OPTION_FLAG_NO_ARG is only for callback options

Bug #627252.

14 years agoadd GSimpleActionGroup
Ryan Lortie [Wed, 18 Aug 2010 06:15:09 +0000 (02:15 -0400)]
add GSimpleActionGroup

and a simple test

14 years agoadd some missed bits in the docs
Ryan Lortie [Wed, 18 Aug 2010 06:14:37 +0000 (02:14 -0400)]
add some missed bits in the docs

14 years agoadd gaction.h to gio.h
Ryan Lortie [Wed, 18 Aug 2010 05:56:34 +0000 (01:56 -0400)]
add gaction.h to gio.h

14 years agoadd testcase for GAction
Ryan Lortie [Wed, 18 Aug 2010 05:55:48 +0000 (01:55 -0400)]
add testcase for GAction

fix some small bugs it found

14 years agoadd GAction base class
Ryan Lortie [Wed, 18 Aug 2010 05:45:15 +0000 (01:45 -0400)]
add GAction base class

14 years agogio.symbols: Fix missed symbol name tweak
Ryan Lortie [Wed, 18 Aug 2010 05:07:07 +0000 (01:07 -0400)]
gio.symbols: Fix missed symbol name tweak

14 years agopad the GActionGroup vtable
Ryan Lortie [Wed, 18 Aug 2010 04:37:50 +0000 (00:37 -0400)]
pad the GActionGroup vtable

14 years agoAdd gactiongroup.h to gio.h
Ryan Lortie [Wed, 18 Aug 2010 04:33:17 +0000 (00:33 -0400)]
Add gactiongroup.h to gio.h

14 years agoadd GActionGroup base class
Ryan Lortie [Wed, 18 Aug 2010 04:30:44 +0000 (00:30 -0400)]
add GActionGroup base class

14 years agoupdate gio/tests/.gitignore
Dan Winship [Tue, 17 Aug 2010 22:38:34 +0000 (18:38 -0400)]
update gio/tests/.gitignore

14 years agoPlug a mem leak in GDBusWorker
Christian Persch [Tue, 17 Aug 2010 16:38:46 +0000 (18:38 +0200)]
Plug a mem leak in GDBusWorker

Free the read buffer.

==26538== 4,096 bytes in 1 blocks are definitely lost in loss record 781 of 781
==26538==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
==26538==    by 0x4005C66: realloc (vg_replace_malloc.c:476)
==26538==    by 0x405244D: g_realloc (gmem.c:181)
==26538==    by 0x420E066: _g_dbus_worker_do_read_unlocked (gdbusprivate.c:780)
==26538==    by 0x420E1D1: _g_dbus_worker_do_read (gdbusprivate.c:812)
==26538==    by 0x420F14A: _g_dbus_worker_thread_begin_func (gdbusprivate.c:1318)
==26538==    by 0x420D2ED: invoke_caller (gdbusprivate.c:266)
==26538==    by 0x404DA7C: g_idle_dispatch (gmain.c:4224)
==26538==    by 0x4049FCD: g_main_dispatch (gmain.c:2119)
==26538==    by 0x404B2C1: g_main_context_dispatch (gmain.c:2672)
==26538==    by 0x404B716: g_main_context_iterate (gmain.c:2750)
==26538==    by 0x404BE7F: g_main_loop_run (gmain.c:2958)
==26538==    by 0x420D2B5: shared_thread_func (gdbusprivate.c:248)
==26538==    by 0x4077958: g_thread_create_proxy (gthread.c:1897)
==26538==    by 0x57D918: start_thread (pthread_create.c:301)
==26538==    by 0x4C6CBD: clone (clone.S:133)

Bug #627187.

14 years agoPlug a mem leak in gdbus-connection test
Christian Persch [Tue, 17 Aug 2010 16:29:14 +0000 (18:29 +0200)]
Plug a mem leak in gdbus-connection test

==26538== 145 (24 direct, 121 indirect) bytes in 1 blocks are definitely lost in loss record 765 of 790
==26538==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
==26538==    by 0x405233C: g_malloc (gmem.c:134)
==26538==    by 0x406A57E: g_slice_alloc (gslice.c:836)
==26538==    by 0x406A60C: g_slice_copy (gslice.c:858)
==26538==    by 0x4035C5A: g_error_copy (gerror.c:160)
==26538==    by 0x41B6387: g_simple_async_result_set_from_error (gsimpleasyncresult.c:638)
==26538==    by 0x41FCDEB: g_dbus_connection_call_done (gdbusconnection.c:4808)
==26538==    by 0x41B682E: g_simple_async_result_complete (gsimpleasyncresult.c:762)
==26538==    by 0x41B686A: complete_in_idle_cb (gsimpleasyncresult.c:772)
==26538==    by 0x404DA7C: g_idle_dispatch (gmain.c:4224)
==26538==    by 0x4049FCD: g_main_dispatch (gmain.c:2119)
==26538==    by 0x404B2C1: g_main_context_dispatch (gmain.c:2672)
==26538==    by 0x404B716: g_main_context_iterate (gmain.c:2750)
==26538==    by 0x404BE7F: g_main_loop_run (gmain.c:2958)
==26538==    by 0x804B5CC: test_connection_send (gdbus-connection.c:407)
==26538==    by 0x4073D04: test_case_run (gtestutils.c:1174)

Bug #627187.

14 years agoPlug a mem leak in gdbus-connection test
Christian Persch [Tue, 17 Aug 2010 16:20:23 +0000 (18:20 +0200)]
Plug a mem leak in gdbus-connection test

==25403== 49 (24 direct, 25 indirect) bytes in 1 blocks are definitely lost in loss record 603 of 787
==25403==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
==25403==    by 0x405233C: g_malloc (gmem.c:134)
==25403==    by 0x406A57E: g_slice_alloc (gslice.c:836)
==25403==    by 0x406A5C3: g_slice_alloc0 (gslice.c:848)
==25403==    by 0x4035B4E: g_error_new_literal (gerror.c:117)
==25403==    by 0x4035ED9: g_set_error_literal (gerror.c:314)
==25403==    by 0x41F6434: g_dbus_connection_close_sync (gdbusconnection.c:1284)
==25403==    by 0x804A861: test_connection_life_cycle (gdbus-connection.c:158)
==25403==    by 0x4073D04: test_case_run (gtestutils.c:1174)
==25403==    by 0x4073FC2: g_test_run_suite_internal (gtestutils.c:1223)
==25403==    by 0x4074077: g_test_run_suite_internal (gtestutils.c:1233)
==25403==    by 0x4074077: g_test_run_suite_internal (gtestutils.c:1233)
==25403==    by 0x40741FB: g_test_run_suite (gtestutils.c:1274)
==25403==    by 0x40733E5: g_test_run (gtestutils.c:877)
==25403==    by 0x804DC92: main (gdbus-connection.c:1024)

Bug #627187.

14 years agoPlug a mem leak in the gdbus-connection test
Christian Persch [Tue, 17 Aug 2010 16:08:07 +0000 (18:08 +0200)]
Plug a mem leak in the gdbus-connection test

Bug #627182.

14 years agoUse g_memory_output_stream_steal_data here
Christian Persch [Sun, 20 Jun 2010 12:33:27 +0000 (14:33 +0200)]
Use g_memory_output_stream_steal_data here

... instead of one extra g_memdup().

Bug #627181.

14 years agoUse G_DEFINE_[BOXED|POINTER]_TYPE instead of handwritten code
Christian Persch [Sat, 24 May 2008 14:08:28 +0000 (16:08 +0200)]
Use G_DEFINE_[BOXED|POINTER]_TYPE instead of handwritten code

Now that we have convenience macros to implement boxed and pointer
types, use them.

14 years agoAdd G_DEFINE_{BOXED,POINTER}_TYPE[_WITH_CODE]
Christian Persch [Sat, 24 May 2008 14:08:04 +0000 (16:08 +0200)]
Add G_DEFINE_{BOXED,POINTER}_TYPE[_WITH_CODE]

Add convenience type definition macros for boxed and pointer types
similar to G_DEFINE_TYPE for object types. Bug #449565.

14 years agoAdd GZIP header processing to GZlibCompressor/GZlibDecompressor
Christian Persch [Thu, 13 May 2010 17:57:41 +0000 (19:57 +0200)]
Add GZIP header processing to GZlibCompressor/GZlibDecompressor

Add GZlibCompressor:file-info property. If it contains a non-NULL
GFileInfo, and the compressor is in GZIP mode, the filename and
modification time from the file info are written to the GZIP header
in the output data.

Add GZlibDeompressor:file-info property. If the decompressor is in GZIP
mode, and the GZIP data contains a GZIP header, the filename and
modification time are read from it, stored in a GFileInfo, and the
file-info property is notified.

Bug #617691.

14 years agoAdd g_memory_output_stream_steal_data
Christian Persch [Sun, 20 Jun 2010 12:32:52 +0000 (14:32 +0200)]
Add g_memory_output_stream_steal_data

Bug #622184.

14 years agoBump version
Matthias Clasen [Mon, 16 Aug 2010 20:36:38 +0000 (16:36 -0400)]
Bump version

14 years agoFix a typo 2.25.14
Matthias Clasen [Mon, 16 Aug 2010 19:44:40 +0000 (15:44 -0400)]
Fix a typo

14 years agoAdd NEWS item for bug 627071
David Zeuthen [Mon, 16 Aug 2010 19:42:23 +0000 (15:42 -0400)]
Add NEWS item for bug 627071

Signed-off-by: David Zeuthen <davidz@redhat.com>
14 years agoBug 627071 – g_output_stream_write() clarification
David Zeuthen [Mon, 16 Aug 2010 19:37:01 +0000 (15:37 -0400)]
Bug 627071 – g_output_stream_write() clarification

This patch guarantees that g_output_stream_write() can never fail with
G_IO_ERROR_WOULD_BLOCK. Without such a guarantee, we would need some
kind of GIOPollable interface or some way to get an event when the
stream is writable again. Which is mostly useless considering that
this method is asynchronous anyway.

Note: this patch just codifies existing behavior - GUnixOutputStream,
GSocketOutputStream and other implementations already work this way.

See also bug 626748 comment 5 for how the GDBus code relies on this
guarantee.

https://bugzilla.gnome.org/show_bug.cgi?id=627071

Signed-off-by: David Zeuthen <davidz@redhat.com>
14 years agoMore NEWS
Matthias Clasen [Mon, 16 Aug 2010 19:32:13 +0000 (15:32 -0400)]
More NEWS

14 years agoFix a doc format issue
Matthias Clasen [Mon, 16 Aug 2010 19:28:36 +0000 (15:28 -0400)]
Fix a doc format issue

14 years agoUpdate NEWS for 2.25.14
Matthias Clasen [Mon, 16 Aug 2010 19:16:16 +0000 (15:16 -0400)]
Update NEWS for 2.25.14

14 years agoBug 626748 – Use async methods for writing and handle EAGAIN
David Zeuthen [Mon, 16 Aug 2010 17:43:35 +0000 (13:43 -0400)]
Bug 626748 – Use async methods for writing and handle EAGAIN

If sending a lot of data and/or the other peer is not reading it, then
socket buffers can overflow. This is communicated from the kernel by
returning EAGAIN. In GIO, it is modelled by g_output_stream_write()
and g_socket_send_message() returning G_IO_ERROR_WOULD_BLOCK.

It is also problematic that that we're using synchronous IO in the
shared GDBus IO thread. It means that one GDBusConnection can lock up
others.

It turns out that by porting from g_output_stream_write() to
g_output_stream_write_async() we fix the EAGAIN issue. For GSocket, we
still need to handle things manually (by creating a GSource) as
g_socket_send_message() is used.

We check the new behavior in Michael's producer/consumer test case (at
/gdbus/overflow in gdbus-peer.c) added in the last commit.

Also add a test case that sends and receives a 20 MiB message.

Also add a new `transport' G_DBUS_DEBUG option so it is easy to
inspect partial writes:

 $ G_DBUS_DEBUG=transport ./gdbus-connection -p /gdbus/connection/large_message
 [...]
 ========================================================================
 GDBus-debug:Transport:
   >>>> WROTE 128000 bytes of message with serial 4 and
        size 20971669 from offset 0 on a GSocketOutputStream
 ========================================================================
 GDBus-debug:Transport:
   >>>> WROTE 128000 bytes of message with serial 4 and
        size 20971669 from offset 128000 on a GSocketOutputStream
 ========================================================================
 GDBus-debug:Transport:
   >>>> WROTE 128000 bytes of message with serial 4 and
        size 20971669 from offset 256000 on a GSocketOutputStream
 [...]
 ========================================================================
 GDBus-debug:Transport:
   >>>> WROTE 43669 bytes of message with serial 4 and
        size 20971669 from offset 20928000 on a GSocketOutputStream
 [...]
 ========================================================================
 GDBus-debug:Transport:
   <<<< READ 16 bytes of message with serial 3 and
        size 20971620 to offset 0 from a GSocketInputStream
 ========================================================================
 GDBus-debug:Transport:
   <<<< READ 15984 bytes of message with serial 3 and
        size 20971620 to offset 16 from a GSocketInputStream
 ========================================================================
 GDBus-debug:Transport:
   <<<< READ 16000 bytes of message with serial 3 and
        size 20971620 to offset 16000 from a GSocketInputStream
 [...]
 ========================================================================
 GDBus-debug:Transport:
   <<<< READ 144000 bytes of message with serial 3 and
        size 20971620 to offset 20720000 from a GSocketInputStream
 ========================================================================
 GDBus-debug:Transport:
   <<<< READ 107620 bytes of message with serial 3 and
        size 20971620 to offset 20864000 from a GSocketInputStream
 OK

https://bugzilla.gnome.org/show_bug.cgi?id=626748

Signed-off-by: David Zeuthen <davidz@redhat.com>
14 years agoGSocket: Properly initialize msg.msg_control
David Zeuthen [Mon, 16 Aug 2010 16:30:25 +0000 (12:30 -0400)]
GSocket: Properly initialize msg.msg_control

This patch fixes this problem

   Syscall param socketcall.sendmsg(msg.msg_control) points to uninitialised byte(s)
      at 0x3D5B00EA60: __sendmsg_nocancel (syscall-template.S:82)
      by 0x53F9790: g_socket_send_message (gsocket.c:2918)
      by 0x540FDD0: g_unix_connection_send_credentials (gunixconnection.c:351)
      by 0x542B93F: _g_dbus_auth_run_client (gdbusauth.c:618)
      by 0x5438001: initable_init (gdbusconnection.c:2191)
      by 0x53E09CC: g_initable_init (ginitable.c:105)
      by 0x543F6E9: g_bus_get_sync (gdbusconnection.c:6091)
      by 0x402C7E: test_connection_life_cycle (gdbus-connection.c:126)
      by 0x4C7CABB: test_case_run (gtestutils.c:1174)
      by 0x4C7CD84: g_test_run_suite_internal (gtestutils.c:1223)
      by 0x4C7CE49: g_test_run_suite_internal (gtestutils.c:1233)
      by 0x4C7CE49: g_test_run_suite_internal (gtestutils.c:1233)
    Address 0x7fefff9fc is on thread 1's stack

Signed-off-by: David Zeuthen <davidz@redhat.com>
14 years agoDeclare stream base classes as abstract
Matthias Clasen [Mon, 16 Aug 2010 14:21:38 +0000 (10:21 -0400)]
Declare stream base classes as abstract

14 years agoAlways do async vs sync correctly in GSocketConnection streams
Dan Winship [Thu, 24 Jun 2010 17:09:14 +0000 (13:09 -0400)]
Always do async vs sync correctly in GSocketConnection streams

Previously if a GSocketConnection had a blocking GSocket, it would
sometimes block during asynchonous I/O, and if it had a non-blocking
socket, it would sometimes return G_IO_ERROR_WOULD_BLOCK from
synchronous I/O. This fixes the connection to not depend on the socket
state.

https://bugzilla.gnome.org/show_bug.cgi?id=616458

14 years agoBelatedly add g_socket_client_get/set_timeout to docs and symbols
Dan Winship [Sun, 15 Aug 2010 11:57:37 +0000 (07:57 -0400)]
Belatedly add g_socket_client_get/set_timeout to docs and symbols

14 years agoGSocketClient: plug two leaks
Dan Winship [Sat, 14 Aug 2010 20:15:39 +0000 (16:15 -0400)]
GSocketClient: plug two leaks

g_socket_client_connect_async() was always leaking its GCancellable,
and would also leak any GSocket that eventually failed to connect
after returning G_IO_ERROR_PENDING.

14 years agoGSocketClient: add a timeout property
Dan Winship [Sat, 14 Aug 2010 19:04:24 +0000 (15:04 -0400)]
GSocketClient: add a timeout property

GSocket has a timeout flag now, but when using GSocketClient there was
no way to set the timeout until after connecting (or failing). Fix
that by adding a timeout property to GSocketClient.

14 years agoAdd examples for GAsyncInitiable and GSimpleAsyncResult
Will Thompson [Sat, 14 Aug 2010 03:34:44 +0000 (23:34 -0400)]
Add examples for GAsyncInitiable and GSimpleAsyncResult

Bug 602417

14 years agoDocument that _complete() et al. ref the GSimpleAsyncResult
Will Thompson [Sat, 14 Aug 2010 03:20:06 +0000 (23:20 -0400)]
Document that _complete() et al. ref the GSimpleAsyncResult

14 years ago_simple_async_result_is_valid: allow tag to be NULL
Will Thompson [Sat, 14 Aug 2010 03:15:27 +0000 (23:15 -0400)]
_simple_async_result_is_valid: allow tag to be NULL

Because g_simple_async_report_[g]error_in_idle() don't take a source tag
parameter, code that uses them can't currently use
g_simple_async_result_is_valid() (at least, not for the error case).

Bug 602417

14 years agoGVariant: be more explicit about adopting and returning floating refs
Simon McVittie [Sat, 14 Aug 2010 02:42:24 +0000 (22:42 -0400)]
GVariant: be more explicit about adopting and returning floating refs

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=622770

14 years agoAdd bug references to some tests
Matthias Clasen [Sat, 14 Aug 2010 01:22:45 +0000 (21:22 -0400)]
Add bug references to some tests

14 years agoDocument vendor override files
Matthias Clasen [Sat, 14 Aug 2010 01:21:43 +0000 (21:21 -0400)]
Document vendor override files

Features without documentation, tsk tsk.

14 years agoFix doc format errors
Matthias Clasen [Sat, 14 Aug 2010 01:05:05 +0000 (21:05 -0400)]
Fix doc format errors

14 years agoAdd tests for async file replace and load
Matthias Clasen [Fri, 13 Aug 2010 23:40:48 +0000 (19:40 -0400)]
Add tests for async file replace and load

14 years agoCorrect a comment
Matthias Clasen [Fri, 13 Aug 2010 21:22:28 +0000 (17:22 -0400)]
Correct a comment

14 years agoAdd an async file create/write/read/delete test
Matthias Clasen [Fri, 13 Aug 2010 21:21:22 +0000 (17:21 -0400)]
Add an async file create/write/read/delete test

14 years agoFix a typo, and some doc reformatting
Matthias Clasen [Fri, 13 Aug 2010 21:19:01 +0000 (17:19 -0400)]
Fix a typo, and some doc reformatting

14 years agoAdd some long descriptions for filter streams
Matthias Clasen [Fri, 13 Aug 2010 20:04:04 +0000 (16:04 -0400)]
Add some long descriptions for filter streams

14 years agoRun volumemonitor test with local vfs
Matthias Clasen [Fri, 13 Aug 2010 19:15:21 +0000 (15:15 -0400)]
Run volumemonitor test with local vfs

This is an attempt to stop the test from hanging on some build bots
in build.gnome.org.

14 years agoBug 626841 – Add test-case for non-socket GIOStream
David Zeuthen [Fri, 13 Aug 2010 17:58:27 +0000 (13:58 -0400)]
Bug 626841 – Add test-case for non-socket GIOStream

Also fix a couple of bugs so it actually works.

https://bugzilla.gnome.org/show_bug.cgi?id=626841

Signed-off-by: David Zeuthen <davidz@redhat.com>
14 years agoAdd test for EAGAIN overflow in gdbusconnection based on David's test.
Michael Meeks [Fri, 13 Aug 2010 16:56:19 +0000 (17:56 +0100)]
Add test for EAGAIN overflow in gdbusconnection based on David's test.

14 years agoAdd some async file tests
Matthias Clasen [Fri, 13 Aug 2010 16:04:21 +0000 (12:04 -0400)]
Add some async file tests

14 years agoCollect NEWS for 2.25.14
Matthias Clasen [Fri, 13 Aug 2010 04:47:02 +0000 (00:47 -0400)]
Collect NEWS for 2.25.14