Commit Graph

2964 Commits

Author SHA1 Message Date
Paolo Borelli
d1f1389649 gfile: add g_return_if_fail to g_file_make_directory_with_parents() 2012-07-14 15:16:55 -04:00
Colin Walters
cd49c0973d gfile: Plug memory leak in g_file_make_directory_with_parents()
The logic here is pretty twisted, but basically we were leaking a ref
for each non-existent parent.  The clearest way to fix this was to
move to more explicit refcounting logic; when a variable is pointing
to an object, it holds a ref.

https://bugzilla.gnome.org/show_bug.cgi?id=675446
2012-07-14 15:16:55 -04:00
Lars Uebernickel
4e718cf4cf docs: reference g_menu_item_new in gmenu convenience menuitem API 2012-07-14 15:16:54 -04:00
David Zeuthen
667284a19d GDBusProxy: Treat org.freedesktop.systemd1.Masked error as non-fatal
This is useful otherwise we'll fail if a systemd service is
masked. See bug 677718 for details.

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

Signed-off-by: David Zeuthen <zeuthen@gmail.com>
2012-06-08 13:37:21 -04:00
Debarshi Ray
200b390d83 gio: The tmpl parameter to g_file_new_tmp can be NULL
Fixes: https://bugzilla.gnome.org/676208
2012-05-21 17:56:01 +02:00
Dan Winship
6799e4a73a GConverterInputStream: fix an infinite loop when fill_buffer returns an error
The loop was using a GConverterResult variable where it meant to use a
gssize, and since GConverterResult was ending up as an unsigned type,
this meant the (res < 0) check always failed.
2012-05-14 09:58:41 -04:00
Dan Winship
b62b5a3d8c gio: fix error handling in async case of GProxyAddressEnumerator
In the async case, a failed DNS lookup was causing the proxy
resolution to bail out immediately, rather than just moving on to the
next potential proxy (which might not need us to do the DNS lookup
beforehand). Fix that.
2012-05-14 09:57:57 -04:00
Alexander Larsson
b6031518d0 Dist gio/dbus-daemon.xml and fix dependency for builddir != srcdir 2012-04-30 20:08:03 -04:00
Ryan Lortie
7e9306e84e GApplication: allow null application_id
GApplication application ID is now permitted to be NULL, in which case
G_APPLICATION_NON_UNIQUE will be implicitly enabled.

https://bugzilla.gnome.org/show_bug.cgi?id=671249
2012-04-30 17:36:49 -04:00
Debarshi Ray
9926b9315c GAppInfo: overwrite the DISPLAY only if it is set in the launch context
If the launch context is a GAppLaunchContext, and not a
GdkAppLaunchContext, then g_app_launch_context_get_display will return
NULL because the get_display virtual method is undefined. The DISPLAY
might still be inherited from the parent process, in which case
overwriting it with NULL breaks the launch.

This is a regression introduced in:
de834bed30

Fixes: https://bugzilla.gnome.org/672786
2012-04-26 23:12:53 +02:00
Alexander Larsson
8f2c2eef3c win32: Fix build with srcdir != builddir
Missed this part in the last commit
(cherry picked from commit 62905cda0b)
2012-04-24 14:55:08 +02:00
Alexander Larsson
9b588b3e46 win32: Fix build of gdbus-daemon-generated.[ch]
gdbus-daemon-generated.[ch] failed to build because it depended
on gdbus-2.0/codegen/gdbus-codegen which was build during the SUBDIRS part
of the build, however SUBDIRS are done *after* processing BUILT_SOURCES,
and these files are in BUILT_SOURCES.

The fix is simple, instead of running the gdbus-codegen code we
run the gdbus-codegen.in code, which works fine for uninstalled execution.

