It turns out that just calling g_inet_address_get_type() isn't
enough, since its marked G_GNUC_CONST, so the call is optimized
away. If we assign the return value to a volatile location we ensure
it is called.
OS X's headers split up the current and old (BIND 4) nameserver stuff
slightly differently than Linux does, but explicitly including
arpa/nameser_compat.h does the right thing on both. Part of #580301
In glibc, IN6_IS_ADDR_UNSPECIFIED() et al. cast their argument to a
uint32_t*, so it doesn't matter whether you pass them the in6_addr
itself (which is what you're supposed to do) or one of its union
members (which is what we were actually doing). Solaris's macro
accesses the in6_addr fields directly though, and so only works if you
pass the actual in6_addr. #580194.
Bug 579862 – requesting xattr::foo ends up calling getxattr(...,
user.:foo,...)
The patch makes sure we escape xattr::, not xattr:, before adding user.
and calling getxattr.
Higher-level wrappers around GResolver. GSocketConnectable provides an
interface for synchronously or asynchronously iterating multiple
socket addresses, with GNetworkAddress and GNetworkService providing
interfaces based on hostname and SRV record resolution.
Part of #548466.
GResolver provides asynchronous (and synchronous-but-cancellable) APIs
for resolving hostnames, reverse-resolving IP addresses back to
hostnames, and resolving SRV records. Part of #548466.
Types and methods for dealing with IPv4 and IPv6 addresses (and UNIX
domain socket addresses under UNIX). This does not include code for
actual socket I/O.
Originally from "gnio". Much of the code was written by Christian
Kellner, Samuel Cormier-Iijima, and Ryan Lortie.
Part of #548466.
There are race conditions when connecting and disconnecting from the
"cancelled" signal on GCancellable which you need to do when
implementing cancellable operations. This adds helper functions that
avoid these races and mentions these races in the docs. (#572844)
Apps don't generally create backup directories, etc. So, if the file
ends with ~ but is not a regular file shouldn't be considered a backup
file. (#573673)
When returning a filesystem type id, say "ext3/ext4" instead of "ext3",
since both use the same superblock magic, so we can't discriminate
them without more work.
Sometimes it seems like the trash dir and the file are on the same
filesystem but the rename fails with EXDEV anyway (can happen
e.g. with bind mounts or multiple mounts of the same device). In this
case we want to return the right error so that apps can fallback to
regular delete.
Update various README files to refer to git instead of svn.
Add a README.commits that is pretty much a copy of the same file
in GTK+. Also discontinue ChangeLog files.
2009-03-26 Carlos Garnacho <carlosg@gnome.org>
Bug 575270 – GVolumeMonitor::mount-pre-unmount not being emitted
* gunixmount.c (eject_unmount_cb) (eject_unmount_do_cb)
(eject_unmount_do): Emit ::mount-pre-unmount and wait 500msec before
actually trying to unmount.
svn path=/trunk/; revision=8020
2009-03-17 Colin Walters <walters@redhat.com>
Bug 575708 - runaway inotify madness ...
* gfilemonitor.c: Queue up events in a local list and
fire one idle, instead of queuing lots of individual
idles which has bad performance behavior.
svn path=/trunk/; revision=8010
2009-03-16 Alexander Larsson <alexl@redhat.com>
Bug 575555 – Use fsync() when replacing files to avoid data loss on crash
* configure.in:
Look for fsync().
* glib/gfileutils.c:
(write_to_temp_file):
fsync temp file if destination file exists
2009-03-16 Alexander Larsson <alexl@redhat.com>
Bug 575555 – Use fsync() when replacing files to avoid data loss on crash
* glocalfileoutputstream.c:
(g_local_file_output_stream_close):
(_g_local_file_output_stream_replace):
fsync temp file before closing if replacing target file
svn path=/trunk/; revision=7991
2009-03-04 Alexander Larsson <alexl@redhat.com>
Bug 573970 – crash in gunixvolumemonitor:update_mounts when unmounting
* gunionvolumemonitor.c:
(g_union_volume_monitor_dispose):
Run dispose on child monitors when disposing.
* gunixvolumemonitor.c:
Remove all volumes and mount on dispose to avoid circular
dependencies not freeing the monitor
svn path=/trunk/; revision=7957
2009-03-03 Alexander Larsson <alexl@redhat.com>
Bug 561172 – gnome-open fails on local URIs with anchors
* gdesktopappinfo.c:
Don't force uris to filenames if the uri has an anchor, because
that would strip the anchor.
* glocalvfs.c:
Strip anchor from file:// uris when creating GFile, since
g_filename_from_uri doesn't handle them.
svn path=/trunk/; revision=7953
2009-03-03 Alexander Larsson <alexl@redhat.com>
Bug 562613 – Missing const modifier in string parameters
* gfileinputstream.[ch]:
* gfileoutputstream.[ch]:
* glocalfileinfo.[ch]:
Make string arguments const if used as such.
svn path=/trunk/; revision=7952
2009-03-03 Alexander Larsson <alexl@redhat.com>
* glocalfile.c (g_local_file_query_filesystem_info):
Handle filesystems no supporting reporting how much is free.
This fixes bug 573454 where the filesystem not supporting this
is the gvfs smb backend over the fuse filesystem.
svn path=/trunk/; revision=7951
* giomodule.c: Use a separate lock for extension point registration
to avoid deadlock. Discovered by Torsten Schoenfeld
svn path=/trunk/; revision=7935
2009-02-27 Alexander Larsson <alexl@redhat.com>
* giomodule-priv.h:
* giomodule.c:
Split out the extension point registration code to its
own function.
* glocalvfs.c:
Ensure extension points are registered before extending it.
It might not have happened yet if g_vfs_get_local() is called.
svn path=/trunk/; revision=7919
2009-02-26 Alexander Larsson <alexl@redhat.com>
Bug 540461 – g_memory_output_stream_get_data_size() doesn't behave as document
* gmemoryoutputstream.c:
Track actual valid size, even if we later seek back.
* tests/memory-output-stream.c:
Add testcase
svn path=/trunk/; revision=7916
2009-02-26 Alexander Larsson <alexl@redhat.com>
* gdesktopappinfo.c:
Support desktop file key X-GIO-NoFuse which disables
use of fuse pathnames for %u and %U arguments.
svn path=/trunk/; revision=7914
2009-02-25 Alexander Larsson <alexl@redhat.com>
Bug 570073 – Add support for reading filesystems on Interix
* gunixmounts.c (_g_get_unix_mounts):
Support Interix. Patch from Fabian Groffen
svn path=/trunk/; revision=7911
2009-02-20 Alexander Larsson <alexl@redhat.com>
* gcontenttype.c:
(g_content_type_guess):
Don't ever sniff desktop files when the filename is known.
In other words, only allow desktop files with the .desktop extension
and when the filename isn't known.
This is a security precaution since desktop files can execute
arbitrary code when launched and we don't want to allow them to
try and hide as another type. There is no legit reason to not
have the .desktop extension anyway.
svn path=/trunk/; revision=7892
2009-02-19 Alexander Larsson <alexl@redhat.com>
Bug 549298 – impossible to copy files with p (pipe) flag
* gfile.c:
(file_copy_fallback):
Error out if the source file is a special file
svn path=/trunk/; revision=7885
2009-02-18 Alexander Larsson <alexl@redhat.com>
Bug 560564 – Replacing a symlink with its linked file truncates the original file
* gioenums.h:
Add G_FILE_CREATE_REPLACE_DESTINATION
* glocalfileoutputstream.c:
(handle_overwrite_open):
(_g_local_file_output_stream_replace):
Handle G_FILE_CREATE_REPLACE_DESTINATION when overwriting files.
* gfile.c:
(file_copy_fallback):
Pass G_FILE_CREATE_REPLACE_DESTINATION to g_file_replace when copying
with overwrite.
svn path=/trunk/; revision=7880
2009-02-17 Ryan Lortie <desrt@desrt.ca>
* gfileinfo.c: unref the destination's attribute matcher before
overwriting it.
svn path=/trunk/; revision=7879