X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gio%2Fgdbusprivate.c;h=86a9d940938c4dbc8b251968d04050cd5c34d7a5;hb=c3842d1969feace4bfb12919be730e75e53877d9;hp=3aa71cf16a0030fb81b0e6a8470314703fd400ad;hpb=d85b722734a6fcfe94032f6113de9e5c190fd7c3;p=platform%2Fupstream%2Fglib.git
diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c
index 3aa71cf..86a9d94 100644
--- a/gio/gdbusprivate.c
+++ b/gio/gdbusprivate.c
@@ -13,9 +13,7 @@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
- * Public License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Public License along with this library; if not, see .
*
* Author: David Zeuthen
*/
@@ -24,9 +22,6 @@
#include
#include
-#ifdef HAVE_UNISTD_H
-#include
-#endif
#include "giotypes.h"
#include "gsocket.h"
@@ -39,6 +34,7 @@
#include "ginputstream.h"
#include "gmemoryinputstream.h"
#include "giostream.h"
+#include "glib/gstdio.h"
#include "gsocketcontrolmessage.h"
#include "gsocketconnection.h"
#include "gsocketoutputstream.h"
@@ -191,6 +187,7 @@ _g_socket_read_with_control_messages (GSocket *socket,
callback,
user_data,
_g_socket_read_with_control_messages);
+ g_simple_async_result_set_check_cancellable (data->simple, cancellable);
if (!g_socket_condition_check (socket, G_IO_IN))
{
@@ -557,6 +554,7 @@ _g_dbus_worker_unfreeze (GDBusWorker *worker)
unfreeze_in_idle_cb,
_g_dbus_worker_ref (worker),
(GDestroyNotify) _g_dbus_worker_unref);
+ g_source_set_name (idle_source, "[gio] unfreeze_in_idle_cb");
g_source_attach (idle_source, worker->shared_thread_data->context);
g_source_unref (idle_source);
}
@@ -620,7 +618,7 @@ _g_dbus_worker_do_read_cb (GInputStream *input_stream,
{
/* TODO: really want a append_steal() */
g_unix_fd_list_append (worker->read_fd_list, fds[n], NULL);
- close (fds[n]);
+ (void) g_close (fds[n], NULL);
}
}
g_free (fds);
@@ -733,7 +731,7 @@ _g_dbus_worker_do_read_cb (GInputStream *input_stream,
&error);
if (message_len == -1)
{
- g_warning ("_g_dbus_worker_do_read_cb: error determing bytes needed: %s", error->message);
+ g_warning ("_g_dbus_worker_do_read_cb: error determining bytes needed: %s", error->message);
_g_dbus_worker_emit_disconnected (worker, FALSE, error);
g_error_free (error);
goto out;
@@ -962,6 +960,7 @@ write_message_async_cb (GObject *source_object,
* write-lock is not held on entry
* output_pending is PENDING_WRITE on entry
*/
+#ifdef G_OS_UNIX
static gboolean
on_socket_ready (GSocket *socket,
GIOCondition condition,
@@ -971,6 +970,7 @@ on_socket_ready (GSocket *socket,
write_message_continue_writing (data);
return FALSE; /* remove source */
}
+#endif
/* called in private thread shared by all GDBusConnection instances
*
@@ -981,15 +981,17 @@ static void
write_message_continue_writing (MessageToWriteData *data)
{
GOutputStream *ostream;
- GSimpleAsyncResult *simple;
#ifdef G_OS_UNIX
+ GSimpleAsyncResult *simple;
GUnixFDList *fd_list;
#endif
+#ifdef G_OS_UNIX
/* Note: we can't access data->simple after calling g_async_result_complete () because the
* callback can free @data and we're not completing in idle. So use a copy of the pointer.
*/
simple = data->simple;
+#endif
ostream = g_io_stream_get_output_stream (data->worker->stream);
#ifdef G_OS_UNIX
@@ -1105,7 +1107,9 @@ write_message_continue_writing (MessageToWriteData *data)
write_message_async_cb,
data);
}
+#ifdef G_OS_UNIX
out:
+#endif
;
}
@@ -1593,6 +1597,7 @@ schedule_writing_unlocked (GDBusWorker *worker,
continue_writing_in_idle_cb,
_g_dbus_worker_ref (worker),
(GDestroyNotify) _g_dbus_worker_unref);
+ g_source_set_name (idle_source, "[gio] continue_writing_in_idle_cb");
g_source_attach (idle_source, worker->shared_thread_data->context);
g_source_unref (idle_source);
}
@@ -1678,6 +1683,7 @@ _g_dbus_worker_new (GIOStream *stream,
_g_dbus_worker_do_initial_read,
_g_dbus_worker_ref (worker),
(GDestroyNotify) _g_dbus_worker_unref);
+ g_source_set_name (idle_source, "[gio] _g_dbus_worker_do_initial_read");
g_source_attach (idle_source, worker->shared_thread_data->context);
g_source_unref (idle_source);
@@ -1730,7 +1736,7 @@ _g_dbus_worker_stop (GDBusWorker *worker)
*/
_g_dbus_worker_close (worker, NULL, NULL);
- /* _g_dbus_worker_close holds a ref until after an idle in the the worker
+ /* _g_dbus_worker_close holds a ref until after an idle in the worker
* thread has run, so we no longer need to unref in an idle like in
* commit 322e25b535
*/
@@ -2047,6 +2053,47 @@ out:
gchar *
_g_dbus_get_machine_id (GError **error)
{
+#ifdef G_OS_WIN32
+ HW_PROFILE_INFOA info;
+ char *src, *dest, *res;
+ int i;
+
+ if (!GetCurrentHwProfileA (&info))
+ {
+ char *message = g_win32_error_message (GetLastError ());
+ g_set_error (error,
+ G_IO_ERROR,
+ G_IO_ERROR_FAILED,
+ _("Unable to get Hardware profile: %s"), message);
+ g_free (message);
+ return NULL;
+ }
+
+ /* Form: {12340001-4980-1920-6788-123456789012} */
+ src = &info.szHwProfileGuid[0];
+
+ res = g_malloc (32+1);
+ dest = res;
+
+ src++; /* Skip { */
+ for (i = 0; i < 8; i++)
+ *dest++ = *src++;
+ src++; /* Skip - */
+ for (i = 0; i < 4; i++)
+ *dest++ = *src++;
+ src++; /* Skip - */
+ for (i = 0; i < 4; i++)
+ *dest++ = *src++;
+ src++; /* Skip - */
+ for (i = 0; i < 4; i++)
+ *dest++ = *src++;
+ src++; /* Skip - */
+ for (i = 0; i < 12; i++)
+ *dest++ = *src++;
+ *dest = 0;
+
+ return res;
+#else
gchar *ret;
GError *first_error;
/* TODO: use PACKAGE_LOCALSTATEDIR ? */
@@ -2072,6 +2119,7 @@ _g_dbus_get_machine_id (GError **error)
g_strstrip (ret);
}
return ret;
+#endif
}
/* ---------------------------------------------------------------------------------------------------- */
@@ -2105,7 +2153,7 @@ write_message_print_transport_debug (gssize bytes_written,
_g_dbus_debug_print_lock ();
g_print ("========================================================================\n"
"GDBus-debug:Transport:\n"
- " >>>> WROTE %" G_GSIZE_FORMAT " bytes of message with serial %d and\n"
+ " >>>> WROTE %" G_GSSIZE_FORMAT " bytes of message with serial %d and\n"
" size %" G_GSIZE_FORMAT " from offset %" G_GSIZE_FORMAT " on a %s\n",
bytes_written,
g_dbus_message_get_serial (data->message),
@@ -2156,7 +2204,7 @@ read_message_print_transport_debug (gssize bytes_read,
_g_dbus_debug_print_lock ();
g_print ("========================================================================\n"
"GDBus-debug:Transport:\n"
- " <<<< READ %" G_GSIZE_FORMAT " bytes of message with serial %d and\n"
+ " <<<< READ %" G_GSSIZE_FORMAT " bytes of message with serial %d and\n"
" size %d to offset %" G_GSIZE_FORMAT " from a %s\n",
bytes_read,
serial,