I also removed Makefile from the dependencies to avoid rebuilding the file
in tarballs, as Makefiles are written at configure time. We should be able to
ship the prebuilt files in the tarballs.
When running uninstalled
(cherry picked from commit 88bfc9b289)
2012-04-24 14:11:07 +02:00
Alexander Larsson
b5a846ca76 win32: Implement _g_dbus_get_machine_id using machine guid
This is what libdbus uses, so we're compatible.
(cherry picked from commit 5fb44f70dc)
2012-04-20 16:33:02 +02:00
Alexander Larsson
5d41a02125 win32: Support autolaunching dbus daemon
(cherry picked from commit dccce38367)
2012-04-20 16:32:49 +02:00
Alexander Larsson
cef54a9b82 Add _g_io_win32_get_module to get the gio HMODULE
(cherry picked from commit bd148e127a)
2012-04-20 16:32:37 +02:00
Alexander Larsson
9490d67f3c Add GDBusDAaemon, an implementation of a message bus
This is mostly complete, sans support for activation. However, its
not as picky as the libdbus implementation in terms like validation
and limits checking, nor is it as tested.

Its can be useful to test gdbus if dbus-daemon is not availible, but
its main reason for existance is to implement a default session bus
on win32 so that e.g. GApplication is guaranteed to work.
(cherry picked from commit 25581738a8)
2012-04-20 16:32:24 +02:00
Alexander Larsson
27352d96e2 gdbus: Escape nonce files in dbus addressess
Otherwise the colon in c:\blah made for trouble
(cherry picked from commit 82aecce301)
2012-04-20 16:31:41 +02:00
Alexander Larsson
5051aaca68 Support initial underscores in dbus codegen namespace
Before these were considered lowercase and thus got duplicated.
(cherry picked from commit ff92fe9593)
2012-04-20 16:31:23 +02:00
Benjamin Otte
ad35c6cae1 resourcefile: Set display name
Fixes resource filenames not being printed in CSS warnings for GTK.

https://bugzilla.gnome.org/show_bug.cgi?id=674345
2012-04-20 14:41:29 +02:00
Christian Persch
437b831c76 resources: compiler: Fix resources on big endian architectures
Resources are always little endian, so the gvdb is byteswapped. When looking
up the value, it would return a new byteswapped variant, making the data
returned from do_lookup() invalid once that variant is unref'd. Since
byteswapping doesn't matter for the "ay" data anyway, just use
gvdb_table_get_raw_value() instead and only byteswap the length and flag
values.

https://bugzilla.gnome.org/show_bug.cgi?id=673409
(cherry picked from commit 5ef34e5f11)
2012-04-16 22:40:13 +02:00
Kalev Lember
6b4c907cc7 Only build gmenumodel test on unix
It depends on gdbus-sessionbus.c which only builds on unix.
2012-04-16 18:47:07 +03:00
David Zeuthen
9b1a9ed4ce GSocketControlMessage: Don't warn about unknown messages
If we do this, the tests added in bug 673943 will cause warnings.

Signed-off-by: David Zeuthen <davidz@redhat.com>
2012-04-15 11:54:30 -04:00
Kalev Lember
e13fc58535 GResource docs: fix typo 2012-04-13 13:22:46 +03:00
Ryan Lortie
192892b52c GSettings docs: clarify what is a good path
Add an explicit note to the docs about choosing paths based on domain
names, not ones like "/apps/", "/desktop/" or "/system/".
2012-04-12 20:04:32 -04:00
Ryan Lortie
6560b37450 glib-compile-schemas: warn about bad dconf paths
For quite some time the recommended usage of GSettings and dconf has
been to use paths like /org/gnome/example/.  Use of /apps/ has spilled
over from GConf and is continuing to make its way into a number of
applications as they port.

glib-compile-schemas will now warn about these types of paths being
used.  This generates a lot of noise, but hopefully it will reduce the
number of ported applications making this mistake.
2012-04-12 19:55:34 -04:00
Alexander Larsson
386f0f29fd Fall back to SO_PEERCRED if credentials passing fails
Turns out libdbus doesn't send struct ucred credentials on linux, but
just relies on the SO_PEERCRED support. However, gdbus does send, and
expect to recieve a ucred credential. So, when libdbus talks to a
gdbus server the authentication fails to send the credentials.

We fix this by falling back to g_socket_get_credentials() if we don't
get any credential messages.
2012-04-12 16:50:20 +02:00
Alexander Larsson
ec91ed00f1 Detect "empty" socket credentials on Linux
Linux uses struct ucred to pass over socket credentials. Historically
this has always worked in recievemsg, if SO_PASSCRED was set on the socket,
even if the remote side didn't pass any credits. But this change broke that:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=16e5726269611b71c930054ffe9b858c1cea88eb;hp=a9e9fd7182332d0cf5f3e601df3e71dd431b70d7

However, it doesn't actually fail getting the credentials, it just returns
an "empty" one, as initialized by cred_to_ucred() at:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=net/core/sock.c;h=b29ab61b029cf7f76fda992ecfcb8dcaa06b0483;#l756

So, we detect this and fail the credentials reading.

This actually happened in real life with gdbus acting as a server, as
gdbus expected an ucred but libdbus didn't send one.
2012-04-12 16:43:49 +02:00
William Hua
69d929e67f Be more precise about Carbon v. Cocoa. 2012-04-11 23:25:09 -04:00
Jeremy Huddleston
5739d896f8 Don't use fast enumeration in old version of Mac OS.
Signed-off-by: William Hua <william@attente.ca>
2012-04-11 10:31:59 -04:00
Jeremy Huddleston
51a2661da6 Link with Foundation framework on OSX.
Signed-off-by: William Hua <william@attente.ca>
2012-04-11 10:31:59 -04:00
Will Thompson
c037879bd1 gdbus: test case for 673612
When presented with an array of empty arrays of 8-byte-aligned types,
GDBus would incorrectly apply the 8-byte alignment when reading back.

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

Signed-off-by: David Zeuthen <davidz@redhat.com>
2012-04-10 16:39:49 -04:00
Will Thompson
113f4abb67 GDBusMessage: do not align for grandchildren of empty arrays.
D-Bus arrays are serialized as follows:

1. align to a 4-byte boundary (for the length)
2. uint32: the length of the serialized body in bytes
3. padding for the alignment of the body type (not included in the length)
4. the body.

Note that 3. is a no-op unless the body type is an 8-byte aligned type
(uint64, int64, double, struct, dict_entry), since you are always on a
4-byte boundary from aligning and writing the length.

So, an empty aax (that is, an array containing zero arrays of int64)
is serialized as follows:

1. align to a 4-byte boundary
2. length of the contents of this (empty) array, in bytes (0)
3. align to a 4-byte boundary (the child array's alignment requirement)
4. there is no body.

But previously, GDBus would recurse in step three to align not just for
the type of the child array, but for the nonexistent child array's
contents. This only affects the algorithm when the grandchild type has
8-byte alignment and the reader happened to not already be on an 8-byte
boundary, in which case 4 bytes were spuriously skipped.

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

Signed-off-by: David Zeuthen <davidz@redhat.com>
2012-04-10 16:39:47 -04:00
Will Thompson
e28d3ef921 GDBusMessage: print more debug info about alignment
Signed-off-by: David Zeuthen <davidz@redhat.com>
2012-04-10 16:39:45 -04:00
Matthias Clasen
43806fca69 settings: Improve test coverage 2012-04-08 10:24:51 -04:00
Matthias Clasen
3072e7afee gdbusserver: Improve test coverage 2012-04-08 10:24:51 -04:00
Matthias Clasen
26145b9708 icon: Improve test coverage 2012-04-08 10:24:51 -04:00
Matthias Clasen
a8c869e945 contenttype: Improve test coverage
Excercise more parts of the guessing machinery.
These tests rely on the mime database being present.
2012-04-08 10:24:51 -04:00
Matthias Clasen
1e2cf010e7 networkaddress: Improve test coverage 2012-04-08 10:24:51 -04:00
Matthias Clasen
5632e9fc9c networkaddress: Fix userinfo parsing in uris
The code that is checking the userinfo part was accidentally
given a pointer to the end of the userinfo, so it was not
checking the right portion of the string at all.
2012-04-08 10:24:51 -04:00
Matthias Clasen
6a57bf1243 Make the dbus menu tests independent from the session bus
With this change,
DBUS_SESSION_BUS_ADDRESS= make check
succeed here.
2012-04-08 10:24:50 -04:00
Matthias Clasen
d036960d30 ifdef out some unused code
Nothing wrong with leaving debug spew in the code, but we should
not build it if it is not used.
2012-04-08 10:24:50 -04:00
Matthias Clasen
5ce66bed3d Formatting cleanup 2012-04-06 21:22:17 -04:00
Matthias Clasen
e52cf81042 Don't return values from void functions
Sun CC does not take that lightly.
2012-04-06 20:41:19 -04:00
Matthias Clasen
d0b429af48 Revert "GDesktopAppInfo: add an accessor for StartupWMClass"
This reverts commit 3ccc4cf91d.
2012-04-06 19:15:53 -04:00
Giovanni Campagna
3ccc4cf91d GDesktopAppInfo: add an accessor for StartupWMClass
Components using GIO to do window to application matching can
use that field to retrieve potential candidates.

https://bugzilla.gnome.org/show_bug.cgi?id=673659
2012-04-07 00:22:02 +02:00
Dieter Verfaillie
2655262889 Fix malformed GTK-Doc comment blocks: remove repeated comment blocks.
gio/gproxyresolver.h: GProxyResolver already documented in gio/giotypes.h
gio/gtlsbackend.h: GTlsBackend already documented in gio/gtlsbackend.c
gio/gtlsclientconnection.h: GTlsClientConnection already documented in gio/gtlsclientconnection.c
gio/gtlsconnection.h: GTlsConnection already documented in gio/gtlsconnection.c
gio/gunixconnection.h: GTcpConnection already documented in gio/giotypes.h
glib/gversion.h: GLIB_CHECK_VERSION already documented in glib/gversion.c

Found these thanks to the improved gobject-introspection
GTK-Doc comment block/annotation parser.
See https://bugzilla.gnome.org/show_bug.cgi?id=672254

https://bugzilla.gnome.org/show_bug.cgi?id=673385
2012-04-05 10:23:46 -03:00
Dieter Verfaillie
ce7f1a0789 Fix malformed GTK-Doc comment blocks: don't confuse GTK-Doc parsers.
Found these thanks to the improved gobject-introspection
GTK-Doc comment block/annotation parser.
See https://bugzilla.gnome.org/show_bug.cgi?id=672254

https://bugzilla.gnome.org/show_bug.cgi?id=673385
2012-04-05 10:23:45 -03:00
Dieter Verfaillie
0183c1f8a1 Fix malformed GTK-Doc comment blocks: invalid parameters and tags.
Found these thanks to the improved gobject-introspection
GTK-Doc comment block/annotation parser.
See https://bugzilla.gnome.org/show_bug.cgi?id=672254

https://bugzilla.gnome.org/show_bug.cgi?id=673385
2012-04-05 10:23:42 -03:00
Dieter Verfaillie
fefe5d9a20 Fix malformed GTK-Doc comment blocks: correct struct name.
Found these thanks to improved gobject-introspection GTK-Doc
comment block/annotation parser from:
https://bugzilla.gnome.org/show_bug.cgi?id=672254

https://bugzilla.gnome.org/show_bug.cgi?id=673385
2012-04-05 10:23:42 -03:00
Dieter Verfaillie
60fb0f5ea8 Fix malformed GTK-Doc comment blocks: unmark non GTK-Doc comment block.
Found these thanks to improved gobject-introspection GTK-Doc
comment block/annotation parser from:
https://bugzilla.gnome.org/show_bug.cgi?id=672254

https://bugzilla.gnome.org/show_bug.cgi?id=673385
2012-04-05 10:23:40 -03:00