* bus/bus.c: Missed patch - pass in the context to the directory watch
[platform/upstream/dbus.git] / ChangeLog
1 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
2
3         * bus/bus.c: Missed patch - pass in the context to the directory watch
4
5 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
6
7         * Released D-Bus 1.0 RC 3(0.95)
8
9 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
10
11         * bus/activation.c (bus_activation_new): don't fail if we can not read
12         the directory as it may not exist
13
14 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
15
16         * bus/config-parser.c (service_dirs_find_dir): use 
17         _dbus_list_get_next_link so we don't get stuck in an infinite loop
18         (start_busconfig_child): move processing of standard_session_servicedirs
19         tags here because they have no content
20         (bus_config_parser_content): check we don't have content in 
21         standard_session_servicedirs tag
22
23 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
24
25         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
26         Packagers need to own this directory
27
28 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
29
30         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
31         <standard_session_servicedirs> tag with a <sevicedir> tag that
32         points to the test service directory
33
34 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
35
36         * configure.in: Add a check for DIR *dirp->dd_fd
37
38         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
39         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
40         of both Solaris and Irix
41
42 2006-11-01  Havoc Pennington  <hp@redhat.com>
43
44         * bus/dbus-daemon.1.in: document standard_session_servicedirs
45
46 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
47
48         * configure.in: expose DBUS_DATADIR
49         
50         * bus/config-parser.c: add the standard_session_servicedirs element
51         to the parser
52         (bus_config_parser_content): process the standard_session_servicedirs
53         element by getting the standard directories from sysdeps and merging
54         them into the service directory list
55         (test_default_session_servicedirs): make sure we get what we expect
56
57         * bus/session.conf.in: replace the servicedir tag with the 
58         standard_session_servicedirs tag
59
60         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
61         dbus-sysdeps.h to avoid circular header dependencies
62
63         * dbus/dbus-sysdeps.h: add the typedef of DBusList
64
65         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
66         which takes a string of directories delimited by colons, parses them 
67         out, appends a suffix and puts them in a list ignoring empty elements
68         (_dbus_get_standard_session_servicedirs): returns the standard 
69         directories for a session bus to look for service activation files
70         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
71         DBUS_DATADIR directories
72
73         * test/data/valid-config-files/many-rules.conf: add the 
74         standard_session_servicedirs tag to the valid config file tests
75
76 2006-10-30  Havoc Pennington  <hp@redhat.com>
77
78         * tools/dbus-launch.1, doc/TODO: capture intent to change the
79         command line options of dbus-launch a bit post 1.0
80
81 2006-10-27  Havoc Pennington  <hp@redhat.com>
82         
83         * dbus/dbus-connection.c (dbus_connection_open_private): document
84         how to choose shared vs. private connections
85
86 2006-10-27  Havoc Pennington  <hp@redhat.com>
87
88         * dbus/dbus-test.c: enclose more of the file in the
89         DBUS_BUILD_TESTS check.
90
91         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
92         DBUS_DISABLE_ASSERT case.
93
94         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
95         that it only works on the server side
96
97         * dbus/dbus-bus.c: add a global lock covering the BusData we
98         attach to each connection
99         (internal_bus_get): lock our access to the BusData
100         (dbus_bus_register): lock the entire registration process
101         with _DBUS_LOCK(bus_datas). If we get the lock and 
102         registration is already complete, silently return (vs. previous
103         behavior of aborting).
104         (dbus_bus_set_unique_name): lock the BusData
105         (dbus_bus_get_unique_name): lock the BusData
106
107 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
108
109         * bus/config-parser.c (service_dirs_find_dir, 
110         service_dirs_append_unique_or_free, 
111         service_dirs_append_link_unique_or_free): New static methods
112         for only appending unique service directory names into
113         the service directory list
114         (merge_included, bus_config_parser_content): Only add unique
115         service directory names into the list
116
117 2006-10-27  Havoc Pennington  <hp@redhat.com>
118
119         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
120         variables volatile, suggested by Thiago. Document struct fields.
121         (PTHREAD_CHECK): remove pthread error checking if assertions are
122         disabled, should reduce the no-assertions case to the bare
123         minimum code.
124
125 2006-10-26  Havoc Pennington  <hp@redhat.com>
126         
127         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
128         to be recursive
129         (_dbus_pthread_mutex_unlock): make it recursive
130         (_dbus_pthread_condvar_wait): save/restore the recursion count
131         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
132
133 2006-10-26  Havoc Pennington  <hp@redhat.com>
134
135         * doc/dbus-specification.xml: clarify the UUID text slightly
136
137         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
138         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
139         in preparation for being able to extend them for e.g. recursive
140         mutexes.
141
142 2006-10-26  Havoc Pennington  <hp@redhat.com>
143
144         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
145         condition variables relate to recursive mutexes.
146         
147         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
148         dbus/dbus-threads.c: Split the platforms-specific thread 
149         implementations into their own files.
150         
151         * dbus/dbus-sysdeps-pthread.c
152         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
153         was backward. Not that anything uses it.
154
155 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
156
157         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
158         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
159         needs to be cleaned up more.
160
161         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
162         up the CREDS issue.
163
164 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
165
166         * configure.in, dbus-1.pc.in: Check to see if thread methods 
167         are in glibc or libpthread and add -lpthread to the link stage 
168         if it is the latter
169
170 2006-10-26  Thiago Macieira  <thiago@kde.org>
171
172         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
173         bug 8780: the connection lock is only required while recording
174         the shared connection, so protect only that code
175         section. Don't require connection_lookup_shared to return a
176         locked connection.
177
178 2006-10-26  Thiago Macieira  <thiago@kde.org>
179
180         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
181         check if get_machine_uuid() returns NULL before proceeding any
182         further: we can't init the X atoms or create a session file
183         name if there is no machine ID.
184         This solves a crash reported by some users if
185         --exit-with-session was used without --autolaunch=<machine-id>
186
187 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
188
189         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
190         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
191
192         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
193         before we run dbus-launch
194
195         * configure.in: define TEST_BUS_BINARY to be the full path to 
196         dbus-daemon in the build root 
197
198 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
199
200         * dbus/Makefile.am:
201         * tools/Makefile.am:
202         * toos/dbus-uuidgen.1:
203                 Move the machine-id file to /var/lib/dbus 
204
205 2006-10-24  David Zeuthen  <davidz@redhat.com>
206
207         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
208         _dbus_assert (thread_init_generation != _dbus_current_generation)
209         not _dbus_assert (thread_init_generation == _dbus_current_generation)
210
211 2006-10-24  Thiago Macieira  <thiago@kde.org>
212
213         * dbus/dbus-sysdeps.h:
214         * dbus/dbus-sysdeps-unix.c: Add function
215         _dbus_make_file_world_readable that chmods a file to 0644.
216
217         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
218         Avoid writing to the static "argv" array, thereby avoiding a
219         COW on the child process.
220
221         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
222         call _dbus_make_file_world_readable on the created file.
223
224 2006-10-23  David Zeuthen  <davidz@redhat.com>
225
226         * dbus/dbus-memory.c: Use atomic variable to protect
227         n_blocks_outstanding otherwise OOM will be reported using SMP on
228         some arches
229         
230         * bus/dispatch.c: Add missing end of line characters
231
232         * bus/desktop-file.c (parse_section_start, parse_key_value) 
233         (bus_desktop_file_load): Propertly handle OOM
234
235         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
236         thread_init_generation equals _dbus_current_generation, not 0
237
238 2006-10-22  Havoc Pennington  <hp@redhat.com>
239
240         * dbus/dbus-connection-internal.h: move prototype of
241         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
242         it isn't in a public header and doesn't end up in the DBusBus
243         group in Doxygen
244
245 2006-10-21  Havoc Pennington  <hp@redhat.com>
246
247         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
248         the tarball if packagers want to run it
249
250         * cleanup-man-pages.sh: Add a script which munges all the internal
251         API man pages out of the Doxygen output. This reduces the size of
252         the installed man pages from 7 to 2 megs, and avoids
253         namespace-polluting pages. Right now (like Doxygen) this script
254         isn't in the build, it's something packagers can do manually.
255
256 2006-10-21  Havoc Pennington  <hp@redhat.com>
257
258         * dbus/dbus-connection.h: don't include the watch/timeout
259         functions in connection section
260
261 2006-10-21  Havoc Pennington  <hp@redhat.com>
262
263         * Documentation! Whee! Doxygen now 100% silent. If you make it
264         angry again, you will be punished.
265         
266 2006-10-21  Havoc Pennington  <hp@redhat.com>
267
268         * More documentation - all public API now documented according to
269         Doxygen
270
271 2006-10-21  Havoc Pennington  <hp@redhat.com>
272
273         * Document a bunch of undocumented stuff
274         
275 2006-10-21  Havoc Pennington  <hp@redhat.com>
276
277         * Clean up Doxygen group markers for public API so Doxygen finds
278         everything (not comprehensively fixed for private API).
279         Means all remaining Doxygen warnings are just about missing docs
280         and thus pretty simple to resolve.
281         
282 2006-10-21  Havoc Pennington  <hp@redhat.com>
283         
284         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
285
286         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
287         as DBUS_GNUC_DEPRECATED
288
289 2006-10-21  Havoc Pennington  <hp@redhat.com>
290
291         * Move all private API into the private Doxygen group sections of
292         the files, so they don't show up in the public API docs
293         
294 2006-10-21  Havoc Pennington  <hp@redhat.com>
295
296         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
297         dbus_message_iter_get_array_len().
298
299         * throughout: documentation improvements.
300
301 2006-10-20  Havoc Pennington  <hp@redhat.com>
302
303         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
304         matter, and the message-loader-breaker thing since nobody is going
305         to do it.  Add an item to 1.0 about supporting recursive locks
306         in dbus_threads_init_default() though, since it should be easy.
307
308         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
309         Fix this in the !dispatch case to avoid busy-looping after
310         disconnection
311
312         * More misc docs improvements
313
314 2006-10-19  Havoc Pennington  <hp@redhat.com>
315
316         * more Doxygen-related fixes (lots of moving things from the
317         public to internal section in dbus-connection.c)
318
319 2006-10-19  Havoc Pennington  <hp@redhat.com>
320
321         * Fix a pile of Doxygen warnings and missing docs
322
323 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
324
325         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
326         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
327         instead of a void *.  kqueue uses this to get the context's loop
328         while the other modules ignore the parameter.  This allows us to
329         avoid platform conditionals
330
331         * bus/bus.c (process_config_postinit): Pass in the context to the 
332         watch
333
334 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
335
336         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
337         when starting the system bus
338
339 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
340
341         * configure.in: More fixups for cross compile (Patch from 
342         Marco Pracucci <development at pracucci dot com>)
343
344 2006-10-17  Havoc Pennington  <hp@redhat.com>
345
346         * tools/dbus-send.c (main): don't close shared connection, fix
347         from Timo Hoenig
348
349 2006-10-17  Havoc Pennington  <hp@redhat.com>
350
351         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
352
353         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
354         since realistically it doesn't look like we'll be changing it
355         anymore.
356
357 2006-10-17  Havoc Pennington  <hp@redhat.com>
358
359         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
360         be used for return_if_fail type warnings; prefixes the pid, and
361         fatal by default.
362
363 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
364
365         * configure.in: Released 1.0 RC 2(0.94)
366         Add check for -fPIC and enable it if available
367
368 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
369
370         * doc/TODO: Remove the check TODO item
371
372 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
373
374         * dbus-transport-socket.c (exchange_credentials):
375         Print out more detailed errors if reading or sending
376         credentials fail (Patch from Julio M. Merino Vidal 
377         <jmmv at NetBSD dot org>)
378
379 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
380
381         * configure.in: when checking for posix getpwnam_r assume true
382         for cross compiles
383
384 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
385
386         * configure.in: Check for gethostbyname first before we check for it
387         in libnsl.  On gnu systems it is implemeneted 
388
389 2006-10-13  Havoc Pennington  <hp@redhat.com>
390
391         * dbus/dbus-connection.c
392         (dbus_connection_send_with_reply_and_block): fix to handle closed
393         connections, from Tambet Ingo bug #8631
394
395 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
396
397         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
398
399 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
400
401         * test/name-test/Makefile.am: don't link against both libdbus and
402         libdbus-convenience
403
404 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
405
406         * configure.in: check for dirfd even if it is a macro
407         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
408
409 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
410
411         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
412         avoid using dirfd on systems that don't have dirfd 
413         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
414
415 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
416
417         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
418         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
419
420         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
421         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
422         macro because _dbus_abort calls it
423
424         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
425         works
426
427 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
428
429         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
430         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
431
432 2006-10-02  Thiago Macieira  <thiago@kde.org>
433
434         * tools/dbus-launch.c (main): make it complain and abort
435         execution in case an unknown option is given. Also, process
436         the '--' argument as the end of arguments.
437
438 2006-10-01  Havoc Pennington  <hp@redhat.com>
439
440         * tools/dbus-launch.c (print_variables): if no syntax is given,
441         don't print something that's sort-of-half-sh-syntax, just print
442         a plain key-value pairs thing.
443
444         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
445         the local machine representation (but still have the hostname in
446         the display). Remove the hostname from the display if it is
447         localhost. Change session files to be named
448         ~/.dbus/session-bus/machine-display. Change X atoms to be
449         underscore-prefixed so nobody whines about ICCCM compliance.
450         Otherwise name them the same as the env variables.
451         Change session file format to include key-value pairs and an
452         explanatory comment. Keys are the same as the env variables.
453         (set_address_in_x11): X property format can't depend on
454         sizeof(pid_t) on a particular machine, fix to always be 32 bits
455
456         * tools/dbus-launch.c: make --autolaunch take a machine id
457         argument. If --autolaunch is used with a program to run, complain
458         for now (but add a FIXME). Also, don't look for existing bus if 
459         there's a program to run (but add a FIXME).
460
461         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
462         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
463         just to get this, and avoids duplicating uuid-reading code).
464
465         * tools/dbus-launch.1: clarify various things
466         
467 2006-10-01  Havoc Pennington  <hp@redhat.com>
468
469         * test/test-service.c (path_message_func): remove broken extra
470         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
471
472         * test/test-shell-service.c (path_message_func): same fix
473         
474         * dbus/dbus-connection.c
475         (_dbus_connection_get_dispatch_status_unlocked): break up the
476         function a little for clarity and fix the notification of
477         dbus-bus.c to not require dispatch to be complete
478
479         * dbus/dbus-connection.c (dbus_connection_unref): improve the
480         warning when you try to finalize an open connection.
481         
482 2006-10-01  Havoc Pennington  <hp@redhat.com>
483
484         * dbus/dbus-bus.c
485         (internal_bus_get): only weak ref the connection; this means 
486         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
487         called safely in any context
488         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
489         unref
490
491         * dbus/dbus-connection.c
492         (_dbus_connection_get_dispatch_status_unlocked): move
493         _dbus_bus_notify_shared_connection_disconnected_unlocked here
494         when queuing Disconnected instead of when the Disconnected message
495         arrives, so dbus_bus_get() won't return closed connections.
496         
497 2006-10-01  Havoc Pennington  <hp@redhat.com>
498
499         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
500         Add a hack to make DBusNewConnectionFunction work right.
501
502         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
503         the hack here. Also, fix the todo about refcount leak.
504         
505         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
506         and use the hack here
507         
508         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
509         "shareable" flag; this was completely broken, since it meant 
510         dbus_connection_open() returned a connection of unknown
511         shared-ness. Now, we always hold a ref on anything opened 
512         as shareable.
513
514         Move the call to notify dbus-bus.c into
515         connection_forget_shared_unlocked, so libdbus consistently forgets
516         all its knowledge of a connection at once. This exposed numerous
517         places where things were totally broken if we dropped a ref inside
518         get_dispatch_status_unlocked where
519         connection_forget_shared_unlocked was previously, so move
520         connection_forget_shared_unlocked into
521         _dbus_connection_update_dispatch_status_and_unlock. Also move the
522         exit_on_disconnect here.
523
524         (shared_connections_shutdown): this assumed weak refs to the
525         shared connections; since we have strong refs now, the assertion 
526         was failing and stuff was left in the hash. Fix it to close
527         still-open shared connections.
528         
529         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
530         debug pipe connections
531         
532         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
533         dbus-bus.c if the closed connection is in fact shared
534         (_dbus_connection_close_possibly_shared): rename from 
535         _dbus_connection_close_internal
536         (dbus_connection_close, dbus_connection_open,
537         dbus_connection_open_private): Improve docs to explain the deal
538         with when you should close or unref or both
539
540         * dbus/dbus-bus.c
541         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
542         from _dbus_bus_check_connection_and_unref_unlocked and modify to
543         loop over all connections
544
545         * test/test-utils.c (test_connection_shutdown): don't try to close
546         shared connections.
547
548         * test/name-test/test-threads-init.c (main): fix warnings in here
549
550         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
551         env variable to cause blocking waiting for gdb; drop
552         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
553         unconditionally.
554
555         * configure.in: add -export-dynamic to libtool flags if assertions enabled
556         so _dbus_print_backtrace works.
557
558         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
559         instead of _dbus_verbose to print the backtrace, and diagnose lack 
560         of -rdynamic/-export-dynamic
561         
562 2006-09-30  Havoc Pennington  <hp@redhat.com>
563
564         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
565         (internal_bus_get): fix screwy code formatting. whoever committed
566         that was not paying attention!
567
568 2006-09-30  Havoc Pennington  <hp@redhat.com>
569
570         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
571         reflect addition of interfaces.
572
573         * doc/dbus-specification.xml: describe a new
574         org.freedesktop.DBus.Peer.GetMachineId method
575
576         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
577         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
578         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
579         at end of skip_white
580         (_dbus_string_chop_white): new function
581
582         * bus/connection.c (bus_connections_setup_connection): call
583         dbus_connection_set_route_peer_messages.
584
585         * dbus/dbus-connection.c
586         (_dbus_connection_peer_filter_unlocked_no_update): modify to
587         support a GetMachineId method.
588
589         Also, support a new flag to let the bus pass peer methods through
590         to apps on the bus, which can be set with
591         dbus_connection_set_route_peer_messages.
592
593         Finally, handle and return an error for anything unknown on the
594         Peer interface, which will allow us to extend the Peer interface
595         in the future without fear that we're now intercepting something
596         apps were wanting to see.
597         
598         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
599         dbus/dbus-uuidgen.c
600
601         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
602         binary here, since most of the code is already in libdbus
603
604         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
605         uuid from the system config file
606
607         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
608         (_dbus_read_uuid_file_without_creating) 
609         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
610         uuid-related functions, partly factored out from dbus-server.c
611
612         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
613         DBUS_ERROR_FILE_EXISTS instead of EEXIST
614
615         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
616
617         * tools/dbus-cleanup-sockets.1: explain what the point of this
618         thing is a bit more
619
620         * autogen.sh (run_configure): add --config-cache to default
621         configure args
622
623         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
624         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
625
626         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
627         don't try to save address, fixes crash in make check
628         
629 2006-09-30  Thiago Macieira  <thiago@kde.org>
630
631         * configure.in: add DBUS_BINDIR as a #define to C source code.
632
633         * tools/dbus-launch.c
634         * tools/dbus-launch.h
635         * tools/dbus-launch-x11.c:
636         * tools/dbus-launch.1: Add the --autolaunch option to
637         dbus-launch, which makes it scan for an existing session
638         started with --autolaunch. With that option, it also creates
639         an X11 window and saves the bus address and PID to it.
640
641         * dbus/dbus-sysdeps.h:
642         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
643         a function that runs "dbus-launch --autolaunch" to retrieve
644         the running D-Bus session address (or start one if none was running)
645
646         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
647         address protocol, which tries to get the running session from
648         dbus-launch.
649
650         * dbus/dbus-bus.c:
651         * dbus/dbus-internals.h: Make "autolaunch:" be the default
652         D-Bus session bus address.
653
654         * dbus/dbus-connection.c: Fix horrible typo in error message.
655
656 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
657
658         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
659
660 2006-09-17  Havoc Pennington  <hp@redhat.com>
661
662         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
663         fix so that if unix_user_function is set on windows, we still
664         do the default check that the auth identity matches the bus identity
665
666 2006-09-16  Havoc Pennington  <hp@redhat.com>
667
668         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
669         to _dbus_transport_open_platform_specific,
670         _dbus_transport_open_socket,
671         and _dbus_transport_open_debug_pipe
672
673         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
674
675 2006-09-16  Havoc Pennington  <hp@redhat.com>
676
677         Attempt auditing public API to remove all cases where a Unix
678         function returns weird emulated goo to Windows. This probably 
679         breaks the bus daemon on Windows, to fix it again we may 
680         need to stop processing unix-specific config options on Windows,
681         and may need to add Windows-specific public API or config options.
682         
683         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
684         to reflect added interfaces; should not break soname.
685         
686         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
687         not invoke unix user function on Windows. Kind of a hacky fix, but 
688         we don't want a "unix uid" leaking out on Windows.
689
690         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
691         to get the socket fd on Windows or UNIX
692         (dbus_connection_get_unix_fd): make this always fail on Windows
693
694 2006-09-16  Havoc Pennington  <hp@redhat.com>
695
696         * dbus/dbus-server.c (dbus_server_listen): change how this works
697         to be able to delegate to a set of handlers that can succeed,
698         fail, or choose not to handle. Allows us to have 
699         dbus_server_listen_platform_specific.
700
701         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
702         factor out the tcp socket stuff to be used on windows, leaving
703         unix domain socket only in dbus-socket-unix.c
704
705         * dbus/dbus-transport-socket.c
706         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
707         stuff to be used on windows, leaving unix domain socket only 
708         in dbus-transport-unix.c
709
710         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
711         temporary hack to be sure this fails on windows
712         (dbus_connection_get_unix_process_id): ditto
713
714 2006-09-16  Havoc Pennington  <hp@redhat.com>
715
716         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
717         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
718         _dbus_open_socket so the domain/type/protocol from system headers
719         are not required. This is kind of pointless though unless we move
720         part of _dbus_connect_tcp_socket into sysdeps.c instead of
721         sysdeps-unix.c, which would mean adding a wrapper around
722         bind/listen/etc.
723         Also, add DBusError to the socket-opening functions so they 
724         don't require use of errno.
725
726 2006-09-16  Havoc Pennington  <hp@redhat.com>
727
728         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
729         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
730
731         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
732         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
733         functions specifically for sockets only, and move generic 
734         read/write/open/close into unix-specific code.
735
736 2006-09-14  Havoc Pennington  <hp@redhat.com>
737
738         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
739         complaint about accessing revents when poll returns 0, from Julian Seward.
740
741 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
742
743         * Released 1.0 RC 1 (0.93) 
744
745 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
746
747         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
748         use _dbus_close instead of close
749
750 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
751
752         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
753         credentials.  Fixes "external" authentication under e.g. NetBSD
754         which does not support any other socket credentials mechanism.
755         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
756
757 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
758
759         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
760         dbus_threads_init and be used by the dbus mutex functions to
761         avoid deadlocks.
762
763         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
764
765 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
766
767         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
768         use threadsafe readdir_r instead of readdir
769
770 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
771
772         * dbus-threads.c (dbus_threads_init_default): New method for
773         initializing the internal thread implementation (Patch from
774         Alexander Larsson <alexl at redhat dot com>)
775
776 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
777
778         * remove a bunch of todo items from the 1.0 list
779
780 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
781
782         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
783         key not found
784
785 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
786
787         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
788         complex debugging code
789
790         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
791         between the test suite ifdefs
792         (_dbus_verbose_bytes): return if verbosity is not enabled 
793
794 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
795
796         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
797         remove DBusMark
798
799 2006-09-10  Havoc Pennington  <hp@redhat.com>
800
801        patch mostly by Peter Kümmel, bug #8211
802         
803         * dbus/dbus-sysdeps-unix.c: new file, which splits out
804         unix-specific stuff in dbus-sysdeps.c
805
806         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
807         and move unix-specific stuff to dbus-sysdeps-unix.c
808
809         * configure.in: check HAVE_ERRNO_H
810         
811 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
812
813         * bus/test-main.c (main): Initialize threading during tests
814
815         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
816         Unlock connection on error
817         (generate_local_error_message): static method for generating
818         an error message when we don't have a message to reply to
819         (_dbus_connection_block_pending_call): Send a disconnect error
820         instead of just a timeout (NULL) when the bus gets disconnected
821         while blocking for a reply.
822         
823 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
824
825         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
826         filters (Patch from Kimmo Hämäläinen 
827         <kimmo dot hamalainen at nokia dot com>)
828
829 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
830
831         * dbus/dbus-connection-internal.h: Add prototype for 
832         _dbus_connection_test_get_locks to remove warning
833
834 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
835
836         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
837         close child_err_report_pipe[WRITE_END] on exec (Patch from 
838         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
839
840 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
841
842         * Clean up close calls to use _dbus_close (Patch from 
843         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
844
845 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
846
847         * doc/TODO:
848         - Remove pending call locking todo item
849         - dbus_connection_open now holds hard ref.  Remove todo item
850         - do proper locking on _dbus_bus_check_connection_and_unref
851           and handle DBUS_BUS_STARTER. Remove todo item
852         - Warn on closing of a shared connection.  Remove todo item
853
854         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
855         dbus/dbus-connection.c: Use the dbus_connection_close_internal
856         so we don't get the warning when closing shared connections
857
858         * test/test-service.c, test/test-shell-service.c: Applications
859         don't close shared connections themselves so we unref instead of
860         close
861
862         * test/test-utils.c (test_connection_shutdown): Close the connection
863
864         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
865         _dbus_bus_check_connection_and_unref_unlocked since we only call this
866         method on a locked connection.  
867         Make sure we call _dbus_connection_unref_unlocked instead of 
868         dbus_connection_unref also.
869         Handle DBUS_BUS_STARTER correctly
870
871         * dbus/dbus-connection.c (connection_record_shared_unlocked):
872         Mark as shared and hard ref the connection
873         (connection_forget_shared_unlocked): Remove the hard ref from the 
874         connection
875         (_dbus_connection_close_internal_and_unlock):  New internal function
876         which takes a locked connection and unlocks it after closing it
877         (_dbus_connection_close_internal): New internal function which acts
878         like the origonal dbus_connection_close method by grabbing a connection
879         lock and calling _dbus_connection_close_internal_and_unlock
880         (dbus_connection_close): Public close method, warns when the app
881         trys to close a shared connection
882
883 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
884
885         * bus/driver.c:
886         (bus_driver_generate_introspect_string): New method for populating
887         a DBusString with the introspect data
888         (bus_driver_handle_introspect): Move introspect generation code to 
889         bus_driver_generate_introspect_string
890
891         * bus/main.c:
892         (introspect): New function which prints out the intropect data and
893         exits
894         (main): Add a --introspect switch
895
896 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
897
898         * doc/TODO: Removed dtd publishing item.  
899         It seems the dtd has already been added at
900         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
901
902 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
903
904         * doc/TODO, various source files: Audited todo's and FIXME's and
905         prepended the ones we should be looking at with 1.0.  Those
906         prepended with 1.0? need clerification or might not be needed
907         for 1.0
908
909 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
910
911         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
912         NULL in the public API (Patch from Kimmo Hämäläinen 
913         <kimmo dot hamalainen at nokia dot com>)
914
915 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
916
917         * configure.in: Fix for OS-X compile time endian issues (patch from
918         Benjamin Reed <ranger at befunk dot com>)
919
920 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
921
922         * configure.in: Check for no-common compiler flag (OS-X fix from
923         Benjamin Reed <ranger at befunk dot com>)
924
925 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
926
927         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
928         <fcrozat at mandriva dot com>)
929
930 2006-08-29  Havoc Pennington  <hp@redhat.com>
931
932         * test/test-service.c (path_message_func): fix lack of return value
933
934         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
935         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
936         any more sense than on anything else in this file.
937         (_dbus_get_tmpdir): add const to return value, and keep the
938         results of the various getenv around in a static variable.
939
940 2006-08-29  Havoc Pennington  <hp@redhat.com>
941
942         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
943         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
944
945 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
946
947         * test/Makefile.am: change find to use syntax that works with non
948         gnu versions of find
949
950 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
951
952         * dbus/dbus-transport.c: fix invalid deref when checking if
953         a vtable method exists (Patch from Christian Ehrlicher 
954         <ch dot ehrlicher at gmx dot de>)
955
956 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
957
958         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
959         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
960         to build with builddir != srcdir (Taken from a patch by Bernard Leak
961         <bernard at brenda-arkle dot demon dot co dot uk>)
962
963 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
964
965         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
966         default case
967
968 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
969
970         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
971         it works on any system providing this interface, not only FreeBSD.
972         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
973
974 2006-08-20  Havoc Pennington  <hp@redhat.com>
975
976         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
977         the docs
978
979 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
980
981         * Released 0.92 
982
983 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
984
985         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
986         to reflect the init late change
987
988         * bus/bus.c (bus_context_new): Check user before we fork so we can
989         print out an error message a user will be able to see
990
991 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
992
993         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
994
995         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
996         Add two more global locks for use on windows platforms.  These are
997         unused on non-windows platforms but are not ifdefed out to avoid
998         potential bugs (i.e. the few bytes lost does not warrent the extra
999         maintanence and complexity that having seperate sets of locks would
1000         cause)
1001
1002 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1003
1004         * bus/services.c (bus_registry_acquire_service): Return an error
1005         when an application tries to register the org.freedesktop.DBus Bus Name
1006
1007         * bus/services.c (bus_registry_release_service): Return an error
1008         when an application tries to release the org.freedesktop.DBus Bus Name
1009
1010 2006-08-17  Alp Toker  <alp@atoker.com>
1011
1012         * doc/dbus-specification.xml: Fix some minor typos.
1013
1014 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1015
1016         * configure.in: use $with_init_scripts instead of $operating_system
1017         to determine where to store the pid since the init scripts manipulate 
1018         the pid file (patch from Marcelo Ricardo Leitner 
1019         <marcelo dot leitner at terra dot com dot br>.  
1020
1021 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1022
1023         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1024         static DBusList *uninitialized_condvar_list to support new late 
1025         initialization threading model.  In this model threads can be initialized
1026         even after the D-Bus API has been used but still needs to be initialized 
1027         before the second thread has been started.  Mutexes and condvar addresses
1028         are stored in the two static lists and are replaced with actuall locks
1029         when threads are initalized.
1030         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1031         the location into the static list
1032         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1033         from the static list and freeing the mutex
1034         (_dbus_condvar_new_at_location): New method for creating a conditional 
1035         variable and placing the location into the static list
1036         (_dbus_condvar_free_at_location): New method for removing a conditional
1037         variable location from the static list and freeing the conditional variable 
1038         (init_uninitialized_locks): Atomic method which goes through the static 
1039         lists of mutex and condvar location and updates them with actuall locks
1040         (init_global_locks): changed to init_locks
1041         
1042         * dbus/dbus-connection.c:
1043         (_dbus_connection_test_get_locks): New method for tests to check connections
1044         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1045         condvar API
1046         (dbus_connection_allocate_data_slot): Pass in the global lock address
1047         to _dbus_data_slot_allocator_alloc
1048
1049         * dbus/dbus-dataslot.c:
1050         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1051         instead of the mutex itself
1052
1053         * dbus/dbus-message.c:
1054         (dbus_message_allocate_data_slot): Pass in the global lock address
1055         to _dbus_data_slot_allocator_alloc
1056
1057         * dbus/dbus-pending-call.c:
1058         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1059         to _dbus_data_slot_allocator_alloc
1060
1061         * dbus/dbus-server.c:
1062         (_dbus_server_init_base): Use the new at_location mutex API
1063         (dbus_server_allocate_data_slot): Pass in the global lock address
1064         to _dbus_data_slot_allocator_alloc
1065
1066         * test/name-test/test-threads-init.c: New test case for late thread
1067         initialization
1068
1069 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1070
1071         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1072         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1073         causes compile problems when asserts are turned off
1074         Keeping _dbus_warn for printing out the message so even if
1075         asserts are turned off the user gets the messages that something is 
1076         wrong 
1077
1078 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1079
1080         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1081
1082         * bus/services.c (bus_service_list_queued_owners):
1083         Add a pointer cast to fix compiler warning
1084
1085         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1086         return a NULL instead of FALSE since the return type
1087         is not expecting a boolean
1088
1089         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1090         Remove unused variable
1091
1092         * dbus/dbus-marshal-recursive-util.c (node_new):
1093         return a NULL instead of FALSE since the return type
1094         is not expecting a boolean
1095
1096         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1097         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1098         because we are expecting a pointer not a boolean
1099
1100         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1101         add void as the parameter so some compilers
1102         don't complain
1103
1104         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1105           _dbus_transport_new_for_tcp_socket):
1106         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1107         because we are expecting a pointer not a boolean
1108
1109         * test/shell-test.c (test_command_line):
1110         cast the second argument to _dbus_list_append to avoid compiler
1111         warnings
1112
1113         * test/test-names.c (main): remove unused variable
1114
1115         * test/test-service.c (check_hello_from_self_reply):
1116         Initialize echo_message and echo_reply to NULL
1117         
1118         * test/test-shell-service.c (handle_echo):
1119         Remove unused variable and cast the third parameter passed to
1120         dbus_connection_get_object_path_data to avoid compiler warrnings
1121
1122         * test/name-test/test-names.c (clear_message_queue):
1123         Remove unused function
1124
1125         * test/name-test/test-pending-call-dispatch.c:
1126         Fix format string in printf
1127
1128
1129 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1130
1131         * dbus/dbus-bus.c:
1132         * test/name-test/test-names.c:
1133         Remove test method dbus_bus_connection_get_unique_name because 
1134         we already have public method dbus_bus_get_unique_name that 
1135         does the exact same thing
1136
1137 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1138
1139         * dbus/dbus-signature.c:
1140         fix typos in Julio's previous patch which cause make check to fail
1141
1142 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1143
1144         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1145         In any case it was wrong since this is a test checking to see if
1146         address parsing is correct.  There was no need to get the true
1147         tmp directory.  
1148
1149 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1150
1151         * dbus/dbus-macros.h: Revert the addition of stddef.h
1152         as we should not be adding it to library headers 
1153
1154 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1155
1156         * dbus/dbus-signature.c:
1157         Fix the unit tests so that they work if assertions are not enabled.
1158         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1159
1160 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1161
1162         * tools/run-with-tmp-session-bus.sh:
1163         * test/name-test/run-test.sh:
1164         Remove bashisms (patch from Julio M. Merino Vidal
1165         <jmmv at NetBSD dot org>)
1166
1167 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1168
1169         * configure.in: add a version (>= 2.6.0) check for libxml2
1170
1171 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1172
1173         * configure.in: make sure the compiler supports -Wfloat-equal
1174         
1175         * bus/dir-watch-dnotify.c: move functional code after 
1176         variable declerations (C99 fix)  (patches from Jens Granseuer
1177         <jensgr at gmx dot net>
1178
1179 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1180
1181         * dbus/dbus-macros.h:
1182         add #include <stddef.h> so that Sun compilers don't complain about
1183         the defining NULL
1184
1185 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1186
1187         * dbus/dbus-sysdeps.c:
1188         * dbus/dbus-address.c:
1189         * bus/activation.c:
1190         * test/shell-test.c:
1191         don't hardcode tmp directory (patch from Dave Meikle 
1192         <dmk at davemeikle dot co dot uk>)
1193
1194 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1195
1196         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1197         Change an assert to a detailed warning and abort.  
1198         When allocator->lock != mutex it indicates that the user has failed
1199         to initalize threads before using the D-Bus library.  This warning
1200         helps the user identify the issue and fix their app.
1201
1202 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1203
1204         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1205         with cleanups of bugs found from Coverity reports:
1206
1207         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1208         close the file on error to avoid a leak
1209
1210         * bus/expirelist.c (bus_expire_list_test):
1211         Check for NULL on dbus_new0
1212
1213         * bus/activation.c (update_directory):
1214         remove dead code
1215
1216         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1217         Fix some leaks
1218
1219         * bus/bus.c (process_config_every_time):
1220         Fixed a leak
1221
1222         * bus/desktop-file.c (parse_key_value):
1223         Fixed leak
1224
1225         * bus/selinux.c (bus_selinux_id_table_insert):
1226         Fixed leak
1227
1228 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1229
1230         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1231         remove dead code
1232
1233 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1234
1235         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1236         #!/bin/bash
1237
1238 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1239
1240         * Doxyfile.in: fix the INPUT line so we can generate docs 
1241         when sourcedir != builddir (patch from Cygwin Ports maintainer
1242         <yselkowitz at users dot sourceforge dot net>
1243
1244 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1245
1246         * dbus/dbus-sysdeps.h:
1247         * dbus/dbus-sysdeps.c: 
1248         * dbus/dbus-string.c: 
1249         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1250         GLib's function which does the same thing
1251
1252         * configure.in:
1253         * bus/Makefile.am:
1254         * bus/dir-watch-default.c:
1255         * bus/dir-watch-dnotify.c:
1256         * bus/dir-watch-kqueue.c:
1257         Add kqueue directory watching for freebsd and split the directory
1258         watching code into seperate files per method/arch
1259         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1260
1261 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1262
1263         * configure.in:
1264         * tools/Makefile.am:
1265         * tools/dbus-launch.c:
1266         * bus/Makefile.am:
1267         allow --with-dbus-daemondir switch to be used to make the
1268         daemon install to a seperate bindir like /usr/libexec
1269         (patch from Brian Cameron <brian dot cameron at sun dot com)
1270
1271 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1272
1273         * bus/Makefile.am (install-data-hook): removed the slash after 
1274         $(DESTDIR) so we don't get the double slash which does not work
1275         in windows (patch from Andras Porjesz 
1276         <andras dot porjesz at siemens dot com>)
1277
1278 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1279
1280         * dbus/dbus-sysdeps.h:
1281         * dbus/dbus-sysdeps.c: 
1282           add _dbus_printf_length (patch from Peter Kümmel 
1283           <syntheticpp at gmx dot net>)
1284
1285 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1286
1287         * dbus/dbus-internals.c: unistd.h is not used 
1288         (_dbus_verbose_real): only enable verbose printing 
1289         if DBUS_VERBOSE environment var is set to '1'
1290         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1291
1292 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1293
1294         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1295         so we still compile on older gcc (patch from Frederic Peters 
1296         <fpeters at 0d dot be>
1297
1298 2006-08-04  Havoc Pennington  <hp@redhat.com>
1299
1300         * configure.in: add -Wdeclaration-after-statement
1301
1302         * dbus/dbus-connection.c: change all the pending call stuff to
1303         reflect the fact that pending call operations use the connection
1304         lock
1305
1306         * dbus/dbus-pending-call.c: add locking here
1307
1308         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1309         field const consistent with how message field is done
1310
1311 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1312
1313         * s/D-BUS/D-Bus/g
1314
1315 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1316
1317         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1318         <in7y118 at public.uni-hamburg dot de> - fix invalid
1319         read/write reported by valgrind
1320
1321 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1322
1323         * Released 0.91
1324
1325 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1326
1327         * dbus/dbus-connection.c:
1328         (_dbus_connection_attach_pending_call_unlocked):
1329         (connection_timeout_and_complete_all_pending_calls_unlocked):
1330         Make sure we set timeout_added on pending calls to FALSE when
1331         we remove the timeout from the connection
1332
1333 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1334
1335         * Removed some extra bindings stuff lingering around (thanks timo)
1336         * dbus-pendingcall.c (_dbus_pending_call_new): 
1337         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1338         when we tried to take a lock on an already locked connection
1339
1340 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1341
1342         * Released 0.90
1343
1344 2006-07-17  Havoc Pennington  <hp@redhat.com>
1345
1346         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1347         ints, reported by Owen Taylor
1348
1349 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1350
1351         * doc/TODO:
1352         * dbus/dbus-bus.c:
1353         * dbus-errors.c:
1354         * dbus/dbus-marshal-validate.c:
1355           Removed TODO items which were fixed or are no longer relevent
1356
1357 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1358
1359         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1360         Remove stray files from the stripped bindings
1361
1362 2006-07-16  Havoc Pennington  <hp@redhat.com>
1363
1364         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1365         Improve the error message on reply timeout
1366
1367 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1368
1369         * Remove all bindings
1370
1371 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1372
1373         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1374         and set pending_reply out arg to NULL is connection is disconnected
1375         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1376         static method for cleaning up pending calls on disconnect
1377         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1378         calls queued timeouts on disconnect 
1379
1380          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1381         Remove 
1382
1383 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1384
1385         * bus/activation.[ch] (bus_activation_list_services): new function to 
1386         get the list of services that can be activated
1387
1388         * bus/dispatch.c: test coverage for the new bus method
1389         ListActivatableNames
1390
1391         * bus/driver.c: new bus method ListActivatableNames to get the list of
1392         services that can be activated
1393
1394         * doc/dbus-specification.xml: ListActivatableNames method documentation
1395
1396 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1397         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1398         source files
1399
1400 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1401         * dbus/dbus-message-factory.c:
1402         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1403
1404 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1405         * dbus/dbus-connection-internal.h:
1406         * dbus/dbus-connection.c:
1407         * file dbus/dbus-pending-call.c:
1408         * dbus/dbus-pending-call.h:
1409         Make DBusPendingCall an opaque type even to D-Bus internals
1410
1411 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1412
1413         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1414         connection_close
1415
1416         * dbus/dbus-connection.c: include dbus-bus.h
1417         (_dbus_connection_read_write_dispatch): make static
1418
1419 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1420
1421         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1422         function
1423         (dbus_connection_dispatch): On disconnect unref any shared connections
1424
1425         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1426         for cleaning up shared connections on disconnect
1427         (internal_bus_get): get a hard refrence to shared connections when
1428         they are created
1429         
1430         * doc/TODO: Remove items which are no longer relevent or have been fixed
1431         Split 1.0 todo items with a 0.90 freeze todo list
1432  
1433 2006-06-14  Ross Burton  <ross@openedhand.com>
1434
1435         * glib/dbus-gobject.c:
1436         Free a leaking GArray (surely not!) in dbus_g_method_return.
1437
1438 2006-06-14  Ross Burton  <ross@openedhand.com>
1439
1440         * tools/Makefile.am:
1441         * tools/dbus-monitor.c:
1442         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1443         Habacker).
1444         
1445 2006-06-14  Ross Burton  <ross@openedhand.com>
1446
1447         * tools/dbus-print-message.c:
1448         Also print the object path when outputting signals or method calls.
1449
1450 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1451
1452         * qt/src/Makefile.am: install the qdbus.h header.
1453         This allows people to actually use the installed code.
1454
1455 2006-06-12  Ross Burton  <ross@openedhand.com>
1456
1457         * glib/dbus-gproxy.c:
1458         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1459
1460 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1461
1462         * Released 0.62
1463
1464 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1465
1466         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1467         break pedantic builds. Closes bug 6043 (patch approved by
1468         Havoc back in February).
1469
1470 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1471
1472         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1473         that took a QDBusMessage parameter.
1474         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1475         * qt/tools/dbus.cpp: Don't use automatic call because we might
1476         be calling an async method: request a reply.
1477
1478 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1479
1480         * test/qt/*: Update the testcases, including testing the new
1481         functionality of sending null QByteArray and QString over the
1482         bus. Add new headertest test and restore the old
1483         qdbusxmlparser test.
1484
1485 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1486
1487         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1488         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1489
1490         * qt/examples/Makefile.am:
1491         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1492         form.
1493
1494         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1495         QByteArray() (nulls) over the bus.
1496         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1497         the one that has the signature suffix stripped.
1498         * qt/src/qdbusreply.h: Make some methods const.
1499
1500 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1501
1502         Patch from Timo Hoenig <thoenig@suse.de>.
1503
1504         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1505         required during build to EXTRA_DIST.
1506         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1507         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1508         * configure.in: Fix "make dist", take care that the Makefile for
1509         qt/dbus is being generated.
1510
1511 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1512
1513         * bus/bus.c: Fix eavesdropping on method calls
1514
1515 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1516
1517         * configure.in:
1518         * dbus/dbus-userdb-util.c:
1519         Add Solaris console owner patch from Artem Kachitchkine
1520
1521 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1522
1523         * qt/Makfile.am:
1524         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1525         reorganisation. Thanks to Timo Hoenig for pointing this out.
1526
1527 2006-06-06  Robert McQueen  <robot101@debian.org>
1528
1529         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1530           call to dbus_g_type_get_struct.
1531
1532 2006-06-06  Robert McQueen  <robot101@debian.org>
1533
1534         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1535           pointers were put into a GPtrArray-based specialised collection, and
1536           then freed along with the array. GValues which you add into
1537           collections or maps which have the NOCOPY flag set are assumed to not
1538           belong to the caller, so rather than the existing pointer-stealing
1539           semantics, they are copied instead. Given that the main consumers of
1540           this abstraction are the bindings themselves, I don't think this is
1541           too bad, but others should watch their choice of take vs set_static.
1542
1543 2006-06-06  Robert McQueen  <robot101@debian.org>
1544
1545         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1546           of g_slist_prepend not being used. Fixed copying of slist-based
1547           specialised collections, then wrote a test case and found that it was
1548           all broken. Went on to fix iterating and appending too. Good thing
1549           nobody uses this code yet.
1550
1551 2006-06-06  Robert McQueen  <robot101@debian.org>
1552
1553         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1554           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1555           are discarded without unsetting, so it makes no difference whether
1556           we take or set_static). Remove cases for G_TYPE_POINTER because
1557           there really is nothing useful we can do with them in our
1558           specialised types - we *need* boxed copy/free functions at the very
1559           least.
1560
1561 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1562
1563         * qt/dbus: Add directory. I had forgotten to add this
1564         yesterday after the move...
1565
1566         * qt/examples/Makefile.am:
1567         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1568
1569         * qt/tools/Makefile.am:
1570         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1571         Added feature to get and set properties.
1572         Added validation of service, object path and interface names.
1573
1574         * qt/tools/dbusidl2cpp.cpp: Two new features:
1575         1) Allow specifying both the header and the source file names,
1576         by separating them with a colon.
1577         2) Don't write an interface output if the -p switch wasn't
1578         given, but the -a was.
1579
1580         * qt/src/*: Fix usage of Iterators and ConstIterators.
1581         Fix shadowing of variables by other variables (-Wshadow).
1582         Fix keyword-cleanliness in headers.
1583         Fix ASCII-cast (QLatin1String, QLatin1Char).
1584         Fix validation of member names.
1585         Add extra checking of introspection data during XML parsing.
1586         Various bug fixes.
1587
1588 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1589
1590         * dbus/Makefile.am:
1591         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1592         qt/dbus/qdbus.h now.
1593
1594 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1595
1596         * configure.in: Make --disable-qt actually do
1597           something. Patch inspired by Zack Rusin.
1598
1599 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1600
1601         * qt/: Update to Subversion r548032.
1602         This includes a big reorganisation of the files inside the
1603         subdir.
1604
1605 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1606
1607         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1608         clear:  
1609         "Failed to connect to socket <host>:<port> <error>" instead of
1610         "Failed to connect to socket <host>: <error>:<port>"
1611
1612         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1613         for a tcp transport. 
1614
1615 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1616
1617         * qt/*: Update the QtDBus bindings up to revision 546310 in
1618         Subversion.
1619         This adds the dbuscpp2xml tool, that parses a C++ header and
1620         outputs a D-BUS Introspection XML.
1621
1622 2006-05-21  Havoc Pennington  <hp@redhat.com>
1623
1624         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1625         is not NULL when it shouldn't be. Also a couple of possible fixes
1626         for #4637 though I don't understand why the bug happens, to be
1627         honest... also the object constructor has an assert name != NULL
1628         and the name is only currently NULL for peer-to-peer proxies that 
1629         I don't think anyone uses? So it should be asserting.
1630         Anyway, for now at least see if we get an earlier assertion failure.
1631
1632         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1633         apparently broken code to be sure the tests fail and someone 
1634         will fix them...
1635
1636 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1637
1638         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1639         and arrays when they had a single element: has_next returns
1640         false, even before you read the element. So, instead, check
1641         the array length.
1642
1643 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1644
1645         * qt/qdbusmessage.cpp:
1646         * qt/qdbustypehelper_p.h:
1647         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1648         the list is a const-reference
1649
1650 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1651
1652         * Adding old doc patch that never got applied
1653         
1654         * dbus/bus.c (dbus_bus_add_match): Add documentation
1655
1656         * doc/dbus-specification.xml: Add documentation for the match rules
1657           and the AddMatch and RemoveMatch methods
1658
1659 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1660
1661         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1662         call (r535506)
1663
1664         * qt/dbusidl2cpp.cpp:
1665         * qt/qdbusabstractadaptor.cpp:
1666         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1667         sibling of the QDBusAbstractAdaptor objects instead of the
1668         parent. (r535848)
1669
1670         * qt/dbusidl2cpp.cpp:
1671         * qt/qdbusabstractinterface.cpp:
1672         * qt/qdbusabstractinterface.h:
1673         * qt/qdbusabstractinterface_p.h:
1674         * qt/qdbusinterface.cpp: Make properties in interfaces
1675         actually work. The code that was generated would not compile,
1676         due to moc calls to functions that did not exist. They now
1677         shall. (r536571)
1678
1679 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1680
1681         * Makefile.am:
1682         * configure.in:
1683         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1684         Thanks to Brad Hards for providing the patch
1685
1686 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1687
1688         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1689         call. (r535506)
1690
1691 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1692
1693         * qt/examples/dbus.cpp: Enhance error messages and use
1694         QDBusInterfacePtr.
1695
1696 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1697
1698         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1699         and disable the copy operators. (r533772, r534746)
1700
1701         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1702
1703         * qt/qdbusabstractinterface.cpp:
1704         * qt/qdbusabstractinterface.h: Change the default call mode to
1705         not use the event loop. Add convenience call() methods that
1706         take a CallMode parameter. (r534042)
1707
1708         * qt/qdbusconnection.h: Change the default call mode to not
1709         use the event loop. (r534042)
1710
1711         * qt/qdbusinterface.cpp:
1712         * qt/qdbusinterface.h: Add a method to tell us if the
1713         interface is valid (since we don't return a null pointer
1714         anymore) (r534099)
1715
1716         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1717         (r534101)
1718
1719         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1720         function in two so taht we get the chance to introspect
1721         without having a QDBusMessage (r534102)
1722
1723         * qt/qdbusbus.h:
1724         * qt/qdbusconnection.cpp:
1725         * qt/qdbusconnection_p.h:
1726         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1727         avoid a round-trip to the server when attempting to introspect
1728         one of our own objects. Also make sure the filter functions
1729         match the empty interface as well. (r534108)
1730         Don't keep the connection names. Instead, trust the unique
1731         connection name (r534111)
1732         Remove event loop usage (r534112)
1733
1734 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1735
1736         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1737         Brad Hards.
1738
1739 2006-04-28  Robert McQueen  <robot101@debian.org>
1740
1741         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1742         any order, making it easier for people who inherit from this
1743         object.
1744
1745 2006-04-28  Robert McQueen  <robot101@debian.org>
1746
1747         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1748         of memory from within pointer arrays and lists. Fixes bug #6300.
1749
1750 2006-04-28  Robert McQueen  <robot101@debian.org>
1751
1752         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1753         generating struct signatures. Fixes bug #6083.
1754
1755 2006-04-28  Robert McQueen  <robot101@debian.org>
1756
1757         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1758         to qdbusconnection_p.moc.
1759
1760 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1761
1762         * README, INSTALL: Doc fixes
1763         Patch from Brad Hards <bradh at frogmouth.net>
1764
1765 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1766
1767         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1768         the dynamic meta object. No need to guess which interface to
1769         call.
1770
1771 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1772
1773         * qt/qdbusconnection_p.h:
1774         * qt/qdbusmetaobject.cpp:
1775         * qt/qdbusmetaobject_p.h:
1776         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1777         for the dynamic meta object. No need to guess which
1778         interface to call.
1779         * qt/qdbusabstractinterface_p.h:
1780         * qt/qdbusconnection.cpp:
1781         * qt/qdbusintegrator.cpp:
1782         * qt/qdbusinterface.cpp:
1783         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1784         Add a QDBusRef that looks and behaves like DCOPRef.
1785
1786 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1787
1788         * dbus/dbus-connection.c: Interfaces are optional in method
1789         calls, so don't give up if the interface parameter is NULL.
1790         Patch reviewed by Havoc Pennington.
1791
1792 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1793
1794         * qt/qdbusreply.h: Add default constructor and operator=
1795           (r532625)
1796         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1797           in public headers (r532952)
1798         * qt/qdbusabstractinterface.cpp:
1799         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1800           make it the default (r532951)
1801
1802 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1803
1804         * dbus/dbus-connection.c: Fix asserts
1805         Patch from Tim Moloney <t.moloney at verizon.net>
1806
1807 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1808
1809         * mono/Connection.cs, mono/Message.cs: Check Target type
1810         Patch from Aaron Bockover (abockover at novell.com)
1811
1812 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1813
1814         * INSTALL: fine-tune the requirements for the Qt4 binding.
1815
1816 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1817
1818         * tools/dbus-print-message.c: Added support for printing of all 
1819           remaining data types. Fixed logic for indentation of compound
1820           data types.
1821         
1822 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1823
1824         * INSTALL: fill out content of file providing DBus specific
1825           build installations, followed by generic Auto* INSTALL file
1826           content
1827         
1828 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1829
1830         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1831           Patch by Stefan Eilers. (r529537)
1832
1833 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1834
1835         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1836           contents (r528208)
1837
1838 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1839
1840         * qt/Makefile.am: fix the dependency for
1841           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1842           not in qdbusconnection.cpp.
1843           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1844           spotting this.
1845
1846 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1847
1848         * qt/examples/listnames.cpp:
1849         * qt/examples/Makefile.am: Three ways to list the names on the
1850           bus.
1851
1852 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1853
1854         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1855           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1856
1857 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1858
1859         Merge from Subversion:
1860         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1861           something that exists (r526315)
1862         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1863           slots/signals (r526316)
1864         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1865           also return an unknown-method error if the parameters don't
1866           match for org.freedesktop.DBus.Properties. (r526842)
1867         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1868         * qt/qdbusintegrator.cpp: Restore the proper order of
1869           delivery: don't make method returns be delivered on priority
1870           (r528150)
1871
1872 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1873
1874         * configure.in qt/Makefile.am: add qt/examples
1875         * qt/examples: Add QtDBus example programs:
1876           - hello: Hello, World
1877           - ping: Simple method-calling program
1878           - pong: Simple object-exporting program (not using adaptors)
1879           - complexping: Interactive method-calling program 
1880                 (also gets and sets properties).
1881           - complexpong: Sample program exporting methods, signals and
1882                 properties, using adaptors.
1883           - dbus: Simple implementation of a generic method-calling
1884                 program, similar to 'dbus-send', but with semantics
1885                 similar to 'dcop'.
1886           - chat: Simplistic chat program, implemented using signals
1887                 and the system bus. Looks like IRC.
1888
1889 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1890
1891         * configure.in: Detect QtGui (necessary for one of the
1892           example programs). Note: this increases the minimum required
1893           version of Qt to 4.1.3.
1894
1895 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1896
1897         * test/qt/*: Sync with KDE Subversion revision 523647.
1898         Update the testcases to the new API. Remove testcases for
1899         classes that are no longer public or have been removed.
1900
1901 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1902
1903         * qt/*: 
1904         * dbus/qdbus.h: Sync with KDE Subversion revision
1905         523647. Hopefully, this will be the last of the
1906         source-incompatible changes. Documentation has been improved;
1907         support for QList<basic-types> has been added; QDBusObject is
1908         gone; QDBus(Abstract)Interface is now a QObject with
1909         auto-generated meta-object; QDBusIntrospection is marked
1910         private, since QMetaObject can be used now; lots of bugfixes.
1911
1912 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1913
1914         Patch from Milosz Derezynski <internalerror at gmail.com>
1915         
1916         * configure.in:
1917         Output the service directory in the configure summary
1918
1919         * dbus-1.pc.in:
1920         Add session_bus_services_dir
1921
1922 2006-03-10  Ross Burton  <ross@openedhand.com>
1923
1924         * tools/dbus-print-message.c:
1925         Add support for object paths and signatures.
1926
1927 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1928
1929         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1930         config reload.
1931         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1932         information caches
1933         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1934         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1935         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1936         * dbus/dbus-userdb.h: Add function to flush all user/group information
1937         caches.
1938
1939 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1940
1941         * qt/dbusidl2cpp.cpp:
1942         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1943         for dcopidl2cpp, found in the KDE installations (or the more
1944         modern kalyptus): generate Qt4 C++ code for the input XML
1945         introspection. Currently no IDL parsing.
1946
1947 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1948
1949         * test/qt/*: Update the self-tests.
1950
1951 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1952
1953         * qt/*: 
1954         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
1955         represents the first feature-complete version of the Qt4
1956         bindings since I took ove maintainership.
1957
1958 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1959
1960         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
1961         dir. This is C++, so we can't use the DBus ones.
1962
1963 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1964
1965         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
1966         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
1967
1968 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
1969
1970         * dbus/dbus-connection.c: 
1971         (_dbus_connection_block_pending_call):
1972         Check to see if our data has already been read off the connection
1973         by another blocking pending call before we block in poll.
1974         (check_for_reply_and_update_dispatch_unlocked):
1975         Code taken from _dbus_connection_block_pending_call - checks for
1976         an already read reply and updates the dispatch if there is one.
1977
1978         * test/name-test/test-pending-call-dispatch.c:
1979         New test for making sure we don't get stuck polling a 
1980         dbus connection which has no data on the socket when
1981         blocking out of order on two or more pending calls.
1982
1983 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
1984
1985         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
1986         make/automake don't detect that we're talking about the same
1987         .lo file if I specify the full path to the source files.
1988
1989 2006-02-26  Havoc Pennington  <hp@redhat.com>
1990
1991         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
1992
1993         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
1994         session bus variable is unset, suggest "man dbus-launch" and "man
1995         dbus-daemon" to figure out how to fix the problem
1996
1997 2006-02-25  Havoc Pennington  <hp@redhat.com>
1998
1999         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2000         should make this thing use the new glib options parser
2001
2002 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2003
2004         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2005         .lo files taking moc sources.
2006
2007 2006-02-25  Havoc Pennington  <hp@redhat.com>
2008
2009         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2010         and install it as a public header
2011
2012 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2013
2014         * Released 0.61
2015
2016 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2017         
2018         * proxies.py: Fix the callchain
2019
2020 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2021         
2022         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2023
2024         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2025         dbus/dbus-sysdeps.c
2026
2027         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2028         call _dbus_group_info_free_allocated which causes infinite loop,
2029         correctly call _dbus_group_info_free
2030
2031 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2032
2033         * qt/qdbusinterface_p.h:
2034         * qt/qdbusinterface.cpp: Use the standard
2035         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2036         calls instead of creating one for us.
2037
2038         * qt/qdbusconnection_p.h:
2039         * qt/qdbusintegrator.cpp: Remove debugging code.
2040
2041         * qt/qdbusintegrator.cpp:
2042         * qt/qdbusmessage.cpp:
2043         * qt/qdbusmessage_p.h:
2044         * qt/qdbusmessage.h: Change the behaviour of automatic
2045         reply-sending: now a reply is always sent, unless the caller
2046         didn't request one or if the user slot has already sent one.
2047
2048 2006-02-16  Robert McQueen  <robot101@debian.org>
2049
2050         * configure.in: Patch from Debian packages by Sjoerd Simons
2051         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2052         arguments so it's possible to build both bindings in the
2053         same tree.
2054
2055         * qt/Makefile.am: Fix truncated value so that make dist works.
2056
2057 2006-02-16  Robert McQueen  <robot101@debian.org>
2058
2059         * acinclude.m4, configure.in: Patch from Brad Hards
2060         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2061         improving quoting, re-ordering a few checks, and a few other
2062         aesthetic tidy-ups.
2063
2064 2006-02-16  Robert McQueen  <robot101@debian.org>
2065
2066         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2067         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2068         assertion that the next element to read from the iter is fixed in
2069         size. This is not the case when you are at the end of the iter,
2070         because the next element type is INVALID.
2071
2072         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2073         a bogus assert which means that you may not initialise a 0-length
2074         string unless you provide a non-NULL pointer. This prevented
2075         you from marshalling messages containing zero-length arrays in
2076         some cases.
2077
2078         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2079         from Rob to correct bogus asserts when trying to demarshal an
2080         array and get_fixed_array got you 0 elements. Append nothing to
2081         the GArray in this case.
2082
2083         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2084         an empty array via the glib bindings. Without all of the above
2085         patches, this new test fails.
2086
2087 2006-02-16  Robert McQueen  <robot101@debian.org>
2088
2089         * glib/dbus-gmain.c: Make the previous commit compile.
2090
2091         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2092         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2093         specify sender_keyword="foo", path_keyword="bar" when adding
2094         a signal listener, so that you can bind to signals generically
2095         but still do something useful in your callback.
2096
2097         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2098         chars so that they're not cast to chars and made negative. Thanks
2099         to Jakub Stachowski for reporting this and testing the fix.
2100
2101 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2102
2103         * dbus/dbus-glib.h:
2104         * glib/dbus-gmain.h:
2105         (dbus_g_connection_open): new method for openning
2106         a connection to an arbitrary address in the glib bindings
2107
2108         * ChangeLog: checkin last entry which doesn't seem to be commited
2109
2110 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2111
2112         * tools/dbus-launch.c: Fixed sh syntax output
2113
2114 2006-02-13  Robert McQueen  <robot101@debian.org>
2115
2116         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2117         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2118         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2119         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2120         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2121         missing piece of the glib bindings jigsaw puzzle. This modifies
2122         the existing specialised types to have N type parameters (rather
2123         than the current 1 or 2 for arrays and dictionaries respectively).
2124         You can then use this to get a glib type to represent any arbitrary
2125         D-Bus struct type using dbus_g_type_get_struct. The only
2126         implementation of these types is with GValueArrays as before,
2127         but it's now possible to store these in arrays, emit them in
2128         signals, etc.
2129
2130 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2131
2132         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2133         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2134         <thiago.macieira at trolltech.com>
2135
2136 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2137
2138         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2139         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2140
2141 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2142
2143         * bus/connection.c (bus_connections_expect_reply): Make
2144         pending reply limit not common to all connections (Bug #5416)
2145         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2146
2147 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2148
2149         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2150
2151 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2152
2153         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2154         patch from Doug Goldstein <cardoe at gentoo.org>
2155
2156 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2157
2158         * mono/Arguments.cs: Fix a magic number in the mono bindings
2159         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2160
2161 2006-01-27  Robert McQueen  <robot101@debian.org>
2162
2163         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2164         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2165         when generating the client-side methods, instead of overloading
2166         CSymbol which broke everything horribly. My apologies.
2167
2168 2006-01-27  Robert McQueen  <robot101@debian.org>
2169
2170         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2171         by me and Rob Taylor to add a simple_free function to D-Bus map
2172         and collection types, which allows those types which can be freed
2173         with a GDestroyNotify (such as GHashTables and GArrays, but not
2174         GPtrArrays) to be stored as the values in hashtables.
2175
2176         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2177         Patch by Rob Taylor to add nested dicts to the glib tests to check
2178         the above code works, and appears not to leak when called repeatedly.
2179
2180 2006-01-27  Robert McQueen  <robot101@debian.org>
2181
2182         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2183         to free a D-Bus allocated string with dbus_free () instead of
2184         g_free ().
2185
2186 2006-01-27  Iain Holmes  <iain@openedhand.com>
2187
2188         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2189         method from being called multiple times.
2190
2191 2006-01-19  Robert McQueen  <robot101@debian.org>
2192
2193         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2194         <rob.taylor@collabora.co.uk> to add support for generating bindings
2195         to arrays that are represented as GPtrArrays rather than GArrays (ie
2196         size-variable things, such as strings, objects, structs, etc).
2197
2198 2006-01-05  Robert McQueen  <robot101@debian.org>
2199
2200         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2201         <ricardo.kekki@movial.fi> to make it possible to inherit from
2202         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2203         a private part, and moving the setting of the DBusGProxyManager into a
2204         connection property, allowing proper GObject construction.
2205
2206 2006-01-05  Robert McQueen  <robot101@debian.org>
2207
2208         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2209         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2210         annotations when generating glib client bindings.
2211
2212 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2213
2214         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2215
2216         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2217
2218 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2219
2220         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2221
2222 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2223
2224         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2225
2226 2005-12-19  Ross Burton  <ross@openedhand.com>
2227
2228         * doc/dbus-tutorial.xml:
2229         Document the Glib client-side bindings, and list all possible annotations.
2230
2231 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2232
2233         * dbus/bus.c (dbus_bus_release_name): Add documentation
2234
2235 2005-12-06  Robert McQueen  <robot101@debian.org>
2236
2237         * python/service.py: s/sucessful/successful/ so we're allocating to
2238         and reading from the same variable. Oops.
2239
2240 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2241
2242         * Released 0.60
2243
2244 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2245
2246         * test/qt/Makefile.am: build from srcdir
2247
2248         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2249         Note - this code is wrong and needs to be fixed by the Qt binding
2250         developers.  The flags should be treated as bitfields and not enums.
2251
2252         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2253
2254 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2255
2256         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2257           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2258           in production code
2259
2260 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2261
2262         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2263         method for getting messages off the bus in the absence of a
2264         mainloop.  This method is much like 
2265         dbus_connection_read_write_dispatch except it does not dispatch
2266         the messages to a registered filter function.  Instead it
2267         allows a developer to process messages by directly popping
2268         them off the bus.
2269
2270 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2271
2272         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2273         the parser to continue instead of returning error
2274         (bus_desktop_file_load): Do not free parser data when
2275         parse_section_start or parse_key_value fails because it was 
2276         already freed by parser_free (patch from Carlos Garcia Campos  
2277         <carlosgc at gnome.org>)
2278
2279 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2280
2281         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2282         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2283         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2284         test/test-segfault.c, test/test-utils.c,
2285         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2286         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2287         Various cleanup of dead code and compiler warnings (patch from
2288         Kjartan Maraas <kmaraas at gnome.org>) 
2289
2290 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2291
2292         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2293         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2294
2295 2005-11-27  Robert McQueen  <robot101@debian.org>
2296
2297         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2298         part of the preceding one. Oops. Merge patch by Johan Hedberg
2299         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2300         on big-endian platforms.
2301
2302         * test/python/test-client.py: Add some 16-bit integers to the test
2303         values.
2304
2305 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2306
2307         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2308         method return message for property getters
2309
2310 2005-11-27  Robert McQueen  <robot101@debian.org>
2311
2312         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2313         with type v of an instance of dbus.Variant(foo, type='x') caused
2314         it to be boxed twice before sending over the bus.
2315
2316         * python/dbus_bindings.pyx, python/service.py,
2317         test/python/test-client.py: Update the constants for the new
2318         request_name flags, and update comments/test cases now that queueing
2319         is the default action.
2320
2321 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2322
2323         * configure.in:
2324         - Change version to 0.60 for impending release
2325         - upped the sonames because of ABI and API breakage
2326
2327 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2328
2329         * configure.in: Add test/name-test/Makefile to the generated
2330         Makefile list
2331
2332         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2333         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2334         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2335         not to queue an ower if it can't be the primary owner
2336
2337         * bus/bus.h: Add new internal BusOwner struct
2338
2339         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2340         to bus_registry_ensure and don't set the prohibit_replacement flag
2341         since they are now set per BusOwner and not per name.
2342         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2343         that returns the list of connections in a name's connection queue
2344         
2345         * bus/services.c (struct BusService): remove prohibit_replacement field
2346         (struct BusOwner): new struct for keeping track of queued connections
2347         and their associated flags for the queue
2348         (struct BusRegistry): add a BusOwner memory pool
2349         (bus_registry_new): initialize the BusOwner memory pool
2350         (bus_registry_unref): free the BusOwner memory pool
2351         (_bus_service_find_owner_link): new internal method for
2352         searching the queue for a specific connection
2353         (bus_owner_set_flags): new method for adding setting the flags on a
2354         bus owner
2355         (bus_owner_new): new method that creates a BusOwner object from the
2356         pool and sets its flags
2357         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2358         (bus_registry_ensure): Add the flags parameter
2359         (bus_registry_acquire_service): Switch from using raw connections to
2360         using the BusOwner struct
2361         Add new state machine for dealing with the new set of flags
2362         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2363         cancel_ownership, free_ownership_cancel_data, 
2364         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2365         restore_ownership, free_ownership_restore_data, 
2366         add_restore_ownership_to_transaction): Switch to using BusOwner 
2367         instead of raw connections
2368         (bus_service_add_owner): Add flags parameter
2369         Switch to using BusOwner instead of raw connections
2370         Add state machine for dealing with the new set of flags
2371         (bus_service_swap_owner): Swaps the first and second owners in the
2372         queue.  Used to make sure proper signals are sent when a service looses 
2373         or gains primary ownership.  We never insert an owner at the top of the
2374         queue.  Instead we insert it in the second position and then swap.
2375         (bus_service_remove_owner): Remove the owner from the queue sending
2376         out the NameLost and NameOwnerChanged signals if the we were the 
2377         primary owner
2378         (bus_service_get_primary_owners_connection): New method that extracts
2379         the connection from the primary owner
2380         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2381         connection
2382         (bus_service_get_allow_replacement): Changed from the old 
2383         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2384         primary owner and returns if it can be replaced or not
2385         (bus_service_set_prohibit_replacement): removed
2386         (bus_service_has_owner): returns TRUE if and owner with
2387         the specified connection exists in the queue
2388         
2389         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2390         method that only compiles if tests are enabled.  Allows us to get the 
2391         unique name of a connection so we can check it against the queue when
2392         doing regression tests
2393
2394         * bus/activation.c (bus_activation_send_pending_auto_activate),
2395         bus/dispatch.c (bus_dispatch),  
2396         bus/driver.c (bus_driver_handle_get_service_owner, 
2397         bus_driver_handle_get_connection_unix_user, 
2398         bus_driver_handle_get_connection_unix_process_id,
2399         bus_driver_handle_get_connection_selinux_security_context),
2400         bus/signals.c (connection_is_primary_owner): 
2401         use bus_service_get_primary_owners_connection instead of
2402         bus_service_get_primary_owner
2403
2404         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2405         _dbus_listen_unix_socket): Calculate the length of the socket
2406         path and use that instead of using a fixed length which was
2407         causing socket names to contain many trailing Nul bytes.
2408
2409         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2410         (dbus_g_method_get_sender): New method for extracting the sender 
2411         from a DBusGMethodInvocation
2412         (dbus_g_method_return_get_reply): changed name to 
2413         dbus_g_method_get_reply
2414         (dbus_g_method_return_send_reply): changed name to
2415         dbus_g_method_send reply
2416
2417         * doc/dbus-specification.xml: New docs that describe how the new
2418         queueing system works and talks about the changes to the how
2419         we specify socket names
2420
2421         * glib/examples/example-service.c, 
2422         glib/examples/example-signal-emitter.c,
2423         glib/examples/statemachine/statemachine-server.c:
2424         Changed the RequestName flags to the new system
2425
2426         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2427         regression test suite for testing various states of the new
2428         queueing system
2429         
2430 2005-11-15  Robert McQueen  <robot101@debian.org>
2431
2432         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2433         Taylor to add two methods, dbus_g_method_return_get_reply and
2434         dbus_g_method_return_send_reply, to allow you to get the reply
2435         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2436         and send it. The GLib bindings can't marshal a return value of
2437         something like a(s) if the array is empty - ultimately they should be
2438         made to heed the signature of the out arguments as the Python bindings
2439         now can, but this is a workable interim solution which might have
2440         other applications.
2441
2442 2005-11-15  Robert McQueen  <robot101@debian.org>
2443
2444         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2445         method to org.freedesktop.DBus to release a bus name or give up
2446         waiting in the queue for it.
2447
2448         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2449         dbus_bus_release_name method to send the ReleaseName method calls.
2450         Add constants for the return values to dbus/dbus-shared.h.
2451
2452         * doc/dbus-specification.xml: Document the new ReleaseName method
2453         in the specification.
2454
2455         * python/dbus_bindings.pyx: Add a low-level python binding for the
2456         release name method.
2457
2458         * python/exceptions.py, python/service.py: Make freeing BusName
2459         objects release the name. Add a NameExistsException, and fix a
2460         bug with creating UnknownMethodException.
2461
2462         * test/python/test-client.py: Add tests for freeing BusName
2463         objects causing names to be released.
2464
2465 2005-11-14  Robert McQueen  <robot101@debian.org>
2466
2467         * python/service.py: Include the traceback in the error reply when we
2468         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2469
2470 2005-11-14  David Zeuthen  <davidz@redhat.com>
2471
2472         Patch from Timo Hoenig <thoenig@suse.de>.
2473
2474         * bus/bus.c: I've recently investigated why the automatic reload
2475         of configuration files does not work as expected.
2476
2477         Currently, reloading configuration files does only work when
2478         running dbus-daemon with --nodaemon.  If we are running as daemon
2479         we're hitting a dnotify bug once we fork the process.
2480
2481         We're initializing the dnotify fds before calling fork().  Once
2482         the child process forked it does still have the fds (and they
2483         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2484         getting SIGIO as changes are made to the configuration files.
2485
2486         The attached patch moves the initialization of the dnotify fds to
2487         process_config_postinit().  This is safe for all current code
2488         paths and solves the dnotify disfunction.  If we're running
2489         dbus-daemon as daemon the fds for dnotify are now being
2490         initialized after fork() for the child process.
2491
2492         * configure.in: The current configure.in check for dnotify probes
2493         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2494         match for 'xlinux', too. Additionally I have adapted the configure
2495         option's style to match with the others.
2496
2497 2005-11-14  Robert McQueen  <robot101@debian.org>
2498
2499         * python/decorators.py, python/service.py: Add a new argument to the
2500         dbus.service.method decorator called sender_keyword, which if set,
2501         specifies the name of an argument which will be provided the bus
2502         name of the method caller.
2503
2504         * test/python/test-client.py, test/python/test-service.py: Add a
2505         method and test to check the sender_keyword functionality.
2506
2507 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2508
2509         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2510         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2511         Simons <sjoerd at luon.net>)
2512
2513         * AUTHORS: Add Robert McQueen for his work on the Python
2514         Bindings and other parts of D-Bus
2515
2516 2005-11-07  Robert McQueen  <robot101@debian.org>
2517
2518         * python/decorators.py: Change emit_signal function to use the
2519         signature annotation of the signal when marhsalling the arguments from
2520         the service. Fix a bug where the code checking signature length
2521         against argument length referenced the wrong variable.
2522
2523         * python/introspect_parser.py: Avoid adding the type signature of
2524         signal arguments to any methods which occur after them in the
2525         introspection data (!) by making the parser a little more careful
2526         about its current state.
2527
2528         * python/service.py: Remove debug prints from last commit (again :D).
2529
2530         * test/python/test-client.py, test/python/test-service.py: Add test
2531         signals with signature decorators to test the strict marshalling code
2532         gives errors at the right time. Could do with checking the signals
2533         actually get emitted too, given that the test does nothing with
2534         signals at the moment...
2535
2536 2005-11-07  Robert McQueen  <robot101@debian.org>
2537
2538         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2539         instances to stop madness of creating new instances representing
2540         the same bus connection all the time, rendering any tracking of
2541         match rules and bus names quite meaningless. Caught a bug where
2542         the private argument to SessionBus() and friends was being passed
2543         in as use_default_mainloop by mistake. Still some problems with
2544         multiple dbus_binding.Connection instances representing the same
2545         low-level connection (eg when you use both SessionBus() and
2546         StarterBus() in same process), but it's a lot better now than it
2547         was.
2548
2549         * python/dbus_bindings.pyx: Add constants with the return values
2550         for bus_request_name().
2551
2552         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2553         and retrieve the same instances for the same name, so deletion can be
2554         done with refcounting. Also now throws some kind of error if you
2555         don't actually get the name you requested, unlike previously...
2556
2557         * test/python/test-client.py: Add tests for instance caching of buses
2558         and bus name objects.
2559
2560 2005-11-04  Robert McQueen  <robot101@debian.org>
2561
2562         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2563         marshalling of boolean values. Add some booleans to the values in
2564         the test client.
2565
2566         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2567         argument to the dbus.service.method decorator, which allows you to
2568         name arguments to take two callback functions for replying with
2569         return values or an exception.
2570
2571         * test/python/test-client.py, test/python/test-service.py: Add test
2572         case using asynchronous method reply functions, both return values and
2573         errors, and from within both the function itself and from a mainloop
2574         callback.
2575
2576         * python/decorators.py, python/service.py: Perform checking that the
2577         number of method/signal arguments matches the number of types in the
2578         signature at class loading time, not when you first introspect the
2579         class.
2580
2581         * python/service.py: Remove debug print left by the last commit.
2582
2583 2005-11-03  Robert McQueen  <robot101@debian.org>
2584
2585         * python/service.py: Heavy refactoring of method invocation, with
2586         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2587         in favour of a new _message_cb that uses seperate functions for
2588         looking up the method to call, marshalling the return values, and
2589         sending exceptions as errors, and is easier to follow as a
2590         consequence.  Fixes some corner cases about returning things that
2591         don't match your declared out_signature, allows exceptions to define
2592         _dbus_error_name and have it be sent over the bus as the error name,
2593         and paves the way for cool stuff like heeding the message no reply
2594         flag, asynchronous method implementations, informing the method of the
2595         sender, and including backtraces in the error messages.
2596
2597         * test/python/test-client.py: Catch and print exceptions thrown in the
2598         async callback tests, rather than passing them to the low-level
2599         bindings to be ignored in a noisy and frustrating manner.
2600
2601 2005-11-03  Robert McQueen  <robot101@debian.org>
2602
2603         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2604         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2605         tweak others to be consistent.
2606
2607         * test/python/test-client.py: Tweak output of testInheritance.
2608
2609 2005-10-29  Robert McQueen  <robot101@debian.org>
2610
2611         * python/service.py: Major changes to allow multiple inheritance
2612         from classes that define D-Bus interfaces:
2613         
2614          1. Create a new Interface class which is the parent class of
2615             Object, and make the ObjectType metaclass into InterfaceType.
2616         
2617          2. Patch written with Rob Taylor to replace use of method_vtable
2618             with code that walks the class's __MRO__ (method resolution order)
2619             to behave like Python does when invoking methods and allow
2620             overriding as you'd expect. Code is quite tricky because
2621             we have to find two methods, the one to invoke which has the
2622             right name and isn't decorated with the /wrong/ interface,
2623             and the one to pick up the signatures from which is decorated
2624             with the right interface.
2625         
2626             The same caveats apply as to normal multiple inheritance -
2627             this has undefined behaviour if you try and inherit from two
2628             classes that define a method with the same name but are
2629             decorated with different interfaces. You should decorate
2630             your overriding method with the interface you want.
2631         
2632          3. Replace grungy introspection XML generation code in the metaclass
2633             with dictionaries that cope correctly with multiple inheritance
2634             and the overriding of methods. This also uses the signature
2635             decorations to provide correct introspection data, including
2636             the debut appearance of the types of your return values. :D
2637
2638         * test/python/test-client.py, test/python/test-service.py: Add a test
2639         case to try invoking an method that overrides one inherited from a
2640         D-Bus interface class.
2641
2642 2005-10-29  Robert McQueen  <robot101@debian.org>
2643
2644         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2645         Add checking for the end of struct character when marshalling a
2646         struct in MessageIter.append_strict.
2647
2648         * python/examples/example-service.py,
2649         python/examples/gconf-proxy-service.py,
2650         python/examples/gconf-proxy-service2.py: Update to use gobject
2651         mainloop directly rather than appearing to depend on gtk.
2652
2653         * python/test/test-client.py, python/test/test-server.py: Remove
2654         obsolete and broken test scripts for old bindings. We have up to date
2655         and working tests in test/python/.
2656
2657 2005-10-29  Robert McQueen  <robot101@debian.org>
2658
2659         * python/decorators.py: Add optional arguments to the method and
2660         signal decorators to allow you to specify the signature of arguments
2661         and return values. Preserve the doc strings of signal functions in the
2662         decorated version, for pydoc and friends.
2663
2664         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2665         parse_signature_block function with an iterable dbus.Signature()
2666         type. Fix a bug in MessageIter.append_strict where you could append
2667         anything by claiming it was a string.
2668
2669         * python/service.py: Use the out_signature decoration on methods to
2670         marshal return values, meaning you no longer require dbus.Array()
2671         or dbus.Dictionary() to indicate the type when returning empty
2672         arrays or dictionaries. Fix a bug where exceptions which are defined
2673         in __main__ are not turned into error replies.
2674
2675         * test/python/test-client.py, test/python/test-service.py: Add test
2676         for correct marshalling of return values according to out_signature.
2677         Fix a bug in the async call test where the error_handler is missing a
2678         self argument.
2679
2680 2005-10-29  Robert McQueen  <robot101@debian.org>
2681
2682         * glib/Makefile.am, glib/examples/Makefile.am,
2683         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2684         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2685
2686         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2687
2688         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2689         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2690         the command line.
2691
2692 2005-10-27  Ross Burton  <ross@openedhand.com>
2693
2694         * dbus/dbus-marshal-header.c:
2695         Remove dead code.
2696
2697         * glib/dbus-gobject.c:
2698         Stop compiler warning.
2699
2700 2005-10-25  Ross Burton  <ross@openedhand.com>
2701
2702         * dbus/dbus-auth.c:
2703         * dbus/dbus-server-unix.c:
2704         * dbus/dbus-transport-unix.c:
2705         * glib/dbus-gmain.c:
2706         * glib/dbus-gobject.c:
2707         Add some const keywords.
2708
2709 2005-10-25  Ross Burton  <ross@openedhand.com>
2710
2711         * doc/dbus-specification.xml:
2712         Document the NoReply annotation.
2713
2714         * glib/dbus-binding-tool-glib.h:
2715         * glib/dbus-binding-tool-glib.c:
2716         Respect the NoReply annotation.
2717
2718 2005-10-24  Robert McQueen <robot101@debian.org>
2719
2720         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2721         derive from unicode instead of str, and encode/decode UTF-8 when
2722         marshalling/unmarshalling bus messages
2723
2724         * python/introspect_parser.py: encode introspection data as UTF-8
2725         before passing the buffer into libxml2
2726
2727         * test/python/test-client.py: add unicode test strings
2728
2729         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2730         ignore generated python test files
2731
2732 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2733
2734         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2735         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2736         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2737
2738         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2739         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2740         when constructing struct signatures
2741
2742         * python/_dbus.py (Bus): handle private connections using the
2743         private keyword in the constructor. defaults to private=False
2744         (Bus::close): new method to close a connection to the bus
2745
2746         * python/dbus_bindings.pyx (Connection::close): renamed method
2747         was previously called disconnect
2748         (bus_get): now supports getting a private connection
2749
2750         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2751         keyword is set to True.  if it is, execute the method without waiting
2752         for a reply
2753         (ProxyObject::_introspect_execute_queue): new method for executing
2754         all the pending methods that were waiting for the introspect to
2755         finish.  this is called when introspect either succeeds or fails
2756         (ProxyObject::_introspect_error_handler): call queued methods
2757
2758 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2759
2760         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2761         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2762
2763         * python/service.py (Object::_message_cb): handle exceptions correctly
2764         by sending them over the wire to the calling app.  This makes sure
2765         the client returns immediately instead of waiting the 15 seconds to
2766         timeout.
2767
2768         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2769         Add a test to benchmark how long it takes to introspect a service and 
2770         call a method which returns a large element (pretty fast)
2771
2772         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2773         method which pushes a lot of data
2774
2775 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2776
2777         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2778         reclaim memory outside of the loop and use del istead of just setting
2779         the key to None
2780
2781 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2782
2783         * python/service.py (ObjectType::_reflect_on_signal): Always close
2784         signal tag even when there are no arguments
2785
2786 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2787
2788         * configure.in: Set mono, mono-docs and Qt3 to default
2789         to no instead of auto when building.  These bindings do not
2790         have full time maintainers and will not be supported for the
2791         1.0 release.
2792
2793 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2794
2795         patches from Michael Krivoruchko <misha at sun.com>: 
2796         
2797         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2798         _dbus_connection_message_sent, 
2799         _dbus_connection_send_preallocated_unlocked_no_update, 
2800         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2801         is NULL when calling _dbus_verbose
2802
2803         * configure.in: check for functions getpeerucred and getpeereid
2804
2805         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2806         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2807         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2808         Patch was only tested on Solaris 10 x86 so it might be issues
2809         with other platforms (i.e. BSDs and MacOSX)
2810         
2811
2812 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2813
2814         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2815         instead of marshal basic so we can handle recursive types in a variant
2816
2817         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2818         in variants
2819
2820         * test/glib/test-service-glib.c, test-service-glib.xml
2821         (my_object_echo_variant [EchoVariant], 
2822         my_object_process_variant_of_array_of_ints123
2823         [ProcessVariantOfArrayOfInts123]): 
2824         Add two test methods
2825
2826         * python/introspect_parser.py: New module for parsing introspect
2827         data.
2828
2829         * python/dbus_bindings.pyx:
2830         (various places): when throwing errors fix to use errormsg instead 
2831         of message local variable because Pyrex can get confused with other 
2832         message variables (initial patch by Robert McQueen 
2833         <robert.mcqueen at collabora.co.uk>)
2834         (MessageIter::parse_signature_block): new method for getting the next
2835         block in a signiture.
2836         (MessageIter::append_strict): new method for appending values strictly
2837         using the passed in signature instead of guessing at the type
2838         (MessageItter:: append_dict, append_struct, append_array): use 
2839         signatures to marshal children if the signature is available
2840         
2841         * python/exceptions.py (IntrospectionParserException): new exception
2842
2843         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2844         introspected signatures if available, else we fall back to the
2845         old way of doing things.
2846         (ProxyObject::_introspect_reply_handler ): parse introspection data
2847         
2848         * python/service.py (ObjectType::_reflect_on_method): Properly
2849         terminate <method> if there are no args in the reflection data
2850
2851         * test/python/test-client.py: add tests for talking with the GLib
2852         test server.  This gives us better coverage for introspection since
2853         python to python will always generate arguments as variants.  It also
2854         allows us to test the robustness of the GLib bindings and interlanguage
2855         communications.
2856
2857         
2858 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2859
2860         * bus/driver.c (bus_driver_handle_introspect): Add signals
2861         to the introspect data. (patch from Daniel P. Berrange 
2862         <dan at berrange.com>)
2863
2864         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2865         
2866         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2867         _dbus_connection_run_builtin_filters): Changed these to
2868         be unlock_no_update functions and call 
2869         _dbus_connection_send_unlocked_no_update instead of
2870         dbus_connection_send to avoid locking errors.
2871         
2872         * doc/TODO: Removed the make Ping test TODO
2873         
2874 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2875
2876         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2877         We now copy the message from a DBusError and then free 
2878         the error object befor throwing the error
2879
2880         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2881         DBusBindingOutputMode enum which was causing a warning.
2882         #include <time.h> so using time_t is explicitly defined
2883
2884 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2885
2886         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2887         - dbus/dbus-bus.c
2888         (internal_bus_get): new method that take over the heavy lifting
2889         of dbus_bus_get and adds the ability to get a private connection
2890         to the bus
2891         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2892         interface as in previous versions
2893         (dbus_bus_get_private): new method that is a wrapper to 
2894         internal_bus_get to get a private connection to the bus
2895
2896         - dbus/dbus-bus.h
2897         (dbus_bus_get_private): add as a public libdbus interface
2898
2899         - dbus-1.pc.in: output system_bus_default_address and 
2900         sysconfdir variables so apps can use them when compiling
2901
2902 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2903         * dbus/qt: New Qt bindings
2904
2905 2005-09-12  Waldo Bastian  <bastian@kde.org>
2906
2907         * dbus/dbus-marshal-validate.c,
2908         doc/dbus-specification.xml, test/Makefile.am,
2909         test/test-names.c: allow hyphens in bus names.
2910
2911 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2912
2913         * test/data/auth/fallback.auth-script: we don't
2914         retry the EXTERNAL method when we know its going
2915         to fail anymore.
2916
2917 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2918
2919         * dbus/dbus-connection-internal.h: rename
2920         (add|remove|toggle)_(watch|timeout) to unlocked()
2921         
2922         * dbus/dbus-connection.c: ditto.
2923         
2924         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2925         Update some callers for the renaming.
2926
2927 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2928
2929         * dbus/dbus-auth.c: (record_mechanisms): don't
2930         retry the first auth mechanism because we know
2931         we're just going to get rejected again.
2932         
2933         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2934         Fix thinko ... and what a nasty little bugger to
2935         track down you were ...
2936
2937         * dbus/dbus-connection.c:
2938         (_dbus_connection_add_watch),
2939         (_dbus_connection_remove_watch): add note about
2940         these needing the connection to be locked.
2941         (_dbus_connection_get_dispatch_status_unlocked):
2942         set status to DATA_REMAINS when we queue the
2943         disconnected message.
2944         
2945         * bus/dispatch.c:
2946         (bus_dispatch): fix warning.
2947         (check_existent_service_no_auto_start):
2948         Expect ChildSignaled error too.
2949         (check_existent_hello_from_self): fix another
2950         couple of warnings.
2951         
2952 2005-09-08  Joe Shaw  <joeshaw@novell.com>
2953
2954         Patches from James Willcox <snorp@snorp.net>
2955
2956         * mono/Makefile.am: Add Int16.cs and UInt16.cs
2957
2958         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
2959         support array "out" parameters.
2960
2961         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
2962         for 16-bit int support.
2963
2964 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
2965
2966         * Released 0.50
2967
2968         * Patch from Steve Grubb:
2969         - bus/activation.c (bus_activation_service_reload_test): clean up
2970         some indentation
2971         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
2972         - dbus/dbus-message-factory.c (generate_special): fix a couple of
2973         buffer overflows in the test suite.  This is non critical because
2974         it can not be exploited and this code is only run when doing a 
2975         make check.
2976
2977         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
2978         - configure.in: Don't check and link against kdecore, only qt headers
2979         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
2980         - gcj/org/freedesktop/dbus/Makefile.am:
2981         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
2982         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
2983         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
2984         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
2985         - tools/Makefile.am: Add platform extentions to binaries 
2986         (i.e. .exe on windows)
2987
2988         * configure.in: 
2989         - Make it so if no suitable version of python is found we only 
2990         disable building python instead of exiting the configure script
2991         - Require version 2.4 of glib for glib bindings
2992         - Up version to 0.50
2993
2994         * python/__init__.py: Sync version with libdbus to (0,50,0)
2995         
2996 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2997
2998         * dbus/dbus-object-tree.c (find_subtree_recurse):
2999         a couple of optimizations (bug #710):
3000         - do a binary search in the tree
3001         - insert a new child at the right place directly, no need for
3002           qsort anymore
3003         - do the "double alloc" thing when allocating children
3004
3005 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3006
3007         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3008
3009         * python/dbus_bindings.pyx: Memory management foo
3010         (global): remove hacky _user_data_references global list
3011         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3012         tuples. Unref user_data
3013         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3014         (Connection::__del__): Remove and replace with __dealloc__ method
3015         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3016         to keep tuple from being deallocated instead of the global var hack
3017         (Connection::register_object_path): Stuff user_data into a tuple.
3018         Use Py_INCREF to keep tuple from being deallocated instead of the 
3019         global var hack
3020         (Connection::register_fallback): Stuff user_data into a tuple.
3021         Use Py_INCREF to keep tuple from being deallocated instead of the 
3022         global var hack
3023         (GIL_safe_pending_call_notification): Don't unref the message
3024         because it gets unreffed when going out of scope.  Py_XDECREF
3025         the user_data
3026         (PendingCall::__del__): Remove and replace with __dealloc__ method
3027         (PendingCall::set_notify): ref the pending call because we will
3028         need it to stick around for when the notify callback gets called
3029         (Message::__del__): Remove and replace with __dealloc__ method
3030
3031         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3032         gthreads_init to match up with the dbus call
3033
3034         * python/glib.py (init_threads): Changed to threads_init to match
3035         up with gobject.threads_init().  init_threads is kept for backwards
3036         compat but will most likely be deprecated in the future
3037
3038         * test/python/test-client.py: 
3039         - revamp to use Python's unittest functionality
3040         - add async call tests
3041         - setup threads in glib and dbus so we make sure locks are working
3042         
3043 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3044
3045         * python/dbus_bindings.pyx 
3046         (_pending_call_notification, cunregister_function_handler, 
3047         cmessage_function_handler): All callback functions have been rearranged 
3048         to workaround a bug in Pyrex when working with the GIL which is Python's 
3049         global lock when dealing with threads.  They have been split into
3050         a wrapper function (which assumes the name of the old function) and
3051         a _GIL_safe_<function name> function which contains the functionality
3052         of the old function.  This ensures that Pyrex does not write code
3053         the lock is released.
3054         
3055
3056 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3057
3058         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3059         GIL global lock when calling back into Python
3060
3061 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3062
3063         * Release 0.36.2
3064
3065         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3066
3067         * bus/policy.c (bus_policy_allow_user): change default "user is
3068         allowed" to be "user has same uid as the bus itself"; any
3069         allow/deny rules will override.
3070
3071         * bus/session.conf.in: don't allow all users, since now by default
3072         the user that ran the bus can connect.
3073
3074 2005-08-26  Colin Walters  <walters@verbum.org>
3075
3076         * tools/dbus-print-message.c (print_message): Flush stdout
3077         after printing a message, so that redirecting to a file, then
3078         hitting Ctrl-C works.
3079
3080 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3081
3082         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3083         (EmptyMessage): new class that subclasses Message.  This is a workaround
3084         to a Pyrex bug that fails to call __del__ when the Message object goes out
3085         of scope.  For some reason subclassing Message fixes this bug
3086         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3087         - s/Message(_create=0)/EmptyMessage everywhere else
3088         
3089         * test/python/test-{server|client}.py: add the python/.libs directory
3090         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3091         get picked up from the system
3092
3093 2005-08-25  Colin Walters  <walters@verbum.org>
3094
3095         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3096         to Ryan Lortie for the suggestion.
3097
3098 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3099
3100         * test/python: Add python regression test
3101
3102         * configure.in: Add test/python/Makefile
3103
3104         * test/Makefile.am: Add the python directory to SUBDIRS
3105
3106 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3107
3108         * Release 0.36.1
3109
3110         * python/_dbus.py: 
3111         (Interface::connect_to_signal): propigate keywords for match on args
3112         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3113
3114         * python/proxies.py (ProxyObject::connect_to_signal):
3115         propigate keywords for match on args
3116
3117         * Makefile.am: point everything to pyexecdir since python borks
3118         on multilib
3119
3120 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3121
3122         * Release 0.36
3123
3124 2005-08-23  Colin Walters  <walters@verbum.org>
3125
3126         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3127
3128 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3129
3130         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3131         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3132         of defining DBusConnection ourselves.
3133
3134 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3135
3136         * python/dbus.pth: New path file to fix up problems when installing
3137         c libraries to lib64 and python files to lib.
3138
3139         * python/Makefile.am: install dbus.pth in the correct spot
3140
3141 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3142         * ChangeLog: clean up my last entry a bit
3143
3144         * doc/introspect.xsl: New stylesheet for converting introspection data
3145         into browser renderable xhtml. Contributed by Lennart Poettering.
3146
3147         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3148         Poettering.
3149
3150         * doc/dbus-tutorial.xml: 
3151         - Add Colin Walter to the Authors section for authoring the GLib
3152         section
3153         - Add descriptions of the new signature and type functionality
3154         in the Python complex type mapping section
3155         - Add a sidenote on the new args matching functionality in 
3156         the Python bindings
3157         - Fixed up some of the examples to use the gobject.MainLoop
3158         instead of gtk.main
3159         
3160         * python/_dbus.py:
3161         (Bus::_create_args_dict): New. Converts a hash of arg matches
3162         to a more useable format
3163         (Bus::add_signal_receiver): add a **keywords parameter for catching
3164         arg match parameters
3165         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3166         arg match parameters
3167         
3168         * python/matchrules.py:
3169         (MatchTree::exec_matches): Check for arg matches
3170         (SignalMatchRule::add_args_match): New method
3171         (SignalMatchRule::execute): Added args_list parameter as an optimization
3172         so we don't have to marshal the args more than once
3173         (SignalMatchRule::match_args_from_list): New method that checks to see
3174         if the rule's arg matches match an argument list.  Only arguments
3175         set in the rule are checked.
3176         (SignalMatchRule::match_args_from_rule): New method that checks to see
3177         if the rule's arg matches match another rule's.  All args have to match
3178         in order for this method to return true.  If either rule has more args
3179         then it is not a match.
3180         (SignalMatchRule::is_match): Add args match
3181         (SignalMatchRule::repr): Add args to the final output if they exist
3182
3183 2005-08-17  Ross Burton  <ross@burtonini.com>
3184
3185         * glib/dbus-gproxy.c:
3186         (dbus_g_proxy_call_no_reply): unref the message once sent.
3187         (dbus_g_proxy_call): protect against NULL proxy.
3188
3189 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3190
3191         * python/__init__.py: Version updated (0, 43, 0)
3192         
3193         * python/dbus_bindings.pyx: 
3194         - Fixed type objects to have self passed into __init__
3195         - Added the Variant type
3196         - Add the ability to specify types or signatures for Array, Variant 
3197         and Dictionary
3198         (Connection::send_with_reply_handlers): return a PendingCall object
3199         (_pending_call_notification): handle the case when an error is returned 
3200         without an error message in the body
3201         (MessageIter::get_boolean): return True or False instead of an integer
3202         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3203         and add checks for objects with embeded signatures or types (Array, 
3204         Variant and Dictionary)
3205         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3206         (MessageIter::append_dict): handle embeded types or signatures
3207         (MessageIter::append_array): handle embeded types or signatures
3208         (MessageIter::append_variant): new method
3209         
3210         * python/proxies.py:
3211         (DeferedMethod): New. Dummy executable object used when queuing calls 
3212         blocking on introspection data
3213         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3214         or shorter timeouts for method calls
3215         (ProxyObject): Add first pass at an introspection state machine
3216         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3217         introspection. 
3218         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3219         the usual mechanisms for sending messages.  This is to avoid a deadlock
3220         where the Intospect call would be queued waiting for the Introspect 
3221         call to finish ;-)
3222         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3223         when introspection returns with no error
3224         (ProxyObject::_introspect_error_handler): New.  This method is called 
3225         when introspection encounters an error
3226         (ProxyObject::__getattr__): Code to handle different introspection 
3227         states.  Queue async calls or block blocking calls if we are 
3228         introspecting.  Pass through as normal if we are not or are done with 
3229         introspecting.
3230         
3231         * python/service.py: Import signal and method from decorators.py
3232
3233         * python/types.py: Add Variant type
3234
3235 2005-08-16  Colin Walters  <walters@verbum.org>
3236
3237         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3238         DBusError message is NULL.
3239
3240 2005-08-09  Havoc Pennington  <hp@redhat.com>
3241
3242         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3243         malloc'd copy of the name parameter
3244
3245 2005-08-09  Havoc Pennington  <hp@redhat.com>
3246
3247         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3248         warning if the reply serial is set to 0
3249
3250 2005-08-04  Colin Walters  <walters@verbum.org>
3251
3252         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3253         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3254         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3255         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3256         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3257         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3258         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3259         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3260         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3261         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3262         
3263         Prefix name with _ to ensure they're not exported.  All callers
3264         updated.
3265
3266         * glib/dbus-gvalue.c (typecode_to_gtype)
3267         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3268         (signature_iter_to_g_type_dict)
3269         (signature_iter_to_g_type_array)
3270         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3271         (dbus_gtypes_from_arg_signature):
3272         Move to dbus-gsignature.c.
3273
3274         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3275         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3276         (dbus_binding_tool_output_glib_client): Ditto.
3277
3278         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3279         and dbus-gsignature.h
3280
3281         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3282         unused variable.
3283
3284 2005-08-03  Colin Walters  <walters@verbum.org>
3285
3286         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3287         catch any incompatible changes accidentally made.
3288
3289 2005-08-03  Havoc Pennington  <hp@redhat.com>
3290
3291         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3292         typo, from Julien Puydt
3293
3294         * bus/connection.c (bus_connection_disconnected): we were always
3295         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3296
3297 2005-08-01  Colin Walters  <walters@verbum.org>
3298
3299         Patch from Joe Markus Clarke:   
3300         
3301         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3302         use-after-free.
3303
3304 2005-08-01  Colin Walters  <walters@verbum.org>
3305         
3306         Patch from Joe Markus Clarke:   
3307         
3308         * tools/dbus-send.c (main): 
3309         
3310         Don't use C99 style initializers (bug #3933).
3311         
3312 2005-08-01  Colin Walters  <walters@verbum.org>
3313
3314         Patch from Joe Markus Clarke:   
3315
3316         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3317         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3318         * glib/dbus-gobject.c (write_interface):
3319
3320         Don't use C99 style initializers (bug #3933).
3321
3322 2005-07-31  Havoc Pennington  <hp@redhat.com>
3323
3324         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3325         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3326
3327 2005-07-30  Havoc Pennington  <hp@redhat.com>
3328
3329         * fix a bunch of Doxygen warnings and mistakes
3330
3331 2005-07-30  Havoc Pennington  <hp@redhat.com>
3332
3333         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3334         DBUS_BUILD_TESTS since it's now used in production code
3335
3336 2005-07-29  Havoc Pennington  <hp@redhat.com>
3337
3338         * test/glib/test-profile.c (write_junk): initialize the junk
3339         buffer so valgrind doesn't have a breakdown
3340
3341 2005-07-29  Havoc Pennington  <hp@redhat.com>
3342
3343         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3344         (match_rule_matches): remove unused arg
3345         (test_matching): add tests for match_rule_matches()
3346
3347         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3348         do arg0='foo' arg5='bar' in the match rules
3349         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3350
3351         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3352
3353 2005-07-29  Ross Burton  <ross@openedhand.com>
3354
3355         * dbus/dbus-connection.c:
3356         Don't create a DBusCondVar which is never used.
3357
3358 2005-07-27  Ross Burton  <ross@openedhand.com>
3359
3360         * dbus/dbus-message.c:
3361         Reduce the size of the maximum cached message to 10K.
3362
3363 2005-07-25  Ross Burton  <ross@openedhand.com>
3364
3365         * glib/dbus-gproxy.c:
3366         Remove matches when all proxies are unregistered.
3367
3368 2005-07-24  Colin Walters  <walters@verbum.org>
3369
3370         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3371         typedata; recursive arrays won't have it.
3372
3373         * test/glib/test-dbus-glib.c:
3374         * test/glib/test-service-glib.c:
3375         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3376         
3377 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3378
3379         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3380         proxies.py, service.py: Cleanup of code after running it through the
3381         pyflakes code checker mostly dealing with undefined names.  
3382         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3383
3384 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3385
3386         * NEWS: Update to 0.35.2
3387
3388 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3389
3390         * python/_dbus.py: Remove import of the dbus.services
3391         module as it no longer exists (patch from Dimitur Kirov)
3392
3393         * python/service.py (Object::__init__): Fixed typo
3394         s/name/bus_name (patch from Dimitur Kirov)
3395
3396         * python/examples/example-signal-emitter.py: import dbus.glib
3397         to get the main loop and use glib mainloop instead of gtk so
3398         X doesn't have to be running.
3399
3400         * python/examples/example-signal-recipient.py: import dbus.glib
3401         to get the main loop and use glib mainloop instead of gtk so
3402         X doesn't have to be running. Import the decorators module
3403         directly.
3404
3405         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3406         didn't pick up on but are needed to build
3407
3408         * configure.in: upped version to 0.35.2
3409
3410         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3411         added Colin Walters' SELinux API rename patch from head 
3412         s/unix sercurity context/selinux security context/
3413
3414 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3415
3416         * python/Makefile.am: dbus_binding.pxd.in should be included 
3417         in EXTRA_DIST not dbus_binding.pxd
3418         fix up $(srcdir) hopefully for the last time
3419
3420         * NEWS: Update to 0.35.1
3421
3422 2005-07-16  Colin Walters  <walters@verbum.org>
3423
3424         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3425         from bus_driver_handle_get_connection_unix_security_context.  Update for
3426         error usage.
3427         (message_handlers): Update for renames.
3428
3429         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3430         _dbus_string_init failure correctly.
3431         (bus_selinux_append_context): Convert SID to context.  Append it
3432         as a byte array.
3433         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3434         hasn't been called.
3435
3436         * bus/selinux.h: Update prototype.
3437
3438         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3439         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3440
3441 2005-07-15  Colin Walters  <walters@verbum.org>
3442
3443         * doc/TODO: Add note about convenience wrappers.
3444
3445 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3446
3447         * NEWS: Update to 0.35
3448
3449 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3450
3451         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3452         so distcheck doesn't fail
3453
3454         * glib/examples/Makefile.am: Add example-service.xml and 
3455         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3456
3457         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3458         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3459
3460         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3461         compiler looks in the right places during distcheck
3462
3463 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3464
3465         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3466         to fail
3467
3468 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3469
3470         * python/examples/example-service.py,
3471         python/examples/example-signal-emitter.py: Fixed up examples
3472         for API changes
3473
3474 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3475
3476         * python/__init__.py: Upped to version (0,42,0) because of
3477         the API change
3478
3479 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3480
3481         * ChangeLog: fix date in last entry
3482
3483         * configure.in, bus/system.conf.in: add the ability to configure 
3484         the system bus user at compiletime with the --with-dbus-user flag
3485         (patch from Kristof Vansant)
3486
3487 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3488
3489         * bus/dispatch.c, test/test-service.c: Add testcase
3490         for sending messages to oneself (TODO item).
3491
3492         * python/service.py (class Object): Swap ordering of bus_name 
3493         and object_path parameters to better support inheritance.
3494
3495         * doc/dbus-tutorial.xml: change Python docs to reflect change
3496         in parameter ordering and fix the inheritance section.
3497
3498         * doc/TODO: remove sending message to oneself TODO item
3499
3500 2005-07-15  Ross Burton  <ross@openedhand.com>
3501
3502         * glib/dbus-gproxy.c:
3503         Fix a leak when calling methods via the proxy.
3504
3505 2005-07-15  Colin Walters  <walters@verbum.org>
3506
3507         * bus/selinux.c (bus_selinux_append_context): Wrap in
3508         HAVE_SELINUX.
3509
3510 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3511
3512         * python/_dbus.py (Bus::remove_signal_receiver):
3513         don't add a callback to the match if none has been passed in
3514         
3515         * python/matchrules.py (SignalMatchTree::remove): if the rule
3516         being matched does not have a callback treat it as a wildcard
3517         fix matching logic
3518
3519         * doc/dbus-tutorial.xml: Add Python tutorial
3520
3521 2005-07-14  Colin Walters  <walters@verbum.org>
3522
3523         * bus/driver.c
3524         (bus_driver_handle_get_connection_unix_security_context): New function.
3525         (message_handlers): Add.
3526
3527         * bus/selinux.c (bus_selinux_append_context): New function; appends
3528         security context to message.
3529
3530         * bus/selinux.h: Prototype.
3531
3532         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3533
3534 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3535
3536         * bus/activation.c: clean up all tabs to be 8 spaces 
3537         (bus_activation_activate_service): make sure we clean up
3538         if activation fails
3539
3540         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3541         (check_shell_fail_service_auto_start): New function
3542         tests to make sure we get fail properly when trying to auto start a service
3543         with a faulty command line
3544         (check_shell_service_success_auto_start): New function tests to make sure
3545         auto started services get the arguments on the command line
3546
3547         * test/test-shell-service.c: Added service for testing auto-starting with 
3548         command line arguments
3549
3550         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3551         test/data/valid-service-files/debug-shell-echo-success.service.in:
3552         Added service files for testing auto-starting with command line arguments
3553
3554         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3555
3556 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3557
3558         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3559         
3560         * dbus/Makefile.am: added new files to build.
3561
3562         * bus/activation.c (bus_activation_activate_service): support
3563         activation commands with parameters.
3564
3565         * test/shell-test.c: added test program for the shell parsing
3566         code.
3567
3568 2005-07-13  David Zeuthen  <davidz@redhat.com>
3569
3570         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3571         64 bit signed and unsigned parameters
3572
3573 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3574
3575         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3576
3577         * python/service.py (class Name): renamed BusName to make it clearer
3578         what the object is for (a name on the bus)
3579
3580         * python/examples/example-service.py,
3581         python/examples/example-signal-emitter.py: change the Name object to
3582         BusName
3583
3584 2005-07-12  Colin Walters  <walters@verbum.org>
3585
3586         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3587
3588         * tools/dbus-launch.c: Include sys/select.h.
3589
3590 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3591         * python/dbus_bindings.pyx.in: removed
3592
3593         * python/dbus_bindings.pyx: Added.
3594         - Fixed some memleaks (patch from 
3595         Sean Meiners <sean.meiners@linspireinc.com>)
3596         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3597         own pxd file (Pyrex definition)
3598         - Broke out glib dependancies into its own pyx module
3599         
3600         * python/dbus_bindings.pdx: Added.
3601         - Defines C class Connection for exporting to other modules
3602
3603         * python/dbus_glib_bindings.pyx: Added.
3604         - New module to handle lowlevel dbus-glib mainloop integration
3605
3606         * python/glib.py: Added.
3607         - Registers the glib mainloop when you import this module
3608
3609         * python/services.py: Removed (renamed to service.py)
3610         
3611         * python/service.py: Added.
3612         - (class Server): renamed Name
3613
3614         * python/__init__.py: Bump ro version (0,41,0)
3615         -don't import the decorators or service module
3616         by default.  These now reside in the dbus.service namespace
3617
3618         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3619         setup function on creation 
3620
3621         * python/examples/example-service.py,
3622         python/examples/example-signal-emitter.py: update examples
3623
3624         * python/examples/gconf-proxy-service.py,
3625         python/examples/gconf-proxy-service2.py: TODO fix these up
3626
3627         * doc/TODO: Addition
3628         - Added a Python Bindings 1.0 section
3629         - added "Add match on args or match on details to match rules"
3630
3631
3632 2005-07-12  Colin Walters  <walters@verbum.org>
3633
3634         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3635         (statemachine-glue.h): 
3636         * glib/examples/Makefile.am (example-service-glue.h) 
3637         (example-signal-emitter-glue.h): 
3638         * glib/Makefile.am (dbus-glib-error-switch.h): 
3639         Add libtool --mode=execute so we use the built library instead
3640         of any installed one.
3641
3642 2005-07-11  Colin Walters  <walters@verbum.org>
3643
3644         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3645         (dbus_g_value_types_init): Remove assertion.
3646         (dbus_g_value_get_g_type, dbus_g_value_open)
3647         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3648         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3649         functions related to DBusGValue.  Now we marshal/demarshal
3650         structures as GValueArray.
3651         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3652         structures.
3653         (signature_iter_to_g_type_array): Don't call
3654         signature_iter_to_g_type_struct.
3655         (signature_iter_to_g_type_struct): Delete.
3656         (dbus_gvalue_to_signature): Delete.
3657         (dbus_gvalue_to_signature): New function with same name as other
3658         one; we can convert structures to signatures.
3659         (demarshal_valuearray): New function.
3660         (get_type_demarshaller): Use it.
3661         (demarshal_recurse): Delete.
3662         (marshal_proxy): New function.
3663         (marshal_map): Warn if we can't determine signature from type.
3664         (marshal_collection_ptrarray): Ditto.
3665         (marshal_collection_array): Ditto.
3666         (get_type_marshaller): Use marshal_valuearray.
3667         (marshal_recurse): Delete.
3668         (_dbus_gvalue_test): Add some tests.
3669
3670         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3671         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3672         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3673         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3674         (dbus_g_value_free): Remove prototypes.
3675
3676         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3677         G_TYPE_VALUE_ARRAY.
3678
3679         * glib/examples/example-service.c:
3680         * glib/examples/example-client.c: Implement GetTuple.
3681
3682         * test/glib/test-dbus-glib.c:
3683         * test/glib/test-service-glib.c:
3684         * test/glib/test-service-glib.xml: Add structure tests.
3685
3686 2005-07-10  Colin Walters  <walters@verbum.org>
3687
3688         * doc/TODO: Knock off some GLib items with this patch.
3689
3690         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3691         (_dbus_gvalue_signals_error): New functions.
3692
3693         * glib/dbus-gvalue-utils.h: Prototype them.
3694
3695         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3696         and change to not output const/retval flags for input args.  All
3697         callers updated.
3698         (invoke_object_method): Refactor to handle return values.  Add
3699         some more comments in various places.  Remove debug g_print.
3700
3701         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3702
3703         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3704         Handle G_TYPE_NONE.
3705         (compute_gsignature): New function; refactored from code from
3706         compute_marshaller and compute_marshaller_name.  Enhance to
3707         handle return values and async ops more cleanly.  Update for
3708         async ops returning NONE instead of BOOLEAN.
3709         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3710         and output appropriate string.
3711         (generate_glue): Handle return value annotation.  Also don't dump
3712         constness flag for input arguments.
3713
3714         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3715         files shared between installed library and utilities.
3716         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3717         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3718         binding tool can access gtype utility functions.
3719
3720         * test/glib/test-service-glib.c: 
3721         * test/glib/test-service-glib.xml: 
3722         * test/glib/test-dbus-glib.c: Add some tests for return values.
3723
3724 2005-07-09  Colin Walters  <walters@verbum.org>
3725
3726         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3727         argument if available, not method.
3728
3729         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3730         (invoke_object_method): First, remove some redundant
3731         GValues (object_value, error_value) in favor of working on
3732         array directly.  Second, rework constness to be less buggy.
3733         Now we iterate directly over the argument metadata instead
3734         of parallel iterating over output signature and metadata.
3735
3736         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3737
3738         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3739         annotation on input args.
3740         
3741 2005-07-09  Colin Walters  <walters@verbum.org>
3742
3743         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3744         Define.
3745
3746         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3747         annotation.
3748
3749         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3750         (method_dir_signature_from_object_info): Handle arg_iterate change.
3751         (write_interface): Ditto.
3752         (lookup_object_info): Don't barf if format_version is > 0.
3753         (invoke_object_method): Handle arg constness.
3754
3755         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3756         (arg_info_new): Create.
3757         (arg_info_unref): Destroy.
3758         (arg_info_get_annotations, arg_info_get_annotation) 
3759         (arg_info_add_annotation): New functions.
3760
3761         * glib/dbus-gidl.h: Prototype them.
3762
3763         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3764         args, disallow them in properties.
3765         (parse_annotation): Handle arg annotations.
3766
3767         * test/glib/test-service-glib.xml: 
3768         * test/glib/test-service-glib.c: Update to make some methods
3769         const.
3770
3771 2005-07-08  Colin Walters  <walters@verbum.org>
3772
3773         * test/glib/test-service-glib.xml: 
3774         * test/glib/test-service-glib.c:
3775         * test/glib/test-dbus-glib.c: Test a{sv}.
3776
3777         * glib/examples/statemachine/statemachine.c:
3778         * glib/examples/statemachine/statemachine-server.c:
3779         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3780         add progress bar, etc.
3781
3782         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3783         needed anymore due to generic array/map marshalling.
3784         (dbus_g_value_types_init): Don't register basic arrays or the
3785         string/string hash.
3786         (dbus_gtype_from_signature_iter): Don't try to recurse into
3787         variants.
3788         (dbus_gtype_to_signature): Check collection/map before type
3789         metadata.
3790         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3791         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3792         generic map creation/append functions instead of hash table
3793         specifically.
3794         (get_type_demarshaller): Handle maps.
3795         (demarshal_collection): Dispatch on collection type to either
3796         demarshal_collection_ptrarray or demarshal_collection_array.
3797         (get_type_marshaller): Handle maps.
3798         (marshal_collection): Dispatch collection type to either
3799         marshal_collection_ptrarray or marshal_collection_array.
3800         (_dbus_gvalue_test): New test.
3801
3802         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3803         (hash_free_from_gtype): Use it to free GValues.
3804         (hashtable_append): New function.
3805         (ptrarray_append): Fix prototype.
3806         (slist_append): Ditto.
3807         (_dbus_gvalue_utils_test): Extend tests.
3808
3809         * glib/dbus-gtype-specialized.c
3810         (dbus_g_type_specialized_init_append): Renamed from
3811         dbus_g_type_specialized_collection_init_append.  Remove const from
3812         value, since we steal it.
3813         (dbus_g_type_specialized_map_append): New function.
3814
3815         * glib/dbus-gtype-specialized.h: Update prototypes.
3816         Add DBusGTypeSpecializedMapAppendFunc.
3817
3818         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3819         _dbus_gvalue_test.
3820         
3821         * glib/dbus-gtest.h: Prototype it.
3822
3823 2005-07-08  Ross Burton  <ross@openedhand.com>
3824
3825         * dbus/dbus-glib.h:
3826         Add DBysGAsyncData for the async bindings.
3827
3828         * glib/dbus-binding-tool-glib.c:
3829         Re-enable the async bindings.
3830
3831         * test/glib/test-dbus-glib.c:
3832         Add a test for the generated async bindings.
3833
3834 2005-07-08  Colin Walters  <walters@verbum.org>
3835
3836         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3837         connection concept.
3838         
3839 2005-07-08  Colin Walters  <walters@verbum.org>
3840         
3841         * tools/Makefile.am: Kill of print-introspect in favor of using
3842         dbus-send --print-reply=literal.
3843
3844         * test/glib/test-service-glib.xml: 
3845         * test/glib/test-service-glib.c (my_object_get_objs): New test
3846         for "ao".
3847
3848         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3849         (main): Test GetObjs.
3850
3851         * glib/examples/statemachine/Makefile.am:
3852         * glib/examples/statemachine/sm-marshal.list:
3853         * glib/examples/statemachine/statemachine-client.c:
3854         * glib/examples/statemachine/statemachine-server.c:
3855         * glib/examples/statemachine/statemachine-server.xml:
3856         * glib/examples/statemachine/statemachine.c:
3857         * glib/examples/statemachine/statemachine.h:
3858         * glib/examples/statemachine/statemachine.xml:
3859
3860         New example.
3861
3862         * glib/examples/example-service.c (main): Move invocation
3863         of dbus_g_object_type_install_info earlier, to emphasize it
3864         should only be done once.
3865
3866         * glib/examples/example-signal-emitter.c (main): Ditto.
3867
3868         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3869
3870         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3871         (dbus_gvalue_marshal): Update prototypes.
3872
3873         * glib/dbus-gvalue.c: Update all marshalling functions to take
3874         const GValue instead of GValue.
3875         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3876         types.
3877         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3878         change.
3879         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3880         Return a newly-allocated string.
3881         (demarshal_proxy, demarshal_object_path, demarshal_object)
3882         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3883         we get the wrong types from message.
3884         (get_type_demarshaller): New function, extracted from
3885         dbus_gvalue_demarshal.
3886         (demarshal_collection): New function, demarshals generic
3887         collection.
3888         (dbus_gvalue_demarshal): Just invoke result of
3889         get_type_demarshaller.  Throw error if we don't have one.
3890         (marshal_garray_basic): Abort on OOM.
3891         (get_type_marshaller): New function, extracted from
3892         dbus_gvalue_marshal.
3893         (collection_marshal_iterator, marshal_collection): New functions;
3894         implements generic marshalling for an iteratable specialized
3895         collection.
3896         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3897
3898         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3899         G_TYPE_STRING.
3900         (ptrarray_value_from_gvalue): Ditto.
3901         (ptrarray_append, ptrarray_free): New functions.
3902         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3903         (slist_append, slist_end_append, slist_free): New functions.
3904         (dbus_g_type_specialized_builtins_init): Add append fuctions
3905         for GPtrArray and GSList.  Register GSList.
3906         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3907
3908         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3909         New.
3910         (dbus_g_type_specialized_collection_init_append)
3911         (dbus_g_type_specialized_collection_append)
3912         (dbus_g_type_specialized_collection_end_append): Prototype.
3913         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3914         end_append_func.
3915
3916         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3917         (dbus_g_type_specialized_collection_append) 
3918         (dbus_g_type_specialized_collection_end_append): New functions.
3919         (dbus_g_type_map_value_iterate): Take const GValue.
3920         (dbus_g_type_collection_value_iterate): Ditto.
3921
3922         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3923         _dbus_gvalue_utils_test.
3924         
3925         * glib/dbus-gtest.h: Prototype it.
3926
3927         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3928         using uninitialized owner_list.
3929         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3930         public API.
3931         (dbus_g_proxy_end_call_internal): Update to use error set
3932         from dbus_gvalue_demarshal instead of setting it here.
3933         (dbus_g_proxy_begin_call): Move return_if_fail here.
3934
3935         * glib/dbus-gobject.c (write_interface): Update for
3936         dbus_gtype_to_signature returning new string.
3937
3938         * configure.in: Add glib/examples/statemachine.
3939
3940 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3941
3942         * configure.in: Add a configure option, --with-console-auth-dir
3943         
3944         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3945         new setting.  Patch from Kay Sievers.
3946
3947 2005-07-06  Colin Walters  <walters@verbum.org>
3948
3949         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3950         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
3951         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
3952         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
3953         Delete in favor of dbus_g_proxy_begin_call and
3954         dbus_g_proxy_cancel_call.
3955         (DBusGProxyCall, DBusGProxyCallNotify): New.
3956         (dbus_g_proxy_begin_call): Change prototype to take callback, user
3957         data, and destroy function.  This replaces
3958         dbus_g_pending_call_set_notify.
3959         (dbus_g_proxy_cancel_call): Prototype.
3960         (DBusGAsyncData): Delete, shouldn't be needed anymore.
3961
3962         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
3963         pending_calls map.
3964         (struct _DBusGProxyManager): Add bus_proxy member, which is an
3965         internal proxy for calls to the bus. Remove
3966         pending_nameowner_calls, now the internal proxy keeps track.
3967         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
3968         pending_nameowner_calls.
3969         (got_name_owner_cb): Update prototype, and use
3970         dbus_g_proxy_end_call.
3971         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
3972         (dbus_g_proxy_manager_register): Delete directly libdbus code in
3973         favor of using internal proxy.
3974         (dbus_g_proxy_manager_unregister): Update to use
3975         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
3976         (dbus_g_proxy_init): Initialize pending calls map.
3977         (dbus_g_proxy_constructor): New.
3978         (dbus_g_proxy_class_init): Add get/set property functions,
3979         constructor, and add NAME, PATH, and INTERFACE properties.
3980         (cancel_pending_call): New function.
3981         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
3982         cancel them.
3983         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
3984         (GPendingNotifyClosure): New structure.
3985         (d_pending_call_notify, d_pending_call_free): Moved here from
3986         dbus-glib.c.
3987         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
3988         ordering.
3989         (manager_begin_bus_call): New internal function for talking to
3990         internal bus proxy.
3991         (dbus_g_proxy_new): Construct object using GObjet properties.
3992         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
3993         Create closure of same, and insert call into map of pending calls.
3994         (dbus_g_proxy_end_call_internal): Take call id instead of pending
3995         call.  Look up pending call in current set.  Remove it when we've
3996         completed.
3997         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
3998         (dbus_g_proxy_begin_call): Change API to take callback, user data,
3999         and destroy function directly.
4000         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4001         (dbus_g_proxy_call): Invoke with NULL callback.
4002         (dbus_g_proxy_cancel_call): New function, replaces
4003         dbus_g_pending_call_cancel.
4004
4005         * glib/dbus-gparser.c (validate_signature): Fix call to
4006         dbus_set_g_error.
4007
4008         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4009         New quark for attaching metadata to GType.
4010         (info_hash): Delete.
4011         (lookup_object_info): Look up using quark.
4012         (dbus_g_object_type_install_info): Check that a type is classed,
4013         not that it's an object.  Also just install type data using quark
4014         instead of using global hash.
4015
4016         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4017         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4018         (GPendingNotifyClosure): Delete.
4019         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4020         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4021
4022         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4023         client method generation until we can fix it...
4024         
4025         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4026         (load_from_service_thread_func): Ditto.
4027
4028         * tools/dbus-names-model.c (struct NamesModel): Hold
4029         DBusGProxyCall.
4030         (have_names_notify): Update prototype, use
4031         dbus_g_proxy_cancel_call.
4032         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4033
4034         * tools/dbus-monitor.c (filter_func): Update for print_message
4035         API change.
4036
4037         * test/glib/test-dbus-glib.c: Add more tests for async
4038         invocations.  Update many begin_call/end_call pairs to just use
4039         dbus_g_proxy_call.
4040
4041         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4042         allows us to dump print-introspect.c.
4043
4044         * tools/dbus-print-message.h (print_message): Add literal argument
4045         to print_message which is intended to allow printing arguments without
4046         metadata like "string=".
4047
4048         * tools/dbus-print-message.c (print_iter): Add literal argument.
4049         (print_message): Allow printing string messages literally.
4050
4051 2005-07-05  Colin Walters  <walters@verbum.org>
4052
4053         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4054         Remove value refcount leak, original patch from Jorn Baayen
4055         <jorn@openedhand.com>.  Also remove useless extra value in favor
4056         of prepending to value array directly.
4057
4058 2005-07-02  Colin Walters  <walters@verbum.org>
4059
4060         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4061
4062 2005-07-01  Colin Walters  <walters@verbum.org>
4063
4064         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4065         
4066         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4067         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4068         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4069         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4070
4071 2005-06-30  Colin Walters  <walters@verbum.org>
4072
4073         * test/glib/test-dbus-glib.c:
4074         * test/glib/test-service-glib.c:
4075         * test/glib/test-service-glib.xml: Update tests for new error
4076         setting bits, also add async tests (patch from Ross Burton).
4077
4078         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4079         DBUS_GLIB_THREADS_LIBS.
4080
4081         * glib/dbus-gproxy.c (get_name_owner)
4082         (dbus_g_pending_call_end_valist): Ditto.
4083
4084         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4085         domain (GQuark) to DBusGErrorInfo.  
4086         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4087         quark in error_metadata.  Take message interface as default
4088         error message interface.
4089         (gerror_to_dbus_error_message): Pass message interface.
4090         (dbus_set_g_error): Resurrected.
4091         (dbus_g_error_info_free): New function.
4092         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4093         of _peek to actually create the object class if it hasn't been
4094         created yet.
4095         (dbus_g_error_domain_register): New function.
4096
4097         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4098
4099         * glib/dbus-gparser.c (validate_signature): Ditto.
4100
4101         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4102         (dbus_g_error_domain_register): Prototype.
4103
4104         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4105         Update tests.
4106
4107 2005-06-29  Colin Walters  <walters@verbum.org>
4108
4109         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4110         DBUS_TYPE_G_OBJECT_PATH.
4111
4112         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4113         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4114         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4115         (dbus_g_object_path_get_g_type): New function.
4116         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4117         to DBUS_TYPE_G_OBJECT_PATH by default.
4118         (demarshal_proxy): Remove unused name variable.
4119         (demarshal_object_path, marshal_object_path): New functions.
4120         (demarshal_proxy_array, marshal_proxy_array): Delete.
4121         
4122         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4123         DBUS_TYPE_G_OBJECT_PATH to char *.
4124         (dbus_g_type_get_lookup_function): Map builtin
4125         DBUS_TYPE_G_OBJECT_PATH.
4126
4127         * test/glib/test-dbus-glib.c
4128         * test/glib/test-service-glib.c (my_object_objpath): 
4129         Adapt tests to new object path marshalling.
4130
4131 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4132
4133         * configure.in: force check for Python >= 2.4
4134
4135 2005-06-29  Colin Walters  <walters@verbum.org>
4136         
4137         Patch from Ross Burton <ross@openedhand.com>
4138         
4139         * glib/dbus-gobject.c (invoke_object_method): Unset object
4140         value in all cases, not only in async case.
4141
4142 2005-06-29  Colin Walters  <walters@verbum.org>
4143
4144         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4145         name_call for keeping track of any outgoing GetNameOwner call.
4146         Also add for_owner and associated.
4147         (struct _DBusGProxyManager): Add owner_names, which is hash table
4148         that maps a base name to a list of names it owns (that we're
4149         interested in).  Add pending_nameowner_calls which is a list of
4150         all outstanding GetNameOwner; avoids us having to iterate over
4151         every proxy.  Add unassociated_proxies which keeps track of name
4152         proxies with no associated name owner.
4153         (dbus_g_proxy_manager_unref): Destroy owner_names.
4154         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4155         name refcounts.
4156         (find_name_in_info, name_owner_foreach)
4157         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4158         (dbus_g_proxy_manager_monitor_name_owner)
4159         (dbus_g_proxy_manager_unmonitor_name_owner)
4160         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4161         New functions; they manipulate the owner_names mapping.
4162         (got_name_owner_cb): New function.
4163         (get_name_owner): New function, extracted from
4164         dbus_g_proxy_new_for_name_owner.
4165         (dbus_g_proxy_manager_register): For now we need to keep track of
4166         all NameOwnerChanged.  Also if the proxy is for a name, if we
4167         don't already know the name owner, queue a new GetNameOwner
4168         request and add it to our list of unassociated proxies.  Otherwise
4169         inc the refcount.
4170         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4171         cancel any pending GetNameOwner call, etc.
4172         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4173         the owner_names mapping to look up the current names for the
4174         signal source, and dispatch to any proxies for that name.
4175         (dbus_g_proxy_new): Initialize new members.
4176         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4177         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4178         (dbus_g_pending_call_end_valist): New function, extracted from
4179         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4180         but want to use the GLib infrastructure.  Also note how many
4181         arguments in reply were over.
4182         (dbus_g_pending_call_end): New function, just call
4183         dbus_g_pending_call_end_valist.
4184         (dbus_g_proxy_end_call_internal): Just call
4185         dbus_g_pending_call_end_valist.
4186
4187         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4188         of builtin marshaller for STRING_STRING_STRING.
4189
4190         * test/glib/test-dbus-glib.c: 
4191         * test/glib/test-service-glib.c:
4192         * test/glib/test-service-glib.xml:
4193         Extend tests to cover name proxies, destruction of owner proxies,
4194         etc.
4195         
4196         * glib/examples/example-signal-recipient.c
4197         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4198         
4199         * tools/dbus-send.c (main): Print D-BUS error name in addition
4200         to message.
4201
4202 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4203
4204         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4205         cmessage_function_handler): Patch from 
4206         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4207         by using the Py_GILState_Ensure/Release to synchronize with the
4208         python runtime.
4209         
4210 2005-06-28  Ray Strode  <rstrode@redhat.com>
4211
4212         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4213         babysitter helper process on last unref, bug #2813.
4214
4215 2005-06-27  Colin Walters  <walters@verbum.org>
4216
4217         * test/glib/test-dbus-glib.c: 
4218         * test/glib/test-service-glib.c:
4219         * test/glib/test-service-glib.xml:
4220         Test hash table signal emitting.
4221
4222         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4223         types to their fundamental basis types, since this is what
4224         marshallers operate on.  Also add an entry for VOID__BOXED.
4225         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4226
4227 2005-06-26  Havoc Pennington  <hp@redhat.com>
4228
4229         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4230         from Don Park
4231
4232 2005-06-26  Colin Walters  <walters@verbum.org>
4233
4234         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4235         (dbus_g_error_set): New public function from its ashes; used by
4236         both service-side method implementation and GLib bindings
4237         internals.
4238         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4239         (_dbus_glib_test): Add some tests.
4240
4241         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4242
4243         * test/glib/test-service-glib.c (my_object_throw_error): Use
4244         dbus_g_error_set.
4245
4246         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4247         errors thrown by dbus_g_error_set.
4248
4249         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4250
4251         * glib/dbus-gparser.c (validate_signature): Ditto.
4252
4253         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4254         (dbus_g_proxy_end_call_internal): Ditto.
4255
4256         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4257         converts DBUS_ERROR_x to DBUS_GERROR_x.
4258         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4259
4260         * doc/TODO: Remove error TODO.
4261
4262         * doc/dbus-tutorial.xml: Update with documentation about error
4263         handling.
4264
4265         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4266         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4267         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4268
4269 2005-06-22  Colin Walters  <walters@verbum.org>
4270         
4271         Patch from Ross Burton <ross@openedhand.com>
4272
4273         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4274
4275 2005-06-20  Colin Walters  <walters@verbum.org>
4276
4277         * configure.in: Add glib/examples.
4278
4279         * glib/Makefile.am: Add examples/
4280
4281         * glib/examples/.cvsignore
4282         * glib/examples/Makefile.am
4283         * glib/examples/example-client.c
4284         * glib/examples/example-service.c
4285         * glib/examples/example-service.xml
4286         * glib/examples/example-signal-emitter.c
4287         * glib/examples/example-signal-emitter.xml
4288         * glib/examples/example-signal-recipient.c:
4289         New files; GLib binding examples, ported from
4290         python/examples.
4291
4292 2005-06-20  Colin Walters  <walters@verbum.org>
4293
4294         * dbus/dbus-glib.h: 
4295         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4296         dbus_g_proxy_call.
4297
4298         * glib/dbus-binding-tool-glib.c: 
4299         * doc/dbus-tutorial.xml: 
4300         * test/glib/test-dbus-glib.c: Update for rename.
4301         
4302 2005-06-20  Colin Walters  <walters@verbum.org>
4303
4304         Patch suggested by Ross Burton <ross@openedhand.com>
4305
4306         * glib/dbus-gobject.c (export_signals): Free signal name.
4307         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4308         memory leak.  Add a bit of documentation.
4309         (dbus_g_method_return_error): Free context, and note we do
4310         so.
4311
4312 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4313
4314         * dbus/dbus-glib.h:
4315         * glib/dbus-gobject.c:
4316         * glib/dbus-gproxy.c:
4317         * glib/dbus-gvalue.c: Predeclare structs as 
4318         typedef struct _Something Something instead of 
4319         typedef struct Something Something, so we can 
4320         redeclare the prototypes. Other GNOME libraries 
4321         do this already.
4322
4323 2005-06-17  Colin Walters  <walters@verbum.org>
4324
4325         * tools/dbus-names-model.c (have_names_notify): Fix call
4326         to dbus_g_proxy_end_call.
4327         
4328 2005-06-17  Colin Walters  <walters@verbum.org>
4329
4330         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4331         spew warnings if we get malformed remote signals.
4332
4333         * glib/dbus-gobject.c (propsig_iterate): New function.
4334         (lookup_object_info): New function, extracted from
4335         lookup_object_and_method.
4336         (introspect_properties, introspect_signals): Delete; these
4337         are merged into write_interface.
4338         (write_interface): Write out signals and properties here;
4339         dump the org.gtk.object stuff and use the interface given
4340         in the introspection data blob.  Also fix up property XML.
4341         (lookup_values): New function.
4342         (introspect_interfaces): Gather a mapping from interface to a
4343         list of its methods, signals, and properties, then write out
4344         each interface.
4345         (lookup_object_and_method): Use lookup_object_info.
4346         (struct DBusGSignalClosure): Add interface.
4347         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4348         we can just use the constant data.
4349         (dbus_g_signal_closure_finalize): Don't free signal name.
4350         (signal_emitter_marshaller): Use interface from signal closure.
4351         (export_signals): Only export signals mentioned in introspection
4352         blob.
4353         (dbus_g_connection_register_g_object): Warn if we have no
4354         introspection data for an object.
4355         (funcsig_equal): Remove unused variable.
4356         (dbus_g_object_register_marshaller): Take varargs instead of
4357         list.
4358         (dbus_g_object_register_marshaller_array): New function,
4359         extracted from old dbus_g_object_register_marshaller.
4360
4361         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4362         signals and property data.
4363         (write_quoted_string): New function, extracted from generate_glue.
4364         (generate_glue): Write signals and properties to introspection
4365         blob.
4366
4367         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4368         exported_signals and exported_properties.
4369         (dbus_g_object_register_marshaller): Update prototype.
4370         (dbus_g_object_register_marshaller_array): Prototype.
4371         
4372         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4373
4374         * test/glib/test-service-glib.c: Add new test signals and method
4375         to emit them.
4376
4377         * test/glib/test-service-glib.xml: Add some test signals.
4378
4379         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4380         and my-object-marshal.h
4381         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4382         my-object-marshal.c.
4383         (my-object-marshal.c, my-object-marshal.h): Implement.
4384
4385         * test/glib/.cvsignore: Update.
4386
4387         * doc/TODO: Remove two GLib TODO items fixed by this
4388         patch.
4389
4390 2005-06-16  Colin Walters  <walters@verbum.org>
4391
4392         * doc/TODO: Update for GLib bindings.
4393         
4394 2005-06-16  Colin Walters  <walters@verbum.org>
4395
4396         * glib/dbus-binding-tool-glib.c:
4397         * glib/dbus-gobject.c:
4398         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4399         from Ross Burton, for his GLib bindings work.
4400
4401 2005-06-16  Colin Walters  <walters@verbum.org>
4402
4403         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4404         to iterate instead of walking to G_TYPE_INVALID.
4405
4406         Patch based on a patch from Ryan Gammon.
4407
4408 2005-06-16  Colin Walters  <walters@verbum.org>
4409
4410         * bus/bus.c (bus_context_new): Set parser to NULL
4411         after we unref it (Patch from Chris Boscolo, #2174).
4412         
4413 2005-06-16  Colin Walters  <walters@verbum.org>
4414
4415         * python/dbus_bindings.pyx.in: Import size_t,
4416         __int64_t, __uint64_t, and __signed.
4417
4418         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4419         Define cmsg struct, output it.
4420         (_dbus_read_credentials_unix_socket):
4421         Use cmsg struct.
4422         
4423         Patch from Joe Markus Clarke for FreeBSD support.
4424         
4425 2005-06-16  Colin Walters  <walters@verbum.org>
4426
4427         * tools/dbus-send.c (append_array): Use strtok.
4428         (append_dict): New function.
4429         (type_from_name): New function, extracted from main.
4430         (main): Handle sending dicts.
4431
4432         * tools/dbus-print-message.c (print_iter): Print dict
4433         entries.
4434         
4435 2005-06-16  Colin Walters  <walters@verbum.org>
4436
4437         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4438         values as the empty string (#2948).
4439         
4440 2005-06-16  Colin Walters  <walters@verbum.org>
4441
4442         * dbus/Makefile.am:
4443         * mono/doc/Makefile.am:
4444         * test/glib/Makefile.am:
4445
4446         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4447
4448 2005-06-16  Colin Walters  <walters@verbum.org>
4449
4450         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4451         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4452
4453         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4454         Increment pointer after swapping fixed array.  Add assertion
4455         for array length.
4456                 
4457 2005-06-15  Colin Walters  <walters@verbum.org>
4458
4459         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4460         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4461         
4462 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4463
4464         * NEWS: Update to 0.34
4465
4466 2005-06-15  David Zeuthen  <davidz@redhat.com>
4467
4468         * configure.in (LT_CURRENT): Revert back to 1 as the library
4469         hasn't changed and we've certainly not committed to protocol
4470         stability yet.  All this does is to break ABI. See commit note
4471         from hp@redhat.com 2005-05-05 for details.
4472         
4473 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4474
4475         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4476         (_dbus_connection_run_builtin_filters): New method
4477         (dbus_connection_dispatch): Run the builtin filters which in turn
4478         runs the peer filter which handles Ping messages.
4479
4480         * doc/TODO: 
4481          - Ping isn't handled: This patch fixes it
4482          
4483          - Add a test case for the Ping message: added TODO item
4484
4485 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4486
4487         * dbus/dbus-message.c:
4488         (dbus_message_has_path): New method
4489         (dbus_message_has_interface): New method
4490         (dbus_message_has_member): New method
4491
4492         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4493         New method
4494
4495         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4496         the keyring directory is private to the user
4497
4498         * doc/TODO:
4499          - The convenience functions in dbus-bus.h should perhaps have
4500          the signatures that they would have if they were autogenerated
4501          stubs. e.g. the acquire service function. We should also evaluate
4502          which of these functions to include, in light of the fact that
4503          GLib/Qt native stubs will probably also exist.: Punted
4504
4505          - add dbus_message_has_path(), maybe has_member/interface:
4506          fixed in this patch
4507
4508          - in dbus-keyring.c, enforce that the keyring dir is not
4509          world readable/writable: Fixed in this patch
4510
4511 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4512
4513         * dbus/dbus-marshal-validate.h: Added a new validation
4514         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4515         out of memory errors when validating signitures
4516
4517         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4518         in places where we previously used DBUS_VALID and a FALSE return 
4519         value to indicate OOM
4520         
4521         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4522         Use a stack to track the number of elements inside containers.  The 
4523         stack values are then used to validate that dict entries have only two
4524         elements within them.
4525         (validate_body_helper): check the reason for failure when validating
4526         varients
4527         
4528         * dbus/dbus-message.c (load_message): use 
4529         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4530         DBUS_VALID and a FALSE return value to indicate OOM
4531
4532         * doc/TODO: remove "- validate dict entry number of fields" as this
4533         patch fixes it
4534
4535 2005-06-14  David Zeuthen  <davidz@redhat.com>
4536
4537         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4538         watches (if applicable) and add new watches
4539
4540         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4541         (main): Setup SIGIO signal handler if using D_NOTIFY
4542
4543         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4544
4545         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4546         (merge_included): Also merge conf_dirs list
4547         (bus_config_parser_unref): Clear conf_dirs list
4548         (include_dir): Add directory to conf_dirs list
4549         (bus_config_parser_get_conf_dirs): New function
4550
4551         * bus/dir-watch.[ch]: New files
4552
4553         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4554
4555         * configure.in: Add checks for D_NOTIFY on Linux
4556
4557 2005-06-14  Colin Walters  <walters@verbum.org>
4558
4559         * glib/dbus-binding-tool-glib.c:
4560         * glib/dbus-gobject.c:
4561         * glib/dbus-gvalue.c: Fix indentation and brace style.
4562         
4563 2005-06-14  Ross Burton <ross@openedhand.com>.
4564
4565         * glib/dbus-glib.h: Make DBusGMethodInvocation
4566         a private structure.  Rearrange prototypes a bit.
4567         
4568         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4569         documentation for first_arg_type.
4570         
4571         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4572         here, add documentation.  Move dbus_g_method_return
4573         and dbus_g_method_return_error into public API
4574         section.
4575
4576 2005-06-14  Colin Walters  <walters@verbum.org>
4577
4578         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4579         Add missing return statements, noticed by Ross Burton.
4580         
4581 2005-06-13  Ross Burton <ross@openedhand.com>.
4582
4583         * glib/dbus-gobject.c: Handle errors on message
4584         demarshalling by sending error message back.
4585         * glib/dbus-gvalue.c: Initialize return variables.
4586
4587 2005-06-13  Colin Walters  <walters@verbum.org>
4588
4589         * glib/Makefile.am: Fix thinko in last patch.
4590
4591 2005-06-13  Colin Walters  <walters@verbum.org>
4592
4593         * glib/Makefile.am: Move dbus-gtype-specialized.c
4594         and dbus-gtype-specialized.h into a _HEADERS variable,
4595         install them.
4596
4597 2005-06-12  Colin Walters  <walters@verbum.org>
4598
4599         Async signals and various bugfixes and testing by
4600         Ross Burton <ross@openedhand.com>.
4601
4602         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4603         (dbus_gvalue_genmarshal_name_from_type)
4604         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4605         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4606         (dbus_g_value_types_init, dbus_gtype_from_signature)
4607         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4608         (dbus_gtypes_from_arg_signature): New function prototypes.
4609         (dbus_gvalue_demarshal): Take context and error arguments.
4610         (dbus_gvalue_demarshal_variant): New function.
4611         (dbus_gvalue_demarshal_message): New function.
4612         (dbus_gvalue_store): Delete.
4613
4614         * glib/dbus-gvalue.c:
4615
4616         File has been almost entirely rewritten; now we special-case
4617         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4618         hash tables correctly, etc.  Full support for recursive values
4619         is not yet complete.
4620
4621         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4622         argument of signal to G_TYPE_POINTER since we now pass a
4623         structure.
4624         (lookup_g_marshaller): Delete in favor of
4625         _dbus_gobject_lookup_marshaller.
4626         (marshal_dbus_message_to_g_marshaller): Use
4627         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4628         to handle remote signal callbacks.
4629         (dbus_g_proxy_new_from_proxy): New function; creates a new
4630         DBusGProxy by copying an existing one.
4631         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4632         (dbus_g_proxy_get_path): New functions.
4633         (dbus_g_proxy_marshal_args_to_message): New function;
4634         factored out of existing code.
4635         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4636         from a varargs array.
4637         (dbus_g_proxy_begin_call_internal): New function.
4638         (dbus_g_proxy_end_call_internal): New function.
4639         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4640         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4641         after collecting args into value array.
4642         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4643         invoke dbus_g_proxy_end_call_internal.
4644         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4645         end_call_internal.
4646         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4647         types.
4648         (array_free_all): New function.
4649         (dbus_g_proxy_add_signal): Take GTypes.
4650
4651         * glib/dbus-gobject.h:
4652         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4653         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4654         Prototype.
4655
4656         * glib/dbus-gobject.c: Add a global marshal_table hash which
4657         stores mappings from type signatures to marshallers.  Change lots
4658         of invocations of dbus_gtype_to_dbus_type to
4659         dbus_gtype_to_signature.
4660         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4661         (introspect_signals): Fix test for query.return_type.
4662         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4663         (invoke_object_method): Many changes.  Handle asynchronous
4664         invocations.  Convert arguments with
4665         dbus_gvalue_demarshal_message.  Handle errors.  Use
4666         DBusSignatureIter instead of strlen on args. Handle all arguments
4667         generically.  Special-case variants.
4668         (dbus_g_method_return, dbus_g_method_return_error): New function.
4669         (DBusGSignalClosure): New structure, closes over signal
4670         information.
4671         (dbus_g_signal_closure_new): New function.
4672         (dbus_g_signal_closure_finalize): New function.
4673         (signal_emitter_marshaller): New function; is special marshaller
4674         which emits signals on bus.
4675         (export_signals): New function; introspects object signals and
4676         connects to them.
4677         (dbus_g_object_type_install_info): Take GType instead of
4678         GObjectClass.
4679         (dbus_g_connection_register_g_object): Invoke export_signals.
4680         (dbus_g_connection_lookup_g_object): New function.
4681         (DBusGFuncSignature) New structure; used for mapping type
4682         signatures to marshallers.
4683         (funcsig_hash): New function; hashes DBusGFuncSignature.
4684         (funcsig_equal): New function; compares DBusGFuncSignature.
4685         (_dbus_gobject_lookup_marshaller): New function.
4686         (dbus_g_object_register_marshaller): New function; used to
4687         register a marshaller at runtime for a particular signature.
4688
4689         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4690
4691         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4692         which notes a server method implementation should be
4693         asynchronous.
4694
4695         * glib/dbus-binding-tool-glib.c
4696         (dbus_binding_tool_output_glib_server): Call
4697         dbus_g_value_types_init.
4698         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4699         variants specially.
4700         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4701         of a lookup function.
4702         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4703         (write_untyped_out_args): New method; write output arguments.
4704         (write_formal_declarations_for_direction): Function for
4705         writing prototypes.
4706         (write_formal_parameters_for_direction): Function for
4707         writing implementations.
4708         (write_typed_args_for_direction): Function for writing
4709         arguments prefixed with GTypes.
4710         (write_async_method_client): Write out async version
4711         of method.
4712
4713         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4714         (dbus_g_type_get_marshal_name): Move mapping from GType
4715         to marshal name into here.
4716         (dbus_g_type_get_c_name): Move into here.
4717         (compute_marshaller): Convert signature to type with
4718         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4719         (compute_marshaller_name): Ditto.
4720         (compute_marshaller): Handle async signal annotations.
4721         (gather_marshallers): Return if we don't have a known
4722         prefix.
4723         (generate_glue): Collect introspection blob here, and
4724         write all of the blob at the end.  This allows an object
4725         with multiple interfaces to work.
4726         Mark async methods in introspection blob.
4727
4728         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4729         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4730         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4731
4732         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4733         avoids people accidentally using DBUS_TYPE_* which should
4734         not be necessary anymore.
4735         Do include dbus-gtype-specialized.h, which are utilities
4736         for GLib container types.
4737         Add various #defines for types such as
4738         DBUS_TYPE_G_BOOLEAN_ARRAY.
4739         (DBusGValueIterator, DBusGValue): Define, not fully used
4740         yet.
4741         (dbus_g_value_get_g_type): Type for recursive value.
4742         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4743         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4744         (dbus_g_value_free): Prototypes.
4745         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4746         (dbus_g_proxy_set_interface): Prototype.
4747         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4748         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4749         types.
4750         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4751         Accessors.
4752         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4753         doing async invocations.
4754         (dbus_g_method_return, dbus_g_method_return_error):
4755         Prototypes.
4756         * doc/dbus-tutorial.xml: Update GLib section.
4757         
4758         * tools/dbus-viewer.c (load_child_nodes): Update
4759         for new invocation type of dbus_g_proxy_end_call.
4760         (load_from_service_thread_func): Ditto.
4761
4762         * tools/print-introspect.c (main): Ditto.
4763
4764         * tools/dbus-names-model.c (have_names_notify)
4765         (names_model_reload, names_model_set_connection)
4766         Use GTypes.
4767
4768         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4769         needed since Python bindings use GLib bindings.
4770
4771         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4772         Add --prefix argument.
4773
4774         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4775         unneeded --ignore-unsupported arg.
4776         
4777         * test/glib/test-service-glib.c: 
4778         * test/glib/test-service-glib.xml:
4779         * test/glib/test-dbus-glib.c: Add many more tests.
4780
4781 2005-06-06  David Zeuthen  <davidz@redhat.com>
4782
4783         * doc/TODO: Add item about need to remove deprecated functions.
4784
4785         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4786
4787         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4788         to repair the ABI which was broken with the last commit.
4789
4790 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4791
4792         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4793         (dbus_connection_disconnect): renamed to dbus_connection_close 
4794         for API symmetry with dbus_connection_open
4795         (_dbus_connection_open_internal): 
4796         s/dbus_connection_disconnect/dbus_connection_close
4797
4798         * dbus/dbus-bus.c (dbus_bus_get):
4799         s/dbus_connection_disconnect/dbus_connection_close
4800
4801         * bus/connection.c (bus_connections_unref, 
4802         bus_connections_setup_connection, bus_connections_expire_incomplete):
4803         s/dbus_connection_disconnect/dbus_connection_close
4804
4805         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4806         kill_client_connection_unchecked, check_hello_connection):
4807         s/dbus_connection_disconnect/dbus_connection_close
4808
4809         * bus/bus.c (new_connection_callback):
4810         s/dbus_connection_disconnect/dbus_connection_close
4811
4812         * tools/dbus-send.c (main):
4813         s/dbus_connection_disconnect/dbus_connection_close
4814
4815         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4816         s/dbus_connection_disconnect/dbus_connection_close
4817         
4818         * test/test-service.c (path_message_func, filter_func):
4819         s/dbus_connection_disconnect/dbus_connection_close
4820         
4821         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4822         
4823 2005-05-25  Colin Walters  <walters@verbum.org>
4824
4825         * dbus/dbus-protocol.h: Move various bus service #defines such
4826           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4827           dbus/dbus-shared.h.
4828         * dbus/dbus-shared.h: Various defines moved here.
4829         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4830
4831 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4832
4833         * python/__init__.py: Python bindings deserve a minor version
4834         update.  Upped to (0, 40, 2)
4835
4836 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4837
4838         * python/decorators.py: add explicitly_pass_message decorator
4839         for passing in the dbus message as keyword for edge case signal
4840         handling
4841
4842         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4843         to conform with what dbus expects for match rules
4844         (SignalMatchRule.execute): add the dbus message as a keyword
4845         if the signal handler has requested it
4846
4847         * python/examples/example/signal-recipient.py: added some more
4848         examples on how to hook up to signals
4849
4850 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4851
4852         * python/decorators.py: import dbus_bindings
4853
4854         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4855         SignalMatchNode): new classes that implement wildcard signal
4856         callback matching using a tree lookup. Heavily modified from a
4857         patch sent by Celso Pinto (fd.o bug #3241)
4858
4859         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4860         use new match classes to handle signals.
4861
4862 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4863         
4864         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4865
4866 2005-05-18  Havoc Pennington  <hp@redhat.com>
4867
4868         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4869         gettext. Not really worth requiring yet perhaps, but any
4870         production quality 1.0 would require it so we should go ahead and
4871         get things set up. We do have a couple token calls to
4872         bindtextdomain in the code already.
4873
4874 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4875
4876         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4877         when using recursive g_main_loops
4878
4879         * python/_dbus.py (class Bus): add the ProxyObjectClass
4880         alias for ProxyObject to make it easier for the Twisted 
4881         networking framework to integrate dbus.
4882
4883         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4884         alias for ProxyMethod to make it easier for the Twisted 
4885         networking framework to integrate dbus. 
4886
4887 2005-05-11  Ross Burton  <ross@openedhand.com>
4888
4889         * glib/dbus-glib-tool.c: Add --prefix argument.
4890         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4891         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4892         Add prefix argument.
4893         (generate_glue): Pass prefix argument down.
4894         (dbus_binding_tool_output_glib_server): Pass prefix to
4895         glib-genmarshal.
4896         
4897 2005-05-11  Colin Walters  <walters@verbum.org>
4898
4899         * tools/dbus-send.c (append_array): New function.
4900         (append_arg): Broken out from main.
4901         (main): Add cheesy hack to send arrays and variants.
4902         (usage): Update.
4903         * tools/dbus-print-message.c (print_iter): Broken out
4904         from main.
4905
4906 2005-05-11  Colin Walters  <walters@verbum.org>
4907
4908         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4909         New function, returns signature string for signature iter.
4910         * dbus/dbus-signature.h: Prototype it.
4911         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4912         New function, returns signature string for message iter.
4913         (dbus_message_iter_get_array_len): New function, returns
4914         length of array.
4915         (dbus_message_iter_get_fixed_array): Fix assertion; this
4916         function should be used when the iter is pointing to the
4917         contents of an array
4918         * dbus/dbus-message.h: Prototypes.
4919         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4920         New function; returns length of an array.
4921         * dbus/dbus-marshal-recursive.h: Prototype it.
4922         
4923 2005-05-11  Colin Walters  <walters@verbum.org>
4924
4925         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4926         compilation error.
4927         
4928 2005-05-08  Havoc Pennington  <hp@redhat.com>
4929
4930         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4931         daemon's pid, not the parent's pid, to the file descriptor.
4932         Reported by Taj Morton.
4933
4934 2005-05-05  Havoc Pennington  <hp@redhat.com>
4935
4936         * configure.in (LT_*): add notes on how the libtool versioning
4937         works to save thinking. Increment soname to indicate protocol
4938         breakage (though really the library interface hasn't changed I
4939         guess)
4940
4941         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4942         verify the GUID received from server matches what we were
4943         expecting, if we had an expectation
4944
4945         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4946         (_dbus_auth_get_guid_from_server): new function
4947         (send_begin): parse the OK args
4948
4949         * doc/dbus-specification.xml: add GUID to the auth protocol
4950
4951 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
4952
4953         * Fix my name in previous changelog ;)
4954
4955         * python/proxies.py (ProxyObject.__getattr__): add further patch
4956         from Anthony Baxter to throw an AttributeError when python 
4957         __special__ functions are called instead of marshling them over 
4958         the bus (Bug#1685 comment 3).
4959
4960 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
4961
4962         * python/Makefile.am: changed to use pyexecdir for the binding
4963         shared libraries (Bug#2494)
4964
4965         * python/exceptions.py: bring exceptions over from the bindings
4966         so they can be used in applications (Bug#2036)
4967         Make all exceptions derive from DBusException
4968
4969         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
4970         of classes so that print obj doesn't throw an exception (Bug #1685)
4971
4972 2005-05-03  Ross Burton  <ross@openedhand.com>
4973
4974         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
4975         Return if we get an error during registration.  Set up a
4976         weak reference on object to unregister if object is destroyed.
4977         (unregister_gobject): New function.
4978         
4979 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
4980
4981         * python/dbus_bindings.pyx.in: 
4982         - added new type classes for hinting to the marashaler what type 
4983         to send over the wire
4984         - added int16 and uint16 marshalers
4985         - Fixed a bug in the type constants that caused int32 to go out
4986         as uint16 over the wire
4987         * python/dbus.py: split up into different files and renamed _dbus.py
4988         * python/__init__.py, python/_util.py, python/decorators.py, 
4989         python/exceptions.py, python/proxies.py, python/services.py,
4990         python/types.py: new files split off from dbus.py
4991         * python/Makefile.am: Add new files, remove dbus.py and 
4992         install all python files to <python module dir>/dbus
4993         * python/examples/*: Added #!/usr/bin/env python to the top of
4994         every example.  Patch provided by Tatavarty Kalyan
4995
4996 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
4997
4998         * NEWS: Update to 0.33
4999
5000 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5001
5002         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5003         method for doing async calls
5004         (_pending_call_notification): New C function for handling pendning call
5005         callbacks
5006         (set_notify): New method for setting pending call notification
5007         
5008         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5009         Async capabilities added to remote method calls
5010         (Sender): class removed
5011         (RemoteService): class removed
5012         (ObjectTree): class removed for now
5013         (RemoteObject): Renamed to ProxyObject
5014         (RemoteMethod): Renamed to ProxyMethod
5015         (method): Decorator added for decorating python methods as dbus methods
5016         (signal): Decorator added for decorating python methods as signal emitters
5017         (ObjectType): Metaclass added for generating introspection data and the
5018         method callback vtable
5019         (Interface): Wrapper class added to wrap objects in a dbus interface
5020         (Object): Uses ObjectType as its metaclass and exports Introspect
5021         of the org.freedesktop.DBus.Introspectable interface
5022         (ValidationException, UnknownMethodException): new exceptions
5023
5024         * python/examples/*: Modified to fit with the new bindings
5025
5026 2005-04-23  Havoc Pennington  <hp@redhat.com>
5027
5028         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5029         reported by Tony Houghton
5030
5031         * test/test-service.c (main): test
5032         dbus_connection_get_object_path_data()
5033
5034         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5035         the exact_match
5036         (_dbus_object_tree_get_user_data_unlocked): new function used by
5037         dbus_connection_get_object_path_data()
5038         (do_register): add assertion test for get_user_data_unlocked
5039         (object_tree_test_iteration): more tests
5040
5041         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5042         new function from Dan Reed to let you get the user data from 
5043         dbus_connection_register_object_path()
5044
5045 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5046
5047         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5048         in numerous places that did not account for the NULL terminator
5049         (signature_from_seed): changed the manual string copy loop to 
5050         just use strcpy instead
5051         make check should now pass
5052
5053 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5054
5055         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5056         so that it allows messages that are not signals to pass in 
5057         NULL as the interface.
5058
5059 2005-04-18  David Zeuthen  <davidz@redhat.com>
5060
5061         * glib/dbus-gmain.c (io_handler_destroy_source): 
5062         (timeout_handler_destroy_source, connection_setup_free): 
5063         Also unref the source to avoid memory leaks.
5064
5065 2005-04-13  David Zeuthen  <davidz@redhat.com>
5066
5067         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5068         more reasonable, yet still totally arbitrary, value :-). 
5069
5070 2005-04-13  David Zeuthen  <davidz@redhat.com>
5071
5072         * doc/TODO: Added an "important for 1.0" item about selinux
5073         allow/deny messages
5074
5075 2005-04-13  David Zeuthen  <davidz@redhat.com>
5076
5077         * bus/selinux.c: Add c-file-style to top of file
5078         (log_audit_callback): Don't free the data here anymore
5079         (bus_selinux_check): Don't take spid and tpid since appending
5080         that to auxdata may OOM.
5081         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5082         to the caller if we are OOM by taking an error object.
5083         (bus_selinux_allows_send): -do-
5084
5085         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5086         and bus_selinux_allows_send
5087
5088         * bus/bus.c (bus_context_check_security_policy): Pass error and
5089         pass on OOM thrown by bus_selinux_allows_send()
5090
5091         * bus/services.c (bus_registry_acquire_service): Pass error and
5092         pass on OOM thrown by bus_selinux_allows_acquire_service()
5093
5094 2005-04-13  Havoc Pennington  <hp@redhat.com>
5095
5096         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5097         message at a time to avoid monopolizing the main loop, bug 
5098         #2953 from Benjamin Otte
5099
5100 2005-04-09  Havoc Pennington  <hp@redhat.com>
5101
5102         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5103         possible overlap, fix from Daniel Reed
5104         (fixup_alignment): fix signedness warnings
5105         (_dbus_string_append_unichar): ditto
5106
5107 2005-04-09  Havoc Pennington  <hp@redhat.com>
5108
5109         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5110
5111         * glib/dbus-glib-tool.c (main): fix warning
5112
5113         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5114
5115         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5116         add a new function that can be used in simple applications that
5117         don't have a main loop and are willing to block
5118
5119 2005-04-05  David Zeuthen  <davidz@redhat.com>
5120
5121         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5122
5123         * glib/dbus-gmain.c:
5124         (io_handler_destroy_source): Remove from list of IO handlers
5125         of the ConnectionSetup object
5126         (timeout_handler_destroy_source): -do- for timeout handlers
5127         (io_handler_source_finalized): Don't remove from list since
5128         we now do that in io_handler_destroy_source(). Renamed from
5129         io_handler_source_destroyed
5130         (timeout_handler_source_destroyed): -do- for timeout handlers
5131         (connection_setup_free): It is now safe to iterate over all
5132         IO and timeout handlers as the _destroy_source removes them
5133         from the list synchronously
5134
5135 2005-03-30  Havoc Pennington  <hp@redhat.com>
5136
5137         * configure.in: change check to gtk 2.4
5138
5139         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5140         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5141         to 2.4
5142
5143 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5144
5145         * News: Update 0.32
5146
5147         * HACKING: Fixed realease instructions.  configure.in should be updated to
5148           the next release by the person who made the last release.
5149
5150 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5151
5152         * python/lvalue_cast_post_process.py - removed.  Patch has been
5153           submitted to Pyrex maintainers that fixes gcc4.0 errors
5154
5155         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5156
5157 2005-03-24  Daniel Reed  <n@ml.org>
5158
5159         * tools/Makefile.am: Make print-introspect and
5160         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5161
5162 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5163
5164         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5165
5166         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5167           had in Red Hat packages for a while but for some reason never 
5168           got merged upstream
5169           (_dbus_is_a_number): New checks if a string
5170           can be converted to a number and does the conversion if it can
5171           (_dbus_user_database_lookup): Add check to see if the given username
5172           is a udi.  This allows udi's to be used instead of usernames in the
5173           config file.
5174           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5175           is a gdi.  This allows gdi's to be used instead of groupnames in the
5176           config file.
5177
5178 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5179
5180         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5181           code so that it compiles with gcc4.0
5182
5183         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5184           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5185           results back to dbus_binding.c
5186
5187 2005-03-20  Colin Walters  <walters@verbum.org>
5188
5189         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5190
5191         * configure.in: Require GTK+ 2.6.
5192         
5193 2005-03-20  Colin Walters  <walters@verbum.org>
5194
5195         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5196
5197 2005-03-17  Tom Parker  <palfrey@tevp.net>
5198
5199         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5200         print DBUS_UID_UNSET; instead print passed username.  Also
5201         be sure to actually use gid looked up in cache.
5202         
5203         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5204         for DBUS_GID_UNSET and groupname.
5205
5206 2005-03-17  Colin Walters  <walters@verbum.org>
5207
5208         * bus/print-introspect.c: Move to tools/.
5209         * bus/run-with-tmp-session-bus.sh: Ditto.
5210         
5211         * glib/Makefile.am (dbus-glib-bindings.h): Move
5212         generation to tools/Makefile.am.
5213
5214         * test/glib/run-test.sh: Update to handle move
5215         of run-with-tmp-session-bus.sh.
5216
5217         * test/glib/test-service-glib.c: Update to handle
5218         move of dbus-glib-bindings.h.
5219
5220         * tools/print-introspect.c: Moved here
5221         from bus/, and ported to GLib bindings.
5222
5223         * tools/run-with-tmp-session-bus.sh: Moved here
5224         from bus/.
5225
5226         * tools/Makefile.am: Generate dbus-glib-bindings.h
5227         and dbus-bus-introspect.xml here.
5228
5229         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5230         Update.
5231
5232 2005-03-17  Colin Walters  <walters@verbum.org>
5233
5234         * bus/driver.c (write_args_for_direction): Use
5235         _dbus_string_get_const_data to retrieve string;
5236         _dbus_string_get_const_data_len doesn't actually return
5237         a NULL-terminated substring.
5238
5239         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5240         (main): Change to use org_freedesktop_DBus_request_name
5241         instead of using g_proxy_begin_call/end_call.
5242
5243 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5244
5245         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5246         generating the finalizer.  Fixes from Ben Maurer.
5247
5248 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5249
5250         * mono/BusDriver.cs: Update method names: ListServices
5251         becomes ListNames; GetOwner becomes GetNameOwner.
5252
5253         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5254         onto the eval stack when removing the delegate.
5255
5256 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5257
5258         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5259         LT_CURRENT.  Set it to the autoconf variable.
5260                                                                                 
5261         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5262         classes that disconnects the signal handler delegate from the
5263         service object.  Fixes a big leak of proxy objects on the
5264         client side of things.  Patch from Ben Maurer
5265         <bmaurer@ximian.com>
5266
5267 2005-03-12  Colin Walters  <walters@verbum.org>
5268
5269         * bus/driver.c (write_args_for_direction): New function,
5270         parses a type signature into arguments and outputs to
5271         XML.
5272         (bus_driver_handle_introspect): Use it instead of
5273         hardcoding XML for certain signatures.
5274         
5275         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5276         dependency on dbus-daemon.
5277
5278         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5279         argument, pass it to dbus_binding_tool_output_glib_client.
5280
5281         * glib/dbus-binding-tool-glib.c
5282         (generate_client_glue): Protect against multiple inclusion.
5283         (dbus_binding_tool_output_glib_client): Add
5284         G_BEGIN_DECLS/G_END_DECLS.
5285
5286         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5287         Change to just take iface prefix directly.
5288         (write_formal_parameters): Clarify error message.
5289         (check_supported_parameters): New function; checks to see type
5290         signatures of method parameters are supported.
5291         (generate_client_glue): Handle ignore_unsupported flag.
5292         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5293         parameter.
5294
5295         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5296         --ignore-unsupported by default until glib bindings
5297         support arrays.
5298
5299 2005-03-11  Colin Walters  <walters@verbum.org>
5300
5301         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5302         install it.
5303
5304         * bus/print-introspect.c: New file; prints introspection
5305         data for a given name and object path.
5306
5307         * bus/run-with-tmp-session-bus.sh: New file, refactored
5308         from test/glib/run-test.sh.  Creates a temporary session
5309         bus and runs another program.
5310
5311         * test/glib/run-test.sh: Refactor to invoke
5312         run-with-tmp-session-bus.sh.
5313
5314         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5315         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5316         macros instead of hardcoding.
5317
5318         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5319
5320 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5321
5322         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5323         this unref; it doesn't match up evenly in some codepaths.
5324         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5325         this evenly matches with the ref near the top of this function.
5326
5327 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5328
5329         * dbus/dbus-object-tree.c
5330         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5331         and we try to unregister a path that's not registered, still go
5332         through the process of unlocking and don't just return.
5333
5334 2005-03-09  Colin Walters  <walters@verbum.org>
5335
5336         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5337         to this are generated for client-side wrappers.  Invokes a
5338         D-BUS method and returns reply values.  
5339
5340         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5341         function; writes signature string for argument direction.
5342         (write_args_for_direction): Change to pass input values directly
5343         instead of via address, and fix indentation.
5344         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5345         make generated wrappers inlineable.
5346
5347         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5348         note about using dbus_type_is_fixed.
5349
5350         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5351         dbus/dbus-signature.c as dbus_type_is_fixed.
5352
5353         All callers updated.
5354
5355         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5356         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5357
5358         * dbus/dbus-signature.h: Prototype.
5359
5360         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5361         error printf code.
5362
5363         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5364         appropriate instead of just freeing it.
5365         (main): Free returned strings using g_free.
5366
5367         * test/glib/Makefile.am (test-service-glib-glue.h)
5368         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5369
5370         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5371         simply maps a simple D-BUS type to GType.
5372         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5373         GType.
5374         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5375         initialize the value with it.
5376         (dbus_gvalue_binding_type_from_type): Unused, delete.
5377         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5378         various types instead of unmarshalling to value data directly.
5379         Remove can_convert boolean.
5380         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5381         returning directly instead of using can_convert boolean.
5382         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5383         Stores a GValue in a pointer to a value of its corresponding C
5384         type.
5385
5386         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5387         add dbus_gvalue_store.
5388
5389 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5390
5391         Fix a bunch of lifecycle and memory management problems
5392         in the mono bindings.
5393
5394         * mono/Arguments.cs (Arguments): Implement IDisposable
5395
5396         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5397         strictly a static class.
5398
5399         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5400         delegates into this file.
5401         (Connection): Implement IDisposable.
5402         (Dispose): Disconnect the connection and set the raw connection
5403         pointer to IntPtr.Zero.
5404         (~Connection): Call Dispose().
5405         (RegisterObjectPath): Added.  Manages the registration of object
5406         paths so we can cleanly disconnect them at dispose/finalize time.
5407         (UnregisterObjectPath): Ditto.
5408         (set_RawConnection): Unregister all of the object paths when
5409         changing the underlying DBusConnection.  Add them back onto the
5410         new connection, if any.
5411
5412         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5413         more unmanaged resources anymore, so it's not necessary.  Move all
5414         the DBusObjectPathVTable stuff out of here.
5415         (Handler): Save references to our delegates so that they don't get
5416         finalized.  Call Connection.RegisterObjectPath() instead of
5417         dbus_connection_register_object_path() directly.
5418         (Message_Called): Dispose the message after we're finished with
5419         it.
5420
5421         * mono/Message.cs (Message): Implement IDisposable.
5422         (Dispose): Dispose the Arguments, and set the RawMessage to
5423         IntPtr.Zero.
5424         (SendWithReplyAndBlock): We own the ref to the reply that comes
5425         back from dbus_connection_send_with_reply_and_block() so add a
5426         comment about that and unref it after we've constructed a managed
5427         MethodReturn class around it.  Fixes a big, big leak.
5428
5429         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5430         method.
5431         (BuildSignalHandler): After we've sent the Signal message, dispose
5432         of it.
5433         (BuildMethod): Dispose of the method call and reply messages after
5434         we've sent the message and extracted the data we want from the
5435         reply.
5436
5437         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5438         anymore.
5439         (Service_FilterCalled): Dispose of the message after we're
5440         finished with it.
5441
5442 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5443
5444         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5445         After we attach our pending call to the connection, unref
5446         it.  Fixes a leak.
5447  
5448         * mono/Connection.cs (set_RawConnection): Disconnect our
5449         filter and match callbacks from the old connection and
5450         reconnect them to the new connection, if any.
5451
5452         * mono/DBusType/Array.cs: "Code" is a static member, so
5453         don't use "this" to refer to it.  Fix for stricter checking
5454         in Mono 1.1.4.
5455  
5456         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5457         object path that we pass into unmanaged code.
5458  
5459         * mono/DBusType/String.cs (Append): Don't leak the string
5460         that we pass into unmanged code.
5461
5462 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5463         * NEWS: Update for 0.31
5464
5465         * configure.in: Release 0.31
5466         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5467
5468         * qt/Makefile.am: fixed build
5469
5470         * dbus/Makefile.am: soname bump for libdbus
5471
5472         * glib/Makefile.am: soname bump for libdbus-glib
5473
5474 2005-03-05  Havoc Pennington  <hp@redhat.com>
5475
5476         * dbus/dbus-sysdeps.c:
5477         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5478         value
5479         (_dbus_generate_random_bytes_buffer): fix return value
5480
5481         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5482         checks actually work, from Tom Parker <fdo@tevp.net>
5483
5484 2005-03-01  Colin Walters  <walters@verbum.org>
5485
5486         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5487         functions copied from dbus-glib-tool.c.
5488         (main): Convert lots of error code to use them.
5489         Also add some testing for introspection bits.
5490
5491 2005-03-01  Colin Walters  <walters@verbum.org>
5492         
5493         * doc/TODO: Remove introspection signature TODO.
5494
5495 2005-02-27  Colin Walters  <walters@verbum.org>
5496
5497         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5498         Change return value to const char * instead of int so we can do
5499         full signatures.
5500         (struct PropertyInfo, struct ArgInfo): Store char *.
5501         (property_info_new, arg_info_new): Update parameters, strdup.
5502         (property_info_unref, arg_info_unref): Free.
5503
5504         * glib/dbus-gidl.h: Update prototypes.
5505
5506         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5507         (validate_signature): New function, just validates signature and
5508         sets GError.
5509         (parse_property, parse_arg): Invoke validate_signature.  Store
5510         signature instead of just type code.
5511
5512         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5513         function to return a primary type for a signature, dropping
5514         information about types in container types.
5515         (dbus_gvalue_genmarshal_name_from_type)
5516         (dbus_gvalue_binding_type_from_type)
5517         (dbus_gvalue_ctype_from_type): Update to take full signature
5518          instead of type code.
5519         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5520
5521         * glib/dbus-gvalue.h: Update prototypes for above.
5522
5523         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5524         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5525         (introspect_properties, introspect_signals, write_interface):
5526         Update to handle signatures, and remove usage of
5527         _dbus_gutils_type_to_string.
5528         (handle_introspect): Print out type codes instead of e.g. "string"
5529         in hardcoded introspection XML; also use x_AS_STRING constants
5530         instead of hardcoding in string.
5531
5532         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5533         to string.  Remove usage of _dbus_gutils_type_to_string.
5534
5535         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5536
5537         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5538         deletion.
5539         
5540         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5541         (compute_marshaller_name, generate_glue): Handle signature change
5542         to string.
5543         (write_formal_parameters, write_args_for_direction): Ditto, and
5544         remove FIXME.
5545
5546         * tools/dbus-tree-view.c (type_to_string): Delete.
5547         (info_set_func_text): Update to print full signatures.
5548
5549         * test/glib/test-service-glib.xml: Change types to new
5550         introspection format.
5551
5552 2005-02-26  Havoc Pennington  <hp@redhat.com>
5553
5554         * doc/TODO: remove the "guid" item
5555
5556         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5557         (with_bus_thread_func): use open_private
5558
5559         * dbus/dbus-connection.c (dbus_connection_open_private): new
5560         function that works like the old dbus_connection_open()
5561         (dbus_connection_open): now returns an existing connection if
5562         possible
5563
5564         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5565         through the GUID to the transport
5566
5567         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5568         GUID in hex-encoded form.
5569
5570         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5571         pass GUID argument in to the transport
5572
5573         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5574         guid argument
5575
5576         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5577
5578         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5579
5580 2005-02-25  Havoc Pennington  <hp@redhat.com>
5581
5582         * doc/dbus-specification.xml: document the GUID thing
5583
5584         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5585         globally unique ID for the server, and put a "guid=hexencoded"
5586         field in the address
5587
5588         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5589
5590         * dbus/dbus-message.c: ditto
5591
5592         * dbus/dbus-dataslot.c: ditto
5593
5594         * dbus/dbus-list.c: ditto
5595
5596         * dbus/dbus-internals.h: wait, just include
5597         dbus-threads-internal.h here
5598         
5599         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5600         use in main library
5601
5602         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5603
5604 2005-02-24  Colin Walters  <walters@verbum.org>
5605
5606         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5607
5608 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5609
5610         * glib/Makefile.am: added dbus-gobject.h to sources list
5611         so distcheck doesn't fail
5612         
5613 2005-02-24  Havoc Pennington  <hp@redhat.com>
5614
5615         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5616         you must disconnect before unref, since locking and other things
5617         are screwed up otherwise. Fix assorted other locking stuff.
5618
5619         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5620         fix compilation
5621
5622         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5623         into a private header and don't export from the library
5624
5625         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5626
5627 2005-02-24  Colin Walters  <walters@verbum.org>
5628         
5629         * dbus/dbus-signature.c: New file; implements various functions
5630         related to type signatures.  Includes an interator for parsing,
5631         validation functions.
5632         (dbus_type_is_basic): Moved here from
5633         dbus-marshal-basic.c:_dbus_type_is_basic.
5634         (dbus_type_is_container): Moved here from
5635         dbus-marshal-basic.c:_dbus_type_is_container.
5636
5637         All callers of _dbus_type_is_container and _dbus_type_is_basic
5638         updated, and include dbus-signature.h.
5639
5640         * dbus/dbus-signature.h: New file; prototypes for the above.
5641
5642         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5643         dbus-signature.h.
5644
5645         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5646         function factored out of _dbus_first_type_in_signature.
5647         (_dbus_first_type_in_signature_c_str): New function; returns first
5648         type code for a type signature character.
5649
5650         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5651         handle function moves.
5652
5653         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5654
5655         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5656         function; skips to next complete type in type signature.
5657         Implemented using previous skip_one_complete_type.  Now
5658         skip_one_complete_type just delegates to
5659         _dbus_type_signature_next.
5660
5661         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5662         to dbus-signature.c
5663         (_dbus_type_is_container): Ditto.
5664
5665         * doc/dbus-specification.xml: Update introspection sample to
5666         use real type signatures.
5667
5668         * dbus/dbus-test.h: Prototype signature test.
5669
5670         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5671         signature tests.
5672
5673         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5674
5675 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5676
5677         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5678         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5679
5680 2005-02-21  Colin Walters  <walters@verbum.org>
5681
5682         * dbus/dbus-test-main.c (main): Take optional specific test
5683         argument.
5684
5685         * dbus/dbus-test.c (run_test): New function, runs a test function
5686         with no data directory.
5687         (run_data_test): Like above, but takes data directory.
5688         (dbus_internal_do_not_use_run_tests): Take
5689         specific test argument.  Replace lots of cut n' paste code
5690         with run_test and run_data_test.
5691
5692         * dbus/dbus-test.h: Update prototype for
5693         dbus_internal_do_not_use_run_tests.
5694
5695 2005-02-20  Havoc Pennington  <hp@redhat.com>
5696
5697         Fix bugs reported by Daniel P. Berrange
5698         
5699         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5700         (protected_change_watch): new function
5701         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5702         (_dbus_server_add_watch): change to work like the
5703         dbus-connection.c equivalents; like those, probably kind of
5704         busted, but should at least mostly work for now
5705         (dbus_server_disconnect): drop the lock if we were already
5706         disconnected, patch from Daniel P. Berrange
5707
5708         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5709         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5710         same stuff
5711
5712         * doc/TODO: todo about unscrewing this mess
5713
5714 2005-02-19  Colin Walters  <walters@verbum.org>
5715
5716         * glib/dbus-binding-tool-glib.c
5717         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5718
5719         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5720         as errno.h and sys/stat.h.
5721         (lose): New function, prints error with
5722         newline and exits.
5723         (lose_gerror): Similar, but takes GError for message.
5724         (main): Add --output argument to specify output file to write to,
5725         instead of always printing to stdout.  In this mode, determine
5726         timestamps on source files to see whether any are newer than the
5727         target file.  If not, exit.  Also convert a number of error
5728         messages to use lose (since it's shorter), and switch to using
5729         g_io_channel_shutdown.
5730
5731 2005-02-19  Havoc Pennington  <hp@redhat.com>
5732
5733         * glib/dbus-gobject.c
5734         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5735
5736         * glib/dbus-glib.c: fix doxygen warnings
5737
5738         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5739         is found on an <arg>
5740
5741 2005-02-17  Colin Walters  <walters@verbum.org>
5742
5743         * glib/dbus-gobject.h: Don't export
5744         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5745         
5746         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5747         (invoke_object_method): Handle it.
5748
5749         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5750         Handle rename.
5751         
5752 2005-02-17  Colin Walters  <walters@verbum.org>
5753
5754         * bus/.cvsignore, doc/.cvsignore
5755         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5756         Update.
5757
5758 2005-02-17  Colin Walters  <walters@verbum.org>
5759         
5760         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5761         Rename to DBUS_SERVICE_DBUS.
5762         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5763         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5764         Change the value from "org.freedesktop.Local"
5765         to "org.freedesktop.DBus.Local".
5766         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5767         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5768         DBUS_INTERFACE_INTROSPECTABLE.
5769         Change the value from "org.freedesktop.Introspectable"
5770         to "org.freedesktop.DBus.Introspectable".
5771         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5772         DBUS_INTERFACE_PROPERTIES.
5773         Change the value from "org.freedesktop.Properties"
5774         to "org.freedesktop.DBus.Properties".
5775         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5776         DBUS_INTERFACE_PEER.
5777         Change the value from "org.freedesktop.Peer"
5778         to "org.freedesktop.DBus.Peer".
5779         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5780         DBUS_INTERFACE_LOCAL.
5781         Change the value from "org.freedesktop.Local"
5782         to "org.freedesktop.DBus.Local".
5783
5784         All other users of those constants have been changed.
5785
5786         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5787
5788         * glib/dbus-gobject.c (handle_introspect): Use constants.
5789
5790         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5791
5792 2005-02-17  Colin Walters  <walters@verbum.org>
5793
5794         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5795         (parse_node, parse_interface, parse_method, parse_signal)
5796         (parse_property, parse_annotation): Lose if we're currently in an
5797         annotation.
5798         (parse_annotation): New function.
5799         (parser_start_element, parser_end_element): Handle annotation.
5800         (parse_method, parse_interface): Remove support for c_name attribute,
5801         switch to annotations.
5802
5803         * glib/dbus-gidl.h (interface_info_get_binding_names)
5804         (method_info_get_binding_names)
5805         (interface_info_get_binding_name, method_info_get_binding_name)
5806         (interface_info_set_binding_name, method_info_set_binding_name):
5807         Remove.
5808         (interface_info_get_annotations, method_info_get_annotations)
5809         (interface_info_get_annotation, method_info_get_annotation)
5810         (interface_info_add_annotation, method_info_add_annotation):
5811         Prototype.
5812
5813         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5814         for "bindings".
5815         (struct MethodInfo): Ditto.
5816         Straightfoward conversion of binding methods into annotation methods
5817         as prototyped.
5818
5819         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5820
5821         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5822
5823         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5824         Use new annotation API.
5825
5826         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5827         annotation element.
5828         
5829         * doc/dbus-specification.xml: Discuss introspection annotations,
5830         include list of well-known annotations.
5831
5832         * test/glib/test-service-glib.xml: Make validate against new DTD.
5833
5834 2005-02-17  Colin Walters  <walters@verbum.org>
5835
5836         This patch is based on initial work from
5837         Paul Kuliniewicz <kuliniew@purdue.edu>.
5838
5839         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5840         initialization of GValue from dbus type to here.
5841         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5842         for the "glib-genmarshal" program from a DBus type.
5843         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5844         into the C name for it we use in the glib bindings.
5845         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5846         glib C type (not GValue).
5847         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5848
5849         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5850         from dbus-gobject.c.
5851
5852         * glib/dbus-gutils.h: Prototype it.
5853
5854         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5855         (marshal_dbus_message_to_g_marshaller): Use new shared function
5856         dbus_glib_marshal_dbus_message_to_gvalue_array.
5857
5858         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5859         Will be changed once we have annotations.
5860
5861         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5862         GStaticRWLock.  Callers updated.
5863         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5864         (string_table_next): New function for iterating over zero-terminated
5865         string value array.
5866         (string_table_lookup): New function; retrieves specific entry in
5867         array.
5868         (get_method_data): New function; look up method data in object data chunk.
5869         (object_error_domain_prefix_from_object_info)
5870         (object_error_code_from_object_info): New functions, but not implemented yet.
5871         (method_interface_from_object_info): New function; retrieve interface name.
5872         (method_name_from_object_info): New function; retrieve method name.
5873         (method_arg_info_from_object_info): New function; retrieve argument data.
5874         (arg_iterate): New function; iterates over serialized argument data.
5875         (method_dir_signature_from_object_info): New function; returns a
5876         GString holding type signature for arguments for just one
5877         direction (input or output).
5878         (method_input_signature_from_object_info)
5879         (method_output_signature_from_object_info): New functions.
5880         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5881         converts dbus message arguments into a GValue array.  Used for both
5882         signal handling and method invocation.
5883         (struct DBusGlibWriteIterfaceData): New utility structure.
5884         (write_interface): New function; generate introspection XML for
5885         an interface.
5886         (introspect_interfaces): New function; gathers all interface->methods,
5887         generates introspection XML for them.
5888         (handle_introspect): Invoke introspect_interfaces.
5889         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5890         (lookup_object_and_method): New function; examines an incoming message
5891         and attempts to match it up (via interface, method name, and argument
5892         signature) with a known object and method.
5893         (gerror_domaincode_to_dbus_error_name): New function; converts a
5894         GError domain and code into a DBus error name.  Needs GError data
5895         added to object introspection to work well.
5896         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5897         GError.
5898         (invoke_object_method): New function to invoke an object method
5899         looked up via lookup_object_and_method.  Parses the incoming
5900         message, turns it into a GValue array, then invokes the marshaller
5901         specified in the DBusGMethodInfo.  Creates a new message with
5902         either return values or error message as appropriate.
5903         (gobject_message_function): Invoke lookup_object_and_method and
5904         invoke_object_method.
5905
5906         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5907         (enum DBusBindingOutputMode): New enum for binding output modes.
5908         (pretty_print): Print binding names.
5909         (dbus_binding_tool_error_quark): GError bits.
5910         (version): Fix typo.
5911         (main): Create GIOChannel for output.  Parse new --mode argument,
5912         possible values are "pretty-print", "glib-server", "glib-client".
5913         Use mode to invoke appropriate function.
5914         
5915         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5916
5917         * glib/dbus-glib-tool.h: New header, just includes GError bits
5918         for now.
5919
5920         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5921         maps binding style to name.
5922         (struct MethodInfo): Ditto.
5923         (get_hash_keys, get_hash_key): Utility function, returns keys for
5924         a GHashTable.
5925         (interface_info_new, method_info_new): Initialize bindings.
5926         (interface_info_unref, method_info_unref): Destroy bindings.
5927         (method_info_get_binding_names, method_info_get_binding_name)
5928         (interface_info_get_binding_names, interface_info_get_binding_name):
5929         Functions for retrieving binding names.
5930         (method_info_set_binding_name, interface_info_set_binding_name):
5931         Functions for setting binding names.
5932
5933         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5934         for glib binding generation.
5935
5936         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5937         and client-side glib glue generation.
5938
5939         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5940         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5941         dbus-glib-tool.h.
5942
5943         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5944         of using GClosureMarshal directly.
5945         (struct DBusGObjectInfo): Add n_infos member.
5946
5947         * test/glib/test-service-glib.xml: New file; contains introspection data
5948         for MyTestObject used in test-service-glib.c.
5949
5950         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
5951         (my_object_do_nothing, my_object_increment, my_object_throw_error)
5952         (my_object_uppercase, my_object_many_args): New test methods.
5953         (main): Use dbus_g_object_class_install_info to include generated object
5954         info.
5955
5956         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
5957         as well as client-side bindings.
5958
5959         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
5960         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
5961         using both the dbus_gproxy stuff directly as well as the generated bindings.
5962
5963 2005-02-15  Havoc Pennington  <hp@redhat.com>
5964
5965         * dbus/dbus-connection.c (dbus_connection_dispatch): always
5966         complete a pending call, don't run filters first.
5967
5968         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
5969         dbus_pending_call_steal_reply
5970
5971         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
5972         _dbus_connection_block_pending_call
5973         (dbus_pending_call_get_reply): change to steal_reply and return a
5974         ref
5975
5976         * dbus/dbus-connection.c
5977         (dbus_connection_send_with_reply_and_block): port to work in terms
5978         of DBusPendingCall
5979         (_dbus_connection_block_pending_call): replace block_for_reply
5980         with this
5981
5982 2005-02-14  Havoc Pennington  <hp@redhat.com>
5983
5984         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
5985         properly handle looking up group information by name; fix 
5986         from j@bootlab.org
5987
5988 2005-02-13  Havoc Pennington  <hp@redhat.com>
5989
5990         * dbus/dbus-connection.c (dbus_connection_return_message) 
5991         (dbus_connection_borrow_message): hold dispatch lock while message
5992         is outstanding
5993         (_dbus_connection_block_for_reply): hold dispatch lock while we
5994         block for the reply, so nobody steals our reply
5995         (dbus_connection_pop_message): hold the dispatch lock while we
5996         pluck the message
5997
5998 2005-02-13  Havoc Pennington  <hp@redhat.com>
5999
6000         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6001         (_dbus_connection_release_dispatch)
6002         (_dbus_connection_acquire_io_path)
6003         (_dbus_connection_release_io_path): make the mutex and condvar
6004         control access to the "acquired" flag. Drop the connection lock
6005         while waiting on the condvar. Hopefully these are baby steps in
6006         roughly the right direction.
6007
6008 2005-02-13  Havoc Pennington  <hp@redhat.com>
6009
6010         * dbus/dbus-connection.c: use separate mutexes for the condition
6011         variables; this is some kind of baseline for sanity, but the
6012         condition variables still aren't used correctly afaict
6013
6014 2005-02-13  Havoc Pennington  <hp@redhat.com>
6015
6016         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6017         fix a double-unlock
6018
6019         * dbus/dbus-connection.c
6020         (_dbus_connection_detach_pending_call_unlocked): add this
6021
6022         Initial semi-correct pass through to fix thread locking; there are
6023         still some issues with the condition variable paths I'm pretty
6024         sure
6025         
6026         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6027         lock/unlock calls
6028
6029         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6030         rename to add _unlocked
6031         (struct DBusConnection): move "dispatch_acquired" and
6032         "io_path_acquired" to use only one bit each.
6033         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6034         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6035         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6036         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6037         (_dbus_connection_remove_timeout) 
6038         (_dbus_connection_toggle_timeout): drop lock when calling out to
6039         user functions; done in a hacky/bad way.
6040         (_dbus_connection_send_and_unlock): add a missing unlock
6041         (_dbus_connection_block_for_reply): add a missing unlock
6042
6043         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6044         drop lock in a hacky probably unsafe way to call out to user
6045         function
6046
6047 2005-02-12  Havoc Pennington  <hp@redhat.com>
6048
6049         * tools/dbus-tree-view.c (info_set_func_text): display more
6050         details on args
6051
6052         * bus/driver.c (bus_driver_handle_list_services): list the bus
6053         driver
6054
6055         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6056
6057         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6058         (method_info_get_n_args): new function
6059
6060 2005-02-12  Havoc Pennington  <hp@redhat.com>
6061
6062         * bus/driver.c (bus_driver_handle_introspect): add introspection
6063         for bus driver
6064
6065 2005-02-12  Havoc Pennington  <hp@redhat.com>
6066
6067         * bus/driver.c: put the signature of each bus driver method in the
6068         table of handlers and check it on incoming calls; this isn't
6069         really useful, but going to add introspect support in a minute.
6070
6071 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6072
6073         * mono/Connection.cs: The unpredictability of finalizers in mono
6074         prevents us from deterministically disconnecting the filters from
6075         the Service class's finalizer, so move tracking of filters and
6076         matches here.  Add API for that.
6077
6078         * mono/Service.cs: Remove the code, add code which calls the
6079         methods now on the Connection class.
6080
6081 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6082
6083         * python/dbus.py (class Sender): added to support dbus signals better
6084         (Bus::add_signal_receiver): added expand_args parameter which defaults
6085         to True.  When expand args is True the signal handler will pass the 
6086         message arguments as parameters to the signal handler.  If False
6087         revert to previous behavior where the signal handler must get the
6088         argument list from the message.  This is to help port applications
6089         like HAL that have a tendancy to send variable length argument lists.
6090         self._match_rule_to_receivers is now a dict of dicts.
6091         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6092         removing it from a list
6093         (Bus::_signal_func): change signal handlers so that interface,
6094         signal_name, service, path and message are packed into a Sender
6095         object and that is passed to the handler.  If expand_args is True
6096         extract the args list from the message and append it to the parameter
6097         list
6098         
6099         * python/dbus_bindings.pyx.in (class Signature): added to support 
6100         signiature types
6101         (MessageIter::__init__): changed iteration limit to match D-BUS
6102         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6103         STRUCT and VARIENT type support
6104         (MessageIter::python_value_to_dbus_sig): made recursive to support
6105         recursive types
6106         (MessageIter::append*): added Signature, dict, tuple 
6107         support
6108
6109         * python/examples/example-client.py: added examples of getting tuples
6110         and dicts
6111
6112         * python/examples/example-service.py: added examples of sending tuples
6113         and dicts
6114
6115         * python/examples/example-signal-recipient.py: Fixed to handle new
6116         signal callback format
6117
6118 2005-02-10  Havoc Pennington  <hp@redhat.com>
6119
6120         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6121         (call dbus_g_proxy_add_signal)
6122
6123         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6124         escape the hostname
6125         (_dbus_server_new_for_domain_socket): escape the path
6126
6127         * dbus/dbus-address.c (dbus_address_escape_value): new
6128         (dbus_address_unescape_value): new
6129         (dbus_parse_address): unescape values
6130
6131         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6132
6133         * doc/dbus-specification.xml: explain how to escape values in
6134         addresses
6135
6136 2005-02-10  Havoc Pennington  <hp@redhat.com>
6137
6138         * dbus/dbus-message-factory.c (generate_special): modify test to
6139         avoid using a non-basic dict key
6140
6141         * dbus/dbus-marshal-validate-util.c: add test for the below
6142
6143         * doc/dbus-specification.xml: require that dict keys are a basic
6144         type
6145
6146         * dbus/dbus-marshal-validate.c
6147         (_dbus_validate_signature_with_reason): require that dict key is a
6148         basic type
6149
6150 2005-02-10  Havoc Pennington  <hp@redhat.com>
6151
6152         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6153         change to be _and_unlock instead of _unlocked
6154
6155         * dbus/dbus-connection.c
6156         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6157         have no_update so we can find this bug quickly in future
6158
6159 2005-02-10  Havoc Pennington  <hp@redhat.com>
6160
6161         * dbus/dbus-message-util.c (verify_test_message): tests for string
6162         array
6163
6164         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6165         support for arrays of string/signature/path
6166
6167 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6168
6169         * dbus/dbus-connection.c
6170         (_dbus_connection_queue_received_message_link,
6171         _dbus_connection_message_sent): Add the path to
6172         the verbose output.
6173         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6174         _dbus_connection_send_preallocated_unlocked(), updated the
6175         dispatch status, and unlocks.  Fixes a bug where certain
6176         situations (like a broken pipe) could cause a Disconnect message
6177         to not be sent, tricking the bus into thinking a service was still
6178         there when the process had quit.
6179         (_dbus_connection_send_preallocated): Call
6180         _dbus_connection_send_preallocated_and_unlock().
6181         (_dbus_connection_send_and_unlock): Added.  Calls
6182         _dbus_connection_send_preallocated_and_unlock().
6183         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6184         (dbus_connection_send_with_reply): Update the dispatch status and
6185         unlock.
6186
6187         * mono/Service.cs (~Service): Added.  Removes the filter so that
6188         we don't get unmanaged code calling back into a GCed delegate.
6189         (RemoveFilter); Added.
6190
6191 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6192
6193         * dbus/dbus-message.c (dbus_message_iter_open_container):
6194         - Removed check for iterator type being an array because
6195         get_arg_type does not work with writer iterators
6196         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6197
6198 2005-02-07  Havoc Pennington  <hp@redhat.com>
6199
6200         * doc/dbus-specification.xml: some more language cleanups; add
6201         stuff about how to deal with invalid protocol and extension
6202         points; add _ to allowed chars in auth commands; add EXTENSION_
6203         auth command prefix
6204
6205 2005-02-06  Havoc Pennington  <hp@redhat.com>
6206
6207         * s/expected/required/ in a couple places for clarity
6208
6209 2005-02-07  Colin Walters  <walters@verbum.org>
6210
6211         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6212         sender or proposed_recipient.
6213
6214 2005-02-06  Havoc Pennington  <hp@redhat.com>
6215
6216         * dbus/dbus-message-factory.c (generate_special): more tests
6217
6218         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6219         array length that exceeds the maximum
6220
6221 2005-02-05  Havoc Pennington  <hp@redhat.com>
6222
6223         * dbus/dbus-message-factory.c (generate_special): more test cases,
6224         increasing coverage
6225
6226         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6227         reason why a signature was invalid
6228
6229         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6230         skip the length of the string before we look at it in validation
6231
6232         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6233         equal_substring
6234
6235         * dbus/dbus-message.c (_dbus_message_loader_new): default
6236         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6237
6238 2005-02-05  Havoc Pennington  <hp@redhat.com>
6239
6240         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6241         if the signature of a variant was empty
6242         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6243         struct with no element type)
6244
6245         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6246         mangled messages to break things
6247
6248 2005-02-04  Havoc Pennington  <hp@redhat.com>
6249
6250         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6251         g_quark_try_string() so it actually can return 0
6252         (dbus_g_proxy_connect_signal): ditto
6253
6254 2005-02-04  Havoc Pennington  <hp@redhat.com>
6255
6256         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6257         bogus warning
6258         (tristring_from_message): assert cleanly on null path/interface
6259         (should not be possible though I decided later)
6260         (dbus_g_proxy_dispose): move proxy manager unregistration here
6261         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6262         g_return_if_fail() checks
6263
6264 2005-02-04  Havoc Pennington  <hp@redhat.com>
6265
6266         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6267
6268         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6269         (with some minor changes)
6270
6271         * doc/dbus-specification.xml: add deprecated attribute to
6272         introspection format
6273
6274 2005-01-31  Havoc Pennington  <hp@redhat.com>
6275
6276         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6277         think it's sort of right
6278
6279 2005-01-30  Havoc Pennington  <hp@redhat.com>
6280
6281         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6282
6283 2005-01-30  Havoc Pennington  <hp@redhat.com>
6284
6285         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6286
6287         * autogen.sh: change to autotools 1.9
6288
6289         * glib/dbus-gproxy.c: completely change how signals work
6290         (dbus_g_proxy_add_signal): new function to specify signature of a
6291         signal
6292         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6293         and g_warning if the incoming message has the wrong signature.
6294
6295 2005-01-30  Havoc Pennington  <hp@redhat.com>
6296
6297         * tools/dbus-names-model.c (have_names_notify): fix this
6298
6299         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6300         up the string array handling a bit 
6301
6302 2005-01-30  Havoc Pennington  <hp@redhat.com>
6303
6304         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6305         (dbus_g_pending_call_cancel): new function
6306
6307         * dbus/dbus-glib.h: move GType decls for connection/message here;
6308         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6309         here, just kind of rationalizing how we handle all that
6310
6311         * tools/dbus-names-model.c: new file for a tree model listing the
6312         services on a bus
6313
6314         * tools/dbus-tree-view.c (model_new): use proper typing on the
6315         model rows
6316
6317 2005-01-30  Havoc Pennington  <hp@redhat.com>
6318
6319         * glib/dbus-gmain.c: add a custom GSource back that just checks
6320         whether the message queue has anything in it; otherwise, there are 
6321         cases where we won't see messages in the queue since there was no 
6322         IO visible to the glib main loop
6323
6324         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6325         increase default message timeout to 25 seconds
6326
6327 2005-01-30  Havoc Pennington  <hp@redhat.com>
6328
6329         * test/glib/test-profile.c (no_bus_stop_server): remove the
6330         warning about the g_warning that I just fixed
6331
6332         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6333         custom source, seems to be a lot easier to understand and work
6334         better.
6335
6336 2005-01-30  Havoc Pennington  <hp@redhat.com>
6337
6338         I think this main loop thing is conceptually broken, but here are 
6339         some band aids. I'll maybe rewrite it in a minute.
6340         
6341         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6342         custom GSource, so don't pass it in; confusing
6343         (gsource_server_finalize, gsource_connection_finalize): add
6344         finalize handlers that remove all the watches.  
6345
6346 2005-01-30  Havoc Pennington  <hp@redhat.com>
6347
6348         * glib/dbus-gobject.c (introspect_properties): fix the XML
6349         generated
6350
6351         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6352         which effectively detects the use of freed messages
6353
6354         * glib/dbus-gobject.c (handle_introspect): modify and return the
6355         reply message instead of the incoming message
6356
6357         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6358         gee, maybe it should SEND THE XML instead of just making a string
6359         and freeing it again ;-)
6360
6361         * tools/dbus-print-message.c (print_message): improve printing of
6362         messages
6363
6364         * configure.in: add debug-glib.service to the output
6365
6366 2005-01-30  Havoc Pennington  <hp@redhat.com>
6367
6368         dbus-viewer introspected and displayed the bus driver
6369         
6370         * dbus/dbus-object-tree.c 
6371         (object_tree_test_iteration): add tests for a handler registered on "/"
6372
6373         * dbus/dbus-object-tree.c
6374         (_dbus_decompose_path): fix to handle path "/" properly
6375         (run_decompose_tests): add tests for path decomposition
6376         
6377         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6378         properly
6379
6380         * glib/dbus-gobject.c (handle_introspect): fix quotes
6381
6382         * test/glib/run-test.sh: support launching the bus, then running
6383         dbus-viewer
6384
6385         * test/glib/test-service-glib.c (main): put in a trivial gobject
6386         subclass and register it on the connection
6387
6388         * bus/driver.c (bus_driver_handle_introspect): implement
6389         introspection of the bus driver service
6390
6391         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6392         identifiers, doctype decl
6393
6394         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6395         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6396         returning the service unchanged.
6397         (bus_driver_handle_message): remove old check for reply_serial in
6398         method calls, now the message type deals with that
6399         (bus_driver_handle_message): handle NULL interface
6400
6401         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6402
6403         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6404         -1 for len
6405
6406         * tools/dbus-viewer.c: add support for introspecting a service on
6407         a bus
6408
6409         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6410         (dbus_g_pending_call_unref): add
6411
6412 2005-01-29  Havoc Pennington  <hp@redhat.com>
6413
6414         * tools/dbus-tree-view.c: add support for displaying properties.
6415         (run dbus-viewer with an introspect xml file as arg, then resize
6416         the window so the tree elements show up, not sure what that is)
6417
6418         * glib/dbus-gobject.c (handle_introspect): return
6419         org.freedesktop.Properties and org.freedesktop.Introspectable
6420         interfaces when we are introspected.
6421
6422         * doc/dbus-specification.xml: allow empty interface name when 
6423         Get/Set a property
6424
6425 2005-01-29  Havoc Pennington  <hp@redhat.com>
6426
6427         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6428         though it uses glib, it could be extended for any binding in
6429         principle
6430
6431         * glib/dbus-gobject.c (gobject_message_function): change to the
6432         new way properties work
6433
6434         * dbus/dbus-protocol.h: add the new interfaces
6435
6436         * doc/dbus-specification.xml: document the introspection format,
6437         Introspectable interface, and add an org.freedesktop.Properties
6438         interface.
6439
6440         * glib/dbus-gparser.c: add support for a <property> element
6441
6442         * glib/dbus-gidl.c: add PropertyInfo
6443
6444         * glib/dbus-gobject.c (handle_introspect): put the outermost
6445         <node> outside the signal and property descriptions.
6446         (introspect_properties): export properties as <property> rather
6447         than as method calls
6448
6449 2005-01-28  Havoc Pennington  <hp@redhat.com>
6450
6451         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6452         related to authentication protocol
6453
6454 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6455
6456         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6457                 - BUS_ACTIVATION -> BUS_STARTER
6458                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6459                 - class MessageIter (__init__): Added recursion checking 
6460                 so we throw a nice error instead of just disconnecting from the
6461                 bus.
6462                 (get): Added arg_type parameter for recursion.
6463                 Removed the nil type
6464                 Added signiture type placeholder (not implemented)
6465                 Added struct type placeholder (not implemented)
6466                 Added varient type placeholder (not implemented)
6467                 Commented out dict type for now     
6468                 (get_element_type): renamed from get_array_type
6469                 (get_*): changed to use the dbus_message_iter_get_basic API
6470                 (get_*_array): removed in favor of recursive get_array method
6471                 (get_array): new recursive method which calls get to marshal
6472                 the elements of the array
6473                 (value_to_dbus_sig): New method returns the corrasponding
6474                 dbus signiture to a python value
6475                 (append): Comment out dict handling for now
6476                 Handle lists with the new recursive API
6477                 Comment out None handling for now
6478                 (append_nil): removed
6479                 (append_*): changed to use dbus_message_iter_append_basic API
6480                 (append_*_array): removed in favor of recursive append_array 
6481                 method
6482                 (__str__): Make it easier to print out recursive iterators
6483                 for debugging
6484                 - class Message (__str__): moved type inspection to the
6485                 MessageIter class' __str__ method
6486                 (get_iter): Added an append parameter wich defaults to False
6487                 If True use the new API's to create an append iterator
6488
6489         * python/dbus.py: Update to use new bindings API
6490                 - TYPE_ACTIVATION -> TYPE_STARTER
6491                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6492                 - class ActivationBus -> class StarterBus
6493                 - class RemoteObject (__call__): get an append iterator
6494                 - (_dispatch_dbus_method_call): get an append iterator
6495                 - class Object (emit_signal): get an append iterator
6496
6497         * python/examples/: Fixed up the examples to work with the new API
6498                 
6499 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6500
6501         * configure.in: Bump version up to 0.30.
6502
6503         * HACKING: Add a release item to bump the version number up after 
6504         a release.
6505
6506 2005-01-28  Havoc Pennington  <hp@redhat.com>
6507
6508         * doc/dbus-specification.xml: update to describe 16-bit types and
6509         dict entries
6510
6511         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6512         assertion
6513
6514         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6515         type
6516
6517         * dbus/dbus-marshal-recursive.c: implement
6518
6519 2005-01-27  Havoc Pennington  <hp@redhat.com>
6520
6521         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6522
6523         * configure.in: find the right type for 16 and 32 bit ints as well
6524         as 64
6525
6526         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6527         the 16-bit types so people don't have to stuff them in 32-bit or
6528         byte arrays.
6529
6530 2005-01-27  Havoc Pennington  <hp@redhat.com>
6531
6532         * dbus/dbus-message.c: byteswap the message if you init an
6533         iterator to read/write from it
6534         
6535         * dbus/dbus-marshal-byteswap.c: new file implementing 
6536         _dbus_marshal_byteswap()
6537
6538         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6539
6540 2005-01-26  Havoc Pennington  <hp@redhat.com>
6541         
6542         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6543         build, apparently - nobody noticed?)
6544         
6545 2005-01-26  Havoc Pennington  <hp@redhat.com>
6546
6547         * dbus/dbus-marshal-recursive.h: remove todo comment
6548
6549 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6550
6551         * Land the mono binding changes to conform to the new APIs.
6552
6553         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6554         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6555
6556         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6557         type code as a string.
6558         (InitAppending): Rename dbus_message_append_iter_init() to
6559         dbus_message_iter_init_append().
6560
6561         * mono/BusDriver.cs: Rename ServiceEventHandler to
6562         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6563         Rename ServiceOwnerChanged to NameOwnerChanged.
6564
6565         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6566         underlying C call.
6567
6568         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6569
6570         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6571         dbus_bus_acquire_service() to dbus_bus_request_name().
6572
6573         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6574         of Type.UnderlyingSystemType to get the correct element type for
6575         the array.
6576         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6577         dbus_message_get_{element|arg}_type() instead of
6578         dbus_message_iter_init_array_iterator().
6579         (Append): Replace dbus_message_iter_append_array() with
6580         dbus_message_iter_open_container() and
6581         dbus_message_iter_close_container().
6582
6583         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6584         types have been removed.
6585         
6586         * mono/DBusType/*.cs: Replace calls of
6587         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6588         but specify the type in the DllImport extern declaration.  Ditto
6589         for dbus_message_iter_append_[type]() ->
6590         dbus_message_iter_append_basic().
6591
6592         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6593         NameOwnerChangedHandler.
6594
6595 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6596
6597         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6598                 - get_base_service -> get_unique_name
6599                 - bus_get_base_service -> bus_get_unique_name
6600                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6601                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6602                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6603                 - bus_activate_service -> bus_start_service_by_name
6604                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6605                 - bus_acquire_service -> bus_request_name
6606                 - dbus_bus_acquire_service -> dbus_bus_request_name
6607                 - bus_service_exists -> bus_name_has_owner
6608                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6609
6610         * python/dbus.py: Rename of methods
6611                 - activate_service -> start_service_by_name
6612                 - bus_acquire_service -> bus_request_name
6613                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6614                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6615
6616         
6617 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6618
6619         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6620         signature for the method that can't be found.
6621
6622         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6623         the message has any arguments, we need to call
6624         _dbus_type_reader_get_current_type(), not
6625         _dbus_type_reader_has_next().
6626
6627 2005-01-24  Havoc Pennington  <hp@redhat.com>
6628
6629         * dbus/dbus-message-factory.c: more testing of message validation
6630
6631         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6632         header
6633
6634 2005-01-23  Havoc Pennington  <hp@redhat.com>
6635
6636         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6637         get this all working, not many tests in the framework yet though
6638
6639 2005-01-22  Havoc Pennington  <hp@redhat.com>
6640
6641         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6642         tutorial, based on work from David Wheeler.
6643
6644 2005-01-21  Havoc Pennington  <hp@redhat.com>
6645
6646         * dbus/dbus-bus.c: add more return_if_fail checks
6647
6648         * dbus/dbus-message.c (load_message): have the "no validation"
6649         mode (have to edit the code to toggle the mode for now though)
6650
6651         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6652         skips all validation; I want to use this at least for benchmark
6653         baseline, I'm not sure if it should be a publicly-available switch.
6654
6655 2005-01-21  Havoc Pennington  <hp@redhat.com>
6656
6657         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6658         toplevel doxygen group as the low-level API stuff
6659
6660         * dbus/dbus.h: note that libdbus is the low-level API
6661
6662 2005-01-20  Havoc Pennington  <hp@redhat.com>
6663
6664         * update-dbus-docs.sh: script to update docs on the web site, only
6665         works for me though. neener.
6666
6667 2005-01-20  Havoc Pennington  <hp@redhat.com>
6668
6669         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6670         code can reveal bugs in it
6671
6672 2005-01-20  Havoc Pennington  <hp@redhat.com>
6673
6674         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6675         select() version, patches from Tor Lillqvist
6676
6677 2005-01-20  Havoc Pennington  <hp@redhat.com>
6678
6679         * doc/dbus-tutorial.xml: replace > with &gt;
6680
6681         * bus/services.c (bus_registry_acquire_service): validate the name
6682         and return a better error if it's no good.
6683
6684         * doc/dbus-specification.xml: note NO_AUTO_START change
6685
6686         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6687         from AUTO_START, we're toggling the default
6688
6689         * bus/dispatch.c: adapt the tests to change of auto-start default
6690
6691 2005-01-18  Havoc Pennington  <hp@redhat.com>
6692
6693         * rename dbus-daemon-1 to dbus-daemon throughout
6694
6695 2005-01-18  Havoc Pennington  <hp@redhat.com>
6696
6697         * Throughout, grand renaming to strip out the use of "service",
6698         just say "name" instead (or "bus name" when ambiguous).  Did not
6699         change the internal code of the message bus itself, only the
6700         programmer-facing API and messages.
6701         
6702         * doc/dbus-specification.xml: further update the message bus section
6703         
6704         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6705         in error case
6706
6707 2005-01-17  Havoc Pennington  <hp@redhat.com>
6708
6709         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6710         ever
6711
6712         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6713         "invalid name character" not only non-ASCII
6714
6715         * doc/dbus-specification.xml: further update spec, message bus 
6716         parts are still out-of-date but the marshaling etc. stuff is now
6717         accurate-ish
6718
6719 2005-01-17  Havoc Pennington  <hp@redhat.com>
6720
6721         * doc/dbus-specification.xml: partially update spec
6722
6723 2005-01-17  Havoc Pennington  <hp@redhat.com>
6724
6725         * Throughout, align variant bodies according to the contained
6726         type, rather than always to 8. Should save a fair bit of space in
6727         message headers.
6728         
6729         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6730         fix handling of case where p == end
6731
6732         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6733
6734 2005-01-17  Havoc Pennington  <hp@redhat.com>
6735
6736         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6737
6738         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6739         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6740         are marshaling/unmarshaling a boolean.
6741
6742 2005-01-16  Havoc Pennington  <hp@redhat.com>
6743
6744         This is about it on what can be disabled/deleted from libdbus
6745         easily, back below 150K anyhow. Deeper cuts are more work than 
6746         just turning the code off as I've done here.
6747         
6748         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6749         signed int convenience funcs
6750
6751         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6752         verbose mode
6753
6754         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6755         things out of libdbus
6756
6757         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6758         
6759         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6760         tests-enabled-only, though it should probably be deleted)
6761
6762         * dbus/dbus-message-util.c: same stuff
6763
6764         * dbus/dbus-auth-util.c: same stuff
6765
6766 2005-01-16  Havoc Pennington  <hp@redhat.com>
6767
6768         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6769
6770         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6771         way for stripping down dbus-userdb.c stuff included in libdbus.
6772         Rename _dbus_parse_uid for consistency.
6773
6774 2005-01-16  Havoc Pennington  <hp@redhat.com>
6775
6776         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6777         name the assertion failed in
6778
6779         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6780         (_dbus_return_val_if_fail): assert that the name of the function
6781         containing the check doesn't start with '_', since we only want to 
6782         use checks on public functions
6783         
6784         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6785         checks to assertions
6786
6787         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6788         change checks to asserts for private function
6789
6790         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6791         to asserts for private function
6792
6793         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6794         broken assertion that was breaking make check
6795         (_dbus_type_reader_array_is_empty): remove this rather than fix
6796         it, was only used in assertions
6797
6798 2005-01-16  Havoc Pennington  <hp@redhat.com>
6799
6800         * test/unused-code-gc.py: hacky script to find code that's used
6801         only by the bus (not libdbus) or used only by tests or not used at
6802         all. It has some false alarms, but looks like we can clean up a
6803         lot of size from libdbus.
6804
6805         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6806         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6807         
6808 2005-01-16  Havoc Pennington  <hp@redhat.com>
6809
6810         * Add and fix docs according to Doxygen warnings throughout
6811         source.
6812         
6813         * dbus/dbus-marshal-recursive.c
6814         (_dbus_type_reader_array_is_empty): change this to just call
6815         array_reader_get_array_len() and make it static
6816
6817         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6818         from get_array_type
6819         (dbus_message_iter_init_append): rename from append_iter_init
6820
6821         * dbus/dbus-marshal-recursive.c
6822         (_dbus_type_reader_get_element_type): rename from
6823         _dbus_type_reader_get_array_type
6824
6825 2005-01-15  Havoc Pennington  <hp@redhat.com>
6826
6827         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6828
6829         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6830         when DBUS_DISABLE_ASSERT
6831         (_dbus_marshal_set_basic): be sure we align for the string length
6832
6833         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6834         this look faster
6835
6836         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6837         inline macro version
6838         (_dbus_string_set_byte): provide inline macro version
6839
6840 2005-01-15  Havoc Pennington  <hp@redhat.com>
6841
6842         * Land the new message args API and type system.
6843
6844         This patch is huge, but the public API change is not 
6845         really large. The set of D-BUS types has changed somewhat, 
6846         and the arg "getters" are more geared toward language bindings;
6847         they don't make a copy, etc.
6848
6849         There are also some known issues. See these emails for details
6850         on this huge patch:
6851         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6852         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6853         
6854         * dbus/dbus-marshal-*: all the new stuff
6855
6856         * dbus/dbus-message.c: basically rewritten
6857
6858         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6859         freed blocks to be all non-nul bytes so using freed memory is less
6860         likely to work right
6861
6862         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6863         DBUS_FAIL_MALLOC=N environment variable, so you can do
6864         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6865         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6866         thorough.
6867
6868         * qt/message.cpp: port to the new message args API
6869         (operator<<): use str.utf8() rather than str.unicode()
6870         (pretty sure this is right from the Qt docs?)
6871
6872         * glib/dbus-gvalue.c: port to the new message args API
6873
6874         * bus/dispatch.c, bus/driver.c: port to the new message args API
6875
6876         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6877         "locked" flag to TRUE and align_offset to 0; I guess we never
6878         looked at these anyhow, but seems cleaner.
6879
6880         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6881         move allocation padding macro to this header; use it to implement
6882         (_DBUS_STRING_STATIC): ability to declare a static string.
6883
6884         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6885         change to return TRUE if the interface is not set.
6886
6887         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6888         to dbus-marshal-validate.[hc]
6889
6890         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6891         dbus-internals.c
6892
6893         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6894         to dbus-marshal-*.[hc]
6895
6896         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6897         function here from dbus-marshal.c
6898
6899 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6900
6901         * NEWS: Update for 0.23.
6902
6903         * configure.in: Release 0.23.
6904
6905 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6906
6907         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6908         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6909         behind.
6910
6911         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6912         uninstall"
6913
6914         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6915         is an enum, get the enum's underlying type.  Another mono
6916         1.1.3 fix.
6917
6918 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6919
6920         Patch from Sjoerd Simons <sjoerd@luon.net>
6921
6922         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6923         DESTDIR.  It breaks stuff.
6924
6925 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6926
6927         Patch from Tambet Ingo <tambet@ximian.com>
6928
6929         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6930         calling type.GetElementType().  The code previously depended on
6931         broken Mono behavior, which was fixed in Mono 1.1.3.
6932
6933         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6934         Activator.CreateInstance() so that the class's constructor is
6935         called with the right parameters.
6936
6937 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6938
6939         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6940
6941         * dbus/dbus-connection.c
6942         (_dbus_connection_queue_received_message_link): Call
6943         _dbus_connection_remove_timeout() instead of the _locked()
6944         variant, since it's always called from
6945         _dbus_connection_handle_watch(), which handles the locking.
6946         Removed the _locked() variant since it's no longer used.
6947
6948 2005-01-03  Havoc Pennington  <hp@redhat.com>
6949
6950         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
6951         return
6952         
6953 2004-12-26  Havoc Pennington  <hp@redhat.com>
6954
6955         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
6956
6957 2005-01-03  Havoc Pennington  <hp@redhat.com>
6958
6959         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
6960         floating point
6961
6962         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
6963
6964 2005-01-02  Havoc Pennington  <hp@redhat.com>
6965
6966         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
6967
6968 2005-01-01  Havoc Pennington  <hp@redhat.com>
6969
6970         * configure.in: add -Wfloat-equal
6971
6972 2005-01-01  Havoc Pennington  <hp@redhat.com>
6973
6974         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
6975         for a variety of reasons '==' doesn't do this.
6976
6977 2004-12-31  Havoc Pennington  <hp@redhat.com>
6978
6979         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
6980         I keep wishing I had
6981
6982 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6983
6984         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
6985
6986 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
6987
6988         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
6989         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
6990         dbus-protocol.h.  Because they are defines and not enums they are not
6991         autogenerated.
6992
6993 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
6994
6995         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
6996         dbus_bus_activate_service
6997
6998         * python/dbus.py (Bus.activate_service): activate a service on the
6999         bus.
7000
7001 2004-12-24  Havoc Pennington  <hp@redhat.com>
7002
7003         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7004         file format has also changed and I haven't adapted to that yet
7005         
7006         * Makefile.am: load .gcno files from latest gcc
7007
7008 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7009         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7010
7011         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7012         lowlevel binding
7013
7014         * python/dbus.py (get_unix_user): Added binding to 
7015         call dbus_bindings.bus_get_unix_user
7016
7017         * python/extract.py: Modified the proto_pat regex to
7018         handle unsigned long
7019
7020 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7021
7022         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7023         better POSIX compliance.
7024
7025 2004-12-19  Havoc Pennington  <hp@redhat.com>
7026
7027         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7028         (_dbus_string_insert_8_aligned): new functions
7029
7030         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7031
7032 2004-12-18  Havoc Pennington  <hp@redhat.com>
7033
7034         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7035         macro
7036
7037         * dbus/dbus-message.c: fix a comment, and add a still-unused
7038         not-implemented function
7039
7040         * dbus/dbus-marshal.h: fix comment
7041
7042         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7043
7044 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7045
7046         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7047         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7048         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7049         Type.UnderlyingSystemType to get the actual system type
7050         underneath.  This code previously depended on the broken Mono
7051         behavior, which was fixed in 1.1.3.
7052
7053 2004-11-27  Havoc Pennington  <hp@redhat.com>
7054
7055         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7056         are disabled
7057         (_dbus_string_get_const_data): inline when asserts are disabled
7058
7059         * dbus/dbus-message.c: record the _dbus_current_generation of
7060         creation so we can complain if dbus_shutdown() is used improperly.
7061         Do this only if checks are enabled.
7062
7063         * dbus/dbus-connection.c: ditto
7064         
7065 2004-11-26  Havoc Pennington  <hp@redhat.com>
7066
7067         * test/glib/test-profile.c: add with_bus mode to profile echoes
7068         that go through the bus.
7069
7070         * test/glib/run-test.sh: add ability to run test-profile
7071
7072         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7073         config file reload.
7074
7075 2004-11-26  Havoc Pennington  <hp@redhat.com>
7076
7077         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7078         thing was implemented
7079
7080 2004-11-26  Havoc Pennington  <hp@redhat.com>
7081
7082         * test/glib/test-profile.c: tweak a bit, add support for some
7083         made-up minimal malloc overhead with plain sockets, since in 
7084         real life some sort of buffers are unavoidable thus we could 
7085         count them in the theoretical best case
7086
7087 2004-11-26  Havoc Pennington  <hp@redhat.com>
7088
7089         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7090         where I was trying to cache one too many messages
7091
7092 2004-11-26  Havoc Pennington  <hp@redhat.com>
7093
7094         * dbus/dbus-message.c: reimplement message cache as an array which 
7095         makes the cache about twice as fast and saves maybe 1.5% overall
7096
7097 2004-11-26  Havoc Pennington  <hp@redhat.com>
7098
7099         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7100         message cache lock here
7101
7102 2004-11-26  Havoc Pennington  <hp@redhat.com>
7103
7104         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7105         the "char byte_order" next to each other to save 4 bytes
7106         (dbus_message_new_empty_header): reduce preallocation, since the
7107         message cache should achieve a similar effect
7108         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7109         message cache that keeps a few DBusMessage around in a pool,
7110         another 8% speedup or so.
7111
7112         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7113
7114 2004-11-25  Havoc Pennington  <hp@redhat.com>
7115
7116         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7117         to write, without reading or blocking, try it before the poll()
7118         and skip the poll() if nothing remains to write. This is about a
7119         3% speedup in the echo client/server
7120
7121 2004-11-25  Havoc Pennington  <hp@redhat.com>
7122
7123         The primary change here is to always write() once before adding
7124         the write watch, which gives us about a 10% performance increase.
7125         
7126         * dbus/dbus-transport-unix.c: a number of modifications to cope
7127         with removing messages_pending
7128         (check_write_watch): properly handle
7129         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7130         messages_pending stuff
7131         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7132         AUTHENTICATED cases
7133         (unix_handle_watch): after writing, see if the write watch can be
7134         removed
7135         (unix_do_iteration): assert that write_watch/read_watch are
7136         non-NULL rather than testing that they aren't, since they 
7137         aren't allowed to be NULL. check_write_watch() at the end so 
7138         we add the watch if we did not finish writing (e.g. got EAGAIN)
7139
7140         * dbus/dbus-transport-protected.h: remove messages_pending call,
7141         since it resulted in too much inefficient watch adding/removing; 
7142         instead we now require that the transport user does an iteration 
7143         after queueing outgoing messages, and after trying the first
7144         write() we add a write watch if we got EAGAIN or exceeded our 
7145         max bytes to write per iteration setting
7146
7147         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7148         function
7149
7150         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7151         freed and then accessed, valgrind flagged this bug, fix it
7152
7153         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7154         as the last valid field plus 1, where really it is equal to the
7155         last valid field. Corrects some message corruption issues.
7156
7157         * dbus/dbus-mainloop.c: verbosity changes
7158
7159         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7160         instead of aborting in one of the test codepaths
7161
7162         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7163         caused not printing the pid ever again if a verbose was missing
7164         the newline at the end
7165         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7166
7167         * dbus/dbus-connection.c: verbosity changes; 
7168         (dbus_connection_has_messages_to_send): new function
7169         (_dbus_connection_message_sent): no longer call transport->messages_pending
7170         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7171         try to write() immediately, so we can avoid the write watch. This
7172         is the core purpose of this patchset
7173         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7174         dump the outgoing message queue, so nobody will get confused
7175         trying to send them or thinking stuff is pending to be sent
7176
7177         * bus/test.c: verbosity changes
7178
7179         * bus/driver.c: verbosity/assertion changes
7180
7181         * bus/dispatch.c: a bunch of little tweaks to get it working again
7182         because this patchset changes when/where you need to block.
7183
7184 2004-11-23  Havoc Pennington  <hp@redhat.com>
7185
7186         * test/glib/test-profile.c: modify to accept a plain_sockets
7187         argument in which case it will bench plain sockets instead of
7188         libdbus, for comparison purposes.
7189
7190 2004-11-22  Havoc Pennington  <hp@redhat.com>
7191
7192         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7193         threads for more time, so sysprof can get a grip on it.
7194
7195         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7196         pointless variable
7197
7198 2004-11-13  Havoc Pennington  <hp@redhat.com>
7199
7200         * test/glib/test-profile.c: fix this thing up a bit
7201
7202         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7203         preallocation sizes by a fair bit; not sure if this will be an
7204         overall performance win or not, but it does reduce reallocs.
7205
7206         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7207         the test hack that forced constant realloc if asserts are
7208         disabled, so we can profile sanely. Sprinkle in some
7209         _DBUS_UNLIKELY() which are probably pointless, but before I
7210         noticed the real performance problem I put them in.
7211         (_dbus_string_validate_utf8): micro-optimize this thing a little
7212         bit, though callgrind says it didn't help; then special-case
7213         ascii, which did help a lot; then be sure we detect nul bytes as
7214         invalid, which is a bugfix.
7215         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7216         superstition; use memset to nul the padding instead of a manual
7217         loop.
7218         (_dbus_string_get_length): inline this as a
7219         macro; it showed up in the profile because it's used for loop
7220         tests and so forth
7221
7222 2004-11-10  Colin Walters  <walters@verbum.org>
7223
7224         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7225         for extra paranoia.
7226
7227 2004-11-09  Colin Walters  <walters@verbum.org>
7228
7229         * dbus/dbus-string.c (_dbus_string_get_length): New
7230         function, writes DBusString to C buffer.
7231
7232         * dbus/dbus-string.h: Prototype it.
7233
7234         * dbus/dbus-message.c (dbus_message_type_to_string): New
7235         function, converts message type into C string.
7236
7237         * dbus/dbus-message.h: Prototype it.
7238
7239         * bus/selinux.c (bus_selinux_check): Take source pid,
7240         target pid, and audit data.  Pass audit data to
7241         avc_has_perm.
7242         (log_audit_callback): New function, appends extra
7243         audit information.
7244         (bus_selinux_allows_acquire_service): Also take
7245         service name, add it to audit data.
7246         (bus_selinux_allows_send): Also take message
7247         type, interface, method member, error name,
7248         and destination, and add them to audit data.
7249         (log_cb): Initialize func_audit.
7250         
7251         * bus/selinux.h (bus_selinux_allows_acquire_service)
7252         (bus_selinux_allows_send): Update prototypes 
7253
7254         * bus/services.c (bus_registry_acquire_service): Pass
7255         service name to bus_selinux_allows_acquire_service.
7256
7257         * bus/bus.c (bus_context_check_security_policy): Pass
7258         additional audit data.  Move assignment of dest
7259         to its own line.
7260
7261 2004-11-07  Colin Walters  <walters@verbum.org>
7262
7263         * dbus/dbus-transport-unix.c (do_authentication): Always
7264         initialize auth_completed.
7265         
7266 2004-11-07  Colin Walters  <walters@verbum.org>
7267
7268         * bus/bus.c (load_config): Break into three
7269         separate functions: process_config_first_time_only,
7270         process_config_every_time, and process_config_postinit.
7271         (process_config_every_time): Move call of
7272         bus_registry_set_service_context_table into
7273         process_config_postinit.
7274         (process_config_postinit): New function, does
7275         any processing that needs to happen late
7276         in initialization (and also on reload).
7277         (bus_context_new): Instead of calling load_config,
7278         open config parser here and call process_config_first_time_only
7279         and process_config_every_time directly.  Later, after
7280         we have forked but before changing UID,
7281         invoke bus_selinux_full_init, and then call
7282         process_config_postinit.
7283         (bus_context_reload_config): As in bus_context_new,
7284         load parse file inside here, and call process_config_every_time
7285         and process_config_postinit.
7286
7287         * bus/services.h, bus/services.c
7288         (bus_registry_set_service_context_table): Rename
7289         from bus_registry_set_sid_table.  Take string hash from config
7290         parser, and convert them here into SIDs.
7291
7292         * bus/config-parser.c (struct BusConfigParser): Have
7293         config parser only store a mapping of service->context
7294         string.
7295         (merge_service_context_hash): New function.
7296         (merge_included): Merge context string hashes instead
7297         of using bus_selinux_id_table_union.
7298         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7299         simply create a new string hash.
7300         (bus_config_parser_unref): Unref it.
7301         (start_selinux_child): Simply insert strings into hash,
7302         don't call bus_selinux_id_table_copy_over.
7303
7304         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7305         (bus_selinux_id_table_copy_over): Delete.
7306
7307 2004-11-03  Colin Walters  <walters@verbum.org>
7308
7309         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7310         variables.
7311         
7312 2004-11-03  Colin Walters  <walters@verbum.org>
7313
7314         * bus/test-main.c (test_pre_hook): Fix test logic,
7315         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7316
7317 2004-11-02  Colin Walters  <walters@redhat.com>
7318
7319         * bus/selinux.c (bus_selinux_init): Split into two functions,
7320         bus_selinux_pre_init and bus_selinux_post_init.
7321         (bus_selinux_pre_init): Just determine whether SELinux is
7322         enabled.
7323         (bus_selinux_post_init): Do everything else.
7324
7325         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7326         config file, and bus_selinux_post_init after.  This ensures that
7327         we don't lose the policyreload notification thread that
7328         bus_selinux_init created before forking previously.
7329         
7330         * bus/test-main.c (test_pre_hook): Update for split.
7331
7332 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7333
7334         Patch from Johan Fischer <linux@fischaz.com>
7335         
7336         * mono/doc/Makefile.am (install-data-local): Added directory
7337         install for DESTDIR
7338
7339 2004-10-29  Colin Walters  <walters@redhat.com>
7340
7341         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7342         parameter for fd to write pid to.       
7343
7344         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7345         
7346         * bus/bus.c (bus_context_new): Pass print_pid_fd
7347         to _dbus_become_daemon (bug #1720)
7348
7349 2004-10-29  Colin Walters  <walters@redhat.com>
7350
7351         Patch from Ed Catmur <ed@catmur.co.uk>
7352
7353         * mono/doc/Makefile.am (install-data-local): Handle
7354         DESTDIR.
7355
7356 2004-10-29  Colin Walters  <walters@redhat.com>
7357
7358         * bus/.cvsignore, qt/.cvsignore: Update.
7359
7360 2004-10-29  Colin Walters  <walters@redhat.com>
7361
7362         Patch from Kristof Vansant <de_lupus@pandora.be>
7363
7364         * configure.in: Detect Slackware.
7365         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7366         * bus/rc.messagebus.in: New file.
7367
7368 2004-10-29  Colin Walters  <walters@redhat.com>
7369
7370         * tools/dbus-monitor.c (filter_func): Return
7371         DBUS_HANDLER_RESULT_HANDLED in filter function
7372         for now.  See:
7373         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7374
7375 2004-10-29  Colin Walters  <walters@redhat.com>
7376
7377         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7378
7379         * bus/services.c (bus_registry_acquire_service): 
7380         Correctly retrieve service name from DBusString
7381         for printing.
7382
7383 2004-10-29  Colin Walters  <walters@redhat.com>
7384
7385         * dbus/dbus-glib.h: Update documentation to not
7386         refer to internal APIs.
7387
7388 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7389
7390         * mono/Arguments.cs (GetDBusTypeConstructor):
7391         type.UnderlyingSystemType will return "System.Byte" if you do it
7392         on "byte[]", which is not what we want.  So check the type.IsArray
7393         property and use System.Array instead.
7394
7395 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7396
7397         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7398         the DBusUserInfo structure since this is passed into the function.
7399         This would cause a double free when the function that allocated
7400         the structure would try to free it when an error occured.
7401
7402         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7403         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7404         for service activation to avoid 32bit/64bit parallel install issues
7405
7406 2004-10-21  Colin Walters  <walters@verbum.org>
7407
7408         * AUTHORS: Fix my email address, the @gnu.org one
7409         has been bouncing for some time.  Also add J5.
7410         
7411 2004-10-21  Colin Walters  <walters@verbum.org>
7412
7413         * dbus/dbus-transport-unix.c (do_authentication): Return
7414         authentication status to callers.
7415         (unix_handle_watch): If we completed authentication this round,
7416         don't do another read.  Instead wait until the next iteration,
7417         after we've read any pending data in the auth buffer.
7418         (unix_do_iteration): Ditto.
7419         (unix_handle_watch): Updated for new do_authentication prototype.
7420
7421 2004-10-18  Colin Walters  <walters@verbum.org>
7422
7423         * bus/selinux.c (bus_selinux_enabled): Handle
7424         --disable-selinux case.
7425         
7426 2004-10-18  Colin Walters  <walters@verbum.org>
7427
7428         * bus/selinux.h: Add bus_selinux_enabled.
7429         
7430         * bus/selinux.c (bus_selinux_enabled): Implement it.
7431         
7432         * bus/config-parser.c (struct include): Add
7433         if_selinux_enabled member.
7434         (start_busconfig_child): Parse if_selinux_enabled
7435         attribute for include.
7436         (bus_config_parser_content): Handle it.
7437
7438         * bus/session.conf.in, bus/system.conf.in: Add
7439         inclusion of context mapping to default config files;
7440         conditional on SELinux being enabled.
7441         
7442         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7443         
7444         * test/data/invalid-config-files/badselinux-1.conf, 
7445         test/data/invalid-config-files/badselinux-2.conf:
7446         Test files for bad syntax.
7447         
7448 2004-10-17  Colin Walters  <walters@verbum.org>
7449
7450         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7451         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7452         format specifier mismatches.
7453
7454 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7455
7456         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7457         format string.
7458
7459         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7460         pointer (bug #1540, Leonardo Boiko).
7461
7462 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7463
7464         * mono/BusDriver.cs: Changed BusDriver struct to remove
7465         the ServiceCreated and ServiceDeleted events and replace them
7466         with the new ServiceOwnerChanged event.
7467
7468         * mono/example/BusListener.cs: Added a new example program,
7469         which listens for and reports any ServiceOwnerChanged events
7470         on the bus driver.
7471
7472         * mono/example/Makefile.am (DESTDIR): Build changes for the
7473         new BusListener.cs example.
7474
7475 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7476
7477         * bus/signals.c (bus_match_rule_parse): validate the components of
7478         match rules (bug #1439).
7479
7480         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7481
7482 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7483
7484         * doc/dbus-specification.xml: document ServiceOwnerChanged
7485         signal.
7486         
7487         * bus/driver.c, bus/driver.h, bus/services.c: Use
7488         ServiceOwnerChanged signal instead of ServiceCreated and
7489         ServiceDeleted.
7490         
7491         * bus/dispatch.c: update testcase for the new signal.
7492
7493 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7494
7495         Patch from Nat Friedman <nat@novell.com>
7496
7497         * mono/Makefile.am: A number of small build fixes to allow "make
7498         distcheck" to succeed.
7499
7500         * mono/example/Makefile.am: "make distcheck" fixes.
7501
7502         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7503         key in @srcdir@.
7504
7505         * test/Makefile.am: "make distcheck" fixes.
7506
7507 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7508
7509         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7510
7511         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7512
7513         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7514         messages after the first one (bug #1389).
7515         
7516         * bus/dispatch.c (check_double_hello_message): add a test case for
7517         the double hello message bug.
7518         (check_existent_service_activation): fix check of spawning error.
7519         
7520 2004-09-16  David Zeuthen  <david@fubar.dk>
7521
7522         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7523
7524 2004-09-12  David Zeuthen  <david@fubar.dk>
7525
7526         Patch from Kay Sievers <kay.sievers@vrfy.org>
7527
7528         * bus/bus.c (bus_context_new):
7529         * bus/bus.h:
7530         * bus/main.c (usage)
7531         (main):
7532         Add commandline option --nofork to override configuration file
7533         setting.
7534
7535 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7536
7537         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7538         compilers don't like it (bug #974).
7539
7540 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7541
7542         * qt/connection.*: Applied patch by Jérôme Lodewyck
7543         <lodewyck@clipper.ens.fr> to integrate an existing
7544         connection into the Qt eventloop
7545
7546 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7547
7548         * mono/BusDriver.cs: Added.  This is a class for interacting with
7549         the org.freedesktop.DBus service.
7550
7551         * mono/Message.cs: Added a mechanism to expose the message that is
7552         currently being dispatched via the static Message.Current
7553         property.  Added Message.Sender and Message.Destination
7554         properties.
7555
7556         * mono/Handler.cs: Expose the dispatched message via
7557         Message.Current when handling method calls.
7558
7559         * mono/Service.cs: Expose the dispatched message via
7560         Message.Current when handling signal emissions.
7561         
7562         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7563         Connection.BaseService property.
7564
7565 2004-08-28  Havoc Pennington  <hp@redhat.com>
7566
7567         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7568
7569         More fixes from Steve Grubb
7570         
7571         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7572         (_dbus_listen_tcp_socket): fix fd leak
7573
7574         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7575         EINTR to a bit lower in the code
7576
7577 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7578
7579         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7580         TRUE if we are inquiring about the existence of the built-in
7581         org.freedesktop.DBus service.
7582
7583 2004-08-25  John Palmieri  <johnp@redhat.com>
7584         * bus/config-parser.c:
7585         (struct PolicyType): Add POLICY_CONSOLE
7586         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7587         (start_busconfig_child): Sets up console element when
7588         <policy at_console=""> is encountered in a policy file
7589         (append_rule_from_element): Convert console elements to console
7590         rules.
7591
7592         * bus/policy.c: 
7593         (bus_policy_create_client_policy): Add console rules to the client
7594         policy based on if the client is at the console
7595         (bus_policy_append_console_rule): New function for adding a
7596         console rule to a policy
7597         (bus_policy_merge): Handle console rule merging
7598
7599         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7600         where we check for console user files
7601         
7602         * dbus/dbus-sysdeps.c:
7603         (_dbus_file_exists): New function which checks if the given
7604         file exists
7605         (_dbus_user_at_console): New function which does the system
7606         specific process of checking if the user is at the console
7607
7608         * dbus/dbus-userdb.c:
7609         (_dbus_is_console_user): New function converts a UID to user name
7610         and then calls the system specific _dbus_user_at_console to 
7611         see if the user is at the console and therefor a console user
7612
7613 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7614
7615         * bus/config-parser.c (set_limit):
7616         * bus/dbus-daemon-1.1.in:
7617         * test/data/valid-config-files/many-rules.conf: set the
7618         max_match_rules_per_connection limt from the config file. 
7619
7620         * doc/busconfig.dtd: update the DTD.
7621
7622         * bus/driver.c: remove some unused variables.
7623
7624 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7625
7626         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7627         it's been replaced by dbus_g_bus_get
7628
7629 2004-08-23  Colin Walters  <walters@redhat.com>
7630
7631         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7632
7633         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7634
7635         * bus/selinux.c: Create a thread for policy reload notification.
7636         (bus_selinux_get_policy_root): Implement.
7637
7638         * bus/config-parser.c (start_busconfig_child)
7639         (bus_config_parser_content): Support SELinux-root relative
7640         inclusion.
7641
7642         * configure.in <HAVE_SELINUX>: Add -lpthread.
7643         
7644         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7645         (test_post_hook): Move memory checking into here.
7646         (test_pre_hook, test_post_hook): Move SELinux checks in
7647         here, but conditional on a DBUS_TEST_SELINUX environment
7648         variable.  Unfortunately we can't run the SELinux checks
7649         as a normal user, since they won't have any permissions
7650         for /selinux.  So this will have to be tested manually
7651         for now, until we have virtualization for most of
7652         libselinux.
7653         
7654 2004-08-23  Havoc Pennington  <hp@redhat.com>
7655
7656         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7657         drop supplementary groups, suggested by Steve Grubb
7658
7659 2004-08-20  Colin Walters  <walters@redhat.com>
7660
7661         * bus/config-parser.c (start_busconfig_child): Remove some unused
7662         variables.
7663         
7664         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7665         warning.
7666
7667 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7668
7669         * configure.in: If --enable-mono is passed in, if we can't find
7670         mono error out.
7671
7672         * mono/Makefile.am: Use /gacutil to install assemblies into the
7673         GAC and not /root.
7674
7675 2004-08-12  Havoc Pennington  <hp@redhat.com>
7676
7677         * NEWS: update for 0.22
7678
7679         * configure.in: release 0.22
7680
7681 2004-08-11  Colin Walters  <walters@redhat.com>
7682
7683         * tools/dbus-send.c (main, usage): Add --reply-timeout
7684         argument.
7685
7686 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7687
7688         * bus/bus.c (process_config_first_time_only): get rid of an unused
7689         DBusError that was causing a memoy leak (bug #989).
7690
7691         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7692         fix compilation on Solaris/Forte C (bug #974)
7693
7694         * bus/main.c (main): plug two minuscule memleaks.
7695
7696 2004-08-10  Havoc Pennington  <hp@redhat.com>
7697
7698         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7699
7700 2004-08-09  Havoc Pennington  <hp@redhat.com>
7701
7702         * COPYING: switch to Academic Free License version 2.1 instead of
7703         2.0, to resolve complaints about patent termination clause.
7704
7705 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7706
7707         * README: added documentation for the --enable-python 
7708         configure switch.
7709
7710 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7711
7712         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7713         _unref in the SELinux support.
7714
7715         * doc/busconfig.dtd: update DTD for SELinux support.
7716
7717         * bus/config-loader-libxml.c: fix error handler and parser
7718         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7719
7720         * configure.in: remove the warning about libxml2.
7721
7722         * dbus/dbus-bus.c: silence doxygen warning.
7723
7724 2004-07-31  Colin Walters  <walters@redhat.com>
7725
7726         * configure.in: Move #error in SELinux check to its own line.
7727
7728 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7729
7730         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7731         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7732         dbus_error_set.
7733
7734         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7735         broken by the change in the _SET_OOM macros.
7736
7737 2004-07-31  Colin Walters  <walters@redhat.com>
7738
7739         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7740         BUS_SET_OOM.
7741
7742 2004-07-31  Colin Walters  <walters@redhat.com>
7743
7744         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7745         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7746         AC_MSG_CHECKING.
7747
7748 2004-07-24  Havoc Pennington  <hp@redhat.com>
7749
7750         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7751
7752         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7753         functionality
7754
7755         * configure.in: add --enable-selinux
7756         
7757         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7758
7759         * bus/main.c (main): initialize and shut down selinux
7760
7761         * bus/connection.c: store SELinux ID on each connection, to avoid 
7762         repeated getting of the string context and converting it into 
7763         an ID
7764
7765         * bus/bus.c (bus_context_get_policy): new accessor, though it
7766         isn't used
7767         (bus_context_check_security_policy): check whether the security
7768         context of sender connection can send to the security context of
7769         recipient connection
7770
7771         * bus/config-parser.c: add parsing for <selinux> and <associate>
7772         
7773         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7774         implement dbus_connection_get_unix_fd()
7775
7776         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7777         function, used by the selinux stuff
7778         
7779 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7780
7781         * bus/config-loader-libxml.c: complete the implementation of
7782         libxml backend for config file loader. Doesn't work with full OOM
7783         test yet. 
7784         
7785         * configure.in: change error when selecting libxml into a warning.
7786         
7787         * test/data/invalid-config-files: add two non-well-formed XML
7788         files. 
7789         
7790         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7791         
7792         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7793         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7794         be necessary to read all the buffer. (bug #894)
7795
7796         * bus/activation.c (bus_activation_activate_service): fix a
7797         potential assertion failure (bug #896). Small optimization in the
7798         case of auto-activation messages.
7799
7800         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7801         add test case for byte-through-vararg bug (#901). patch by Kimmo
7802         Hämäläinen. 
7803
7804 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7805
7806         * python/dbus.py:
7807         * python/dbus_bindings.pyx.in:
7808         Add dbus.init_gthreads (), allow emit_signal to pass
7809         arguments to the signal.
7810         
7811 2004-07-24  Havoc Pennington  <hp@redhat.com>
7812
7813         * AUTHORS: add some people, not really comprehensively, let me
7814         know if I missed you
7815
7816 2004-07-24  Havoc Pennington  <hp@redhat.com>
7817
7818         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7819         Owen
7820
7821         * test/Makefile.am (DIST_SUBDIRS): here also
7822
7823 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7824
7825         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7826         breaking build on Solaris, reported by Farhad Saberi on the ML.
7827
7828         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7829         va_arg invocation to account for integer promotion in the case of
7830         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7831
7832         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7833         _dbus_list_get_first_link, not _dbus_list_get_first.
7834
7835         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7836
7837         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7838         handler functions so that the asserts in _dbus_object_subtree_unref
7839         do not fail.
7840
7841         * dbus/dbus-transport-unix.c (do_reading):
7842         _dbus_transport_queue_messages return value is of type
7843         dbus_bool_t, not DBusDispatchStatus.
7844         
7845 2004-07-19  David Zeuthen  <david@fubar.dk>
7846
7847         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7848
7849         * bus/dispatch.c:
7850         (check_get_connection_unix_user): Debug says GetProperty; but the
7851         method is called GetConnectionUnixUser
7852         (check_get_connection_unix_process_id): New function
7853         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7854         also call check_get_connection_unix_process_id()
7855         
7856         * bus/driver.c:
7857         (bus_driver_handle_get_connection_unix_process_id): New function,
7858         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7859         interface
7860         
7861         * dbus/dbus-auth.c:
7862         (handle_server_data_external_mech): Set pid from the credentials
7863         obtained from the socket
7864         
7865         * dbus/dbus-connection.c:
7866         (dbus_connection_get_unix_process_id): New function
7867         
7868         * dbus/dbus-connection.h: 
7869         Add prototype for dbus_connection_get_unix_process_id
7870         
7871         * dbus/dbus-transport.c:
7872         (_dbus_transport_get_unix_process_id): New function
7873         
7874         * dbus/dbus-transport.h:
7875         Add prototype for _dbus_transport_get_unix_process_id
7876         
7877 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7878
7879         * dbus/dbus-message.c: Message counter fix, patch by Christian
7880         Hammond <chipx86@gnupdate.org>
7881
7882 2004-07-18  Seth Nickell  <seth@gnome.org>
7883
7884         * python/dbus.py:
7885         * python/dbus_bindings.pyx.in:
7886         * python/tests/test-client.py:
7887
7888         Add dbus.ByteArray and dbus_bindings.ByteArray
7889         types so that byte streams can be passed back.
7890
7891         Give jdahlin the heaps of credit that are so
7892         rightfully his.
7893         
7894 2004-07-12  Seth Nickell  <seth@gnome.org>
7895
7896         * python/dbus.py:
7897
7898         Add message argument to the default object_method_handler
7899         function.
7900         
7901         * python/dbus_bindings.pyx.in:
7902
7903         Automatically return NIL when passed an empty list
7904         (we can't pass back a list since lists are typed
7905         and we don't have any idea what type the the client
7906         intended the list to be... :-( )
7907         
7908 2004-07-10  Seth Nickell  <seth@gnome.org>
7909
7910         * python/examples/Makefile.am:
7911
7912         Fix distcheck breakage caused by new examples.
7913
7914 2004-07-10  Seth Nickell  <seth@gnome.org>
7915
7916         * python/dbus.py:
7917
7918         Add "message" argument to service-side dbus.Object
7919         methods. This will break existing services written
7920         using the python bindings, but will allow extraction
7921         of all the message information (e.g. who its from).
7922
7923         Add improved "object oriented" signal handling/emission.
7924         
7925         * python/examples/example-service.py:
7926
7927         Nix this example.
7928         
7929         * python/examples/example-signal-emitter.py:
7930         * python/examples/example-signal-recipient.py:
7931
7932         Two new examples that show how to emit and receive
7933         signals using the new APIs.
7934         
7935         * python/examples/example-signals.py:
7936         * python/examples/gconf-proxy-service.py:
7937         * python/examples/gconf-proxy-service2.py:
7938
7939         Add "message" argument to service methods.
7940
7941 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7942
7943         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7944         * dbus/bus.c (dbus_bus_get_unix_user)
7945         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7946         method of org.freedesktop.DBus interface.
7947
7948         * bus/dispatch.c: test case
7949
7950 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
7951
7952         * python/Makefile.am: switched include directory from glib/ to dbus/
7953         since dbus-glib.h moved
7954  
7955 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7956
7957         * configure.in: prevent building the gcj stuff and libxml loader
7958         since they are broken.
7959
7960 2004-06-20  Havoc Pennington  <hp@redhat.com>
7961
7962         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
7963         codes from the dbus error names
7964         
7965         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
7966         as dbus/dbus-glib.h and that breakage is now visible due to 
7967         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
7968         
7969         * glib/dbus-glib.h: s/gproxy/g_proxy/
7970
7971         * dbus/dbus-shared.h: new header to hold stuff shared with
7972         binding APIs
7973         
7974         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
7975         than dbus-errors.h
7976
7977         * glib/dbus-glib.h (dbus_set_g_error): move to
7978         dbus-glib-lowlevel.h
7979
7980         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
7981         of stuff to enable this
7982
7983         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
7984
7985         * a bunch of other changes with the same basic "separate glib 
7986         bindings from dbus.h" theme
7987         
7988 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
7989
7990         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
7991
7992         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
7993
7994 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7995
7996         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
7997         the reply value of the ServiceExists message.
7998
7999 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8000
8001         * python/dbus_bindings.pyx.in: No longer need to parse path
8002         elements and pass them as arrays of strings.  The C API now
8003         accepts plain path strings.
8004         (_build_parsed_path): removed 
8005
8006 2004-06-07  Havoc Pennington  <hp@redhat.com>
8007
8008         * doc/TODO: remove auto-activation item since it's done; sort
8009         items by importance/milestone
8010
8011 2004-06-07  Havoc Pennington  <hp@redhat.com>
8012
8013         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8014         random signature when using REQUIRED_FIELDS (this hack won't work
8015         in the long term)
8016
8017         * dbus/dbus-message.c: change the signature to be a header field,
8018         instead of message->signature special-case string. Incremental
8019         step forward. Then we can fix up code to send the signature in the
8020         message, then fix up code to validate said signature, then fix up
8021         code to not put the typecodes inline, etc.
8022         (load_one_message): don't make up the signature after the fact
8023         (decode_header_data): require signature field for the known
8024         message types
8025
8026         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8027
8028         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8029
8030 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8031
8032         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8033
8034         * mono/Handler.cs: Updated to follow new path argument for
8035         (un-)registering objects.
8036
8037         * mono/example/Makefile.am:
8038         * mono/Makefile.am:
8039         * configure.in: Bumped required version for mono and use new -pkg
8040         syntax for deps
8041
8042 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8043
8044         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8045         registration functions take the path argument as char* instead of
8046         char**.
8047
8048         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8049         split off the path decompostion part of
8050         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8051         warnings. 
8052
8053         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8054         
8055 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8056  
8057         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8058         machine approach.  A state is implemented as a function that
8059         handles incoming events as specified for that state.
8060         
8061         * doc/dbus-specification.xml: Update auth protocol state machine
8062         specification to match implementation.  Remove some leftover
8063         base64 examples.
8064
8065 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8066
8067         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8068         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8069         quiet doxygen.
8070
8071         * Doxyfile.in: remove deprecated options.
8072
8073         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8074         glib/test-thread.h, glib/test-thread-client.c,
8075         glib/test-thread-server.c, glib/test-profile.c,
8076         glib/test-dbus-glib.c: remove these unused files.
8077
8078 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8079
8080         * dbus/dbus-object-tree.c
8081         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8082         non-fallback handlers (bug #684).
8083         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8084         (find_subtree_recurse): report wether the returned subtree is an
8085         exact match or a "fallback" match higher up in the tree.
8086         (object_tree_test_iteration): update test case.
8087
8088 2004-06-01  Seth Nickell  <seth@gnome.org>
8089
8090         * python/dbus_bindings.pyx.in:
8091         * python/tests/test-client.py:
8092
8093         Round off basic type support. Add dicts (yay!), and 
8094         remaining array types.
8095
8096         Make MessageIter more general so it works for dicts too.
8097
8098         Mark all loop variables as C integers.
8099         
8100 2004-05-31  Havoc Pennington  <hp@redhat.com>
8101
8102         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8103         "in" before "out"
8104
8105         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8106
8107         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8108         option that runs the tests, and start filling in some code
8109         including for starters just dumping the interfaces to stdout
8110
8111         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8112
8113         * test/data/valid-introspection-files/lots-of-types.xml: test of
8114         an example introspection file
8115
8116         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8117         "node" (I think...)
8118
8119 2004-05-31  Seth Nickell  <seth@gnome.org>
8120
8121         * python/dbus_bindings.pyx.in:
8122         * python/tests/test-client.py:
8123
8124         Test Suite: 1
8125         Python Bindings: 0
8126
8127         Fix string array memory trashing bug... oops...
8128
8129 2004-05-30  Seth Nickell  <seth@gnome.org>
8130
8131         * python/dbus.py:
8132
8133         Add a nicer-but-less-flexible alternate API for handling 
8134         calls to virtual objects in dbus.ObjectTree.
8135
8136         Screw up the argument order to the dbus.Object constructor
8137         for consistency with dbus.ObjectTree (and to make dbus_methods
8138         optional for future extension)
8139         
8140         * python/examples/Makefile.am:
8141         * python/examples/gconf-proxy-service.py:
8142         * python/examples/gconf-proxy-service2.py:
8143
8144         Alternate implementation of gconf-proxy-service using the
8145         nicer dbus.ObjectTree API.
8146         
8147         * python/examples/example-service.py:
8148         * python/tests/test-server.py
8149
8150         Reverse the argument order to deal with dbus.Object constructor
8151         changes.
8152         
8153 2004-05-30  Seth Nickell  <seth@gnome.org>
8154
8155         * python/examples/example-client.py:
8156         * python/examples/example-service.py:
8157
8158         Take it back. Lists seem to work but they're broken
8159         in the test suite. Make the base examples use
8160         lists (works fine).
8161
8162 2004-05-30  Seth Nickell  <seth@gnome.org>
8163
8164         * python/dbus_bindings.pyx.in:
8165         * python/tests/test-client.py:
8166
8167         Add some more tests and fix errors that crop up.
8168         Unfortunately, currently it seems like marshalling
8169         and unmarshalling of lists is completely broken :-(
8170
8171 2004-05-30  Seth Nickell  <seth@gnome.org>
8172
8173         * python/dbus_bindings.pyx.in:
8174
8175         Add support for ObjectPath type.
8176
8177         * python/dbus.py:
8178
8179         Refactor message handling code to a common function.
8180         
8181         * python/tests/test-client.py:
8182         * python/tests/test-server.py:
8183
8184         Add tests that check to make sure values of all types
8185         can be echoed from a service w/o mangling.
8186         
8187 2004-05-29  Seth Nickell  <seth@gnome.org>
8188
8189         * python/dbus.py:
8190
8191         Add ObjectTree class which allows implementation
8192         of trees of "virtual" objects. Basically the python
8193         wrapper for "register_fallback".
8194         
8195         * python/examples/Makefile.am
8196         * python/examples/gconf-proxy-client.py:
8197         * python/examples/gconf-proxy-service.py:
8198
8199         Implement a simple GConf proxy service that supports
8200         get/set on string and int GConf keys using the ObjectTree.
8201         
8202 2004-05-29  Seth Nickell  <seth@gnome.org>
8203
8204         * python/dbus.py:
8205         * python/examples/example-client.py:
8206         * python/examples/example-service.py:
8207         * python/examples/list-system-services.py:
8208
8209         Add SessionBus, SystemBus and ActivationBus classes
8210         so you don't need to know the special little BUS_TYPE
8211         flag.
8212         
8213 2004-05-29  Havoc Pennington  <hp@redhat.com>
8214
8215         * bus/config-parser.c (process_test_valid_subdir): temporarily
8216         stop testing config parser OOM handling, since expat has issues
8217         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8218
8219         * bus/dbus-daemon-1.1.in: change requested_reply to
8220         send_requested_reply/receive_requested_reply so we can send the
8221         replies, not just receive them.
8222
8223         * bus/config-parser.c: parse the new
8224         send_requested_reply/receive_requested_reply
8225
8226         * bus/policy.c (bus_client_policy_check_can_send): add
8227         requested_reply argument and use it
8228
8229         * bus/bus.c (bus_context_check_security_policy): pass through
8230         requested_reply status to message send check
8231
8232         * bus/system.conf.in: adapt to requested_reply change
8233         
8234 2004-05-28  Havoc Pennington  <hp@redhat.com>
8235
8236         * test/glib/test-service-glib.c (main): remove unused variable
8237
8238         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8239
8240         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8241         from the enum, no longer in use.
8242
8243         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8244         works right.
8245
8246         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8247         whether error_name passed in is a valid error name.
8248
8249 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8250
8251         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8252         OBJECT_PATH and OBJECT_PATH_ARRAY
8253
8254 2004-05-28  Seth Nickell  <seth@gnome.org>
8255
8256         * python/examples/Makefile.am:
8257
8258         Forget to add Makefile.am. Do not pass go.
8259
8260 2004-05-28  Michael Meeks  <michael@ximian.com>
8261
8262         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8263         fix no int64 case.
8264
8265         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8266
8267         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8268         (_dbus_message_iter_get_basic_type_array): impl.
8269         drastically simplify ~all relevant _get methods to use these.
8270         (_dbus_message_iter_append_basic_array),
8271         (dbus_message_iter_append_basic): impl
8272         drastically simplify ~all relevant _append methods to use these.
8273
8274         * dbus/dbus-message-builder.c (parse_basic_type) 
8275         (parse_basic_array, lookup_basic_type): impl.
8276         (_dbus_message_data_load): prune scads of duplicate /
8277         cut & paste coding.
8278
8279         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8280         (_dbus_demarshal_basic_type): implement,
8281         (demarshal_and_validate_len/arg): beef up debug.
8282         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8283
8284 2004-05-27  Seth Nickell  <seth@gnome.org>
8285
8286         * configure.in:
8287         * python/Makefile.am:
8288
8289         Include the example python apps in the tarball.
8290         
8291         * python/examples/list-system-services.py
8292
8293         Add a python new example that fetches the list of services
8294         from the system bus.
8295         
8296 2004-05-27  Seth Nickell  <seth@gnome.org>
8297
8298         * python/dbus.py:
8299         * python/dbus_bindings.pyx.in:
8300
8301         Fix failure to notify that a signal was not handled,
8302         resulted in hung functions.
8303         
8304 2004-05-25  Colin Walters  <walters@redhat.com>
8305
8306         * tools/dbus-monitor.c (main): Monitor all types of messages.
8307
8308 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8309
8310         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8311         which unregisters the object path and disposes the handler.
8312
8313 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8314  
8315         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8316          
8317         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8318         operands to && so we call dbus_message_iter_next () for the last
8319         argument also.
8320
8321 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8322
8323         * dbus/dbus-object-tree.c
8324         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8325         children even if the requested path isn't registered.
8326         (object_tree_test_iteration): test object_tree_list_registered.
8327
8328         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8329         it to 0.
8330         
8331 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8332
8333         * doc/TODO: Remove resolved items.
8334
8335         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8336         field.
8337         
8338         * bus/connection.c (bus_connections_expect_reply): Enforce the
8339         per-connection limit on pending replies.
8340         
8341         Patch from Jon Trowbridge <trow@ximian.com>:
8342  
8343         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8344         up a watch that triggers a config reload when one end of the pipe
8345         becomes readable.
8346         (signal_handler): Instead of doing the config reload in our SIGHUP
8347         handler, just write to the reload pipe and let the associated
8348         watch handle the reload when control returns to the main loop.
8349  
8350         * bus/driver.c (bus_driver_handle_reload_config): Added.
8351         Implements a ReloadConfig method for requesting a configuration
8352         file reload via the bus driver.
8353  
8354 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8355
8356         * HACKING: Updated release instructions concerning the wiki page.
8357
8358 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8359
8360         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8361         filter against auth->allowed_mechs; we only add allowed mechs in
8362         record_mechanisms().
8363  
8364         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8365         ALLOWED_MECHS to auth-script format so we can set the list of
8366         allowed mechanisms.
8367  
8368         * data/auth/client-out-of-mechanisms.auth-script: New test to
8369         check client disconnects when it is out of mechanisms to try.
8370  
8371         * dbus/dbus-auth.c (process_command): Remove check for lines
8372         longer that 1 MB; we only buffer up maximum 16 kB.
8373  
8374         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8375         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8376         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8377         assume there might be unused bytes.
8378  
8379         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8380         client-out-of-mechs, it is handled in process_reject(). Move check
8381         for max failures to send_rejected(), as it's a server-only thing.
8382
8383         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8384         send_auth(), send_data(), send_rejected(), send_error(),
8385         send_ok(), send_begin() and send_cancel().
8386
8387 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8388
8389         Remove base64 encoding, replace with hex encoding. Original patch
8390         from trow@ximian.com, added error handling.
8391
8392         * dbus/dbus-string.c (_dbus_string_base64_encode)
8393         (_dbus_string_base64_decode): Remove.
8394         (_dbus_string_hex_decode): Add end_return argument so we can
8395         distinguish between OOM and invalid hex encoding.
8396         (_dbus_string_test): Remove base64 tests and add test case for
8397         invalid hex.
8398
8399         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8400         Replace base64 with hex.
8401
8402         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8403         for invalid hex encoded data in auth protocol.
8404
8405 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8406
8407         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8408         leak.
8409
8410 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8411
8412         * mono/dbus-sharp.dll.config.in: Added for GAC
8413         * mono/dbus-sharp.snk: Added for GAC
8414         * mono/Assembly.cs.in: Added for GAC
8415         * mono/Makefile.am: Changes for GAC installation        
8416         * configure.in: Added refs for dbus-sharp.dll.config.in and
8417         Assembly.cs.in. More fixes for mono testing
8418         * mono/example/Makefile.am: Changed var to CSC
8419         * Makefile.am: Changed flag name to DBUS_USE_CSC
8420
8421 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8422
8423         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8424         * mono/doc/*: Added documentation framework
8425         * configure.in: Added monodoc check
8426         * README: Added description of mono configure flags
8427
8428 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8429
8430         * doc/dbus-specification.xml: Added a "Required" column to the 
8431         header fields table and changed the "zero or more" verbage in
8432         the above paragraph to read "The header must contain the required 
8433         named header fields and zero or more of the optional named header 
8434         fields".
8435         * test/data/invalid-messages/*.message: Added the required PATH 
8436         named header field to the tests so that they don't fail on 
8437         'Missing path field'
8438
8439 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8440
8441         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8442         the stack by implicitly defining variable and parameter types and
8443         removing the hack of defining C pointers as python objects and later
8444         casting them.
8445
8446 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8447
8448         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8449
8450 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8451
8452         * mono/DBusType/Dict.cs: Handle empty dicts
8453         * mono/DBusType/Array.cs: Handle empty arrays
8454         * mono/Arguments.cs: Handle empty arguments
8455
8456 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8457
8458         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8459         field
8460
8461 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8462
8463         * test/data/valid-messages/standard-*.message: Update message
8464         test scripts to new header field names.
8465
8466 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8467
8468         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8469         overflow to times_we_did_each_thing array which would chop off the
8470         first character of the failure_dir string. Increased the size of
8471         the array to 7 to reflect the number of random mutation functions
8472         we have.
8473
8474 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8475
8476         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8477         unix_server->watch here, it is unreffed in disconnect.
8478         (_dbus_server_new_for_tcp_socket): convert NULL host to
8479         "localhost" here so we don't append NULL to address.
8480         
8481         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8482         various addresses, including tcp with no explicit host.
8483
8484 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8485
8486         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8487         fix incorrect setting of .name_offset in the HeaderField (it was
8488         off by two bytes, positioned right after the name and typecode)
8489
8490         * bus/bus.c (bus_context_new, bus_context_unref): test before
8491         calling dbus_server_free_data_slot and _dbus_user_database_unref
8492         in case of an error.
8493
8494         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8495         by libdbus-gtool.
8496
8497 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8498
8499         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8500         _dbus_poll() instead of select().
8501
8502 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8503
8504         * bus/main.c (signal_handler): Reload the configuration files
8505         on SIGHUP.
8506         (main): Set up our SIGHUP handler.
8507
8508         * bus/bus.c (struct BusContext): Store the config file, user and
8509         fork flag in the BusContext.
8510         (process_config_first_time_only): Added.  Contains the code
8511         (previously in bus_context_new) for setting up the BusContext from
8512         the BusConfigParser that should only be run the first time the
8513         config files are read.
8514         (process_config_every_time): Added.  Contains the code (previously
8515         in bus_context_new) for setting up the BusContext from the
8516         BusConfigParser that should be run every time the config files are
8517         read.
8518         (load_config): Added.  Builds a BusConfigParser from the config
8519         files and passes the resulting structure off to
8520         process_config_first_time_only (assuming this is the first time)
8521         and process_config_every_time.
8522         (bus_context_new): All of the config-related code has been moved
8523         to process_config_first_time_only and process_config_every_time.
8524         Now this function just does the non-config-related initializations
8525         and calls load_config.
8526         (bus_context_reload_config): Added.
8527
8528 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8529
8530         * bus/driver.c (bus_driver_handle_get_service_owner):
8531         implement a GetServiceOwner method.
8532         * doc/dbus-specification.xml: document it.
8533         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8534         
8535         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8536         implement, using the bus GetServiceOwner method.
8537
8538         * test/glib/test-dbus-glib.c:
8539         use dbus_gproxy_new_for_service_owner so that we can receive the
8540         signal. 
8541
8542 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8543
8544         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8545         dbus/dbus-message.c, dbus/dbus-protocol.h
8546         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8547
8548         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8549         dbus/dbus-message.c, dbus/dbus-protocol.h
8550         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8551
8552         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8553         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8554         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8555
8556         * doc/dbus-specification.xml (Header Fields Table):
8557         s/SERVICE/DESTINATION
8558         s/SENDER_SERVICE/SENDER
8559
8560
8561 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8562
8563         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8564         a few seconds.
8565
8566 2004-04-13  Michael Meeks  <michael@ximian.com>
8567
8568         * glib/dbus-gobject.c (handle_introspect): split out
8569         (introspect_properties): this.
8570         (handle_introspect): implement this.
8571
8572         * test/glib/Makefile.am: use the absolute path so the bus
8573         daemon's chdir ("/") doesn't kill us dead.
8574
8575         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8576
8577 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8578
8579         * bus/config-parser.c (struct BusConfigParser): Added
8580         included_files field.
8581         (seen_include): Added.  Checks whether or not a file has already
8582         been included by any parent BusConfigParser.
8583         (bus_config_parser_new): Copy the parent's included_files.
8584         (include_file): Track which files have been included, and fail on
8585         circular inclusions.
8586         (process_test_valid_subdir): Changed printf to report if we are
8587         testing valid or invalid conf files.
8588         (all_are_equiv): Changed printf to be a bit clearer about
8589         what we are actually doing.
8590         (bus_config_parser_test): Test invalid configuration files.
8591
8592 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8593
8594         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8595         argument.  If non-null, the newly-constructed BusConfigParser will
8596         be initialized with the parent's BusLimits instead of the default
8597         values.
8598         (include_file): When including a config file, pass in
8599         the current parser as the parent and then copy the BusLimits
8600         from the included BusConfigParser pack to the current parser.
8601         (process_test_valid_subdir): Renamed from process_test_subdir.
8602         (process_test_equiv_subdir): Added.  Walks through a directory,
8603         descending into each subdirectory and loading the config files
8604         it finds there.  If any subdirectory contains two config files
8605         that don't produce identical BusConfigParser structs, fail.
8606         For now, the BusConfigParser's BusPolicies are not compared.
8607         (bus_config_parser_test): Call both process_test_valid_subdir and
8608         process_test_equiv_subdir.
8609
8610         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8611         argument and pass it along to the call to bus_config_parser_new.
8612         Also made a few small changes to allow this code to compile.
8613
8614         * bus/config-loader-expat.c (bus_config_load): Take a parent
8615         argument and pass it along to the call to bus_config_parser_new.
8616
8617         * bus/bus.c (bus_context_new): Load the config file
8618         with a NULL parent argument.
8619
8620 2004-03-29  Michael Meeks  <michael@ximian.com>
8621
8622         * glib/dbus-gobject.c (introspect_properties): split
8623         out, fix mangled 'while' flow control.
8624         (introspect_signals): implement.
8625         (handle_introspect): update.
8626
8627 2004-03-29  Michael Meeks  <michael@ximian.com>
8628
8629         * glib/dbus-gobject.c (set_object_property): split out / 
8630         re-work, use the property type, and not the message type(!)
8631         (get_object_property): ditto.
8632
8633         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8634         (dbus_gvalue_marshal): make this code re-usable, needed
8635         for signals too, also on both proxy and server side.
8636         Re-write for more efficiency / readability.
8637
8638 2004-03-29  Michael Meeks  <michael@ximian.com>
8639
8640         * dbus/dbus-message.c
8641         (dbus_message_new_error_printf): impl.
8642
8643         * dbus/dbus-connection.c
8644         (dbus_connection_unregister_object_path): fix warning.
8645
8646         * configure.in: fix no-mono-installed situation.
8647
8648 2004-03-27  Havoc Pennington  <hp@redhat.com>
8649
8650         Patch from Timo Teräs:
8651         
8652         * tools/dbus-send.c (main): if --print-reply, assume type is
8653         method call; support boolean type args
8654         
8655         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8656         bunch of memleak and logic bugs
8657         
8658 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8659
8660         * mono/Arguments.cs:
8661         * mono/Introspector.cs:
8662         * mono/Handler.cs:
8663         * mono/InterfaceProxy.cs:
8664         * mono/Message.cs
8665         * mono/ProxyBuilder.cs:
8666         * mono/Service.cs:
8667         Added InterfaceProxy class to avoid building proxies for every
8668         object.
8669
8670         * dbus-message.h:
8671         * dbus-message.c (dbus_message_append_args_valist)
8672         (dbus_message_iter_get_object_path)
8673         (dbus_message_iter_get_object_path_array)
8674         (dbus_message_iter_append_object_path)
8675         (dbus_message_iter_append_object_path_array):
8676         Added object_path iter functions to handle OBJECT_PATH arguments
8677         
8678 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8679
8680         First checkin of mono bindings.
8681         * configure.in:
8682         * Makefile.am:
8683         Build stuff for the bindings
8684         * dbus-sharp.pc.in: Added for pkgconfig
8685         
8686 2004-03-21  Havoc Pennington  <hp@redhat.com>
8687
8688         * test/test-service.c (main): remove debug spew
8689
8690 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8691
8692         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8693         arrays
8694
8695         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8696         (dbus_message_iter_init_array_iterator)
8697         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8698         indicate whether the iterator is empty
8699
8700         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8701         warnings
8702
8703 2004-03-19  Havoc Pennington  <hp@redhat.com>
8704
8705         * NEWS: 0.21 updates
8706
8707         * configure.in: 0.21
8708
8709         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8710         
8711         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8712         you don't need pyrex to make dist
8713
8714         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8715         sources; run moc
8716         
8717 2004-03-18  Richard Hult  <richard@imendio.com>
8718
8719         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8720         (dbus_message_set_auto_activation): Add doxygen docs.
8721
8722 2004-03-16  Richard Hult  <richard@imendio.com>
8723
8724         * bus/activation.c: (bus_activation_service_created),
8725         (bus_activation_send_pending_auto_activation_messages),
8726         (bus_activation_activate_service):
8727         * bus/activation.h:
8728         * bus/dispatch.c: (bus_dispatch),
8729         (check_nonexistent_service_auto_activation),
8730         (check_service_auto_activated),
8731         (check_segfault_service_auto_activation),
8732         (check_existent_service_auto_activation), (bus_dispatch_test):
8733         * bus/driver.c: (bus_driver_handle_activate_service):
8734         * bus/services.c: (bus_registry_acquire_service):
8735         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8736         (dbus_message_get_auto_activation):
8737         * dbus/dbus-message.h:
8738         * dbus/dbus-protocol.h: Implement auto-activation.
8739         
8740         * doc/dbus-specification.xml: Add auto-activation to the spec.
8741
8742 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8743
8744         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8745         fix a bug with CUSTOM types.
8746
8747         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8748         a unit test for this bug (used to fail).
8749
8750 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8751
8752         * bus/activation.c:
8753         (babysitter_watch_callback): notify all pending activations waiting for
8754           the same exec that the activation failed.
8755         (bus_activation_activate_service): shortcut the activation if we 
8756           already waiting for the same executable to start up.
8757
8758 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8759
8760         * bus/activation.c: 
8761         - Added service file reloading. 
8762           Each service files directory is kept in an hash table in 
8763           BusActivation and each BusActivationEntry knows what .service-file it
8764           was read from. So when you try to activate a service the bus will 
8765           check if it's been updated, removed or if new .service-files has 
8766           been installed.
8767         - Test code at the bottom for the service file reloading.
8768         * bus/test-main.c: (main):
8769         * bus/test.h:
8770         - added service reloading test.
8771         * dbus/dbus-sysdeps.c: 
8772         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8773
8774 2004-03-08  Michael Meeks  <michael@ximian.com>
8775
8776         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8777         bail immediately if disconnected, to avoid busy loop.
8778
8779         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8780         cleanup cut/paste/inefficiency.
8781
8782 2004-03-01  David Zeuthen  <david@fubar.dk>
8783
8784         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8785         bug where args were used twice. This bug resulted in a segfault
8786         on a Debian/PPC system when starting the messagebus daemon. Include
8787         dbus-sysdeps.h for DBUS_VA_COPY
8788
8789         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8790
8791         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8792         appropriate va_copy implementation. From GLib
8793         
8794 2004-02-24  Joe Shaw  <joe@ximian.com>
8795
8796         * bus/services.c (bus_registry_acquire_service): We need to pass
8797         in the service name to dbus_set_error() to prevent a crash.
8798
8799 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8800
8801         * AUTHORS: Reveal my True identity.
8802
8803 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8804
8805         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8806         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8807
8808 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8809
8810         * doc/TODO: Added not about better error check of configuration files.
8811
8812 2003-12-02  Richard Hult  <richard@imendio.com>
8813
8814         * Update AFL version to 2.0 throughout the source files to reflect
8815         the update that was done a while ago.
8816
8817 2003-12-02  Richard Hult  <richard@imendio.com>
8818
8819         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8820         wrote_dict_key to FALSE on the iter that the dict is appended to,
8821         just like when appending other types. Fixes a bug where a dict
8822         couldn't be put inside a dict.
8823         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8824         (message_iter_test, _dbus_message_test): Add test case for dict
8825         inside dict.
8826
8827 2003-12-01  David Zeuthen  <david@fubar.dk>
8828
8829         * python/dbus.py: Add the actual message when calling the reciever
8830         of a signal such that parameters can be inspected. Add the method
8831         remove_signal_receiver
8832         
8833 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8834
8835         * bus/*.[ch]:
8836         * dbus/*.[ch]:
8837         * glib/*.[ch]: Made ref functions return the pointer
8838
8839 2003-11-25  Zack Rusin  <zack@kde.org>
8840
8841         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8842
8843         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8844         wrappers,
8845
8846         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8847         the Integrator and to better fit with the server,
8848
8849 2003-11-24  Zack Rusin  <zack@kde.org>
8850
8851         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8852         the integrator handles it now
8853
8854         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8855         since QTimer wasn't really meant to be used the way DBusTimeout is
8856
8857 2003-11-24  Zack Rusin  <zack@kde.org>
8858
8859         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8860         Integrator class which integrates D-BUS with the Qt event loop,
8861
8862         * qt/connection.h, qt/connection.cpp: Move all the code which
8863         was dealing with D-BUS integration to the Integrator class,
8864         and start using Integrator,
8865
8866 2003-11-23  Zack Rusin  <zack@kde.org>
8867
8868         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8869         wrapper
8870
8871         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8872         switching namespaces to DBusQt, reworking the class,
8873
8874         * Makefile.cvs: switching dependencies so that it matches KDE 
8875         schematics,
8876         
8877         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8878         the library
8879
8880 2003-11-19  Havoc Pennington  <hp@redhat.com>
8881
8882         * NEWS: update
8883
8884         * configure.in: bump version to 0.20
8885
8886         * configure.in (have_qt): add yet another place to look for qt
8887         (someone hand trolltech a .pc file...)
8888
8889 2003-11-01  Havoc Pennington  <hp@redhat.com>
8890
8891         * doc/dbus-specification.xml: add state machine docs on the auth
8892         protocol; just a first draft, I'm sure it's wrong.      
8893
8894 2003-10-28  David Zeuthen  <david@fubar.dk>
8895
8896         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8897         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8898         
8899 2003-10-28  Havoc Pennington  <hp@redhat.com>
8900
8901         * dbus/dbus-message.c (get_next_field): delete unused function
8902
8903 2003-10-28  Havoc Pennington  <hp@redhat.com>
8904
8905         * bus/expirelist.c (do_expiration_with_current_time): detect
8906         failure of the expire_func due to OOM
8907
8908         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8909
8910         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8911         NoReply error that's now created by the bus when the service exits
8912
8913 2003-10-28  Havoc Pennington  <hp@redhat.com>
8914
8915         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8916         tests for set_path, set_interface, set_member, etc.
8917
8918         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8919
8920         * dbus/dbus-message.c (set_string_field): always just delete and
8921         re-append the field; accept NULL for deletion
8922         (re_align_fields_recurse): reimplement
8923         
8924 2003-10-26  Havoc Pennington  <hp@redhat.com>
8925
8926         * dbus/dbus-connection.c: fix docs to properly describe the
8927         disconnected message
8928         (_dbus_connection_notify_disconnected): remove this function; 
8929         we can't synchronously add the disconnected message, we have to 
8930         do it after we've queued any remaining real messages
8931         (_dbus_connection_get_dispatch_status_unlocked): queue the
8932         disconnect message only if the transport has finished queueing all
8933         its real messages and is disconnected.
8934         (dbus_connection_disconnect): update the dispatch status here
8935
8936 2003-10-22  Havoc Pennington  <hp@redhat.com>
8937
8938         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8939
8940         * bus/connection.c (bus_transaction_send_from_driver): set the
8941         destination to the connection's base service
8942
8943 2003-10-20  Havoc Pennington  <hp@redhat.com>
8944
8945         hmm, make check is currently not passing.
8946         
8947         * doc/dbus-specification.xml: add requirement that custom type
8948         names follow the same rules as interface names.
8949
8950         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
8951         duplication and allow 'c' to be 'custom'; dict is now 'm' for
8952         'map'
8953
8954         * doc/dbus-specification.xml: update type codes to match
8955         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
8956         CUSTOM. Add type OBJECT_PATH to the spec.
8957
8958 2003-10-17  Havoc Pennington  <hp@redhat.com>
8959
8960         * bus/driver.c (create_unique_client_name): use "." as separator
8961         in base service names instead of '-'
8962
8963         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
8964         byte at the end of the string
8965
8966         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
8967         optimization macros since string validation seems to be a slow
8968         point.
8969         
8970         * doc/dbus-specification.xml: restrict valid
8971         service/interface/member/error names. Add test suite code for the
8972         name validation.
8973
8974         * dbus/dbus-string.c: limit service/interface/member/error names 
8975         to [0-9][A-Z][a-z]_
8976
8977         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
8978         format arg to verbose spew
8979
8980         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
8981         memory, return instead of g_error
8982
8983         * test/test-service.c (path_message_func): support emitting a
8984         signal on request
8985
8986         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
8987         activation bus type if DBUS_BUS_ACTIVATION was set; default to
8988         assuming the activation bus was the session bus so that services
8989         started manually will still register.
8990         (init_connections_unlocked): fix so that in OOM situation we get
8991         the same semantics when retrying the function
8992         
8993         * test/test-service.c (main): change to use path registration, to
8994         test those codepaths; register with DBUS_BUS_ACTIVATION rather
8995         than DBUS_BUS_SESSION
8996
8997 2003-10-16  Havoc Pennington  <hp@redhat.com>
8998
8999         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9000
9001         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9002         coverage of the tests
9003         (coverage-report.txt): don't move the .da and .bbg files around
9004
9005 2003-10-16  Havoc Pennington  <hp@redhat.com>
9006
9007         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9008         to put there
9009
9010 2003-10-16  Havoc Pennington  <hp@redhat.com>
9011
9012         * bus/connection.c (bus_pending_reply_expired): either cancel or
9013         execute, not both
9014         (bus_connections_check_reply): use unlink, not remove_link, as we
9015         don't want to free the link; fixes double free mess
9016
9017         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9018         where no reply was received
9019
9020         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9021         fix a refcount leak
9022
9023         * bus/signals.c (match_rule_matches): add special cases for the
9024         bus driver, so you can match on sender/destination for it.
9025
9026         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9027         DBUS_PRINT_BACKTRACE is set
9028
9029         * dbus/dbus-internals.c: add pid to assertion failure messages
9030
9031         * dbus/dbus-connection.c: add message type code to the debug spew
9032
9033         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9034         sender=foo not service=foo
9035
9036         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9037         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9038         DBUS_ACTIVATION_ADDRESS instead
9039
9040         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9041         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9042
9043         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9044         context struct
9045
9046         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9047         (dbus_message_iter_get_object_path_array): new function (half
9048         finished, disabled for the moment)
9049         
9050         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9051         DBUS_MESSAGE_TYPE_ERROR
9052
9053         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9054         avoid redirecting stderr to /dev/null
9055         (babysit): close stdin if not doing the "exit_with_session" thing
9056
9057         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9058         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9059         stdout/stdin, so things don't get confused
9060         
9061         * bus/system.conf.in: fix to allow replies, I modified .conf
9062         instead of .conf.in again.
9063
9064 2003-10-14  David Zeuthen  <david@fubar.dk>
9065
9066         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9067         argtype to arg_type when raising unknown arg type exception.
9068         Changed type list to reflect the changes in dbus-protocol.h so 
9069         the bindings actually work.
9070
9071 2003-10-14  Havoc Pennington  <hp@redhat.com>
9072
9073         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9074         to have a bug keeping it from outputting the .da files sometimes
9075         (string_get_string): don't append garbage nul bytes to the string.
9076
9077 2003-10-15  Seth Nickell  <seth@gnome.org>
9078
9079         * python/Makefile.am:
9080
9081         Include dbus_h_wrapper.h in the dist tarball.
9082
9083 2003-10-14  Havoc Pennington  <hp@redhat.com>
9084
9085         * bus/bus.c (bus_context_check_security_policy): revamp this to
9086         work more sanely with new policy-based requested reply setup
9087
9088         * bus/connection.c (bus_transaction_send_from_driver): set bus
9089         driver messages as no reply
9090
9091         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9092         requested_reply attribute on allow/deny rules
9093
9094         * bus/system.conf: add <allow requested_reply="true"/>
9095
9096         * bus/driver.c (bus_driver_handle_message): fix check for replies
9097         sent to the bus driver, which was backward. How did this ever work
9098         at all though? I think I'm missing something.
9099
9100         * dbus/dbus-message.c (decode_header_data): require error and
9101         method return messages to have a reply serial field to be valid
9102         (_dbus_message_loader_queue_messages): break up this function;
9103         validate that reply serial and plain serial are nonzero; 
9104         clean up the OOM/error handling.
9105         (get_uint_field): don't return -1 from this
9106         (dbus_message_create_header): fix signed/unsigned bug
9107
9108         * bus/connection.c (bus_connections_expect_reply): save serial of
9109         the incoming message, not reply serial
9110
9111 2003-10-14  Havoc Pennington  <hp@redhat.com>
9112
9113         * bus/connection.c: implement pending reply tracking using
9114         BusExpireList
9115
9116         * bus/bus.c (bus_context_check_security_policy): verify that a
9117         reply is pending in order to allow a reply to be sent. Deny 
9118         messages of unknown type.
9119
9120         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9121
9122         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9123         (bus_context_get_reply_timeout): new
9124
9125 2003-10-13  Seth Nickell  <seth@gnome.org>
9126
9127         * python/Makefile.am:
9128
9129         Pass "make distcheck": remove a couple files from DIST_FILES
9130         that weren't included in the final version.
9131
9132 2003-10-12  Havoc Pennington  <hp@pobox.com>
9133
9134         Added test code that 1) starts an actual bus daemon and 2) uses
9135         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9136         more testing possible, but this is the basic framework.
9137         
9138         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9139         empty proxy lists from the proxy list hash
9140
9141         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9142         couple of return_if_fail checks
9143
9144         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9145         to allocate, so everything is cleared to NULL as it should be.
9146
9147         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9148         source as data to dbus_connection_set_timeout_functions() as the 
9149         timeout functions expected
9150
9151         * test/glib/run-test.sh: add a little script to start up a message
9152         bus and run tests using it
9153
9154         * tools/dbus-launch.1: updates
9155
9156         * tools/dbus-launch.c (main): add --config-file option
9157
9158         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9159         that could never be reached.
9160
9161         * dbus/dbus-message.c (dbus_message_new_method_return) 
9162         (dbus_message_new_error, dbus_message_new_signal): set the
9163         no-reply-expected flag on all these. Redundant, but may
9164         as well be consistent.
9165
9166 2003-10-11  Havoc Pennington  <hp@pobox.com>
9167
9168         * test/decode-gcov.c (function_solve_graph): make broken block
9169         graph a nonfatal error since it seems to be broken. Need to debug
9170         this.
9171
9172         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9173         can't just check type > INVALID < LAST anymore
9174
9175         * dbus/dbus-message.c (dbus_message_get_signature): new function
9176         (dbus_message_has_signature): new function
9177         (struct DBusMessage): add signature field (right now it isn't sent
9178         over the wire, just generated on the fly)
9179         (dbus_message_copy): copy the signature, and init strings to
9180         proper length to avoid some reallocs
9181         (dbus_message_iter_init_array_iterator): return void, since it
9182         can't fail
9183         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9184         (_dbus_message_loader_queue_messages): add silly temporary hack to
9185         fill in message->signature on load
9186
9187         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9188         characters, so they are relatively human-readable.
9189
9190 2003-10-11  Havoc Pennington  <hp@pobox.com>
9191
9192         * dbus/dbus-message.c (_dbus_message_test): add more test
9193         coverage, but #if 0 for now since they uncover a bug 
9194         not fixed yet; I think in re_align_field_recurse()
9195         (re_align_field_recurse): add FIXME about broken assertion
9196
9197         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9198
9199         * bus/connection.c: share a couple code bits with expirelist.c
9200
9201         * bus/expirelist.h, bus/expirelist.c: implement a generic
9202         expire-items-after-N-seconds facility, was going to share between
9203         expiring connections and replies, decided not to use for expiring
9204         connections for now.
9205
9206         * COPYING: include AFL 2.0 (still need to change all the file headers)
9207
9208 2003-10-09  Havoc Pennington  <hp@redhat.com>
9209
9210         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9211         gcc 3.3. Not that we do anything about it yet.
9212
9213         * bus/signals.c (bus_match_rule_parse): impose max length on the
9214         match rule text
9215
9216         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9217
9218 2003-10-09  Havoc Pennington  <hp@redhat.com>
9219
9220         Make matching rules theoretically work (add parser).
9221         
9222         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9223         the case where destination is explicitly specified as bus driver
9224         and someone else is eavesdropping.
9225         
9226         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9227         definition of eavesdropping and assertion
9228
9229         * tools/dbus-send.c (main): use dbus_message_type_from_string
9230
9231         * bus/signals.c (bus_match_rule_parse): implement
9232
9233         * dbus/dbus-message.c (dbus_message_type_from_string): new
9234
9235         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9236
9237 2003-10-02  Havoc Pennington  <hp@pobox.com>
9238
9239         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9240         dbus_gproxy_oneway_call
9241
9242         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9243         (dbus_server_setup_with_g_main): fix to allow calling them more
9244         than once on the same args
9245         (dbus_bus_get_with_g_main): new function
9246
9247 2003-10-02  Havoc Pennington  <hp@redhat.com>
9248
9249         * doc/dbus-tutorial.xml: write some stuff
9250
9251 2003-09-29  Havoc Pennington  <hp@pobox.com>
9252
9253         * configure.in: split checks for Doxygen from XML docs, check for
9254         xmlto
9255
9256         * doc/Makefile.am: XML-ify all the docs, and add a blank
9257         dbus-tutorial.xml
9258
9259 2003-09-29  Havoc Pennington  <hp@pobox.com>
9260
9261         * Merge dbus-object-names branch. To see the entire patch 
9262         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9263         it's huuuuge though.
9264         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9265         
9266 2003-09-28  Havoc Pennington  <hp@pobox.com>
9267
9268         * HACKING: update to reflect new server
9269
9270 2003-09-26  Seth Nickell  <seth@gnome.org>
9271
9272         * python/dbus.py:
9273         * python/examples/example-signals.py:
9274
9275         Start implementing some notions of signals. The API
9276         is really terrible, but they sort of work (with the
9277         exception of being able to filter by service, and to
9278         transmit signals *as* a particular service). Need to
9279         figure out how to make messages come from the service
9280         we registered :-(
9281         
9282         * python/dbus_bindings.pyx.in:
9283
9284         Removed duplicate message_handler callbacks.
9285         
9286 2003-09-25  Havoc Pennington  <hp@redhat.com>
9287
9288         * bus/session.conf.in: fix my mess
9289
9290 2003-09-25  Havoc Pennington  <hp@pobox.com>
9291
9292         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9293
9294 2003-09-25  Seth Nickell  <seth@gnome.org>
9295
9296         * python/examples/example-service.py:
9297
9298         Johan notices complete wrong code in example-service, but
9299         completely wrong in a way that works exactly the same (!).
9300         Johan is confused, how could this possibly work? Example
9301         code fails to serve purpose of making things clear.
9302         Seth fixes.
9303
9304 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9305
9306         * doc/dbus-specification.sgml: don't require header fields
9307         to be 4-byte aligned and specify that fields should be
9308         distinguished from padding by the fact that zero is not
9309         a valid field name.
9310         
9311         * doc/TODO: remove re-alignment item and add item to doc
9312         the OBJECT_PATH type.
9313         
9314         * dbus/dbus-message.c:
9315         (HeaderField): rename the original member to value_offset
9316         and introduce a name_offset member to keep track of where
9317         the field actually begins.
9318         (adjust_field_offsets): remove.
9319         (append_int_field), (append_uint_field),
9320         (append_string_field): don't align the start of the header
9321         field to a 4-byte boundary.
9322         (get_next_field): impl finding the next marhsalled field
9323         after a given field.
9324         (re_align_field_recurse): impl re-aligning a number of
9325         already marshalled fields.
9326         (delete_field): impl deleting a field of any type and
9327         re-aligning any following fields.
9328         (delete_int_or_uint_field), (delete_string_field): remove.
9329         (set_int_field), (set_uint_field): no need to re-check
9330         that we have the correct type for the field.
9331         (set_string_field): ditto and impl re-aligning any
9332         following fields.
9333         (decode_header_data): update to take into account that
9334         the fields aren't 4-byte aligned any more and the new
9335         way to distinguish padding from header fields. Also,
9336         don't exit when there is too much header padding.
9337         (process_test_subdir): print the directory.
9338         (_dbus_message_test): add test to make sure a following
9339         field is re-aligned correctly after field deletion.
9340         
9341         * dbus/dbus-string.[ch]:
9342         (_dbus_string_insert_bytes): rename from insert_byte and
9343         allow the insert of multiple bytes.
9344         (_dbus_string_test): test inserting multiple bytes.
9345
9346         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9347         warning note to docs about having to re-align any
9348         marshalled values following the string.
9349         
9350         * dbus/dbus-message-builder.c:
9351         (append_string_field), (_dbus_message_data_load):
9352         don't align the header field.
9353         
9354         * dbus/dbus-auth.c: (process_test_subdir): print the
9355         directory.
9356         
9357         * test/break-loader.c: (randomly_add_one_byte): upd. for
9358         insert_byte change.
9359         
9360         * test/data/invalid-messages/bad-header-field-alignment.message:
9361         new test case.
9362         
9363         * test/data/valid-messages/unknown-header-field.message: shove
9364         a dict in the unknown field.
9365
9366 2003-09-25  Seth Nickell  <seth@gnome.org>
9367
9368         * python/dbus.py:
9369         * python/dbus_bindings.pyx.in:
9370
9371         Handle return values.
9372         
9373         * python/examples/example-client.py:
9374         * python/examples/example-service.py:
9375
9376         Pass back return values from the service to the client.
9377         
9378 2003-09-24  Seth Nickell  <seth@gnome.org>
9379
9380         * python/dbus.py:
9381
9382         Connect Object methods (when you are sharing an object) up... pass
9383         in a list of methods to be shared. Sharing all the methods just
9384         worked out too weird. You can now create nice Services over the
9385         DBus in Python. :-)
9386         
9387         * python/dbus_bindings.pyx.in:
9388
9389         Keep references to user_data tuples passed into C functions so 
9390         Python doesn't garbage collect on us.
9391
9392         Implement MethodReturn and Error subclasses of Message for creating
9393         DBusMessage's of those types.
9394         
9395         * python/examples/example-client.py:
9396         * python/examples/example-service.py:
9397
9398         Simple example code showing both how create DBus services and objects,
9399         and how to use them.
9400
9401 2003-09-23  Havoc Pennington  <hp@pobox.com>
9402
9403         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9404
9405 2003-09-23  Havoc Pennington  <hp@redhat.com>
9406
9407         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9408         (dbus_gproxy_disconnect_signal): implement
9409         (dbus_gproxy_manager_remove_signal_match): implement
9410         (dbus_gproxy_manager_add_signal_match): implement
9411         (dbus_gproxy_oneway_call): implement
9412
9413 2003-09-23  Havoc Pennington  <hp@pobox.com>
9414
9415         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9416         subclass. This means dropping the transparent thread safety of the
9417         proxy; you now need a separate proxy per-thread, or your own
9418         locking on the proxy. Probably right anyway.
9419         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9420
9421 2003-09-22  Havoc Pennington  <hp@redhat.com>
9422
9423         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9424
9425 2003-09-21  Seth Nickell  <seth@gnome.org>
9426
9427         First checkin of the Python bindings.
9428         
9429         * python/.cvsignore:
9430         * python/Makefile.am:
9431         * python/dbus_bindings.pyx.in:
9432         * python/dbus_h_wrapper.h:
9433
9434         Pieces for Pyrex to operate on, building a dbus_bindings.so
9435         python module for low-level access to the DBus APIs.
9436         
9437         * python/dbus.py:
9438
9439         High-level Python module for accessing DBus objects.
9440
9441         * configure.in:
9442         * Makefile.am:
9443
9444         Build stuff for the python bindings.
9445
9446         * acinclude.m4:
9447
9448         Extra macro needed for finding the Python C header files.
9449
9450 2003-09-21  Havoc Pennington  <hp@pobox.com>
9451
9452         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9453         implementing the proxy manager, didn't get very far.
9454
9455         * dbus/dbus-bus.c (dbus_bus_add_match): new
9456         (dbus_bus_remove_match): new
9457
9458         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9459         path_name argument; adjust the other not-yet-implemented 
9460         gproxy constructors to be what I think they should be.
9461
9462 2003-09-21  Havoc Pennington  <hp@pobox.com>
9463
9464         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9465         by default for message bus connections.
9466
9467         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9468         exit_on_disconnect flag is set and we process the disconnected
9469         signal.
9470         (dbus_connection_set_exit_on_disconnect): new function
9471
9472 2003-09-21  Havoc Pennington  <hp@pobox.com>
9473
9474         Get matching rules mostly working in the bus; only actually
9475         parsing the rule text remains. However, the client side of
9476         "signal connections" hasn't been started, this patch is only the
9477         bus side.
9478         
9479         * dbus/dispatch.c: fix for the matching rules changes
9480         
9481         * bus/driver.c (bus_driver_handle_remove_match)
9482         (bus_driver_handle_add_match): send an ack reply from these
9483         method calls
9484
9485         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9486         arguments, reported by Seth Nickell
9487
9488         * bus/config-parser.c (append_rule_from_element): support
9489         eavesdrop=true|false attribute on policies so match rules 
9490         can be prevented from snooping on the system bus.
9491
9492         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9493         and "destination" in attribute names; fix some docs bugs; 
9494         add eavesdrop=true|false attribute
9495
9496         * bus/driver.c (bus_driver_handle_add_match)
9497         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9498         messages
9499
9500         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9501         rid of broadcast service concept, signals are just always broadcast
9502
9503         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9504         mostly implement matching rules stuff (currently only exposed as signal
9505         connections)
9506
9507 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9508
9509         * doc/dbus-specification.sgml: Change the header field name
9510         to be an enum and update the rest of the spec to reference
9511         the fields using the conventinal name.
9512
9513         * dbus/dbus-protocol.h: update to reflect the spec.
9514
9515         * doc/TODO: add item to remove the 4 byte alignment requirement.
9516         
9517         * dbus/dbus-message.c: Remove the code to generalise the
9518         header/body length and serial number header fields as named
9519         header fields so we can reference field names using the 
9520         protocol values.
9521         (append_int_field), (append_uint_field), (append_string_field):
9522         Append the field name as a byte rather than four chars.
9523         (delete_int_or_uint_field), (delete_string_field): reflect the
9524         fact that the field name and typecode now occupy 4 bytes instead
9525         of 8.
9526         (decode_string_field), (decode_header_data): update to reflect
9527         protocol changes and move the field specific encoding from
9528         decode_string_field() back into decode_header_data().
9529         
9530         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9531         Add utility to aid debugging.
9532         
9533         * dbus/dbus-message-builder.c:
9534         (append_string_field), (_dbus_message_data_load): Update to
9535         reflect protocol changes; Change the FIELD_NAME directive
9536         to HEADER_FIELD and allow it to take the field's conventional
9537         name rather than the actual value.
9538         
9539         * test/data/*/*.message: Update to use HEADER_FIELD instead
9540         of FIELD_NAME; Always align the header on an 8 byte boundary
9541         *before* updating the header length.
9542
9543 2003-09-15  Havoc Pennington  <hp@pobox.com>
9544
9545         * dbus/dbus-pending-call.c: add the get/set object data
9546         boilerplate as for DBusConnection, etc. Use generic object data
9547         for the notify callback.
9548
9549         * glib/dbus-gparser.c (parse_node): parse child nodes
9550
9551         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9552         
9553         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9554         contain functions shared between the convenience lib and the
9555         installed lib
9556
9557         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9558         -export-symbols-regex to the GLib library
9559
9560         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9561         fix the locking in here, and add a default handler for
9562         Introspect() that just returns sub-nodes.
9563
9564 2003-09-14  Havoc Pennington  <hp@pobox.com>
9565
9566         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9567         rather than gfoo consistent
9568
9569         * glib/dbus-gproxy.h: delete for now, move contents to
9570         dbus-glib.h, because the include files don't work right since we
9571         aren't in the dbus/ subdir.
9572         
9573         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9574         (dbus_gproxy_end_call): finish
9575         (dbus_gproxy_begin_call): finish
9576
9577         * glib/dbus-gmain.c (dbus_set_g_error): new
9578
9579         * glib/dbus-gobject.c (handle_introspect): include information
9580         about child nodes in the introspection
9581
9582         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9583         function to help in implementation of introspection
9584
9585         * dbus/dbus-object-tree.c
9586         (_dbus_object_tree_list_registered_and_unlock): new function
9587
9588 2003-09-12  Havoc Pennington  <hp@pobox.com>
9589
9590         * glib/dbus-gidl.h: add common base class for all the foo_info
9591         types
9592
9593         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9594         similar to kdcop
9595
9596         * test/Makefile.am: try test srcdir -ef . in addition to test
9597         srcdir = ., one of them should work (yeah lame)
9598         
9599         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9600         library
9601         
9602         * glib/dbus-gparser.h: make description_load routines return
9603         NodeInfo* not Parser*
9604
9605         * Makefile.am (SUBDIRS): build test dir after all library dirs
9606
9607         * configure.in: add GTK+ detection
9608
9609 2003-09-07  Havoc Pennington  <hp@pobox.com>
9610
9611         * Make Doxygen contented.
9612
9613 2003-09-07  Havoc Pennington  <hp@pobox.com>
9614
9615         * doc/dbus-specification.sgml: more updates
9616
9617 2003-09-06  Havoc Pennington  <hp@pobox.com>
9618
9619         * doc/dbus-specification.sgml: partial updates
9620
9621         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9622         zillionth time; hopefully I edited the right file this time.
9623
9624         * bus/config-parser.c (append_rule_from_element): support
9625         send_type, send_path, receive_type, receive_path
9626
9627         * bus/policy.c: add message type and path to the list of things
9628         that can be "firewalled"
9629
9630 2003-09-06  Havoc Pennington  <hp@pobox.com>
9631
9632         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9633         (dbus_connection_register_object_path): make this not handle
9634         messages to paths below the given path
9635
9636 2003-09-03  Havoc Pennington  <hp@pobox.com>
9637
9638         * test/glib/Makefile.am: add this with random glib-linked test
9639         programs
9640
9641         * glib/Makefile.am: remove the random test programs from here,
9642         leave only the unit tests
9643
9644         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9645         uscore/javacaps conversion, and fix     
9646         (get_object_property, set_object_property): change to .NET
9647         convention for mapping props to methods, set_FooBar/get_FooBar, 
9648         since one language has such a convention we may as well copy it. 
9649         Plus real methods in either getFooBar or get_foo_bar style won't 
9650         collide with this convention.
9651
9652 2003-09-01  Havoc Pennington  <hp@pobox.com>
9653
9654         * glib/dbus-gparser.c: implement
9655
9656         * glib/dbus-gobject.c: start implementing skeletons support
9657
9658         * configure.in: when disabling checks/assert, also define
9659         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9660
9661 2003-09-01  Havoc Pennington  <hp@pobox.com>
9662
9663         * glib/Makefile.am: rearrange a bunch of files and get "make
9664         check" framework set up
9665
9666 2003-08-31  Havoc Pennington  <hp@pobox.com>
9667
9668         * fix build with --disable-tests
9669
9670 2003-08-30  Havoc Pennington  <hp@pobox.com>
9671
9672         * dbus/dbus-connection.c: purge DBusMessageHandler
9673
9674         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9675         use callbacks everywhere
9676
9677 2003-08-30  Havoc Pennington  <hp@pobox.com>
9678
9679         * test/data/valid-config-files/system.d/test.conf: change to 
9680         root for the user so warnings don't get printed
9681
9682         * dbus/dbus-message.c: add dbus_message_get_path,
9683         dbus_message_set_path
9684         
9685         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9686         dispatching to a path
9687
9688         * dbus/dbus-string.c (_dbus_string_validate_path): add
9689
9690         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9691         (_dbus_marshal_object_path): implement
9692
9693         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9694         to contain the path to the target object
9695         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9696         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9697
9698 2003-08-30  Havoc Pennington  <hp@pobox.com>
9699
9700         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9701
9702 2003-08-29  Havoc Pennington  <hp@pobox.com>
9703
9704         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9705         registered
9706         (struct DBusObjectSubtree): shrink this
9707         a lot, since we may have a lot of them
9708         (_dbus_object_tree_free_all_unlocked): implement
9709         (_dbus_object_tree_dispatch_and_unlock): implement
9710
9711 2003-08-29  Havoc Pennington  <hp@pobox.com>
9712
9713         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9714
9715 2003-08-28  Havoc Pennington  <hp@pobox.com>
9716
9717         purge DBusObjectID
9718         
9719         * dbus/dbus-connection.c: port to no ObjectID, create a
9720         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9721
9722         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9723         everything except UnregisterFunction and MessageFunction
9724         
9725         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9726         add DBUS_TYPE_OBJECT_PATH
9727         
9728         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9729         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9730         path-based object IDs
9731
9732 2003-08-25  Havoc Pennington  <hp@pobox.com>
9733
9734         Just noticed that dbus_message_test is hosed, I wonder when I
9735         broke that. I thought make check was passing earlier...
9736         
9737         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9738         container tree, will replace most of dbus-object-registry
9739
9740         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9741         screwup
9742
9743 2003-08-19  Havoc Pennington  <hp@pobox.com>
9744
9745         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9746         (dbus_message_is_error): fix this function
9747
9748         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9749         match
9750
9751         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9752         reflect clarified man page
9753         (bus_client_policy_check_can_send): ditto
9754         
9755         * bus/session.conf.in: fixup
9756
9757         * bus/system.conf.in: fixup
9758
9759 2003-08-18  Havoc Pennington  <hp@redhat.com>
9760
9761         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9762
9763         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9764         dumb bug created earlier (wrong order of args to
9765         decode_header_data())
9766         
9767         * tools/dbus-send.c: port
9768
9769         * tools/dbus-print-message.c (print_message): port
9770
9771         * test/data/*messages: port all messages over
9772         
9773         * dbus/dbus-message-builder.c: support including 
9774         message type
9775         
9776         * bus/driver.c: port over
9777         
9778         * bus/dispatch.c: port over to new stuff
9779
9780         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9781         rename disconnect signal to "Disconnected"
9782
9783 2003-08-17  Havoc Pennington  <hp@pobox.com>
9784
9785         This doesn't compile yet, but syncing up so I can hack on it from
9786         work. What are branches for if not broken code? ;-)
9787         
9788         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9789         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9790         DBUS_HEADER_FIELD_ERROR_NAME
9791         
9792         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9793         for the interface+member pairs
9794         (string_hash): change to use g_str_hash algorithm
9795         (find_direct_function, find_string_function): refactor these to
9796         share most code.
9797         
9798         * dbus/dbus-message.c: port all of this over to support 
9799         interface/member fields instead of name field
9800
9801         * dbus/dbus-object-registry.c: port over
9802         
9803         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9804         from _dbus_string_validate_name
9805
9806         * bus/dbus-daemon-1.1: change file format for the 
9807         <deny>/<allow> stuff to match new message naming scheme
9808
9809         * bus/policy.c: port over
9810
9811         * bus/config-parser.c: parse new format
9812         
9813 2003-08-16  Havoc Pennington  <hp@pobox.com>
9814
9815         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9816         broken assertion
9817
9818         * glib/dbus-gproxy.c: some hacking
9819
9820 2003-08-15  Havoc Pennington  <hp@redhat.com>
9821
9822         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9823
9824         * dbus/dbus-connection.c
9825         (dbus_connection_send_with_reply_and_block): factor out internals;
9826         change to convert any error replies to DBusError instead of 
9827         returning them as a message
9828
9829 2003-08-15  Havoc Pennington  <hp@pobox.com>
9830
9831         * dbus/dbus-connection.c, 
9832         dbus/dbus-pending-call.c: Finish the pending call stuff
9833
9834 2003-08-14  Havoc Pennington  <hp@redhat.com>
9835
9836         * dbus/dbus-pending-call.c: start on new object that will replace
9837         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9838         replies
9839
9840         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9841         with remote interfaces
9842
9843         * dbus/dbus-gidl.c: do the boring boilerplate in here
9844         
9845 2003-08-12  Havoc Pennington  <hp@pobox.com>
9846
9847         * bus/dispatch.c (bus_dispatch): make this return proper 
9848         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9849
9850         * dbus/dbus-errors.c (dbus_set_error): use
9851         _dbus_string_append_printf_valist
9852
9853         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9854         (_dbus_string_append_printf): new
9855
9856         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9857         UNKNOWN_METHOD
9858
9859         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9860         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9861         message is unhandled.
9862
9863 2003-08-11  Havoc Pennington  <hp@pobox.com>
9864
9865         * bus/test.c (client_disconnect_handler): change to return
9866         HANDLED (would have been REMOVE_MESSAGE)
9867
9868         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9869         HANDLED/NOT_YET_HANDLED instead of
9870         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9871         should be used.
9872
9873 2003-08-10  Havoc Pennington  <hp@pobox.com>
9874
9875         * tools/dbus-send.c (main): add --type argument, for now
9876         supporting only method_call and signal types.
9877
9878         * tools/dbus-print-message.c: print message type
9879
9880         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9881         init connection->objects
9882
9883         * doc/dbus-specification.sgml: fix sgml
9884
9885         * bus/*.c: port over to object-instance API changes
9886
9887         * test/test-service.c: ditto
9888         
9889         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9890         name, we will have to fix up the rest of the code to also handle
9891         this
9892         (dbus_message_new): generic message-creation call
9893         (set_string_field): allow appending name field
9894
9895 2003-08-06  Havoc Pennington  <hp@pobox.com>
9896
9897         * dbus/dbus-object-registry.c: implement signal connection 
9898         and dispatch
9899
9900         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9901
9902         * dbus/dbus-internals.c (_dbus_memdup): new function
9903
9904 2003-08-02  Havoc Pennington  <hp@pobox.com>
9905
9906         * dbus/dbus-message.c (dbus_message_get_no_reply)
9907         (dbus_message_set_no_reply): add these and remove
9908         set_is_error/get_is_error
9909
9910         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9911         remove the ERROR flag, since there's now an ERROR type
9912
9913 2003-08-01  Havoc Pennington  <hp@pobox.com>
9914
9915         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9916         implement
9917
9918         * dbus/dbus-message.c (dbus_message_get_type): new function
9919
9920         * doc/dbus-specification.sgml: add "type" byte to messages
9921
9922 2003-08-01  Havoc Pennington  <hp@pobox.com>
9923
9924         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9925         a message type enum to distinguish kinds of message
9926         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9927         that need not be replied to
9928
9929 2003-08-01  Havoc Pennington  <hp@pobox.com>
9930
9931         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9932         (unpack_8_octets): fix no-64-bit-int bug
9933
9934         * dbus/dbus-object-registry.c (validate_id): validate the 
9935         connection ID bits, not just the instance ID.
9936
9937         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9938         the connection-global 33 bits of the object ID
9939
9940         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9941         object ID in the new way
9942
9943         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9944         define server/client/instance bits.
9945
9946 2003-07-30  Havoc Pennington  <hp@pobox.com>
9947
9948         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9949         build
9950
9951 2003-07-13  Havoc Pennington  <hp@pobox.com>
9952
9953         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
9954         fields to DBusObjectVTable and DBusObjectInfo
9955
9956 2003-07-12  Havoc Pennington  <hp@pobox.com>
9957
9958         * dbus/dbus-object-registry.c: implement unit test,
9959         fix bugs discovered in process
9960
9961         * dbus/dbus-connection.c: remove handler_table and
9962         register_handler(), add DBusObjectRegistry usage
9963
9964         * dbus/dbus-objectid.c (dbus_object_id_is_null)
9965         (dbus_object_id_set_null): new functions
9966
9967 2003-07-08  Havoc Pennington  <hp@pobox.com>
9968
9969         * dbus/dbus-object.c: implement some of this
9970
9971         * dbus/dbus-object-registry.c
9972         (_dbus_object_registry_add_and_unlock): fill in the object_id out
9973         param
9974         (_dbus_object_registry_new): handle OOM
9975
9976 2003-07-08  Havoc Pennington  <hp@pobox.com>
9977
9978         * dbus/dbus-object.h: sketch out an API for registering objects
9979         with a connection, that allows us to use as little as 24 bytes
9980         per object and lets application code represent an object in 
9981         any conceivable way.
9982
9983         * dbus/dbus-object-registry.c: implement the hard bits of the
9984         DBusConnection aspect of object API. Not yet wired up.
9985         
9986 2003-07-06  Havoc Pennington  <hp@pobox.com>
9987
9988         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
9989         (_dbus_marshal_object_id): new
9990         (_dbus_demarshal_object_id): new
9991         (_dbus_marshal_get_arg_end_pos): support object ID type, and
9992         consolidate identical switch cases. Don't conditionalize handling
9993         of DBUS_TYPE_UINT64, need to handle the type always.
9994         (_dbus_marshal_validate_arg): consolidate identical cases, and
9995         handle DBUS_TYPE_OBJECT_ID
9996
9997         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
9998
9999         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10000
10001 2003-09-28  Havoc Pennington  <hp@pobox.com>
10002
10003         * real 0.13 release
10004
10005 2003-09-28  Havoc Pennington  <hp@pobox.com>
10006
10007         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10008         to work with Debian db2html
10009
10010 2003-09-28  Havoc Pennington  <hp@pobox.com>
10011
10012         * configure.in: 0.13
10013
10014         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10015         stylesheet-images for benefit of Debian
10016         
10017         Change back to using filesystem-linked sockets for the system
10018         bus, so only root can create the default system bus address.
10019         
10020         * bus/system.conf.in: change to use
10021         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10022
10023         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10024         from here.
10025
10026         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10027         here, and AC_DEFINE DBUS_SYSTEM_PATH
10028
10029 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10030
10031         * doc/TODO:
10032         * doc/busconfig.dtd:
10033         Add busconfig DTD.
10034         
10035 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10036
10037         * doc/dbus-specification.sgml:
10038         Add activation reply values.
10039         
10040 2003-08-05  Havoc Pennington  <hp@redhat.com>
10041
10042         * configure.in: 0.12
10043
10044 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10045
10046         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10047         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10048         (add_watch), (remove_watch), (create_source):
10049         Refcount fds, fixes some reentrancy issues.
10050         
10051 2003-07-30  Havoc Pennington  <hp@redhat.com>
10052
10053         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10054         bus address to be abstract if we have abstract sockets
10055
10056         * NEWS: update
10057
10058 2003-07-28  Havoc Pennington  <hp@redhat.com>
10059
10060         * bus/messagebus.in: fix to avoid processname/servicename 
10061         confusion, from Michael Kearey
10062         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10063         
10064 2003-07-23  Havoc Pennington  <hp@pobox.com>
10065
10066         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10067         fix from Andy Hanton to remove broken "+1"
10068
10069 2003-07-16  Havoc Pennington  <hp@pobox.com>
10070
10071         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10072         babysitter process, as suggested by Thomas Leonard, so 
10073         an "eval `dbus-launch --exit-with-session`" will actually 
10074         return
10075
10076 2003-07-16  Havoc Pennington  <hp@pobox.com>
10077
10078         * configure.in: print out EXPANDED_* variables in the summary at
10079         the end; clean up the code that computes EXPANDED_ variables and
10080         get the ones using exec_prefix right. Should make things work
10081         when you build without --prefix
10082
10083 2003-06-29  Havoc Pennington  <hp@pobox.com>
10084
10085         * mono/Test.cs (class Test): fire up a main loop and run it
10086
10087         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10088         done once, the app has to do it
10089
10090 2003-06-26  Havoc Pennington  <hp@pobox.com>
10091
10092         * mono/Connection.cs: set up connection with the glib main loop
10093
10094 2003-07-01  Havoc Pennington  <hp@redhat.com>
10095
10096         * doc/dbus-specification.sgml: clarify the format of a type code,
10097         change suggested by Jim Blandy
10098
10099 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10100
10101         * doc/Makefile.am:
10102         * tools/Makefile.am: Don't assume srcdir == builddir.
10103
10104         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10105         the allocated block.
10106         (_dbus_memory_test): New function.
10107         * dbus/dbus-test.h: Add _dbus_memory_test ().
10108         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10109
10110         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10111         of %c%c%c%c.
10112         (dbus_message_new): Remove obsolete @todo.
10113
10114         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10115         (_dbus_marshal_set_uint64): Fix comment.
10116
10117         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10118         hardcode FIELD_REPLY_SERIAL.
10119
10120         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10121         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10122
10123         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10124         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10125
10126 2003-06-24  Havoc Pennington  <hp@pobox.com>
10127
10128         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10129
10130 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10131
10132         * configure.in:
10133         * gcj/.cvsignore:
10134         * gcj/Hello.java:
10135         * gcj/Makefile.am:
10136         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10137         * gcj/org/.cvsignore:
10138         * gcj/org/Makefile.am:
10139         * gcj/org/freedesktop/.cvsignore:
10140         * gcj/org/freedesktop/Makefile.am:
10141         * gcj/org/freedesktop/dbus/.cvsignore:
10142         * gcj/org/freedesktop/dbus/Makefile.am:
10143         * gcj/org/freedesktop/dbus/Message.java: (Message),
10144         (Message.Message):
10145         * gcj/org/freedesktop/dbus/natMessage.cc:
10146         Fix the build system.
10147
10148 2003-06-22  Havoc Pennington  <hp@pobox.com>
10149
10150         * mono/Connection.cs: add more bindings
10151
10152         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10153         more than once.
10154
10155 2003-06-22  Havoc Pennington  <hp@pobox.com>
10156
10157         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10158         Start wrapping more stuff.
10159
10160 2003-06-22  Havoc Pennington  <hp@pobox.com>
10161
10162         * mono/Message.cs: implement Message.Wrap() that ensures we only
10163         have a single C# wrapper per DBusMessage, assuming it works which
10164         it probably doesn't.
10165
10166         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10167         (dbus_message_free_data_slot): new
10168         (dbus_message_set_data): new
10169         (dbus_message_get_data): new
10170
10171 2003-06-22  Havoc Pennington  <hp@pobox.com>
10172
10173         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10174         (_dbus_data_slot_allocator_alloc): rework these to keep a
10175         reference count on each slot and automatically manage a global
10176         slot ID variable passed in by address
10177
10178         * bus/bus.c: convert to new dataslot API
10179
10180         * dbus/dbus-bus.c: convert to new dataslot API
10181
10182         * dbus/dbus-connection.c: convert to new dataslot API
10183
10184         * dbus/dbus-server.c: convert to new dataslot API
10185
10186         * glib/dbus-gmain.c: ditto
10187
10188         * bus/test.c: ditto
10189
10190         * bus/connection.c: ditto
10191
10192 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10193
10194         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10195         after the gcj checks so that the correct configuration tags
10196         will be added to libtool.
10197
10198         * dbus-glib-1.pc.in: No need to specify any includes since
10199         dbus-1.pc.in has those.
10200
10201 2003-06-22  Havoc Pennington  <hp@pobox.com>
10202
10203         * mono/*, gcj/*, configure.in, Makefile.am:
10204         Check in makefiles and subdirs for mono and gcj bindings.
10205         Neither binding actually exists, just trying to get through
10206         all the build and other boring bits.
10207
10208 2003-06-21  Philip Blundell  <philb@gnu.org>
10209
10210         * tools/dbus-monitor.1: Updated.
10211
10212         * tools/dbus-send.1: Likewise.
10213
10214 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10215
10216         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10217         for hangup and error after checking read so we won't discard
10218         pending data if both hangup and read are set.
10219
10220 2003-06-19  Philip Blundell  <philb@gnu.org>
10221
10222         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10223
10224         * tools/dbus-send.c: Accept both --system and --session.
10225
10226         * tools/dbus-monitor.c: Same here.
10227
10228 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10229
10230         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10231         from C++ (Patch by Miloslav Trmac).
10232
10233 2003-06-15  Joe Shaw  <joe@assbarn.com>
10234
10235         * configure.in: Check for socklen_t.
10236
10237         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10238
10239         * test/test-segfault.c: Add #include <sys/time.h>
10240
10241         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10242         dbus-launch needs it.
10243
10244 2003-06-09  Havoc Pennington  <hp@redhat.com>
10245
10246         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10247         SUN_LEN, it breaks abstract socket usage
10248
10249         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10250         starts of lines.
10251
10252 2003-06-04  Havoc Pennington  <hp@pobox.com>
10253
10254         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10255         using unix:abstract=/foo, and when listening in a tmpdir
10256         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10257
10258         * dbus/dbus-transport.c (_dbus_transport_open): support
10259         unix:abstract=/foo
10260
10261         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10262         support abstract sockets
10263
10264         * dbus/dbus-transport-unix.c
10265         (_dbus_transport_new_for_domain_socket): support abstract sockets
10266
10267         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10268         toggle as an argument, implement abstract namespace support
10269         (_dbus_listen_unix_socket): ditto
10270
10271         * configure.in: add --enable-abstract-sockets and implement
10272         a configure check for autodetection of the right value.
10273
10274 2003-06-01  Havoc Pennington  <hp@pobox.com>
10275
10276         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10277         in /tmp (though on Linux this will end up being useless,
10278         when we add abstract namespace support)
10279
10280         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10281         subst'ing it
10282
10283 2003-05-28  Colin Walters  <walters@verbum.org>
10284
10285         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10286
10287 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10288
10289         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10290
10291 2003-05-17  Colin Walters  <walters@gnu.org>
10292
10293         * tools/dbus-send.c: Don't exit with an error code if --help was
10294         passed.  Default to using the session bus instead of the system
10295         one.
10296
10297         * tools/dbus-launch.c: Ditto.
10298
10299         * tools/dbus-monitor.c: Ditto.
10300
10301         * tools/dbus-send.1: Update with new arguments.
10302
10303         * tools/dbus-launch.c: Emit code to export variables.  New
10304         arguments -s and -c to specify shell syntax, and a bit of code to
10305         autodetect syntax.  Also, allow specifying a program to run.
10306
10307         * tools/dbus-launch.1: Update with new arguments.
10308
10309         * tools/dbus-send.1: Ditto.
10310
10311         * tools/dbus-monitor.1: Ditto.
10312
10313 2003-05-17  Havoc Pennington  <hp@pobox.com>
10314
10315         * bus/config-parser.c (merge_included): merge in policies from
10316         child configuration file.
10317
10318         * bus/policy.c (bus_policy_merge): function to merge two policies
10319         together
10320
10321 2003-05-16  Havoc Pennington  <hp@redhat.com>
10322
10323         * dbus/dbus-connection.c: disable verbose lock spew
10324
10325         * tools/dbus-send.c: add --print-reply command line option
10326
10327         * tools/dbus-print-message.h (print_message): new util function
10328         shared by dbus-send and dbus-monitor
10329
10330         * tools/dbus-monitor.c (handler_func): exit on disconnect
10331
10332         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10333         disconnected, don't try to use the read_watch
10334
10335         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10336         so we can find this bug more easily
10337
10338 2003-05-16  Havoc Pennington  <hp@redhat.com>
10339
10340         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10341         NULL as DBusHashTable is annoyingly likely to do.
10342
10343 2003-05-16  Colin Walters  <walters@verbum.org>
10344
10345         * tools/dbus-monitor.c: Add --session argument and usage()
10346         function.
10347
10348         * tools/dbus-monitor.1: Update with new --session arg.
10349
10350         * bus/Makefile.am (install-data-hook): Create
10351         $(libdir)/dbus-1.0/services so that the session bus is happy.
10352
10353 2003-05-15  Havoc Pennington  <hp@redhat.com>
10354
10355         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10356         on non-x86. ifdef's are evil.
10357
10358 2003-05-15  Havoc Pennington  <hp@redhat.com>
10359
10360         * configure.in: 0.11
10361
10362         * NEWS: update
10363
10364         * bus/Makefile.am (initddir): apparently we are supposed to put
10365         init scripts in /etc/rc.d/init.d not /etc/init.d
10366
10367         * bus/Makefile.am: remove the "you must --enable-tests to make
10368         check" as it broke distcheck
10369
10370         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10371
10372 2003-05-13  James Willcox  <jwillcox@gnome.org>
10373
10374         * configure.in:
10375         * bus/activation.c: (bus_activation_service_created),
10376         (bus_activation_activate_service):
10377         * bus/driver.c: (bus_driver_send_service_deleted),
10378         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10379         (bus_driver_send_service_acquired),
10380         (bus_driver_send_welcome_message),
10381         (bus_driver_handle_list_services):
10382         * bus/session.conf.in:
10383         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10384         (dbus_bus_service_exists), (dbus_bus_activate_service):
10385         * dbus/dbus-bus.h:
10386
10387         Add some convenience API which lets you activate a service, and did a
10388         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10389         and dbus_message_get_args()
10390
10391 2003-05-11  Havoc Pennington  <hp@pobox.com>
10392
10393         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10394         calling _dbus_marshal_validate_arg() for every byte in a byte
10395         array, etc.
10396
10397         * dbus/dbus-message-handler.c: use atomic reference counting to
10398         reduce number of locks slightly; the global lock in here sucks
10399
10400         * dbus/dbus-connection.c
10401         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10402         update_dispatch_status that can be called with lock held; then use
10403         in a couple places to reduce locking/unlocking
10404         (dbus_connection_send): hold the lock over the whole function
10405         instead of acquiring it twice.
10406
10407         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10408
10409         * bus/connection.c (bus_connections_setup_connection): fix access
10410         to already-freed memory.
10411
10412         * dbus/dbus-connection.c: keep a little cache of linked list
10413         nodes, to avoid using the global linked list alloc lock in the
10414         normal send-message case. Instead we just use the connection lock
10415         that we already have to take.
10416
10417         * dbus/dbus-list.c (_dbus_list_find_last): new function
10418
10419         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10420         change to use a struct for the atomic type; fix docs,
10421         they return value before increment, not after increment.
10422
10423         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10424         (_dbus_string_append_8_aligned): new functions to try to
10425         microoptimize this operation.
10426         (reallocate_for_length): break this out of set_length(), to
10427         improve profile info, and also so we can consider inlining the
10428         set_length() part.
10429
10430         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10431         strings with some preallocation, cuts down on our calls to realloc
10432         a fair bit. Though if we can get the "move entire string to empty
10433         string" optimization below to kick in here, it would be better.
10434
10435         * dbus/dbus-string.c (_dbus_string_move): just call
10436         _dbus_string_move_len
10437         (_dbus_string_move_len): add a special case for moving
10438         an entire string into an empty string; we can just
10439         swap the string data instead of doing any reallocs.
10440         (_dbus_string_init_preallocated): new function
10441
10442 2003-05-11  Havoc Pennington  <hp@pobox.com>
10443
10444         Write a "test-profile" that does echo client-server with threads;
10445         profile reveals lock contention, memcpy/realloc of buffers, and
10446         UTF-8 validation as hot spots. 20% of lock contention eliminated
10447         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10448         contention is global mempool locks for GList and DBusList.
10449
10450         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10451         x86 implementation
10452
10453         * dbus/dbus-connection.c (struct DBusConnection): use
10454         dbus_atomic_t for the reference count
10455
10456         * dbus/dbus-message.c (struct DBusMessage): declare
10457         dbus_atomic_t values as volatile
10458
10459         * configure.in: code to detect ability to use atomic integer
10460         operations in assembly, from GLib patch
10461
10462         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10463         time, tired of it being wrong in threads and forked processes
10464
10465         * glib/test-profile.c: a little program to bounce messages back
10466         and forth between threads and eat CPU
10467
10468         * dbus/dbus-connection.c: add debug spew macros for debugging
10469         thread locks; include config.h at top; fix deadlock in
10470         dbus_connection_flush()
10471
10472 2003-05-08  Havoc Pennington  <hp@pobox.com>
10473
10474         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10475         data from getting written, and there wasn't a good reason to
10476         use _exit really.
10477
10478         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10479         dbus_verbose lines in test coverage
10480         (main): add list of functions sorted by # of untested blocks
10481         to the coverage report
10482
10483         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10484
10485         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10486
10487         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10488         extend test coverage
10489
10490         * test/data/auth/cancel.auth-script: test canceling an
10491         authentication
10492
10493         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10494         aren't used. in CVS history if we end up needing them.
10495
10496 2003-05-04  Havoc Pennington  <hp@pobox.com>
10497
10498         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10499         unit test
10500
10501         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10502         function, which assumed length was in # of strings, not bytes
10503
10504         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10505         missing coverage
10506
10507         * dbus/dbus-connection.c
10508         (_dbus_connection_queue_received_message): disable function for
10509         now, we are only using it in test mode
10510
10511         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10512         remove a mistaken FIXME
10513
10514 2003-05-04  Havoc Pennington  <hp@pobox.com>
10515
10516         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10517         unlock mutex on successful return, patch from Anders Gustafsson
10518
10519 2003-05-04  Havoc Pennington  <hp@pobox.com>
10520
10521         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10522         Anders Gustafsson
10523
10524 2003-05-04  Havoc Pennington  <hp@pobox.com>
10525
10526         * tools/dbus-launch.c: implement
10527
10528         * bus/main.c (main), bus/bus.c (bus_context_new):
10529         implement --print-pid and --fork
10530
10531 2003-05-03  Havoc Pennington  <hp@redhat.com>
10532
10533         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10534         the address had no value, and add to test suite. Fix and
10535         regression test from Miloslav Trmac
10536
10537 2003-05-03  Havoc Pennington  <hp@pobox.com>
10538
10539         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10540         watch is invalid when handled
10541
10542         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10543         dbus-launch utility to launch the bus from a shell script.  Didn't
10544         actually implement dbus-launch yet, it's just a placeholder still.
10545
10546 2003-05-03  Havoc Pennington  <hp@pobox.com>
10547
10548         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10549         daemon; also documents daemon config file, so replaces
10550         doc/config-file.txt. Corrected some stuff from config-file.txt in
10551         the process of moving it.
10552
10553 2003-05-03  Havoc Pennington  <hp@pobox.com>
10554
10555         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10556         add some man pages
10557
10558 2003-05-03  Colin Walters  <walters@verbum.org>
10559
10560         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10561         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10562
10563         * Makefile.am: Update to use new .pc versioning scheme.
10564
10565 2003-05-02  Havoc Pennington  <hp@redhat.com>
10566
10567         * bus/system.conf.in: allow send/receive to/from message bus
10568         service
10569
10570 2003-04-30  Havoc Pennington  <hp@redhat.com>
10571
10572         * configure.in: print a note when building with unit tests and
10573         without assertions
10574
10575 2003-04-30  Havoc Pennington  <hp@redhat.com>
10576
10577         * Makefile.am: add a check-local that complains if you didn't
10578         configure with --enable-tests
10579
10580 2003-04-29  Havoc Pennington  <hp@redhat.com>
10581
10582         * glib/dbus-gmain.c: docs cleanups
10583
10584         * dbus/dbus-types.h: add docs on int64 types
10585
10586         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10587         public API docs section
10588
10589 2003-04-29  Havoc Pennington  <hp@redhat.com>
10590
10591         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10592         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10593         parallel install API version, not with the D-BUS package version.
10594
10595         * HACKING: move some of README over here
10596
10597         * README: updates, and document API/ABI policy
10598
10599         * configure.in: reindentation
10600
10601 2003-04-29  Havoc Pennington  <hp@redhat.com>
10602
10603         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10604         to use this library" to be sure people have the right
10605         expectations.
10606
10607 2003-04-28  Havoc Pennington  <hp@redhat.com>
10608
10609         * configure.in: add --enable-docs which by default is auto yes if
10610         doxygen and db2html found, no otherwise; but can be forced on/off
10611
10612         * doc/Makefile.am: conditionalize whether to build docs on
10613         --enable-docs
10614
10615 2003-04-28  Havoc Pennington  <hp@redhat.com>
10616
10617         * configure.in: 0.10
10618
10619         * NEWS: update
10620
10621         * bus/system.conf.in: add <includedir>system.d</includedir>
10622
10623         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10624         username was provided but not uid
10625
10626         * bus/config-parser.c (struct BusConfigParser): keep track of
10627         whether the parser is toplevel or was included; change some
10628         of the error handling if it's included.
10629
10630 2003-04-27  Havoc Pennington  <hp@pobox.com>
10631
10632         Unbreak my code...
10633
10634         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10635         report correct status if we finish processing authentication
10636         inside this function.
10637
10638         * bus/activation.c (try_send_activation_failure): use
10639         bus_transaction_send_error_reply
10640
10641         * bus/connection.c (bus_connection_get_groups): return an error
10642         explaining the problem
10643
10644         * bus/bus.c (bus_context_check_security_policy): implement
10645         restriction here that inactive connections can only send the
10646         hello message. Also, allow bus driver to send anything to
10647         any recipient.
10648
10649         * bus/connection.c (bus_connection_complete): create the
10650         BusClientPolicy here instead of on-demand.
10651         (bus_connection_get_policy): don't return an error
10652
10653         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10654         sender field in message being replied to
10655
10656         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10657         causing it to return FALSE always
10658
10659         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10660         we checked sender rather than destination
10661
10662 2003-04-25  Havoc Pennington  <hp@redhat.com>
10663
10664         test suite is slightly hosed at the moment, will fix soon
10665
10666         * bus/connection.c (bus_connections_expire_incomplete): fix to
10667         properly disable the timeout when required
10668         (bus_connection_set_name): check whether we can remove incomplete
10669         connections timeout after we complete each connection.
10670
10671         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10672         probably still broken.
10673
10674         * bus/services.c (bus_registry_acquire_service): implement max
10675         number of services owned, and honor allow/deny rules on which
10676         services a connection can own.
10677
10678         * bus/connection.c (bus_connection_get_policy): report errors here
10679
10680         * bus/activation.c: implement limit on number of pending
10681         activations
10682
10683 2003-04-25  Havoc Pennington  <hp@redhat.com>
10684
10685         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10686         where we used >= 0 instead of != DBUS_UID_UNSET.
10687
10688 2003-04-25  Havoc Pennington  <hp@redhat.com>
10689
10690         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10691         were toggled without add/remove, fix from Anders Gustafsson
10692
10693 2003-04-24  Havoc Pennington  <hp@redhat.com>
10694
10695         * test/data/valid-config-files/basic.conf: add <limit> tags to
10696         this test
10697
10698         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10699         <limit> tag in configuration file.
10700
10701 2003-04-24  Havoc Pennington  <hp@redhat.com>
10702
10703         * bus/dispatch.c: somehow missed some name_is
10704
10705         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10706         (_dbus_timeout_set_interval): new
10707
10708         * bus/connection.c (bus_connections_setup_connection): record time
10709         when each connection is first set up, and expire them after the
10710         auth timeout passes.
10711
10712 2003-04-24  Havoc Pennington  <hp@redhat.com>
10713
10714         * dbus/dbus-message.c (dbus_message_name_is): rename
10715         (dbus_message_service_is): rename
10716         (dbus_message_sender_is): rename
10717         (dbus_message_get_service): rename
10718
10719 2003-04-24  Havoc Pennington  <hp@redhat.com>
10720
10721         * configure.in: add --enable-checks
10722
10723         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10724
10725         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10726         to use thread locks.
10727         (_dbus_connection_handler_destroyed_locked): move some private
10728         functions into proper docs group
10729
10730         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10731         _dbus_return_val_if_fail
10732
10733         Throughout: use dbus_return_if_fail
10734
10735 2003-04-23  James Willcox  <jwillcox@gnome.org>
10736
10737         * glib/dbus-glib.h:
10738         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10739         (dbus_connection_setup_with_g_main),
10740         (dbus_server_setup_with_g_main):
10741         * glib/test-dbus-glib.c: (main):
10742         * glib/test-thread-client.c: (main):
10743         * glib/test-thread-server.c: (new_connection_callback), (main):
10744         * tools/dbus-monitor.c: (main):
10745
10746         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10747         and dbus_server_setup_with_g_main().
10748
10749 2003-04-20  Havoc Pennington  <hp@pobox.com>
10750
10751         * doc/dbus-specification.sgml: document the restrictions on
10752         message and service names
10753
10754 2003-04-22  Havoc Pennington  <hp@redhat.com>
10755
10756         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10757         support, and do some code cleanups to share more code and
10758         speed up array marshal/demarshal.
10759
10760         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10761
10762         * configure.in: generate dbus-arch-deps.h
10763
10764         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10765         64-bit typecodes
10766
10767 2003-04-22  Havoc Pennington  <hp@redhat.com>
10768
10769         * test/data/valid-messages/opposite-endian.message: fix test
10770         to use proper type for rply field
10771
10772         * test/data/invalid-messages: add tests for below validation
10773
10774         * dbus/dbus-message.c (decode_header_data): validate field types,
10775         and validate that named fields are valid names
10776         (decode_name_field): consider messages in the
10777         org.freedesktop.Local. namespace to be invalid.
10778
10779         * dbus/dbus-string.c (_dbus_string_validate_name): new
10780
10781 2003-04-19  Havoc Pennington  <hp@pobox.com>
10782
10783         * bus/driver.c (bus_driver_handle_hello): check limits and
10784         return an error if they are exceeded.
10785
10786         * bus/connection.c: maintain separate lists of active and inactive
10787         connections, and a count of each. Maintain count of completed
10788         connections per user. Implement code to check connection limits.
10789
10790         * dbus/dbus-list.c (_dbus_list_unlink): export
10791
10792         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10793         number of bytes in the message queue for a connection
10794
10795 2003-04-18  Havoc Pennington  <hp@pobox.com>
10796
10797         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10798
10799         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10800         memleaks
10801
10802         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10803         on realloc be sure to update the pointer in the keyring
10804
10805         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10806         offset to avoid writing to unallocated memory
10807
10808         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10809         try the next mechanism, so we properly handle OOM
10810
10811         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10812         on OOM.
10813         (_dbus_keyring_new): fix OOM bug
10814         (_dbus_keyring_new_homedir): always set error; impose a maximum
10815         number of keys we'll load from the file, mostly to speed up the
10816         test suite and make its OOM checks more useful, but also for
10817         general sanity.
10818
10819         * dbus/dbus-auth.c (process_error_server): reject authentication
10820         if we get an error from the client
10821         (process_cancel): on cancel, send REJECTED, per the spec
10822         (process_error_client): send CANCEL if we get an error from the
10823         server.
10824
10825 2003-04-18  Havoc Pennington  <hp@pobox.com>
10826
10827         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10828         debug spew
10829
10830         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10831         handling problem
10832
10833         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10834         about DBUS_TEST_HOMEDIR once
10835
10836         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10837         the environment
10838
10839         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10840         config file so we test the right thing
10841
10842         Throughout: assorted docs improvements
10843
10844 2003-04-18  Havoc Pennington  <hp@pobox.com>
10845
10846         * glib/dbus-gmain.c: adapt to watch changes
10847
10848         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10849
10850         * dbus/dbus-server.h: remove dbus_server_handle_watch
10851
10852         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10853
10854         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10855         like DBusTimeout, so we don't need dbus_connection_handle_watch
10856         etc.
10857
10858 2003-04-17  Havoc Pennington  <hp@redhat.com>
10859
10860         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10861         database usage so it all goes via the DBusUserDatabase cache.
10862
10863 2003-04-17  Havoc Pennington  <hp@redhat.com>
10864
10865         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10866         there was an OOM watch we skipped, we always return TRUE so we
10867         iterate again to have a look at it again. Fixes test suite hang.
10868         Code rearrangement also lets us lose some memset and only iterate
10869         over callbacks once.
10870
10871         * bus/driver.c (bus_driver_handle_message): sense of test for
10872         reply was backward
10873
10874 2003-04-16  Havoc Pennington  <hp@pobox.com>
10875
10876         * doc/dbus-specification.sgml: make spec say serials are unsigned
10877
10878         * dbus/dbus-message.h: change message serials to unsigned
10879
10880         * dbus/dbus-connection.c: adapt to message serials being unsigned
10881
10882 2003-04-15  Havoc Pennington  <hp@pobox.com>
10883
10884         * bus/bus.c: create and keep around a shared DBusUserDatabase
10885         object.
10886
10887         * bus/connection.c (bus_connection_get_groups): don't cache
10888         groups for user in the connection object, since user database
10889         object now does that.
10890
10891 2003-04-16  Havoc Pennington  <hp@redhat.com>
10892
10893         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10894         list of size counters
10895         (_dbus_message_loader_putback_message_link): put back a popped link
10896
10897         * dbus/dbus-connection.c
10898         (dbus_connection_set_max_live_messages_size): rename
10899         max_received_size
10900         (dbus_connection_get_outgoing_size): get size of outgoing
10901         queue
10902         (_dbus_connection_set_connection_counter): remove this cruft
10903
10904 2003-04-14  Havoc Pennington  <hp@redhat.com>
10905
10906         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10907         caching, but at some point we might want to be able to use a
10908         different database.
10909
10910         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10911         SHA1 conf file to test the sha1 auth mechanism, since the regular
10912         test always uses EXTERNAL when available.
10913
10914         * configure.in,
10915         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10916         add conf file that requires use of sha1 auth
10917
10918 2003-04-13  Havoc Pennington  <hp@pobox.com>
10919
10920         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10921         from Philip Blundell to send messages and monitor them.
10922
10923 2003-04-13  Havoc Pennington  <hp@pobox.com>
10924
10925         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10926         callbacks
10927
10928         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10929         users
10930
10931         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10932         fix to only recover unused bytes if we're already authenticated
10933         (_dbus_transport_get_is_authenticated): fix to still mark us
10934         authenticated if there are unused bytes.
10935
10936         * bus/dispatch.c: implement security policy checking
10937
10938         * bus/connection.c (bus_transaction_send_from_driver): new
10939
10940         * bus/bus.c (bus_context_check_security_policy): new
10941
10942         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10943         now we just set the DBusError and it gets converted to an error
10944         reply.
10945
10946         * bus/connection.c (allow_user_function): enable code using actual
10947         data from the config file
10948
10949         * bus/policy.c (list_allows_user): handle wildcard rules for
10950         user/group connection perms
10951
10952 2003-04-13  Havoc Pennington  <hp@pobox.com>
10953
10954         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
10955
10956         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
10957
10958         * bus/policy.c (bus_policy_append_mandatory_rule)
10959         (bus_policy_append_default_rule, bus_policy_append_user_rule)
10960         (bus_policy_append_group_rule): new functions
10961
10962 2003-04-12  Havoc Pennington  <hp@pobox.com>
10963
10964         * bus/config-parser.c (bus_config_parser_new): fix a memleak
10965
10966         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
10967         the pid/gid/uid, just for paranoia.
10968
10969         * test/break-loader.c (randomly_do_n_things): find a byte
10970         containing a type code, and randomly change it to a different
10971         type code.
10972
10973 2003-04-12  Havoc Pennington  <hp@pobox.com>
10974
10975         * bus/policy.h: change BusPolicy to be the thing from the config
10976         file, and rename old BusPolicy to BusClientPolicy
10977
10978         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
10979         match change in how policy works
10980
10981         * dbus/dbus-internals.h: mark assert_not_reached as
10982         __attribute((noreturn))__
10983
10984 2003-04-11  Havoc Pennington  <hp@redhat.com>
10985
10986         * doc/dbus-specification.sgml: fix a spot with the wrong name for
10987         the broadcast service. Use boolean return for ServiceExists.
10988
10989 2003-04-11  Havoc Pennington  <hp@redhat.com>
10990
10991         * configure.in: add another directory to look for qt in.
10992
10993 2003-04-11  Havoc Pennington  <hp@redhat.com>
10994
10995         * AUTHORS: add Colin Walters
10996
10997 2003-04-11  Havoc Pennington  <hp@redhat.com>
10998
10999         * NEWS: update
11000
11001         * configure.in: 0.9
11002
11003 2003-04-11  Havoc Pennington  <hp@redhat.com>
11004
11005         * bus/messagebus.in: remove pid file when stopping the
11006         message bus, since the bus won't have privileges to remove it
11007         itself.
11008
11009 2003-04-11  Havoc Pennington  <hp@redhat.com>
11010
11011         * bus/bus.c (bus_context_new): move credentials change after
11012         creating pidfile
11013
11014 2003-04-11  Havoc Pennington  <hp@pobox.com>
11015
11016         * test/decode-gcov.c: add "below average functions" to the
11017         coverage report, and change how some of the code works.
11018
11019         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11020         not in the coverage stats.
11021
11022         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11023         couple places so running the test suite doesn't result in megaspam.
11024
11025 2003-04-11  Havoc Pennington  <hp@pobox.com>
11026
11027         * bus/dispatch.c (check_existent_service_activation): accept a no
11028         memory error in a place we didn't before
11029
11030         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11031         in case the first one failed," since the test suite is less
11032         broken now.
11033
11034 2003-04-10  Havoc Pennington  <hp@pobox.com>
11035
11036         * bus/dispatch.c (check_segfault_service_activation): add test
11037         for launching an executable that just crashes.
11038
11039         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11040         don't leave a million cores. We'll see how portable this is.
11041
11042 2003-04-10  Havoc Pennington  <hp@pobox.com>
11043
11044         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11045         the possible parent failures before we fork, so that we don't
11046         fail to create a babysitter after creating the child.
11047
11048         * bus/activation.c (bus_activation_activate_service): kill child
11049         if we don't successfully complete the activation.
11050
11051 2003-04-10  Havoc Pennington  <hp@redhat.com>
11052
11053         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11054         the connection if it's disconnected
11055
11056         * bus/activation.c (bus_activation_service_created): use new
11057         transaction features to roll back removal of pending activation if
11058         we don't successfully create the service after all. Don't remove
11059         pending activation if the function fails.
11060
11061         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11062         (_dbus_list_insert_after_link): new code to facilitate
11063         services.c fixes
11064
11065         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11066         new functionality, so we can preallocate the ability to insert
11067         into a hash table.
11068
11069         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11070         allowing us to put custom hooks in a transaction to be used for
11071         cancelling said transaction
11072
11073         * doc/dbus-specification.sgml: add some discussion of secondary
11074         service owners, and disallow zero-length service names
11075
11076         * bus/services.c (bus_registry_acquire_service): new function,
11077         splits out part of bus_driver_handle_acquire_service() and fixes
11078         a bug where we didn't remove the service doing the acquiring
11079         from the secondary queue if we failed to remove the current owner
11080         from the front of the queue.
11081
11082 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11083
11084         * doc/dbus-specification.sgml:
11085         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11086
11087 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11088
11089         * bus/.cvsignore:
11090         * glib/.cvsignore:
11091         * test/.cvsignore:
11092         Added files to cvsignore
11093
11094         * dbus/dbus-message.h:
11095         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11096         Make get_named() take two out argument and return a boolean.
11097         (dbus_message_iter_get_args_valist):
11098         Update usage of get_named().
11099         (dbus_message_iter_append_byte):
11100         Fix typo
11101         (dbus_message_iter_append_named)
11102         Fix typo
11103         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11104         More tests.
11105
11106 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11107
11108         * dbus/dbus-marshal.[ch]:
11109         Add array_type_pos argument to _dbus_marshal_validate_arg.
11110         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11111
11112         * dbus/dbus-message.[ch]:
11113         Multi-dimensional arrays have full type specification in the
11114         outermost array. Iter code re-arranged to handle this.
11115         Added some more iter tests.
11116
11117         * doc/dbus-specification.sgml:
11118         Add me to authors.
11119         Remove old FIXME.
11120         Update new array encoding description.
11121         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11122
11123         * test/data/invalid-messages/array-with-mixed-types.message:
11124         * test/data/valid-messages/array-of-array-of-uint32.message:
11125         Change to the new array format.
11126
11127         * test/data/invalid-messages/too-short-dict.message:
11128         Fix bug in test.
11129
11130         * test/data/valid-messages/recursive-types.message:
11131         Fix up and extend test.
11132
11133 2003-04-10  Havoc Pennington  <hp@pobox.com>
11134
11135         * bus/dispatch.c: lots of fixes
11136
11137         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11138         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11139         that was crack, broke the test service.
11140
11141         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11142         handling to avoid piling up errors if we get a failure on the
11143         first address.
11144
11145         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11146         pid in assertion failures.
11147
11148         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11149         to some fixed size of file descriptor array. Don't return TRUE
11150         anytime a timeout exists, that led to lots of busy loop silliness
11151         in the tests.
11152
11153 2003-04-09  Havoc Pennington  <hp@redhat.com>
11154
11155         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11156         I'd checked this in earlier but hadn't.
11157
11158 2003-04-09  Havoc Pennington  <hp@redhat.com>
11159
11160         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11161         the activation test (man this is getting old!)
11162
11163 2003-04-09  Havoc Pennington  <hp@redhat.com>
11164
11165         * test/test-utils.c: use dispatch status function to fix this up
11166
11167         * bus/connection.c (connection_watch_callback): don't dispatch
11168         from here
11169         (connection_timeout_callback): don't dispatch from here
11170         (bus_connections_setup_connection): set the dispatch status function
11171         (bus_connection_disconnected): unset it
11172
11173         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11174         used to add a connection to be dispatched
11175         (_dbus_loop_iterate): do the dispatching at the end of each
11176         iteration
11177
11178         * dbus/dbus-connection.c
11179         (dbus_connection_set_dispatch_status_function): new function
11180         allowing us to fix up main loop usage
11181         (_dbus_connection_last_unref): free all the various function
11182         user data
11183         (dbus_connection_dispatch): call the DispatchStatusFunction
11184         whenever this function returns
11185         (dbus_connection_handle_watch): call DispatchStatusFunction
11186         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11187         (reply_handler_timeout): call DispatchStatusFunction
11188         (dbus_connection_flush): call DispatchStatusFunction
11189
11190 2003-04-09  Havoc Pennington  <hp@redhat.com>
11191
11192         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11193         a memory leak
11194
11195         * bus/dispatch.c (check_service_activated): fix bug in test
11196
11197         * dbus/dbus-mainloop.c (check_timeout): fix this up
11198
11199         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11200         verbose output so we can sort out output from different processes,
11201         e.g. in the activation case.
11202
11203 2003-04-08  Colin Walters  <walters@gnu.org>
11204
11205         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11206         the pid file.
11207         (bus_context_new): Set it.
11208         (bus_context_unref): Use it to delete the pid file.
11209
11210 2003-04-08  Havoc Pennington  <hp@redhat.com>
11211
11212         * test/data/invalid-messages/array-with-mixed-types.message:
11213         regression test that fails for the moment
11214
11215         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11216         tests for convenience
11217
11218         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11219         array of nil, it broke things.
11220
11221         * test/data/invalid-messages/array-of-nil.message: regression test
11222
11223         * test/data/valid-messages/array-of-array-of-uint32.message:
11224         happened to write this so added it to suite
11225
11226 2003-04-08  Havoc Pennington  <hp@redhat.com>
11227
11228         * bus/driver.c (bus_driver_handle_acquire_service): init
11229         retval/reply before checking name
11230
11231         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11232         recursion depth argument
11233
11234         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11235         in the public struct for future extension
11236
11237         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11238         typo
11239
11240         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11241         message
11242
11243         * doc/dbus-specification.sgml: fix typo
11244
11245 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11246
11247         Implemented recursive types, named types and new-style iters
11248
11249         * bus/driver.c:
11250         * glib/test-thread-client.c: (thread_func):
11251         * glib/test-thread-server.c: (handle_test_message):
11252         * test/test-service.c: (handle_echo):
11253         Update to new api
11254
11255         * dbus/Makefile.am:
11256         * dbus/dbus-dict.c:
11257         * dbus/dbus-dict.h:
11258         * dbus/dbus.h
11259         Remove DBusDict
11260
11261         * dbus/dbus-internals.c: (_dbus_type_to_string):
11262         Update for new types.
11263
11264         * dbus/dbus-marshal.[ch]:
11265         Implement recursive types and the new marshalling format.
11266         Remove hardcoded dict marshalling.
11267         Marshal named types.
11268
11269         * dbus/dbus-message-builder.c:
11270         Add BYTE_ARRAY.
11271         Remove references to old types
11272
11273         * dbus/dbus-message.[ch]:
11274         New non-refcounted iter API that supports recursive iters.
11275         Use iters for appending, including support for recursive
11276         iters.
11277         Add byte and named type support.
11278         Update everything to new marshalling formats.
11279         Add tests for new API.
11280
11281         * dbus/dbus-protocol.h:
11282         Remove old array types.
11283         Add types: BYTE, ARRAY, DICT, NAMED
11284
11285         * dbus/dbus-string.c:
11286         * dbus/dbus-sysdeps.c:
11287         Make parse_double locale safe.
11288
11289         * dbus/dbus-test-main.c:
11290         Call setlocale.
11291
11292         * dbus/dbus-test.c:
11293         Kill dict test
11294
11295         * doc/dbus-specification.sgml:
11296         Update spec
11297
11298         * test/data/incomplete-messages/missing-body.message:
11299         * test/data/invalid-messages/bad-boolean.message:
11300         * test/data/invalid-messages/bad-boolean-array.message:
11301         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11302         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11303         * test/data/invalid-messages/too-short-dict.message:
11304         * test/data/valid-messages/dict-simple.message:
11305         * test/data/valid-messages/dict.message:
11306         * test/data/valid-messages/emptiness.message:
11307         * test/data/valid-messages/lots-of-arguments.message:
11308         * test/data/valid-messages/no-padding.message:
11309         * test/data/valid-messages/recursive-types.message:
11310         Add missing NAME fields
11311         Fix up dicts & arrays
11312
11313         * test/data/invalid-messages/dict-with-nil-value.message:
11314         Removed, this is not invalid anymore.
11315
11316         * test/data/valid-messages/recursive-types.message:
11317         Add new test for deeply recursive types.
11318
11319 2003-04-07  Havoc Pennington  <hp@pobox.com>
11320
11321         * bus/driver.c (bus_driver_handle_acquire_service): return an
11322         error if you try to acquire a service that starts with ':'
11323
11324 2003-04-07  Havoc Pennington  <hp@redhat.com>
11325
11326         * doc/dbus-specification.sgml: require that base service names
11327         start with ':' and that the base service is created/deleted
11328         as first and last things a connection does on the bus
11329
11330         * bus/dispatch.c (check_existent_service_activation): lots more
11331         work on the activation test; it doesn't fully pass yet...
11332
11333         * test/test-service.c (main): fix so we don't memleak the
11334         connection to the message bus
11335         (filter_func): accept a message asking us to exit
11336
11337 2003-04-06  Havoc Pennington  <hp@pobox.com>
11338
11339         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11340         from Colin Walters
11341
11342         * configure.in: fixes to Qt detection from Colin Walters
11343
11344         * doc/Makefile.am: Only remove generated docbook dirs if they
11345         exist, from Colin Walters
11346
11347         * dbus/dbus-bus.c: change how we set well-known connections to
11348         NULL, so that it works if a single connection is stored in
11349         two well-known array slots.
11350
11351         * test/Makefile.am: remove a lot of stuff that isn't immediately
11352         useful, it's in CVS history if we want it.
11353
11354         * test/test-service.c: use dbus-mainloop instead of that
11355         watch.[hc] crack
11356
11357 2003-04-06  Havoc Pennington  <hp@pobox.com>
11358
11359         * dbus/Makefile.am: split lists of sources into stuff that goes in
11360         the library, util functions that go in the lib and are also used
11361         elsewhere, and util functions that are used in tests/daemon but
11362         don't go in the lib.
11363
11364         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11365         here so it can be used in test binaries also
11366
11367 2003-04-06  Havoc Pennington  <hp@pobox.com>
11368
11369         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11370         here in the parent process, so we can return an error if it
11371         fails. Also, move some of the code into the child so the parent
11372         is less hosed if we fail midway through.
11373
11374         * bus/bus.c (bus_context_new): move pidfile detection further up
11375         in the function, before we start overwriting sockets and such.
11376
11377         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11378
11379         * configure.in: add --with-system-pid-file and --with-system-socket
11380
11381 2003-04-06  Colin Walters  <walters@verbum.org>
11382
11383         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11384
11385         * bus/system.conf.in: Declare a pidfile.
11386
11387         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11388         create one (if appropriate).
11389
11390         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11391         (struct BusConfigParser) [pidfile]: New.
11392         (element_type_to_name, merge_included, start_busconfig_child)
11393         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11394         (bus_config_parser_unref): Free it.
11395         (bus_config_parser_get_pidfile): New function.
11396
11397         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11398
11399         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11400
11401         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11402
11403         * dbus/dbus-sysdeps.h: Prototype it.
11404
11405 2003-04-06  Havoc Pennington  <hp@pobox.com>
11406
11407         * bus/bus.c (bus_context_new): print the address in here, rather
11408         than in main(), because we need to do it before forking the daemon
11409
11410         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11411         on the service nonexistent error
11412
11413         * bus/driver.c (bus_driver_handle_acquire_service): set the
11414         sender on the AcquireService reply
11415
11416         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11417         server also listen on a UNIX socket so services can connect to it.
11418
11419 2003-04-06  Havoc Pennington  <hp@pobox.com>
11420
11421         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11422         so it detects deadlocks and also we actually init threads when
11423         debugging.
11424
11425 2003-04-06  Havoc Pennington  <hp@pobox.com>
11426
11427         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11428         save the domain socket name, and unlink it when we disconnect the
11429         server. Means that at least when we exit normally, we won't leave
11430         a bunch of junk in /tmp
11431
11432         * dbus/dbus-transport-unix.c
11433         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11434         memory management). (I was making a real change here but then
11435         didn't)
11436
11437 2003-04-06  Havoc Pennington  <hp@pobox.com>
11438
11439         * bus/bus.c (bus_context_new): fix wrong handling of
11440         server_data_slot_unref() in the error case.
11441
11442         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11443         "(condition) != 0" to _dbus_real_assert so that
11444         "_dbus_assert (pointer)" doesn't cause a warning
11445
11446         * bus/main.c (main): accept --print-address option to print out
11447         the message bus address
11448
11449         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11450
11451         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11452         "tmpdir" option to unix: address on client side
11453
11454         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11455         to unix: address
11456
11457         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11458         we can use to create sockets in the test suite.
11459
11460         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11461         cleanly. To be used for testing.
11462
11463         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11464
11465         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11466
11467         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11468         handle trying to call this when there's no servers active
11469
11470 2003-04-05  Havoc Pennington  <hp@pobox.com>
11471
11472         * NEWS: update
11473
11474         * configure.in: 0.8
11475
11476 2003-04-05  Havoc Pennington  <hp@pobox.com>
11477
11478         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11479         crash on startup. Need to get "try starting the daemon"
11480         in the test suite I guess. ;-)
11481
11482         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11483         tracked the number of open connections; it's better done in
11484         application-specific code as you want it to span all servers etc.
11485
11486 2003-04-05  Havoc Pennington  <hp@pobox.com>
11487
11488         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11489         patch from Colin Walters
11490
11491 2003-04-05  Havoc Pennington  <hp@pobox.com>
11492
11493         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11494         reality; in fact multiple mechanisms are allowed.
11495
11496         * dbus/dbus-internals.c (_dbus_real_assert)
11497         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11498         _dbus_assert_not_reached() into functions, so that they don't show
11499         up in basic block counts for test coverage, and don't use up as
11500         much disk space. Does mean slower execution speed though, so
11501         assumes --disable-asserts is the normal production case.
11502
11503 2003-04-05  Havoc Pennington  <hp@pobox.com>
11504
11505         * test/Makefile.am (dist-hook): also dist *.in files
11506
11507         * NEWS: update
11508
11509         * configure.in: 0.7
11510
11511 2003-04-05  Havoc Pennington  <hp@pobox.com>
11512
11513         * dbus/dbus-string.c: docs warning
11514
11515         * dbus/dbus-spawn.c: missing docs
11516
11517         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11518
11519 2003-04-05  Havoc Pennington  <hp@pobox.com>
11520
11521         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11522         magic from GLib
11523
11524         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11525         to -1 once we've reaped the babysitter
11526         (_dbus_babysitter_handle_watch): do as much work as we can, not
11527         just one go of it
11528
11529         * bus/activation.c: add code using DBusBabysitter so that we
11530         handle it when a service fails to start up properly.
11531         (bus_activation_service_created): don't remove the activation
11532         entries as we go, just let them get removed when we free the pending
11533         activation. Unref reply messages after sending them.
11534
11535 2003-04-05  Havoc Pennington  <hp@pobox.com>
11536
11537         * test/decode-gcov.c (main): print per-directory stats in the report
11538
11539         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11540
11541 2003-04-05  Havoc Pennington  <hp@pobox.com>
11542
11543         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11544
11545         * test/decode-gcov.c: hack up a little program to suck data
11546         out of gcov files. Yes this is sort of silly.
11547
11548         * configure.in: define something in config.h and do an
11549         AM_CONDITIONAL when gcov is enabled
11550
11551 2003-04-04  Havoc Pennington  <hp@redhat.com>
11552
11553         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11554         return a "babysitter" object that is used to monitor the status of
11555         the spawned process and reap it when required.
11556
11557         * test/test-segfault.c, test/test-exit.c,
11558         test/test-sleep-forever.c: binaries that do various lame things,
11559         used in the test suite.
11560
11561         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11562
11563 2003-04-03  Havoc Pennington  <hp@pobox.com>
11564
11565         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11566         in preparation for modifying it, dbus-sysdeps is getting
11567         a bit unmanageable.
11568
11569 2003-04-03  Havoc Pennington  <hp@redhat.com>
11570
11571         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11572         have multiple ones
11573
11574         * bus/*.[hc]: adapt to mainloop change
11575
11576 2003-04-03  Havoc Pennington  <hp@redhat.com>
11577
11578         * bus/activation.c (load_directory): fix up memleaks
11579         (bus_activation_entry_free): free the entry
11580
11581         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11582         we get one from the message bus; fix memleaks.
11583
11584         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11585
11586 2003-04-03  Havoc Pennington  <hp@pobox.com>
11587
11588         * bus/config-parser.c (bus_config_parser_unref): free
11589         list of mechanisms, bug discovered by test suite enhancements
11590         (putting system.conf and session.conf into suite)
11591
11592         * test/Makefile.am, test/test-service.c: add placeholder for a
11593         test service that we'll activate as part of test suite. Doesn't
11594         do anything yet.
11595
11596         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11597         setting NULL value, and use system malloc not dbus_malloc()
11598         when we have unavoidable memleakage.
11599
11600         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11601         didn't work, and support DBUS_BUS_ACTIVATION.
11602
11603         * bus/activation.c (child_setup): pass our well-known bus type to
11604         the child
11605
11606         * bus/config-parser.c: support <type> to specify well-known type
11607
11608         * doc/dbus-specification.sgml: document the env variables to
11609         locate well-known buses and find service activator
11610
11611 2003-04-02  Havoc Pennington  <hp@redhat.com>
11612
11613         * test/Makefile.am (all-local): add a rule to copy tests to
11614         builddir, so we can have generated tests. Use this to remove the
11615         silly hack for testing system.conf and session.conf. Will use this
11616         shortly to generate .service files pointing to test binaries.
11617
11618 2003-04-02  Havoc Pennington  <hp@redhat.com>
11619
11620         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11621         current alloc and needed new length, not max of the doubled
11622         allocation and needed new length. Also, when building tests,
11623         don't do the double-allocation stuff, just realloc every time.
11624
11625 2003-04-02  Havoc Pennington  <hp@redhat.com>
11626
11627         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11628         in error messages
11629         (_dbus_string_get_dirname): new
11630         (_dbus_sysdeps_test): new
11631         (_dbus_directory_open): include dirnames in error messages
11632
11633         * bus/config-parser.c: interpret <include> and <includedir> and
11634         <servicedir> relative to config file location if the given
11635         filename is not absolute.
11636
11637         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11638
11639 2003-04-02  Havoc Pennington  <hp@redhat.com>
11640
11641         * bus/connection.c (bus_transaction_send_error_reply): set sender
11642         service for the error, and unref the reply on success
11643
11644         * bus/activation.c: convert to use BusTransaction so OOM can be
11645         handled correctly
11646         (bus_activation_service_created): set sender of the message
11647
11648 2003-04-01  Havoc Pennington  <hp@redhat.com>
11649
11650         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11651         <includedir> (at least mostly)
11652
11653         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11654         first, then the user ID
11655
11656 2003-04-01  Havoc Pennington  <hp@pobox.com>
11657
11658         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11659         function
11660
11661         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11662
11663         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11664
11665         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11666         socket 0777, and unlink any existing socket.
11667
11668         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11669         the configuration file so specifies; set up auth mechanism
11670         restrictions
11671
11672         * bus/config-parser.c (bus_config_parser_content): add support
11673         for <fork> option and fill in code for <auth>
11674
11675         * bus/system.conf.in: add <fork/> to default configuration,
11676         and limit auth mechanisms to EXTERNAL
11677
11678         * doc/config-file.txt (Elements): add <fork>
11679
11680         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11681         (_dbus_change_identity): new function
11682
11683 2003-03-31  Havoc Pennington  <hp@redhat.com>
11684
11685         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11686         (_dbus_listen_unix_socket): fix off-by-one error in null
11687         termination spotted by Nalin
11688
11689 2003-03-31  Havoc Pennington  <hp@redhat.com>
11690
11691         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11692         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11693         having a real home directory available.
11694
11695 2003-03-31  Havoc Pennington  <hp@redhat.com>
11696
11697         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11698
11699         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11700
11701         * configure.in: add support for specifying a style of init script
11702         to install
11703
11704 2003-03-31  Havoc Pennington  <hp@redhat.com>
11705
11706         Fix some annoying DBusString API and fix all affected code.
11707
11708         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11709         max_length argument
11710         (_dbus_string_get_data): change to return string instead of using
11711         an out param
11712         (_dbus_string_get_const_data): ditto
11713         (_dbus_string_get_data_len): ditto
11714         (_dbus_string_get_const_data_len): ditto
11715
11716 2003-03-31  Havoc Pennington  <hp@redhat.com>
11717
11718         * bus/main.c (main): fix up the command line arguments to be nicer
11719
11720 2003-03-31  Havoc Pennington  <hp@redhat.com>
11721
11722         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11723         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11724         final location that lands in the config file
11725
11726         * bus/config-loader-expat.c (bus_config_load): fix type of
11727         XML_Parser variable
11728
11729         * doc/TODO: remove TODO item for dbus_bus_get()
11730
11731         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11732
11733 2003-03-31  Havoc Pennington  <hp@pobox.com>
11734
11735         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11736         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11737         argument since they are always client side
11738
11739         * dbus/dbus-server.c (dbus_server_get_address): new function
11740
11741         * bus/main.c (main): take the configuration file as an argument.
11742
11743         * test/data/valid-config-files/debug-allow-all.conf: new file to
11744         use with dispatch.c tests for example
11745
11746         * bus/test-main.c (main): require test data dir
11747
11748         * bus/bus.c (bus_context_new): change this to take a
11749         configuration file name as argument
11750
11751         * doc/config-file.txt (Elements): add <servicedir>
11752
11753         * bus/system.conf, bus/session.conf: new files
11754
11755         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11756         well-known socket if none set
11757
11758         * configure.in: create system.conf and session.conf
11759
11760 2003-03-30  Havoc Pennington  <hp@pobox.com>
11761
11762         * bus/config-parser.c: hacking
11763
11764         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11765         to shut down, since it could cause weirdness with the DBusList
11766         lock
11767
11768         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11769         link-oriented stack routines
11770         (alloc_link): free the mempool if the first alloc from it fails
11771
11772         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11773
11774         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11775         from GLib
11776         (_dbus_string_skip_white): new
11777
11778         * doc/config-file.txt (Elements): add <includedir>
11779
11780 2003-03-28  Havoc Pennington  <hp@pobox.com>
11781
11782         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11783         (_dbus_string_copy_data): new functions
11784
11785 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11786
11787         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11788         * dbus/dbus-bus.h:
11789         Add dbus_bus_get.
11790
11791         * dbus/dbus-memory.c:
11792         Fix a doc comment.
11793
11794 2003-03-28  Havoc Pennington  <hp@pobox.com>
11795
11796         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11797         I think it may have just been superstition. Not sure.
11798
11799         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11800         failures that were not being handled.
11801
11802         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11803
11804         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11805         row that will fail on out-of-memory.
11806
11807         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11808         function for testing out-of-memory handling.
11809
11810         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11811         allocation functions, they do map exactly to the expat ones.
11812
11813 2003-03-27  Havoc Pennington  <hp@redhat.com>
11814
11815         * bus/config-loader-libxml.c (bus_config_load): add another error
11816         check
11817
11818 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11819
11820         * doc/TODO:
11821         Add note about automatic service activation.
11822
11823         * doc/dbus-specification.sgml:
11824         Rename the specification and clarify a few things.
11825
11826 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11827
11828         * Doxyfile.in:
11829         * dbus/dbus-address.c:
11830         * dbus/dbus-dict.c:
11831         * dbus/dbus-marshal.c:
11832         * dbus/dbus-server-debug-pipe.c:
11833         * dbus/dbus-transport-unix.c:
11834         Fix documentation warnings.
11835
11836 2003-03-26  Havoc Pennington  <hp@pobox.com>
11837
11838         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11839         after every test so it's quick and easy to see which leaked, and
11840         so we test multiple dbus_shutdown() calls
11841
11842         * configure.in: change configure.in XML stuff to also support
11843         expat
11844
11845         * config-loader-libxml.c: some hacking
11846
11847         * config-loader-expat.c: some hacking
11848
11849         * config-parser.c: some hacking, plus tests
11850
11851 2003-03-25  Havoc Pennington  <hp@redhat.com>
11852
11853         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11854
11855         * configure.in: add --with-xml option to specify XML library,
11856         right now only libxml is supported.
11857
11858         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11859         nonworking code between home and work, still just stubs
11860
11861 2003-03-24  Havoc Pennington  <hp@redhat.com>
11862
11863         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11864         file
11865
11866         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11867         NULL argument for "message" if the error is a well-known one,
11868         fill in a generic message in this case.
11869
11870         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11871         favor of DBusError
11872
11873         * bus/test.c (bus_test_flush_bus): add
11874
11875         * bus/policy.c (bus_policy_test): test code stub
11876
11877 2003-03-24  Havoc Pennington  <hp@pobox.com>
11878
11879         * bus/connection.c (bus_connections_setup_connection): set up
11880         the "can this user connect" function, but it always returns
11881         TRUE until we have a config file parser so we can have a config
11882         file that allows connections.
11883
11884 2003-03-23  Havoc Pennington  <hp@pobox.com>
11885
11886         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11887         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11888         the mutex, so we can check for proper memory management
11889         and OOM handling.
11890
11891         * dbus/dbus-dataslot.c: remove the mutex from
11892         DBusDataSlotAllocator and lock it manually when using it,
11893         to simplify fitting it into the global slots framework.
11894
11895         * dbus/dbus-threads.c (init_static_locks): rework how we're
11896         handling global locks so they are easily shut down.
11897
11898         * bus/policy.c (bus_policy_append_rule): fix
11899
11900         * bus/test-main.c (main): check for memleaks
11901
11902         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11903         test suite check for memleaks
11904
11905         * dbus/dbus-memory.c: add support in test mode for tracking
11906         number of outstanding blocks
11907
11908 2003-03-23  Havoc Pennington  <hp@pobox.com>
11909
11910         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11911         policies code
11912
11913         * dbus/dbus-hash.h: add ULONG hash keys
11914
11915         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11916         (_dbus_get_group_id): new function
11917
11918 2003-03-20  Havoc Pennington  <hp@redhat.com>
11919
11920         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11921         new function
11922         (dbus_connection_get_unix_user): new function
11923
11924 2003-03-20  Havoc Pennington  <hp@pobox.com>
11925
11926         * bus/connection.c (bus_connection_send_oom_error): assert that
11927         message has a sender
11928         (connection_execute_transaction): ditto
11929         (bus_connection_preallocate_oom_error): fix to set the sender, and
11930         set recipient to the destination service, not the bus driver
11931
11932         * bus/policy.c: hacking
11933
11934         * dbus/dbus-message.c (dbus_message_service_is): new function
11935         (dbus_message_sender_is): new
11936
11937 2003-03-19  Havoc Pennington  <hp@redhat.com>
11938
11939         * bus/policy.c: start sketching code for policy restrictions on
11940         what connections can do.
11941
11942 2003-03-18  Havoc Pennington  <hp@redhat.com>
11943
11944         * doc/TODO: some notes on high-level todo items. Little nitpick
11945         stuff is all in @todo, so no need to add it here.
11946
11947         * doc/config-file.txt: some notes on how config file might look
11948
11949 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11950
11951         * configure.in: 0.6
11952
11953         * NEWS: Update.
11954
11955 2003-03-17  Havoc Pennington  <hp@redhat.com>
11956
11957         * dbus/dbus-internals.h: add gcc attributes so that
11958         our printf-style functions warn on bad arguments to
11959         format
11960
11961         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
11962         format bug
11963
11964         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
11965         printf format bug
11966
11967 2003-03-17  Havoc Pennington  <hp@redhat.com>
11968
11969         * bus/test-main.c (main): make it print something as it runs
11970         so make check doesn't look stuck
11971
11972         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
11973         from CVS, now obsolete
11974
11975 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
11976
11977         * bus/dispatch.c: (bus_dispatch):
11978         Refetch the service name since it may have been reallocated
11979         when dbus_message_set_sender was called.
11980
11981         * dbus/dbus-sysdeps.c: (_dbus_accept):
11982         Add address and address length variables and use them to stop
11983         valgrind from complaining.
11984
11985 2003-03-17  Havoc Pennington  <hp@pobox.com>
11986
11987         All tests pass, no memleaks, no valgrind complaints.
11988
11989         * bus/test.c: refcount handler_slot
11990
11991         * bus/connection.c (bus_connections_new): refcount
11992         connection_data_slot
11993
11994         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
11995         bytes so that auth scripts pass.
11996
11997         * bus/dispatch.c: init message_handler_slot so it gets allocated
11998         properly
11999
12000         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12001
12002         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12003         dealloc server_pipe_hash when no longer used for benefit of
12004         leak checking
12005
12006         * dbus/dbus-auth.c (process_command): memleak fix
12007
12008         * bus/dispatch.c (check_hello_message): memleak fix
12009
12010 2003-03-16  Havoc Pennington  <hp@pobox.com>
12011
12012         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12013
12014 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12015
12016         * bus/activation.c (bus_activation_activate_service): Append
12017         the pending activation entry to the list of pending activations.
12018
12019 2003-03-16  Havoc Pennington  <hp@pobox.com>
12020
12021         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12022         connections
12023
12024         * dbus/dbus-address.c (create_entry): fix OOM handling when
12025         failing to alloc entry->method
12026
12027 2003-03-16  Havoc Pennington  <hp@pobox.com>
12028
12029         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12030         the watch
12031
12032         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12033         add some missing dbus_set_result
12034
12035         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12036         alloc the DBusMessageHandler
12037
12038         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12039         the transport here, since we call this from the finalizer; it
12040         resulted in a double-finalize.
12041
12042         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12043         where we tried to use transport->connection that was NULL,
12044         happened when transport was disconnected early on due to OOM
12045
12046         * bus/*.c: adapt to handle OOM for watches/timeouts
12047
12048         * dbus/dbus-transport-unix.c: port to handle OOM during
12049         watch handling
12050
12051         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12052         reference to unused bytes instead of a copy
12053
12054         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12055         out of memory
12056
12057         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12058         FALSE on OOM
12059
12060         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12061         of memory
12062
12063 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12064
12065         * doc/dbus-specification.sgml:
12066         Document reply message for ActivateService.
12067
12068 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12069
12070         * bus/activation.c: (bus_pending_activation_entry_free),
12071         (bus_pending_activation_free), (bus_activation_new),
12072         (bus_activation_unref), (bus_activation_service_created),
12073         (bus_activation_activate_service):
12074         * bus/activation.h:
12075         * bus/bus.c: (bus_context_new):
12076         * bus/desktop-file.c: (new_section):
12077         * bus/driver.c: (bus_driver_send_service_deleted),
12078         (bus_driver_handle_activate_service):
12079         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12080         * bus/services.h:
12081         * dbus/dbus-connection.c:
12082         (dbus_connection_send_with_reply_and_block):
12083         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12084         * dbus/dbus-protocol.h:
12085         Make activation work better. Now pending activations will be queued
12086         and the daemon won't try to activate services that are already registered.
12087
12088 2003-03-16  Havoc Pennington  <hp@pobox.com>
12089
12090         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12091         connection data
12092
12093         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12094         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12095
12096 2003-03-16  Havoc Pennington  <hp@pobox.com>
12097
12098         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12099         this. always run the test suite before commit...
12100
12101         * bus/*: adapt to DBusConnection API changes
12102
12103         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12104         requires renaming stuff to avoid dbus_connection_dispatch name
12105         conflict.
12106
12107         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12108         function
12109
12110         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12111         separate from _dbus_message_loader_return_buffer()
12112
12113         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12114         this, because it's now always broken to use; the number of
12115         messages in queue vs. the number still buffered by the message
12116         loader is undefined/meaningless. Should use
12117         dbus_connection_get_dispatch_state().
12118         (dbus_connection_dispatch): rename from
12119         dbus_connection_dispatch_message
12120
12121 2003-03-16  Havoc Pennington  <hp@pobox.com>
12122
12123         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12124         implementation
12125
12126 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12127
12128         * dbus/dbus-connection.c:
12129         (dbus_connection_send_with_reply_and_block):
12130         Decrease connection->n_incoming when removing an entry
12131         from the list.
12132         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12133         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12134         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12135         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12136         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12137         (dbus_dict_get_byte_array):
12138         Handle NULL arrays and strings. Also add support for byte arrays.
12139
12140         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12141         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12142         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12143         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12144         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12145         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12146         * dbus/dbus-marshal.h:
12147         Add support for marshalling and demarshalling empty arrays and strings.
12148
12149         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12150         (dbus_message_append_string_array),
12151         (dbus_message_iter_get_boolean),
12152         (dbus_message_iter_get_boolean_array),
12153         (dbus_message_iter_get_int32_array),
12154         (dbus_message_iter_get_uint32_array),
12155         (dbus_message_iter_get_double_array),
12156         (dbus_message_iter_get_byte_array),
12157         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12158         (check_message_handling):
12159         Add support for getting empty arrays and dicts.
12160
12161         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12162         Don't do any validation at all for now, that's better than just checking
12163         for ASCII.
12164
12165         * test/data/valid-messages/emptiness.message:
12166         New test message with lots of empty arrays.
12167
12168 2003-03-16  Havoc Pennington  <hp@pobox.com>
12169
12170         * dbus/dbus-connection.c
12171         (_dbus_connection_queue_received_message_link): new function that
12172         can't fail due to OOM
12173
12174         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12175         new function pops a message together with a list link
12176         containing it.
12177
12178         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12179         message queuing functions to avoid needing to alloc memory
12180
12181 2003-03-16  Havoc Pennington  <hp@pobox.com>
12182
12183         Oops - test code was only testing failure of around 30 of the
12184         mallocs in the test path, but it turns out there are 500+
12185         mallocs. I believe this was due to misguided linking setup such
12186         that there was one copy of dbus_malloc etc. in the daemon and one
12187         in the shared lib, and only daemon mallocs were tested. In any
12188         case, the test case now tests all 500+ mallocs, and doesn't pass
12189         yet, though there are lots of fixes in this patch.
12190
12191         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12192         this so that it doesn't need to allocate memory, since it
12193         has no way of indicating failure due to OOM (and would be
12194         annoying if it did).
12195
12196         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12197
12198         * bus/Makefile.am: rearrange to create two self-contained
12199         libraries, to avoid having libraries with overlapping symbols.
12200         that was resulting in weirdness, e.g. I'm pretty sure there
12201         were two copies of global static variables.
12202
12203         * dbus/dbus-internals.c: move the malloc debug stuff to
12204         dbus-memory.c
12205
12206         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12207         empty.
12208
12209         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12210
12211         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12212         on failure.
12213
12214         * bus/dispatch.c (bus_dispatch_add_connection): free
12215         message_handler_slot when no longer using it, so
12216         memory leak checkers are happy for the test suite.
12217
12218         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12219
12220         * bus/bus.c (new_connection_callback): disconnect in here if
12221         bus_connections_setup_connection fails.
12222
12223         * bus/connection.c (bus_connections_unref): fix to free the
12224         connections
12225         (bus_connections_setup_connection): if this fails, don't
12226         disconnect the connection, just be sure there are no side
12227         effects.
12228
12229         * dbus/dbus-string.c (undo_alignment): unbreak this
12230
12231         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12232         leaking
12233         (_dbus_auth_new): fix the order in which we free strings
12234         on OOM failure
12235
12236         * bus/connection.c (bus_connection_disconnected): fix to
12237         not send ServiceDeleted multiple times in case of memory
12238         allocation failure
12239
12240         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12241         get the base service name
12242         (dbus_bus_register_client): don't return base service name,
12243         instead store it on the DBusConnection and have an accessor
12244         function for it.
12245         (dbus_bus_register_client): rename dbus_bus_register()
12246
12247         * bus/dispatch.c (check_hello_message): verify that other
12248         connections on the bus also got the correct results, not
12249         just the one sending hello
12250
12251 2003-03-15  Havoc Pennington  <hp@pobox.com>
12252
12253         Make it pass the Hello handling test including all OOM codepaths.
12254         Now to do other messages...
12255
12256         * bus/services.c (bus_service_remove_owner): fix crash when
12257         removing owner from an empty list of owners
12258         (bus_registry_ensure): don't leave service in the list of
12259         a connection's owned services if we fail to put the service
12260         in the hash table.
12261
12262         * bus/connection.c (bus_connection_preallocate_oom_error): set
12263         error flag on the OOM error.
12264
12265         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12266         handle _dbus_transport_set_connection failure
12267
12268         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12269         to create watches up front and simply enable/disable them as
12270         needed.
12271         (unix_connection_set): this can now fail on OOM
12272
12273         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12274         of enabling/disabling a watch or timeout.
12275
12276         * bus/loop.c (bus_loop_iterate): don't touch disabled
12277         watches/timeouts
12278
12279         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12280
12281 2003-03-15  Havoc Pennington  <hp@pobox.com>
12282
12283         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12284         write useful test code, after all that futzing around ;-)
12285
12286         Test does not yet pass because we can't handle OOM in
12287         _dbus_transport_messages_pending (basically,
12288         dbus_connection_preallocate_send() does not prealloc the write
12289         watch). To fix this, I think we need to add new stuff to
12290         set_watch_functions, namely a SetEnabled function so we can alloc
12291         the watch earlier, then enable it later.
12292
12293         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12294         dbus-memory.c to the convenience lib
12295
12296         * bus/test.c: rename some static functions to keep them clearly
12297         distinct from stuff in connection.c. Handle client disconnection.
12298
12299 2003-03-14  Havoc Pennington  <hp@pobox.com>
12300
12301         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12302         transport, tests more of the real codepath. Set up clients
12303         with bus_setup_debug_client.
12304
12305         * bus/test.c (bus_setup_debug_client): function to set up debug
12306         "clients" on the main loop
12307
12308         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12309         support
12310
12311         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12312         server type
12313
12314         * dbus/dbus-server-debug.c: support a debug server based on pipes
12315
12316         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12317         (_dbus_close): new function
12318
12319         * configure.in: check for socketpair
12320
12321 2003-03-14  Havoc Pennington  <hp@redhat.com>
12322
12323         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12324         cheesy hack
12325
12326         * dbus/dbus-transport-debug.c: rework this a good bit to be
12327         less complicated. hopefully still works.
12328
12329         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12330         manually
12331
12332         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12333         after running it
12334
12335         * dbus/dbus-message.c (dbus_message_copy): rename from
12336         dbus_message_new_from_message, fix it up to copy
12337         all the message fields, add test case
12338
12339         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12340         not quite passing yet
12341
12342 2003-03-14  Havoc Pennington  <hp@pobox.com>
12343
12344         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12345         until no work remains" in test code. (the large diff here
12346         is just code movement, no actual changes)
12347
12348         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12349         1, no point waiting around for test code.
12350         (_dbus_server_debug_accept_transport): unref the timeout
12351         after adding it (right?)
12352
12353         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12354
12355 2003-03-13  Havoc Pennington  <hp@redhat.com>
12356
12357         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12358         out of memory
12359
12360         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12361         of memory
12362
12363         * dbus/dbus-connection.h: Make AddWatchFunction and
12364         AddTimeoutFunction return a bool so they can fail on out-of-memory
12365
12366         * bus/bus.c (bus_context_new): set up timeout handlers
12367
12368         * bus/connection.c (bus_connections_setup_connection): set up
12369         timeout handlers
12370
12371         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12372         can fail
12373
12374         * bus/bus.c (bus_context_new): adapt to changes
12375
12376         * bus/connection.c: adapt to changes
12377
12378         * test/watch.c: adapt to DBusWatch changes
12379
12380         * bus/dispatch.c (bus_dispatch_test): started adding this but
12381         didn't finish
12382
12383 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12384
12385         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12386
12387 2003-03-13  Havoc Pennington  <hp@pobox.com>
12388
12389         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12390         set up a test framework as for the library
12391
12392 2003-03-12  Havoc Pennington  <hp@pobox.com>
12393
12394         Throughout: purge global variables, introduce BusActivation,
12395         BusConnections, BusRegistry, etc. objects instead.
12396
12397         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12398         message bus object
12399
12400         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12401         going to redo this a bit differently I think
12402
12403 2003-03-12  Havoc Pennington  <hp@redhat.com>
12404
12405         Mega-patch that gets the message bus daemon initially handling
12406         out-of-memory. Work still needed. Also lots of random
12407         moving stuff to DBusError instead of ResultCode.
12408
12409         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12410
12411         * dbus/dbus-connection.c
12412         (dbus_connection_send_with_reply_and_block): use DBusError
12413
12414         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12415         DBusResultCode
12416
12417         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12418         code here, as the only failure possible is OOM.
12419
12420         * bus/connection.c (bus_connection_disconnect):
12421         rename bus_connection_disconnected as it's a notification only
12422
12423         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12424         "name" on get_args failure, should be done by get_args;
12425         don't disconnect client for bad args, just return an error.
12426         (bus_driver_handle_service_exists): ditto
12427
12428         * bus/services.c (bus_services_list): NULL-terminate returned array
12429
12430         * bus/driver.c (bus_driver_send_service_lost)
12431         (bus_driver_send_service_acquired): send messages from driver to a
12432         specific client to the client's unique name, not to the broadcast
12433         service.
12434
12435         * dbus/dbus-message.c (decode_header_data): reject messages that
12436         contain no name field
12437         (_dbus_message_get_client_serial): rename to
12438         dbus_message_get_serial and make public
12439         (_dbus_message_set_serial): rename from set_client_serial
12440         (_dbus_message_set_reply_serial): make public
12441         (_dbus_message_get_reply_serial): make public
12442
12443         * bus/connection.c (bus_connection_foreach): allow stopping
12444         iteration by returning FALSE from foreach function.
12445
12446         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12447         (dbus_connection_free_preallocated_send)
12448         (dbus_connection_preallocate_send): new API for sending a message
12449         without possibility of malloc failure.
12450         (dbus_connection_send_message): rename to just
12451         dbus_connection_send (and same for whole function family)
12452
12453         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12454
12455         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12456
12457         * bus/activation.c: handle/return errors
12458
12459         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12460
12461         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12462         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12463         (_dbus_result_from_errno): move to this file
12464
12465 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12466
12467         * dbus/dbus-marshal.c:
12468         (_dbus_marshal_set_string):
12469         Take a length argument so we can marshal the correct string
12470         length.
12471
12472         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12473         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12474         (_dbus_marshal_test):
12475         * dbus/dbus-marshal.h:
12476         Add support for marshalling and demarshalling dicts.
12477
12478         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12479         Add support for TYPE DICT.
12480
12481         * dbus/dbus-message.c: (set_string_field):
12482         Adjust header padding.
12483
12484         (dbus_message_append_args_valist), (dbus_message_append_dict),
12485         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12486         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12487         (check_message_handling), (check_have_valid_message):
12488         * dbus/dbus-message.h:
12489         Add functions for setting and getting dicts.
12490
12491         * dbus/dbus-protocol.h:
12492         Add DBUS_TYPE_DICT.
12493
12494         * dbus/dbus.h:
12495         Add dbus-dict.h
12496
12497         * doc/dbus-specification.sgml:
12498         Add information about how dicts are marshalled.
12499
12500         * test/data/invalid-messages/dict-with-nil-value.message:
12501         * test/data/invalid-messages/too-short-dict.message:
12502         * test/data/valid-messages/dict-simple.message:
12503         * test/data/valid-messages/dict.message:
12504         Add sample messages containing dicts.
12505
12506 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12507
12508         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12509
12510 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12511
12512         * dbus/Makefile.am:
12513         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12514         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12515         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12516         (dbus_dict_set_double), (dbus_dict_set_string),
12517         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12518         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12519         (dbus_dict_set_string_array), (_dbus_dict_test):
12520         * dbus/dbus-dict.h:
12521         Fix according to comments from Havoc.
12522
12523 2003-03-06  Michael Meeks  <michael@server.home>
12524
12525         * configure.in: if we don't have kde-config, disable have_qt.
12526
12527 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12528
12529         * dbus/Makefile.am:
12530         Add dbus-dict.[ch]
12531
12532         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12533         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12534         (dbus_dict_remove), (dbus_dict_get_value_type),
12535         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12536         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12537         (dbus_dict_put_double), (dbus_dict_put_string),
12538         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12539         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12540         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12541         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12542         (dbus_dict_get_double), (dbus_dict_get_string),
12543         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12544         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12545         (dbus_dict_get_string_array), (_dbus_dict_test):
12546         * dbus/dbus-dict.h:
12547         Add DBusDict implementation
12548
12549         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12550         * dbus/dbus-test.h:
12551         Add _dbus_dict_test
12552
12553 2003-03-04  Havoc Pennington  <hp@pobox.com>
12554
12555         * test/data/auth/*: adapt to changes
12556
12557         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12558         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12559         userid
12560
12561         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12562         more stuff from being in a context name, to make the protocol
12563         simpler to deal with
12564
12565         * dbus/dbus-errors.c (dbus_error_has_name): new function
12566         (dbus_error_is_set): new function
12567
12568         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12569         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12570
12571         * dbus/dbus-connection.c (dbus_connection_flush): also read
12572         messages during a flush operation
12573
12574         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12575
12576 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12577
12578         * configure.in: Check for gethostbyname on Solaris.
12579
12580         * dbus/dbus-transport.c: (_dbus_transport_open):
12581         Remove duplicate "tcp" entry.
12582
12583         * doc/dbus-specification.sgml:
12584         Clarify some things.
12585
12586 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12587
12588         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12589         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12590         (_dbus_keyring_test):
12591         * dbus/dbus-md5.c: (_dbus_md5_compute):
12592         * dbus/dbus-sha.c: (_dbus_sha_compute):
12593         Plug memory leaks.
12594
12595 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12596
12597         * README: Add some things.
12598
12599 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12600
12601         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12602         after case DBUS_TYPE_BOOELAN.
12603
12604 2003-03-02  Havoc Pennington  <hp@pobox.com>
12605
12606         * test/break-loader.c (randomly_set_extreme_ints): add test that
12607         sets really huge and small integers
12608
12609         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12610         that length of boolean array fits in the string, and that
12611         string has room for boolean value in single-bool case.
12612
12613         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12614         optional value to "ALIGN" command which is what to fill the
12615         alignment with.
12616
12617         * test/data/valid-messages/no-padding.message: add regression
12618         test for the message padding problem
12619
12620 2003-03-02  Havoc Pennington  <hp@pobox.com>
12621
12622         * dbus/dbus-message.c (decode_header_data): fix to always init
12623         message_padding, from Benjamin Dauvergne
12624
12625 2003-03-02  Havoc Pennington  <hp@pobox.com>
12626
12627         * configure.in: 0.5
12628
12629         * NEWS: Update.
12630
12631 2003-03-01  Joe Shaw  <joe@assbarn.com>
12632
12633         * configure.in: Check for "struct cmsgcred" and try to access its
12634         members for BSD-like unices.
12635
12636         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12637         _dbus_read_credentials_unix_socket().
12638         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12639         read() for reading the credential byte off the unix socket.  Use
12640         struct cmsgcred on systems that support it.
12641
12642 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12643
12644         * glib/Makefile.am:
12645         * configure.in:
12646         Make gthreads-2.0 dependency optional. Don't build thread test if
12647         its not found.
12648
12649 2003-02-27  Havoc Pennington  <hp@pobox.com>
12650
12651         * dbus/dbus-connection.c
12652         (dbus_connection_send_message_with_reply_and_block): fix doh!
12653         doh! doh! bug that resulted in never removing a reply from the
12654         queue, no wonder we called get_reply_serial so much ;-)
12655
12656         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12657         and client serial instead of demarshaling them every time
12658
12659 2003-02-27  Havoc Pennington  <hp@pobox.com>
12660
12661         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12662         more inlined, using dbus-string-private.h, speeds things up
12663         substantially
12664
12665         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12666         when freeing the string
12667         (_dbus_string_steal_data): fix for align offset
12668         (undo_alignment): new function
12669
12670 2003-02-26  Havoc Pennington  <hp@redhat.com>
12671
12672         All kinds of audit fixes from Owen, plus initial attempt to
12673         handle unaligned memory returned from malloc.
12674
12675         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12676         leave room for align_offset and nul byte
12677         (fixup_alignment): function to track an align_offset and
12678         ensure real->str is aligned
12679         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12680         to allow a nul byte plus align offset
12681         (_dbus_string_lock): fix overflow issue
12682         (_dbus_string_init_const_len): add assertions on sanity of len,
12683         assign allocated to be ALLOCATION_PADDING larger than len
12684         (set_length): fixup the overflow handling
12685         (_dbus_string_get_data_len): fix overflow in assertion
12686         (open_gap): detect overflow in size of gap to be opened
12687         (_dbus_string_lengthen): add overflow check
12688         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12689         (_dbus_string_append): add overflow check
12690         (_dbus_string_append_unichar): overflow
12691         (_dbus_string_delete): fix overflow in assertion
12692         (_dbus_string_copy_len): overflow in assertion
12693         (_dbus_string_replace_len): overflows in assertions
12694         (_dbus_string_find): change to implement in terms of
12695         _dbus_string_find_to
12696         (_dbus_string_find_to): assorted fixage
12697         (_dbus_string_equal_c_str): assert c_str != NULL,
12698         fix logic so the function works
12699         (_dbus_string_ends_with_c_str): fix overflow thingy
12700         (_dbus_string_base64_encode): overflow fix
12701         (_dbus_string_validate_ascii): overflow
12702         (_dbus_string_validate_nul): overflow
12703
12704 2003-02-26  Havoc Pennington  <hp@redhat.com>
12705
12706         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12707
12708 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12709
12710         * configure.in:
12711         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12712
12713         * dbus/dbus-connection.c:
12714         * dbus/dbus-connection.h:
12715         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12716         Add dbus_connection_set_wakeup_main_function and use it when queueing
12717         incoming and outgoing messages.
12718
12719
12720         * dbus/dbus-dataslot.c:
12721         Threadsafe usage of DBusDataSlotAllocator
12722
12723         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12724         dbus_new can fail.
12725
12726         * dbus/dbus-server-unix.c:
12727         Add todo comment
12728
12729         * glib/dbus-gmain.c:
12730         Implement the new wakeup functions for glib.
12731
12732         * glib/Makefile.am:
12733         * glib/test-thread-client.c:
12734         * glib/test-thread-server.c:
12735         * glib/test-thread.h:
12736         Initial cut at some thread test code. Not really done yet.
12737
12738 2003-02-26  Havoc Pennington  <hp@pobox.com>
12739
12740         * dbus/dbus-connection.c
12741         (dbus_connection_send_message_with_reply_and_block): fix crash
12742         where we ref'd the outgoing message instead of the returned reply
12743
12744         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12745         at the end of this function, so if we didn't need to read for
12746         authentication, we reinstall it for receiving messages
12747
12748         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12749         a NULL sender for peer-to-peer case
12750
12751         * dbus/dbus-transport-unix.c (check_read_watch): handle
12752         !authenticated case correctly
12753
12754         * glib/dbus-gmain.c: add support for DBusServer
12755
12756         * dbus/dbus-server.c: add data slot support
12757
12758         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12759         return values and handle errors
12760
12761         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12762         DBusConnection
12763
12764         * Doxyfile.in (INPUT): add glib subdir
12765
12766         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12767         setup_with_g_main instead of hookup_with_g_main; write docs
12768
12769 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12770
12771         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12772         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12773         * dbus/dbus-message.c: (dbus_message_append_boolean),
12774         (dbus_message_append_boolean_array),
12775         (dbus_message_get_args_valist), (_dbus_message_test):
12776         * dbus/dbus-message.h:
12777         * doc/dbus-specification.sgml:
12778         Various fixes as pointed out by Havoc.
12779
12780         * test/data/invalid-messages/bad-boolean-array.message:
12781         * test/data/invalid-messages/bad-boolean.message:
12782         Add invalid boolean value test cases.
12783
12784 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12785
12786         * dbus/dbus-internals.c: (_dbus_type_to_string):
12787         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12788         (_dbus_marshal_validate_arg):
12789         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12790         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12791         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12792         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12793         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12794         (dbus_message_iter_get_double),
12795         (dbus_message_iter_get_boolean_array), (message_iter_test):
12796         * dbus/dbus-message.h:
12797         * dbus/dbus-protocol.h:
12798         * doc/dbus-specification.sgml:
12799         * test/data/valid-messages/lots-of-arguments.message:
12800         Add support for boolean and boolean array types.
12801
12802 2003-02-23  Havoc Pennington  <hp@pobox.com>
12803
12804         * dbus/dbus-keyring.c: finish most of this implementation and
12805         simple unit test
12806
12807         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12808         these barf if the error isn't cleared to NULL
12809
12810         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12811         (_dbus_create_directory): new function
12812
12813         * dbus/dbus-errors.c (dbus_set_error): fix warning
12814
12815         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12816         (_dbus_string_hex_decode): new function
12817         (test_hex_roundtrip): test code
12818
12819         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12820
12821         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12822
12823         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12824         the save-to-temp/rename trick to atomically write the new file
12825         (_dbus_string_parse_uint): new function
12826
12827 2003-02-22  Havoc Pennington  <hp@pobox.com>
12828
12829         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12830
12831 2003-02-22  Havoc Pennington  <hp@pobox.com>
12832
12833         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12834         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12835
12836         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12837
12838         * dbus/test/data/sha-1: add US government test suite for SHA-1
12839
12840 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12841
12842         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12843         Make string arrays NULL-terminated.
12844
12845         * dbus/dbus-memory.c: (dbus_free_string_array):
12846         * dbus/dbus-memory.h:
12847         New function for freeing NULL-terminated string arrays.
12848
12849         * dbus/dbus-message-builder.c: (append_quoted_string),
12850         (_dbus_message_data_load):
12851         Add support for array types.
12852
12853         * dbus/dbus-message.c: (check_message_handling):
12854         Add more types as test cases.
12855
12856         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12857         (_dbus_string_parse_double):
12858         Add the start offset to the end offset.
12859
12860         * test/data/valid-messages/lots-of-arguments.message:
12861         New test message with lots of arguments.
12862
12863 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12864
12865         * dbus/dbus-message.c: (dbus_message_append_nil),
12866         (dbus_message_append_int32), (dbus_message_append_uint32),
12867         (dbus_message_append_double), (dbus_message_append_string),
12868         (dbus_message_append_int32_array),
12869         (dbus_message_append_uint32_array),
12870         (dbus_message_append_double_array),
12871         (dbus_message_append_byte_array),
12872         (dbus_message_append_string_array):
12873         Fix all out-of-memory handling in these functions.
12874
12875 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12876
12877         * dbus/dbus-message.c: (dbus_message_append_nil):
12878         Fix a silly.
12879
12880 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12881
12882         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12883         (dbus_message_append_nil), (dbus_message_append_int32_array),
12884         (dbus_message_append_uint32_array),
12885         (dbus_message_append_double_array),
12886         (dbus_message_append_byte_array),
12887         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12888         (dbus_message_iter_get_int32_array),
12889         (dbus_message_iter_get_uint32_array),
12890         (dbus_message_iter_get_double_array),
12891         (dbus_message_iter_get_byte_array),
12892         (dbus_message_iter_get_string_array):
12893
12894         * dbus/dbus-message.h:
12895         Add functions for appending and getting arrays.
12896
12897 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12898
12899         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12900         element size at least 8 bytes, fixes mempool tests on
12901         64-bit machines.
12902
12903 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12904
12905         * dbus/dbus-transport-unix.c (unix_do_iteration):
12906         Unlock the connection mutex during a blocking select call.
12907         Add todo about how we need a way to wake up the select.
12908
12909         * dbus/dbus-connection-internal.h:
12910         * dbus/dbus-connection.c:
12911         Add _dbus_connection_lock and _dbus_connection_unlock.
12912
12913 2003-02-19  Havoc Pennington  <hp@pobox.com>
12914
12915         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12916         Doxyfile.in, not Doxyfile
12917
12918         * dbus/dbus-keyring.c: do some hacking on this
12919
12920         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12921
12922         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12923         dbus_error_init
12924         (dbus_set_error): remove dbus_error_init, check for message ==
12925         NULL *before* we sprintf into it, and add @todo about including
12926         system headers in this file
12927
12928         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12929
12930         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12931
12932         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12933         get various bits of user information based on either username
12934         or user ID
12935         (_dbus_homedir_from_username): new function
12936
12937 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12938
12939         * configure.in:
12940         Add check for nonposix getpwnam_r
12941
12942         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12943         Align the pool element size to a sizeof (void *) boundary.
12944
12945         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12946         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12947         General Solaris fixes.
12948
12949         * test/data/valid-messages/simplest-manual.message:
12950         Explicitly state that we want little-endian packing.
12951
12952 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
12953
12954         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12955
12956         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
12957         Added to create a transport connecting using a tcp/ip socket.
12958
12959         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
12960         to a tcp socket at given host and port.
12961         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
12962         hostname and port.
12963
12964         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
12965
12966         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
12967         Added to create a server listening on a TCP/IP socket.
12968
12969 2003-02-19  Havoc Pennington  <hp@pobox.com>
12970
12971         Throughout: mop up all the Doxygen warnings and undocumented
12972         stuff.
12973
12974         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
12975         to search any paths.
12976
12977         * dbus/dbus-threads.c: move global mutex initializers to
12978         dbus-internals.h, multiple prototypes was confusing doxygen
12979         besides being kind of ugly
12980
12981         * Doxyfile (PREDEFINED): have Doxygen define
12982         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
12983         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
12984         (do not abuse the feature! it's for stuff like the autogenerated
12985         macros in dbus-md5.c, not just for things you don't feel like
12986         documenting...)
12987
12988 2003-02-18  Havoc Pennington  <hp@pobox.com>
12989
12990         * dbus/dbus-string.c (_dbus_string_zero): new function
12991
12992         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
12993         wrap it in some dbus-friendly API
12994
12995         * dbus/dbus-types.h: add 16-bit types
12996
12997 2003-02-18  Joe Shaw  <joe@assbarn.com>
12998
12999         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13000         credentials from our currently running process.
13001         (get_word): Fix a buglet where we were copying the entire length
13002         instead of relative to our position.
13003
13004         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13005         keys on the stack... it's 640k of data.
13006
13007         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13008         read the credentials byte off the socket, even if we don't have
13009         SO_PEERCRED.
13010         (_dbus_poll): Implement poll() using select() for systems which
13011         don't have it.
13012
13013         * glib/test-dbus-glib.c (main): Print out an error if no
13014         parameters are given.
13015
13016         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13017         can fallback to a secondary auth mechanism if the first fails.
13018
13019 2003-02-18  Havoc Pennington  <hp@pobox.com>
13020
13021         * AUTHORS: add Alex
13022
13023 2003-02-17  Havoc Pennington  <hp@pobox.com>
13024
13025         * doc/dbus-specification.sgml: lots of cosmetic
13026         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13027         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13028         s/server/bus/ (except in authentication section). Add a section
13029         "Message Bus Message Routing"
13030
13031 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13032
13033         Release 0.4
13034
13035         * NEWS: Update
13036
13037 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13038
13039         * doc/dbus-specification.sgml:
13040         Specification updates.
13041
13042 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13043
13044         * bus/activation.c: (bus_activation_init), (child_setup),
13045         (bus_activation_activate_service):
13046         * bus/activation.h:
13047         * bus/main.c: (main):
13048         Set DBUS_ADDRESS environment variable.
13049
13050         * dbus/dbus-errors.c: (dbus_set_error):
13051         Don't use va_copy since that's a C99 feature.
13052
13053         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13054         (_dbus_spawn_async):
13055         * dbus/dbus-sysdeps.h:
13056         Add child_setup_func to _dbus_spawn_async.
13057
13058         * doc/dbus-specification.sgml:
13059         Update specification.
13060
13061         * test/spawn-test.c: (setup_func), (main):
13062         Fix test.
13063
13064 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13065
13066         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13067         Added todo.
13068
13069 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13070
13071         * doc/.cvsignore:
13072         * doc/Makefile.am:
13073         * doc/dbus-test-plan.sgml:
13074         Add test plan document.
13075
13076         * test/Makefile.am:
13077         Fix distcheck.
13078
13079 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13080
13081         * dbus/dbus-message.c: (decode_header_data),
13082         (_dbus_message_loader_return_buffer):
13083         Set the header padding amount when loading a message.
13084
13085 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13086
13087         * bus/dispatch.c: (send_one_message):
13088         Only send broadcast messages to registered connections.
13089
13090         * dbus/dbus-message.c: (dbus_message_name_is):
13091         * dbus/dbus-message.h:
13092         New convenience function.
13093
13094         * dbus/dbus-transport-debug.c: (do_reading):
13095         Only dispatch one message per run.
13096
13097         * test/Makefile.am:
13098         * test/bus-test.c: (new_connection_callback), (die),
13099         (test_hello_client1_handler), (test_hello_client2_handler),
13100         (test_hello_replies), (main):
13101
13102         * test/bus-test-loop.[ch]:
13103         Add these.
13104
13105 2003-02-16  Havoc Pennington  <hp@pobox.com>
13106
13107         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13108         backward conditional
13109
13110 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13111
13112         * dbus/dbus-connection.c:
13113         Implement sent_message_with_reply. (with_reply_and block is still
13114         busted).
13115         Made dispatch_message not lose message if OOM.
13116
13117         * dbus/dbus-errors.h:
13118         Add NoReply error (for reply timeouts).
13119
13120 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13121
13122         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13123         Actually free keys and values when destroying hashtable.
13124
13125 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13126
13127         * dbus/dbus-auth.c: (client_try_next_mechanism):
13128         Plug a leak.
13129
13130         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13131         Return TRUE if there's no thread implementation around.
13132
13133         * glib/dbus-gmain.c: (free_source),
13134         (dbus_connection_hookup_with_g_main):
13135         Make sure to remove the GSource when the connection is finalized.
13136
13137 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13138
13139         * bus/dispatch.c: (bus_dispatch_message_handler):
13140         * dbus/dbus-errors.h:
13141         Return an error if someone tries to send a message to a service
13142         that doesn't exist.
13143
13144 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13145
13146         * bus/activation.c: (load_directory), (bus_activation_init),
13147         (bus_activation_activate_service):
13148         * bus/activation.h:
13149         * bus/driver.c:
13150         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13151         More work on the activation handling.
13152
13153         * dbus/dbus-errors.h:
13154         Add some error messages
13155
13156         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13157         * dbus/dbus-message.h:
13158         New function that creates an error message.
13159
13160         * dbus/dbus-protocol.h:
13161         Add ACTIVATE_SERVER message.
13162
13163         * dbus/dbus-server-unix.c: (unix_handle_watch),
13164         (_dbus_server_new_for_domain_socket):
13165         Call _dbus_fd_set_close_on_exec.
13166
13167         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13168         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13169         (_dbus_fd_set_close_on_exec):
13170         * dbus/dbus-sysdeps.h:
13171         Add _dbus_fd_set_close_on exec function. Also add function that checks
13172         that all open fds are set to close-on-exec and warns otherwise.
13173
13174         * dbus/dbus-transport-unix.c:
13175         (_dbus_transport_new_for_domain_socket):
13176         Call _dbus_fd_set_close_on_exec.
13177
13178 2003-02-16  Havoc Pennington  <hp@pobox.com>
13179
13180         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13181         allow people to avoid setting SIGPIPE to SIG_IGN
13182         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13183         we've been asked not to
13184
13185 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13186
13187         * dbus/dbus-list.c: (_dbus_list_append_link),
13188         (_dbus_list_prepend_link):
13189         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13190         (dbus_realloc):
13191         Warning fixes.
13192
13193 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13194
13195         * bus/Makefile.am:
13196         * bus/activation.c: (bus_activation_entry_free),
13197         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13198         * bus/activation.h:
13199         * bus/main.c: (main):
13200         Add simple activation support, doesn't work yet though.
13201
13202 2003-02-15   Zack Rusin  <zack@kde.org>
13203
13204         * qt/dbus-qthread.cpp:  small casting fix
13205
13206 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13207
13208         * dbus/dbus-errors.c: (dbus_set_error):
13209         * dbus/dbus-errors.h:
13210         Add a few errors and make dbus_set_error void.
13211
13212         * dbus/dbus-sysdeps.c:
13213         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13214         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13215         * dbus/dbus-sysdeps.h:
13216         Add _dbus_spawn_async.
13217
13218         * test/spawn-test.c: (main):
13219         Test for _dbus_spawn_async.
13220
13221 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13222
13223         * dbus/dbus-internals.h:
13224         Fix build without tests.
13225
13226         * dbus/dbus-list.c: (alloc_link):
13227         Fix a segfault when a malloc fails.
13228
13229         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13230         (dbus_malloc0), (dbus_realloc):
13231         Add support for malloc debugging.
13232
13233 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13234
13235         * dbus/dbus-threads.c:
13236         * dbus/dbus-threads.h:
13237         Add condvars. Remove static mutext from API.
13238         Implement static mutexes by initializing them from threads_init.
13239
13240         * glib/dbus-gthread.c:
13241         * qt/dbus-qthread.cpp:
13242         Update with the thread api changes.
13243
13244
13245         * dbus/dbus-list.c:
13246         * dbus/dbus-list.h:
13247         Turn StaticMutex into normal mutex + init function.
13248         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13249         _dbus_list_append_link, _dbus_list_prepend_link
13250
13251
13252         * dbus/dbus-sysdeps.c:
13253         * dbus/dbus-sysdeps.h:
13254         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13255         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13256
13257         * dbus/dbus-protocol.h:
13258         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13259
13260         * dbus/dbus-message.c:
13261         Make ref/unref atomic.
13262         Fix some docs.
13263
13264         * dbus/dbus-connection-internal.h:
13265         * dbus/dbus-connection.c:
13266         * dbus/dbus-connection.h:
13267         Make threadsafe.
13268         Change _peek to _borrow,_return & _steal_borrowed.
13269         Change disconnect callback to event.
13270         Make dbus_connection_dispatch_messages reentrant.
13271
13272         * dbus/dbus-transport.c:
13273         Don't ref the connection on calls to the transport
13274         implementation.
13275
13276         * dbus/dbus-message-handler.c:
13277         Make threadsafe.
13278
13279         * glib/dbus-gmain.c:
13280         Don't use peek_message anymore
13281
13282         * test/Makefile.am:
13283         * test/debug-thread.c:
13284         * test/debug-thread.h:
13285         Simple thread implementation that asserts() on deadlocks in
13286         single-threaded code.
13287
13288         * test/bus-test.c:
13289         (main) Call debug_threads_init.
13290
13291         * test/watch.c:
13292         Use disconnect message instead of disconnect callback.
13293
13294         * bus/connection.c:
13295         * bus/connection.h:
13296         Don't call dbus_connection_set_disconnect_function. Instead export
13297         bus_connection_disconnect.
13298
13299         * bus/dispatch.c:
13300         Call bus_connection_disconnect when we get a disconnected message.
13301
13302 2003-02-15  Havoc Pennington  <hp@pobox.com>
13303
13304         * dbus/dbus-message.c (dbus_message_new): fool around with the
13305         docs
13306
13307 2003-02-14  Havoc Pennington  <hp@pobox.com>
13308
13309         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13310
13311         * dbus/dbus-memory.c: fail if the debug functions indicate we
13312         should
13313
13314         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13315         (_dbus_decrement_fail_alloc_counter): debug functions to
13316         simulate memory allocation failures
13317
13318 2003-02-14  Havoc Pennington  <hp@pobox.com>
13319
13320         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13321         to DBusError
13322
13323 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13324
13325         * bus/driver.c: (bus_driver_handle_hello):
13326         * bus/driver.h:
13327         * bus/services.c: (bus_service_lookup):
13328         Reorder message sending so we get a more sane order.
13329
13330         * test/bus-test.c: (message_handler):
13331         Fix tyop.
13332
13333 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13334
13335         * bus/driver.c: (bus_driver_send_service_deleted),
13336         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13337         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13338         (bus_driver_send_welcome_message),
13339         (bus_driver_handle_list_services),
13340         (bus_driver_handle_acquire_service),
13341         (bus_driver_handle_service_exists):
13342         * dbus/dbus-bus.c: (dbus_bus_register_client),
13343         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13344         * dbus/dbus-errors.c: (dbus_result_to_string):
13345         * dbus/dbus-errors.h:
13346         * dbus/dbus-message.c: (dbus_message_append_args),
13347         (dbus_message_append_args_valist), (dbus_message_get_args),
13348         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13349         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13350         (dbus_message_iter_get_byte_array),
13351         (dbus_message_iter_get_string_array), (message_iter_test),
13352         (check_message_handling), (_dbus_message_test):
13353         * dbus/dbus-message.h:
13354         * test/bus-test.c: (main):
13355         Change fields to arguments in messages, so that they won't be
13356         confused with header fields.
13357
13358         * glib/test-dbus-glib.c: (main):
13359         Remove append_fields from hello message.
13360
13361 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13362
13363         * dbus/dbus-errors.c:
13364         * dbus/dbus-message.c:
13365         * dbus/dbus-string.c:
13366         Documentation fixes.
13367
13368 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13369
13370         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13371         (remove_timeout):
13372         Implement support for timeouts in dbus-glib.
13373
13374 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13375
13376         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13377         * dbus/dbus-message.c: (process_test_subdir):
13378         * test/break-loader.c: (find_breaks_based_on):
13379         Plug some memory leaks.
13380
13381 2003-02-13  Richard Hult  <rhult@codefactory.se>
13382
13383         * bus/main.c: Fix build.
13384
13385         * dbus/dbus-errors.h:
13386         * dbus/dbus-errors.c: Fix copyright for Anders.
13387
13388 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13389
13390         * bus/Makefile.am:
13391         Add utils.[ch]
13392
13393         * bus/connection.c: (bus_connection_foreach):
13394         Fix a warning.
13395
13396         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13397         (unescape_string), (new_section), (parse_section_start),
13398         (parse_key_value), (report_error), (bus_desktop_file_load),
13399         (bus_desktop_file_get_string):
13400         * bus/desktop-file.h:
13401         Use DBusError for error reporting.
13402
13403         * bus/dispatch.c: (send_one_message),
13404         (bus_dispatch_message_handler):
13405         * bus/driver.c: (bus_driver_send_service_deleted),
13406         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13407         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13408         (bus_driver_send_welcome_message),
13409         (bus_driver_handle_list_services),
13410         (bus_driver_handle_acquire_service),
13411         (bus_driver_handle_service_exists):
13412         * bus/loop.c: (bus_loop_run):
13413         * bus/main.c:
13414         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13415
13416         * bus/utils.c: (bus_wait_for_memory):
13417         * bus/utils.h:
13418         New files with general utility functions.
13419
13420         * dbus/dbus-internals.h:
13421         Remove _DBUS_HANDLE_OOM.
13422
13423 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13424
13425         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13426         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13427         * dbus/dbus-errors.h:
13428         Add DBusError structure.
13429
13430 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13431
13432         * test/data/valid-messages/standard-acquire-service.message:
13433         * test/data/valid-messages/standard-hello.message:
13434         * test/data/valid-messages/standard-list-services.message:
13435         * test/data/valid-messages/standard-service-exists.message:
13436         Add some standard messages.
13437
13438 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13439
13440         * bus/driver.c: (bus_driver_send_welcome_message),
13441         (bus_driver_handle_list_services),
13442         (bus_driver_handle_acquire_service),
13443         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13444         Update for API changes in libdbus.
13445
13446         * dbus/dbus-message.c: (dbus_message_new_reply):
13447         * dbus/dbus-message.h:
13448         Remove the name argument. The spec states that replies shouldn't
13449         have a name.
13450
13451 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13452
13453         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13454         (report_error), (bus_desktop_file_load), (lookup_section),
13455         (lookup_line), (bus_desktop_file_get_raw),
13456         (bus_desktop_file_get_string):
13457         * bus/desktop-file.h:
13458         Some fixes, and new functions for getting a key value from a section.
13459
13460 2003-02-13  Havoc Pennington  <hp@pobox.com>
13461
13462         * test/data/auth/fail-after-n-attempts.auth-script: new test
13463
13464         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13465         reject the client.
13466
13467 2003-02-13  Havoc Pennington  <hp@pobox.com>
13468
13469         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13470         dbus_credentials_match were backward
13471
13472         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13473         NO_CREDENTIALS and ROOT_CREDENTIALS
13474
13475         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13476         into here. Never process more commands after we've reached an
13477         end state; store further data as unused bytes.
13478
13479         * test/data/auth/*: add more auth tests
13480
13481         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13482         command to match exact string and EXPECT_UNUSED to match unused
13483         bytes
13484
13485         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13486
13487 2003-02-12  Havoc Pennington  <hp@pobox.com>
13488
13489         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13490         \r off of popped lines
13491
13492         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13493         scripts
13494
13495         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13496         SEND, append \r\n
13497
13498 2003-02-12  Havoc Pennington  <hp@pobox.com>
13499
13500         * dbus/Makefile.am: remove break-loader from the build, since it
13501         moved.
13502
13503         * configure.in: add --enable-gcov to turn on coverage profiling
13504         flags and disable optimization
13505
13506 2003-02-10  Havoc Pennington  <hp@pobox.com>
13507
13508         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13509         initial cut at test framework for DBusAuth from laptop.
13510         Doesn't quite work yet but it compiles and I need to get
13511         it off the 266mhz laptop. ;-)
13512
13513         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13514         fix a memleak in error case
13515
13516 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13517
13518         * bus/Makefile.am:
13519         * bus/desktop-file.c:
13520         * bus/desktop-file.h:
13521         Add a desktop file parser.
13522
13523 2003-02-11  Zack Rusin  <zack@kde.org>
13524
13525         * qt/message.[h|cpp]: sample implementation
13526         of the KDE wrapper for DBusMessage
13527
13528 2003-02-09  Zack Rusin  <zack@kde.org>
13529
13530         * test/bus-test.c: make_it_compile
13531         * doc/dbus-specification.sgml: minimal semantic fix
13532
13533 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13534
13535         Release 0.3
13536
13537         * NEWS: Update
13538
13539 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13540
13541         * dbus/Makefile.am:
13542         * dbus/dbus-break-loader.c:
13543         * test/Makefile.am:
13544         * test/break-loader.c:
13545         Move dbus-break-loader to test/ and rename it to break-loader.
13546
13547 2003-02-02  Havoc Pennington  <hp@pobox.com>
13548
13549         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13550         for code to manage cookies in your home directory
13551
13552         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13553
13554         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13555         to authenticate, then disconnect the client.
13556
13557 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13558
13559         * dbus/dbus-message.c (dbus_message_append_fields):
13560         Correct docs.
13561
13562 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13563
13564         * doc/dbus-specification.sgml:
13565         Update address format section.
13566
13567 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13568
13569         * test/Makefile.am:
13570         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13571         (message_handler), (new_connection_callback), (loop_quit),
13572         (loop_run), (main):
13573         Add bus test.
13574
13575 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13576
13577         * bus/driver.c: (bus_driver_handle_service_exists):
13578         Simplify the code a bit.
13579
13580         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13581         Fix a silly.
13582
13583 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13584
13585         * bus/Makefile.am:
13586         Add libdbus-daemon.la and link to it.
13587
13588 2003-02-01  James Willcox  <jwillcox@gnome.org>
13589
13590         * bus/driver.c: (bus_driver_handle_own_service):
13591         Actually include the service reply code in the message.
13592
13593 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13594
13595         * bus/driver.c: (bus_driver_handle_service_exists):
13596         Don't unref the incoming message.
13597
13598 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13599
13600         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13601
13602 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13603
13604         * dbus/dbus-server.c: (dbus_server_listen):
13605         * dbus/dbus-transport.c: (_dbus_transport_open):
13606         ifdef out the calls to the debug transport and server.
13607
13608 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13609
13610         * dbus/dbus-watch.c (dbus_watch_get_flags):
13611         Add note in the docs that ERROR or HANGUP won't be returned
13612         and are assumed always on.
13613
13614         * glib/dbus-gmain.c (add_watch):
13615         Always add IO_ERR | IO_HUP
13616
13617         * dbus/dbus-message.h:
13618         Add semicolon after dbus_message_iter_get_string_array().
13619         Makes qt code build again
13620
13621 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13622
13623         * bus/driver.c: (create_unique_client_name),
13624         (bus_driver_handle_hello):
13625         Don't take a name, just use a numeric id to identify
13626         each client.
13627
13628         * dbus/Makefile.am:
13629         * dbus/dbus-bus.c: (dbus_bus_register_client),
13630         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13631         * dbus/dbus-bus.h:
13632         Add new convenience functions for communicating with the bus.
13633
13634         * dbus/dbus-message.h:
13635
13636         * dbus/dbus-protocol.h:
13637         Fix a typo.
13638
13639 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13640
13641         * dbus/dbus-message.c (dbus_message_append_fields):
13642         Add some more doc comments.
13643
13644 2003-02-01  Havoc Pennington  <hp@pobox.com>
13645
13646         * dbus/dbus-break-loader.c (randomly_modify_length): change
13647         a 4-byte value in the message as if it were a length
13648
13649         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13650         execute bit on saved files
13651
13652 2003-02-01  Havoc Pennington  <hp@pobox.com>
13653
13654         * dbus/dbus-break-loader.c (main): new program to find messages
13655         that break the loader.
13656
13657         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13658         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13659
13660         * dbus/dbus-string.c (_dbus_string_set_byte): new
13661
13662 2003-01-31  Havoc Pennington  <hp@pobox.com>
13663
13664         * dbus/dbus-message.c: refactor the test code to be more general,
13665         in preparation for writing a "randomly permute test cases to
13666         try to break the loader" program.
13667
13668 2003-01-31  Havoc Pennington  <hp@pobox.com>
13669
13670         * doc/dbus-specification.sgml: work on the specification
13671
13672         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13673         the protocol version of the message.
13674
13675         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13676         no longer specifies that.
13677         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13678         1/2/3/4)
13679
13680         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13681         "break" for DBUS_TYPE_NIL, remove @todo
13682
13683 2003-01-31  Havoc Pennington  <hp@pobox.com>
13684
13685         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13686         just set_is_error/get_is_error as this is a commonly-used
13687         function, and write docs.
13688
13689 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13690
13691         * dbus/dbus-address.c: (dbus_address_entry_free):
13692         Free key and value lists.
13693
13694         * dbus/dbus-internals.c: (_dbus_type_to_string):
13695         Add the types we didn't have.
13696
13697         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13698         (_dbus_marshal_validate_arg):
13699         Add NIL types.
13700
13701         * dbus/dbus-message.c: (dbus_message_set_sender):
13702         Remove todo about being able to set sender to NULL.
13703
13704         (dbus_message_set_is_error_reply),
13705         (dbus_message_get_is_error_reply):
13706         * dbus/dbus-message.h:
13707         New functions.
13708
13709         * dbus/dbus-protocol.h:
13710         Add error reply flag.
13711
13712         * test/data/valid-messages/opposite-endian.message:
13713         Add NIL type to test.
13714
13715 2003-01-31  Havoc Pennington  <hp@pobox.com>
13716
13717         * doc/dbus-specification.sgml: fully specify the header.  Add
13718         flags and major protocol version, and change header/body len to
13719         unsigned.
13720
13721         * dbus/dbus-message-builder.c (append_saved_length): append length
13722         as uint32
13723
13724         * dbus/dbus-message.c (dbus_message_create_header): change header
13725         length and body length to unsigned. Add the new fields from the
13726         spec
13727         (_dbus_message_loader_return_buffer): unsigned header/body len
13728
13729 2003-01-30  Havoc Pennington  <hp@pobox.com>
13730
13731         * dbus/dbus-auth.c: rework to use only REJECTED, no
13732         MECHANISMS
13733
13734         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13735         use REJECTED, suggested by Mark McLoughlin
13736
13737 2003-01-30  Havoc Pennington  <hp@pobox.com>
13738
13739         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13740         a better way to report errors here. e.g.  "unix address lacks
13741         path" or something. also "no such file" when the path doesn't
13742         exist, etc.
13743
13744         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13745         leaking list nodes
13746         (dbus_parse_address): add @todo about documenting address format,
13747         and allowing , and ; to be escaped
13748
13749 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13750
13751         * dbus/Makefile.am:
13752         Add dbus-address.[ch]
13753
13754         * dbus/dbus-address.c: (dbus_address_entry_free),
13755         (dbus_address_entries_free), (create_entry),
13756         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13757         (dbus_parse_address), (_dbus_address_test):
13758         * dbus/dbus-address.h:
13759         New files for dealing with address parsing.
13760
13761         * dbus/dbus-connection.c:
13762         Document timeout functions.
13763
13764         * dbus/dbus-message.c:
13765         Document dbus_message_new_from_message.
13766
13767         * dbus/dbus-server-debug.c:
13768         Document.
13769
13770         * dbus/dbus-server.c: (dbus_server_listen):
13771         Parse address and use correct server implementation.
13772
13773         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13774         * dbus/dbus-string.h:
13775         New function with test.
13776
13777         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13778         * dbus/dbus-test.h:
13779         Add address tests.
13780
13781         * dbus/dbus-transport-debug.c:
13782         Document.
13783
13784         * dbus/dbus-transport.c: (_dbus_transport_open):
13785         Parse address and use correct transport implementation.
13786
13787 2003-01-30  Havoc Pennington  <hp@pobox.com>
13788
13789         * dbus/dbus-message.c: use message->byte_order instead of
13790         DBUS_COMPILER_BYTE_ORDER throughout.
13791         (dbus_message_create_header): pad header to align the
13792         start of the body of the message to 8-byte boundary
13793
13794         * dbus/dbus-marshal.h: make all the demarshalers take const
13795         DBusString arguments.
13796
13797         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13798         validate message args here, so we don't have to do slow validation
13799         later, and so we catch bad messages as they are incoming. Also add
13800         better checks on header_len and body_len. Also fill in
13801         message->byte_order
13802
13803         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13804         implemented properly)
13805         (_dbus_string_validate_nul): new function to check all-nul
13806
13807         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13808         get_arg_end_pos and remove all validation
13809         (_dbus_marshal_validate_arg): actually do validation here.
13810
13811 2003-01-29  Havoc Pennington  <hp@pobox.com>
13812
13813         * dbus/dbus-message.c (check_message_handling): fix assertion
13814         failure on set_client_serial
13815
13816 2003-01-28  Havoc Pennington  <hp@pobox.com>
13817
13818         * dbus/dbus-server-debug.c: Add doc section comments
13819
13820         * dbus/dbus-transport-debug.c: add doc section comments
13821
13822 2003-01-28  Havoc Pennington  <hp@redhat.com>
13823
13824         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13825         the reverse order from how I had it
13826         (_dbus_string_base64_encode): reverse encoding order. I was
13827         basically byteswapping everything during encoding.
13828
13829 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13830
13831         * dbus/dbus-connection-internal.h:
13832         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13833         (_dbus_connection_remove_timeout):
13834         Add functions for adding and removing timeouts.
13835
13836         * dbus/dbus-message.c: (dbus_message_new_from_message):
13837         Add new function that takes a message and creates an exact
13838         copy of it, but with the refcount set to 1.
13839         (check_message_handling):
13840         Fix build error.
13841
13842         * dbus/dbus-server-protected.h:
13843         * dbus/dbus-server.c: (_dbus_server_init_base),
13844         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13845         (dbus_server_set_timeout_functions):
13846         (_dbus_server_remove_timeout):
13847         New functions so that a server can add and remove timeouts.
13848
13849         (dbus_server_listen):
13850         Add commented out call to dbus_server_debug_new.
13851
13852         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13853         Actually set the handler, doh.
13854
13855         * dbus/dbus-transport.c: (_dbus_transport_open):
13856         Add commented out call to dbus_transport_debug_client_new.
13857
13858         * dbus/Makefile.am:
13859         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13860
13861 2003-01-28  Havoc Pennington  <hp@pobox.com>
13862
13863         * dbus/dbus-message.c (check_message_handling): function to check
13864         on the loaded message, iterates over it etc.
13865
13866 2003-01-28  Havoc Pennington  <hp@pobox.com>
13867
13868         * test/Makefile.am (dist-hook): fix make distdir
13869
13870         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13871
13872 2003-01-27  Havoc Pennington  <hp@pobox.com>
13873
13874         * dbus/dbus-mempool.c (time_for_size): replace printf with
13875         _dbus_verbose
13876
13877         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13878         empty lines; fix the SAVE_LENGTH stuff to be
13879         START_LENGTH/END_LENGTH so it actually works; couple other
13880         bugfixes
13881
13882         * test/Makefile.am (dist-hook): add dist-hook for .message files
13883
13884         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13885         can be constant or locked.
13886         (_dbus_string_free): allow freeing a const string as
13887         documented/intended
13888
13889         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13890
13891         * dbus/dbus-test-main.c (main): take an argument which is the
13892         directory containing test data
13893
13894         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13895         argument to this and load all the messages in test/data/
13896         checking that they can be loaded or not loaded as appropriate.
13897
13898 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13899
13900         * bus/dispatch.c: (bus_dispatch_message_handler):
13901         Dispatch messages sent to services.
13902
13903         * bus/driver.c: (bus_driver_send_service_deleted),
13904         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13905         (bus_driver_send_service_acquired):
13906         Add helper functions for sending service related messages.
13907
13908         (bus_driver_send_welcome_message):
13909         Send HELLO_REPLY instead of WELCOME.
13910
13911         (bus_driver_handle_list_services):
13912         Send LIST_SERVICES_REPLY instead of SERVICES.
13913
13914         (bus_driver_handle_own_service),
13915         (bus_driver_handle_service_exists):
13916         New message handlers.
13917
13918         (bus_driver_handle_message):
13919         Invoke new message handlers.
13920
13921         (bus_driver_remove_connection):
13922         Don't remove any services here since that's done automatically
13923         by bus_service_remove_owner now.
13924
13925         * bus/driver.h:
13926         New function signatures.
13927
13928         * bus/services.c: (bus_service_add_owner):
13929         Send ServiceAcquired message if we're the only primary owner.
13930
13931         (bus_service_remove_owner):
13932         Send ServiceAcquired/ServiceLost messages.
13933
13934         (bus_service_set_prohibit_replacement),
13935         (bus_service_get_prohibit_replacement):
13936         Functions for setting prohibit replacement.
13937
13938         (bus_service_has_owner):
13939         New function that checks if a connection is in the owner queue of
13940         a certain service.
13941
13942         * bus/services.h:
13943         Add new function signatures.
13944
13945         * dbus/dbus-list.c: (_dbus_list_test):
13946         Add tests for _dbus_list_remove_last and traversing the list backwards.
13947
13948         * dbus/dbus-list.h:
13949         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13950         go any further, so return NULL then.
13951
13952         * dbus/dbus-protocol.h:
13953         Add new messages, service flags and service replies.
13954
13955 2003-01-26  Havoc Pennington  <hp@pobox.com>
13956
13957         * dbus/dbus-message-builder.c: implement, completely untested.
13958
13959         * test/data/*: add data to be used in testing.
13960         ".message" files are our simple loadable text format.
13961         ".message-raw" will be binary dumps of messages.
13962
13963         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
13964
13965 2003-01-26  Havoc Pennington  <hp@pobox.com>
13966
13967         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
13968
13969         * dbus/dbus-errors.c (dbus_result_to_string): add
13970         file errors
13971
13972         * dbus/dbus-message-builder.c: new file, will contain code to load
13973         up messages from files. Not implemented yet.
13974
13975 2003-01-26  Havoc Pennington  <hp@pobox.com>
13976
13977         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
13978         the sender by setting to NULL
13979
13980 2003-01-26  Havoc Pennington  <hp@pobox.com>
13981
13982         The unit tests pass, but otherwise untested.  If it breaks, the
13983         tests should have been better. ;-)
13984
13985         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
13986         the connection.
13987
13988         * dbus/dbus-message.c: redo everything so we maintain
13989         message->header as the only copy of the various fields.
13990         This avoids the possibility of out-of-memory in some cases,
13991         for example dbus_message_lock() can't run out of memory anymore,
13992         and avoids extra copying. Figured I may as well go ahead and do
13993         this since it was busted for dbus_message_lock to not return
13994         failure on OOM, and dbus_message_write_header was totally
13995         unchecked for OOM. Also fixed some random other bugs.
13996
13997         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
13998         that strings are nul-terminated. Also, end_pos can be equal
13999         to string length just not greater than, I think.
14000         (_dbus_marshal_set_int32): new function
14001         (_dbus_marshal_set_uint32): new function
14002         (_dbus_marshal_set_string): new function
14003
14004         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14005         a warning, init timeout_list to NULL
14006         (dbus_connection_send_message): don't use uninitialized variable
14007         "serial"
14008
14009         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14010
14011 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14012
14013         * bus/driver.c: (bus_driver_handle_hello),
14014         (bus_driver_send_welcome_message):
14015         Plug leaks
14016
14017 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14018
14019         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14020         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14021         (dbus_connection_unref):
14022         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14023         * dbus/dbus-message.c: (dbus_message_unref),
14024         Plug memory leaks.
14025
14026         (dbus_message_get_fields):
14027         Remove debugging printout.
14028
14029         (_dbus_message_loader_return_buffer):
14030         Don't store the header string.
14031
14032         (_dbus_message_test):
14033         Plug leaks.
14034
14035 2003-01-26  Richard Hult  <rhult@codefactory.se>
14036
14037         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14038         the file descriptor list, since it can change under us.
14039
14040 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14041
14042         * glib/dbus-gmain.c: (dbus_connection_prepare),
14043         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14044         (remove_watch), (dbus_connection_hookup_with_g_main):
14045         Rewrite the glib handling to use its own GSource instead of a
14046         GIOChannel so we can catch messages put in the queue while waiting
14047         for a reply.
14048
14049 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14050
14051         * bus/Makefile.am:
14052         * bus/connection.c: (connection_disconnect_handler),
14053         (connection_watch_callback), (bus_connection_setup):
14054         * bus/dispatch.c: (send_one_message),
14055         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14056         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14057         * bus/dispatch.h:
14058         * bus/driver.c: (bus_driver_send_service_deleted),
14059         (bus_driver_send_service_created), (bus_driver_handle_hello),
14060         (bus_driver_send_welcome_message),
14061         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14062         (bus_driver_handle_message):
14063         * bus/driver.h:
14064         Refactor code, put the message dispatching in its own file. Use
14065         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14066         is disconnected.
14067
14068 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14069
14070         * dbus/dbus-internals.h:
14071         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14072
14073         * dbus/dbus-message.c: (dbus_message_get_sender):
14074         * dbus/dbus-message.h:
14075         Implement dbus_message_get_sender.
14076
14077         * dbus/dbus-protocol.h:
14078         Add message and service defines.
14079
14080 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14081
14082         * dbus/dbus-connection.c: (dbus_connection_send_message):
14083         * dbus/dbus-message-internal.h:
14084         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14085         (dbus_message_write_header):
14086         Remove _dbus_messag_unlock and don't set the client serial on a
14087         message if one already exists.
14088
14089 2003-01-24  Havoc Pennington  <hp@pobox.com>
14090
14091         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14092         list_pool
14093
14094         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14095         on OOM
14096
14097 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14098
14099         * dbus/dbus-list.c: (alloc_link), (free_link):
14100         Use a memory pool for the links.
14101
14102 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14103
14104         * bus/connection.c: (bus_connection_foreach):
14105         * bus/connection.h:
14106         Add new bus_connection_foreach function.
14107
14108         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14109         Add function that broadcasts a message to all clients.
14110
14111         (bus_driver_send_service_created), (bus_driver_handle_hello),
14112         (bus_driver_send_welcome_message),
14113         (bus_driver_handle_list_services), (bus_driver_message_handler):
14114         Implement functions that take care of listing services, and notifying
14115         clients when new services are created.
14116
14117         * bus/services.c: (bus_services_list):
14118         * bus/services.h:
14119         Add new function that returns an array of strings with the currently
14120         registered services.
14121
14122         * glib/dbus-glib.h:
14123         * glib/dbus-gmain.c:
14124         Update copyright year.
14125
14126 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14127
14128         * dbus/dbus-connection.c: (dbus_connection_send_message):
14129         Unlock the message in case it was sent earlier.
14130
14131         (dbus_connection_send_message_with_reply_and_block):
14132         Remove the reply message from the list.
14133
14134         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14135         Set array_len and new_pos correctly.
14136
14137         (_dbus_marshal_test):
14138         Remove debug output.
14139
14140         * dbus/dbus-message-internal.h:
14141         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14142         New function that returns the reply serial.
14143
14144         (_dbus_message_unlock):
14145         New function that unlocks a message and resets its header.
14146
14147         (dbus_message_append_string_array),
14148         (dbus_message_get_fields_valist),
14149         (dbus_message_iter_get_field_type),
14150         (dbus_message_iter_get_string_array),
14151         (dbus_message_get_fields),
14152         (dbus_message_append_fields_valist):
14153         Handle string arrays.
14154
14155         (dbus_message_set_sender):
14156         Make this function public since the bus daemon needs it.
14157
14158         (decode_header_data):
14159         Set the reply serial to -1 initially.
14160
14161         * dbus/dbus-message.h:
14162         Add dbus_message_set_sender.
14163
14164 2003-01-24  Havoc Pennington  <hp@pobox.com>
14165
14166         * doc/dbus-specification.sgml: add some stuff
14167
14168 2003-01-22  Havoc Pennington  <hp@pobox.com>
14169
14170         * doc/dbus-specification.sgml: Start to document the protocol.
14171
14172 2003-01-22  Havoc Pennington  <hp@pobox.com>
14173
14174         * dbus/dbus-connection.c
14175         (dbus_connection_send_message_with_reply_and_block): add some @todo
14176
14177         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14178
14179 2003-01-21  Havoc Pennington  <hp@pobox.com>
14180
14181         (patch untested because can't compile)
14182
14183         * bus/driver.c (create_unique_client_name): make this function
14184         never recycle client names. Also, caller should initialize
14185         the DBusString.
14186
14187         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14188
14189 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14190
14191         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14192         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14193         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14194         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14195         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14196         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14197         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14198         * dbus/dbus-marshal.h:
14199         * dbus/dbus-protocol.h:
14200         Add support for marshalling and demarshalling integer, double
14201         and string arrays.
14202
14203 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14204
14205         * bus/Makefile.am:
14206         Add driver.[ch]
14207
14208         * bus/connection.c: (connection_disconnect_handler):
14209         Remove the connection from the bus driver's list.
14210
14211         (connection_watch_callback): Dispatch messages.
14212
14213         (free_connection_data): Free connection name.
14214
14215         (bus_connection_setup): Add connection to the bus driver's list.
14216         (bus_connection_remove_owned_service):
14217         (bus_connection_set_name), (bus_connection_get_name):
14218         Add functions for setting and getting the connection's name.
14219
14220         * bus/connection.h:
14221         Add function headers.
14222
14223         * bus/driver.c: (create_unique_client_name),
14224         (bus_driver_handle_hello_message),
14225         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14226         (bus_driver_add_connection), (bus_driver_remove_connection):
14227         * bus/driver.h:
14228         * bus/main.c:
14229         * bus/services.c: (bus_service_free):
14230         * bus/services.h:
14231         New file that handles communication and registreation with the bus
14232         itself.
14233
14234 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14235
14236         * dbus/dbus-connection.c: (dbus_connection_send_message):
14237         Add a new client_serial parameter.
14238
14239         (dbus_connection_send_message_with_reply):
14240         Remove a @todo since we've implemented the blocking function.
14241
14242         (dbus_connection_send_message_with_reply_and_block):
14243         New function that sends a message and waits for a reply and
14244         then returns the reply.
14245
14246         * dbus/dbus-connection.h:
14247         Add new functions.
14248
14249         * dbus/dbus-errors.c: (dbus_result_to_string):
14250         * dbus/dbus-errors.h:
14251         Add new DBUS_RESULT.
14252
14253         * dbus/dbus-message-internal.h:
14254         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14255         (_dbus_message_set_sender), (dbus_message_write_header),
14256         (dbus_message_new_reply), (decode_header_data),
14257         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14258         * dbus/dbus-message.h:
14259         Add new functions that set the reply serial and sender.
14260         Also marshal and demarshal them correctly and add test.
14261
14262         * dbus/dbus-protocol.h:
14263         Add new DBUS_MESSAGE_TYPE_SENDER.
14264
14265         * glib/dbus-glib.h:
14266         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14267         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14268         (dbus_connection_hookup_with_g_main):
14269         * glib/test-dbus-glib.c: (main):
14270         Rewrite to use GIOChannel and remove the GSource crack.
14271
14272         * test/echo-client.c: (main):
14273         * test/watch.c: (check_messages):
14274         Update for changed APIs
14275
14276 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14277
14278         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14279
14280         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14281         Create a DBusTimeoutList.
14282         (dbus_connection_set_timeout_functions): Add new function to
14283         set timeout callbacks
14284
14285         * dbus/dbus-connection.h: Add public DBusTimeout API.
14286
14287         * dbus/dbus-message.c: (dbus_message_get_service):
14288         * dbus/dbus-message.h:  New function.
14289
14290         * dbus/dbus-server.c: Fix small doc typo.
14291
14292         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14293
14294 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14295
14296         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14297         of the string, just as long as specified.
14298
14299 2003-01-19  Havoc Pennington  <hp@pobox.com>
14300
14301         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14302         new function
14303
14304         * dbus/dbus-server.c (dbus_server_set_max_connections)
14305         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14306         keep track of current number of connections, and add API for
14307         setting a max (but haven't implemented enforcing the max yet)
14308
14309 2003-01-18  Havoc Pennington  <hp@pobox.com>
14310
14311         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14312         reading/writing if read_watch != NULL or write_watch != NULL.
14313
14314         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14315         the message loader code to actually load message->header and
14316         message->body into the newly-created message.
14317
14318         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14319         in OOM case
14320
14321         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14322         (dbus_connection_get_max_message_size)
14323         (dbus_connection_set_max_live_messages_size)
14324         (dbus_connection_get_max_live_messages_size): implement some
14325         resource limitation functions
14326
14327         * dbus/dbus-resources.c: new file implementing some of the
14328         resource limits stuff
14329
14330         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14331         missing docs, add @todo to handle OOM etc.
14332
14333         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14334         docs
14335
14336 2003-01-18  Havoc Pennington  <hp@pobox.com>
14337
14338         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14339         connection if it hasn't been already.
14340
14341         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14342         replace with DisconnectFunction.
14343
14344 2003-01-18  Havoc Pennington  <hp@pobox.com>
14345
14346         Building --disable-verbose-mode --disable-asserts --disable-tests
14347         cuts the library from 112K to 45K or so
14348
14349         * configure.in: check for varargs macro support,
14350         add --enable-verbose-mode, --enable-asserts.
14351
14352         * dbus/dbus-internals.h (_dbus_assert): support
14353         DBUS_DISABLE_ASSERT
14354         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14355
14356 2003-01-18  Havoc Pennington  <hp@pobox.com>
14357
14358         * dbus/dbus-test.c: include config.h so that tests actually run
14359
14360         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14361         so the failure mode when that assumption fails will be plenty
14362         obvious.
14363
14364 2003-01-18  Havoc Pennington  <hp@pobox.com>
14365
14366         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14367
14368         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14369         the distribution
14370
14371         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14372         since we don't want to use those in make check
14373
14374 2003-01-15  Havoc Pennington  <hp@redhat.com>
14375
14376         Release 0.2
14377
14378         * NEWS: update
14379
14380 2003-01-15  Havoc Pennington  <hp@redhat.com>
14381
14382         * test/Makefile.am: fix so that test source code ends up in the
14383         distribution on make distcheck
14384
14385 2003-01-15  Havoc Pennington  <hp@redhat.com>
14386
14387         Release 0.1.
14388
14389         * NEWS: update
14390
14391 2003-01-15  Havoc Pennington  <hp@redhat.com>
14392
14393         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14394         fix build when --disable-tests
14395
14396         * Makefile.am (EXTRA_DIST): put HACKING in here
14397
14398         * HACKING: document procedure for making a tarball release.
14399
14400 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14401
14402         * bus/connection.c: (connection_error_handler),
14403         (bus_connection_setup):
14404         * bus/main.c: (main):
14405         Make sure that the DBusConnectionData struct is NULLed
14406         out to prevent a segfault.
14407
14408         * dbus/dbus-errors.c: (dbus_result_to_string):
14409         * dbus/dbus-errors.h:
14410         * dbus/dbus-message.c: (dbus_message_get_fields),
14411         (dbus_message_get_fields_valist), (_dbus_message_test):
14412         * dbus/dbus-message.h:
14413         Make dbus_message_get_fields return a result code so we can
14414         track invalid fields as well as oom.
14415
14416 2003-01-11  Havoc Pennington  <hp@pobox.com>
14417
14418         * configure.in: change --enable-test/--enable-ansi action-if-given
14419         to enable_foo=$enableval instead of enable_foo=yes
14420
14421 2003-01-08  Havoc Pennington  <hp@pobox.com>
14422
14423         * dbus/dbus-string.c (_dbus_string_align_length): new function
14424
14425         * dbus/dbus-test-main.c: move main() for test app here
14426         * dbus/dbus-test.c
14427         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14428         symbol to run tests, because dbus-test isn't in the main
14429         library
14430
14431         Code review nitpicks.
14432
14433         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14434         for people with narrow emacs ;-). Assert client_serial was filled
14435         in. Assert message->name != NULL.
14436         (dbus_message_append_fields): have "first_field_type" arg separate
14437         from va list, needed for C++ binding that also uses varargs IIRC
14438         and helps with type safety
14439         (dbus_message_new): add @todo about using DBusString to store
14440         service/name internally
14441         (dbus_message_new): don't leak ->service and ->name on OOM later
14442         in the function
14443         (dbus_message_unref): free the service name
14444         (dbus_message_get_fields): same change to varargs
14445         i.e. first_field_type
14446         (_dbus_message_loader_return_buffer): assert that the message data
14447         is aligned (if not it's a bug in our code). Put in verbose griping
14448         about why we set corrupted = TRUE.
14449         (decode_header_data): add FIXME that char* is evil.  Was going to
14450         add FIXME about evil locale-specific string.h strncmp, but just
14451         switched to wacky string-as-uint32 optimization. Move check for
14452         "no room for field name" above get_const_data_len() to avoid
14453         assertion failure in get_const_data_len if we have trailing 2
14454         bytes or the like. Check for service and name fields being
14455         provided twice. Don't leak service/name on error. Require field
14456         names to be aligned to 4 bytes.
14457
14458         * dbus/dbus-marshal.c: move byte swap stuff to header
14459         (_dbus_pack_int32): uscore-prefix
14460         (_dbus_unpack_int32): uscore-prefix
14461         (_dbus_unpack_uint32): export
14462         (_dbus_demarshal_string): add @todo complaining about use of
14463         memcpy()
14464         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14465         handling allowing corrupt data to go unchecked
14466
14467 2003-01-08  Havoc Pennington  <hp@redhat.com>
14468
14469         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14470         to the select() as needed for authentication. (should be using
14471         _dbus_poll() not select, but for another day)
14472
14473         * dbus/dbus.h: include dbus/dbus-protocol.h
14474
14475 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14476
14477         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14478         dbus-connection.h
14479
14480 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14481
14482         * dbus/dbus-internals.c: (_dbus_type_to_string):
14483         New function that returns a string describing a type.
14484
14485         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14486         * dbus/dbus-marshal.h:
14487         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14488         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14489         (dbus_message_iter_get_byte_array):
14490         * dbus/dbus-message.h:
14491         Add new convenience functions for appending and getting message fields.
14492         Also add demarshalling routines for byte arrays.
14493
14494 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14495
14496         * dbus/dbus-connection-internal.h:
14497         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14498         (_dbus_connection_get_next_client_serial),
14499         (dbus_connection_send_message):
14500         * dbus/dbus-internals.h:
14501         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14502         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14503         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14504         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14505         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14506         (_dbus_verbose_bytes), (_dbus_marshal_test):
14507         * dbus/dbus-marshal.h:
14508         * dbus/dbus-message-internal.h:
14509         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14510         (dbus_message_write_header), (_dbus_message_lock),
14511         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14512         (dbus_message_get_name), (dbus_message_append_int32),
14513         (dbus_message_append_uint32), (dbus_message_append_double),
14514         (dbus_message_append_string), (dbus_message_append_byte_array),
14515         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14516         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14517         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14518         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14519         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14520         (decode_header_data), (_dbus_message_loader_return_buffer),
14521         (message_iter_test), (_dbus_message_test):
14522         * dbus/dbus-message.h:
14523         * dbus/dbus-protocol.h:
14524         * dbus/dbus-test.c: (main):
14525         * dbus/dbus-test.h:
14526         * glib/test-dbus-glib.c: (message_handler), (main):
14527         * test/echo-client.c: (main):
14528         * test/watch.c: (check_messages):
14529         Make messages sendable and receivable for real.
14530
14531 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14532
14533         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14534         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14535         * dbus/dbus-message.c: (dbus_message_append_int32),
14536         (dbus_message_append_uint32), (dbus_message_append_double),
14537         (dbus_message_append_string), (dbus_message_append_byte_array):
14538         Handle OOM restoration.
14539
14540 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14541
14542         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14543         (_dbus_demarshal_string), (_dbus_marshal_test):
14544         * dbus/dbus-marshal.h:
14545         * dbus/dbus-message.c: (dbus_message_get_name),
14546         Document these functions.
14547
14548         (dbus_message_append_int32), (dbus_message_append_uint32),
14549         (dbus_message_append_double), (dbus_message_append_string),
14550         (dbus_message_append_byte_array):
14551         * dbus/dbus-message.h:
14552         Add functions for adding message fields of different types.
14553
14554         * dbus/dbus-protocol.h:
14555         Add the different types.
14556
14557 2003-01-05  Havoc Pennington  <hp@pobox.com>
14558
14559         * bus/connection.c: implement routines for handling connections,
14560         first thing is keeping a list of owned services on each connection
14561         and setting up watches etc.
14562
14563         * bus/services.c: implement a mapping from service names to lists
14564         of connections
14565
14566         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14567
14568         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14569         to use static mutexes for global data
14570
14571         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14572         collection of functions to set/get application-specific data
14573         on the DBusConnection.
14574
14575 2003-01-04  Havoc Pennington  <hp@pobox.com>
14576
14577         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14578         (_dbus_poll): new function
14579
14580         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14581         copied from GLib
14582
14583         * bus/loop.c: initial code for the daemon main loop
14584
14585 2003-01-04  Havoc Pennington  <hp@pobox.com>
14586
14587         * test/watch.c (error_handler): make it safe if the error handler
14588         is called multiple times (if we s/error handler/disconnect
14589         handler/ we should just guarantee it's called only once)
14590
14591         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14592         error handler on disconnect (it's quite possible we should
14593         just change the error handler to a "disconnect handler," I'm
14594         not sure we have any other meaningful errors)
14595
14596         * configure.in: check for getpwnam_r
14597
14598         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14599         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14600         mechanism as in SASL spec, using socket credentials
14601
14602         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14603         (_dbus_send_credentials_unix_socket): new function
14604
14605         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14606         dbus_accept()
14607         (_dbus_write): only check errno if <0 returned
14608         (_dbus_write_two): ditto
14609
14610 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14611
14612         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14613         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14614         (_dbus_marshal_test):
14615         * dbus/dbus-marshal.h:
14616         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14617         to _dbus_marshal_utf8_string. Also fix some tests.
14618
14619 2002-12-28  Harri Porten  <porten@kde.org>
14620
14621         * configure.in: added check for C++ compiler and a very cheesy
14622         check for the Qt integration
14623
14624         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14625
14626         * qt/Makefile.am: added
14627
14628         * qt/.cvsignore: added
14629
14630         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14631         latter, added #ifdef QT_THREAD_SUPPORT guard.
14632
14633         * dbus/Makefile.am: added missing headers for make dist
14634
14635 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14636
14637         * dbus/Makefile.am: fixup export-symbols-regex.
14638
14639 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14640
14641         * acinclude.m4: Add this file and put the
14642         PKG_CHECK_MODULE macro in it.
14643
14644 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14645
14646         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14647         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14648         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14649         (_dbus_marshal_test):
14650         Make the demarshalling routines align the pos argument.
14651         Add string marshalling tests and fix the obvious bugs
14652         discovered.
14653
14654 2002-12-26  Havoc Pennington  <hp@pobox.com>
14655
14656         * dbus/dbus-auth.c: fixes fixes fixes
14657
14658         * dbus/dbus-transport-unix.c: wire up support for
14659         encoding/decoding data on the wire
14660
14661         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14662         (_dbus_auth_decode_data): append to target string
14663         instead of nuking it.
14664
14665 2002-12-26  Havoc Pennington  <hp@pobox.com>
14666
14667         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14668         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14669         doh
14670
14671         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14672         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14673         now). Main point is because I wanted unpack_uint32 to implement
14674         _dbus_verbose_bytes
14675         (_dbus_verbose_bytes): new function
14676
14677         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14678
14679         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14680         mechanism to handle a corrupt message stream
14681         (_dbus_message_loader_new): fix preallocation to only prealloc,
14682         not prelengthen
14683
14684         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14685         (_dbus_string_test): enhance tests for copy/move and fix the
14686         functions
14687
14688         * dbus/dbus-transport-unix.c: Hold references in more places to
14689         avoid reentrancy problems
14690
14691         * dbus/dbus-transport.c: ditto
14692
14693         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14694         leak reference count in no-message case
14695
14696         * test/watch.c (do_mainloop): handle adding/removing watches
14697         during iteration over the watches. Also, ref the connection/server
14698         stored on a watch, so we don't try to mangle a destroyed one.
14699
14700         * dbus/dbus-transport-unix.c (do_authentication): perform
14701         authentication
14702
14703         * dbus/dbus-auth.c (get_state): add a state
14704         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14705         (_dbus_auth_get_unused_bytes): append the unused bytes
14706         to the passed in string, rather than prepend
14707
14708         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14709         the auth conversation DBusAuth
14710
14711         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14712         (_dbus_transport_new_for_domain_socket): when creating a
14713         transport, pass in whether it's a client-side or server-side
14714         transport so we know which DBusAuth to create
14715
14716 2002-12-03  Havoc Pennington  <hp@pobox.com>
14717
14718         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14719         _after_ finalizing the derived members
14720         (unix_connection_set): unref watch if we fail to add it
14721
14722         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14723         transport first, so that the connection owned by the
14724         transport will be valid as the transport finalizes.
14725
14726         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14727         if necessary, and remove watches from the connection.
14728
14729         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14730
14731 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14732
14733         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14734         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14735         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14736         (_dbus_marshal_test):
14737         * dbus/dbus-marshal.h:
14738         Add string marshal functions and have the demarshal functions
14739         return the new position.
14740
14741 2002-12-25  Havoc Pennington  <hp@pobox.com>
14742
14743         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14744         it is a simple protocol that just maps directly to SASL.
14745
14746         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14747         initial implementation, not actually used yet.
14748
14749         * dbus/dbus-string.c (_dbus_string_find): new function
14750         (_dbus_string_equal): new function
14751         (_dbus_string_base64_encode): new function
14752         (_dbus_string_base64_decode): new function
14753
14754 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14755
14756         * dbus/Makefile.am:
14757         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14758         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14759         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14760         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14761         * dbus/dbus-marshal.h:
14762         * dbus/dbus-protocol.h:
14763         * dbus/dbus-test.c: (main):
14764         * dbus/dbus-test.h:
14765         Add un-optimized marshalling/demarshalling routines.
14766
14767 2002-12-25  Harri Porten  <porten@kde.org>
14768
14769         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14770
14771 2002-12-24  Zack Rusin  <zack@kde.org>
14772
14773         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14774         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14775         main loop stuff
14776
14777 2002-12-24  Havoc Pennington  <hp@pobox.com>
14778
14779         * glib/dbus-gthread.c: fix include
14780
14781         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14782         I think glib API needs to change, though, as you don't
14783         want to use DBusMessageFunction, you want to use the
14784         DBusMessageHandler object. Probably
14785         dbus_connection_open_with_g_main_loop()
14786         and dbus_connection_setup_g_main_loop() or something like that
14787         (but think of better names...) that just create a connection
14788         that has watch/timeout functions etc. already set up.
14789
14790         * dbus/dbus-connection.c
14791         (dbus_connection_send_message_with_reply): new function just to
14792         show how the message handler helps us deal with replies.
14793
14794         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14795
14796         * dbus/dbus-string.c (_dbus_string_test): free a string that
14797         wasn't
14798
14799         * dbus/dbus-hash.c: use memory pools for the hash entries
14800         (rebuild_table): be more paranoid about overflow, and
14801         shrink table when we can
14802         (_dbus_hash_test): reduce number of sprintfs and write
14803         valid C89. Add tests for case where we grow and then
14804         shrink the hash table.
14805
14806         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14807
14808         * dbus/dbus-connection.c (dbus_connection_register_handler)
14809         (dbus_connection_unregister_handler): new functions
14810
14811         * dbus/dbus-message.c (dbus_message_get_name): new
14812
14813         * dbus/dbus-list.c: fix docs typo
14814
14815         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14816         an object representing a handler for messages.
14817
14818 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14819
14820         * glib/dbus-glib.h:
14821         * glib/dbus-gthread.c: (dbus_gthread_init):
14822         Don't use the gdbus prefix for public functions.
14823
14824 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14825
14826         * Makefile.am:
14827         * configure.in:
14828         Add GLib checks and fixup .pc files
14829
14830         * glib/Makefile.am:
14831         * glib/dbus-glib.h:
14832         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14833         (gdbus_connection_check), (gdbus_connection_dispatch),
14834         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14835         (dbus_connection_gsource_new):
14836         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14837         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14838         * glib/test-dbus-glib.c: (message_handler), (main):
14839         Add GLib support.
14840
14841 2002-12-15  Harri Porten  <porten@kde.org>
14842
14843         * autogen.sh: check for libtoolize before attempting to use it
14844
14845         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14846         struct.
14847
14848         * .cvsignore: ignore more stamp files
14849
14850         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14851
14852         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14853         without make install.
14854
14855 2002-12-15  Havoc Pennington  <hp@pobox.com>
14856
14857         * dbus/dbus-threads.c: add thread stubs that a higher library
14858         layer can fill in. e.g. the GLib wrapper might fill them in with
14859         GThread stuff. We still need to use this thread API to
14860         thread-safe-ize the library.
14861
14862 2002-12-12  Havoc Pennington  <hp@pobox.com>
14863
14864         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14865         below new interfaces and include fewer system headers.
14866
14867         * dbus/dbus-sysdeps.c (_dbus_read): new function
14868         (_dbus_write): new function
14869         (_dbus_write_two): new function
14870         (_dbus_connect_unix_socket): new function
14871         (_dbus_listen_unix_socket): new function
14872
14873         * dbus/dbus-message-internal.h: change interfaces to use
14874         DBusString
14875
14876 2002-12-11  Havoc Pennington  <hp@pobox.com>
14877
14878         * dbus/dbus-types.h: add dbus_unichar
14879
14880         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14881
14882         * dbus/dbus-connection.c (dbus_connection_send_message): return
14883         TRUE on success
14884
14885         * dbus/dbus-transport.c: include dbus-watch.h
14886
14887         * dbus/dbus-connection.c: include dbus-message-internal.h
14888
14889         * HACKING: add file with coding guidelines stuff.
14890
14891         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14892         handling here, for security purposes (as in vsftpd). Not actually
14893         using this class yet.
14894
14895         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14896         system/libc usage here, as in vsftpd, for ease of auditing (and
14897         should also simplify portability). Haven't actually moved all the
14898         system/libc usage into here yet.
14899
14900 2002-11-25  Havoc Pennington  <hp@pobox.com>
14901
14902         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14903         always print the first verbose message.
14904
14905 2002-11-24  Havoc Pennington  <hp@pobox.com>
14906
14907         * test/echo-client.c, test/echo-server.c: cheesy test
14908         clients.
14909
14910         * configure.in (AC_CHECK_FUNCS): check for writev
14911
14912         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14913         function
14914
14915         * dbus/dbus-list.c (_dbus_list_foreach): new function
14916
14917         * dbus/dbus-internals.c (_dbus_verbose): new function
14918
14919         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14920         representing a server that listens for connections.
14921
14922         * dbus/.cvsignore: create
14923
14924         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14925         public API for reporting errors
14926
14927         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14928         public object representing a connection that
14929         sends/receives messages. (Same object used for
14930         both client and server.)
14931
14932         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14933         Basic abstraction for different kinds of stream
14934         that we might read/write messages from.
14935
14936 2002-11-23  Havoc Pennington  <hp@pobox.com>
14937
14938         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14939         _DBUS_INT_MAX
14940
14941         * dbus/dbus-test.c (main): add list test, and include
14942         dbus-test.h as intended
14943
14944         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14945         (_dbus_hash_table_remove_int): return value indicates
14946         whether the entry existed to remove
14947
14948         * dbus/dbus-list.c: add linked list utility class,
14949         with docs and tests
14950
14951         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
14952         array sometimes.
14953
14954 2002-11-23  Havoc Pennington  <hp@pobox.com>
14955
14956         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
14957         DBUS_END_DECLS to nothing, that should fix this once and for all
14958
14959         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
14960
14961         * dbus/dbus-message.c, dbus/dbus-hash.c:
14962         add some missing @brief
14963
14964 2002-11-23  Havoc Pennington  <hp@pobox.com>
14965
14966         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
14967         to avoid confusing Doxygen
14968
14969         * dbus/dbus-hash.c: @} not }@
14970
14971         * dbus/dbus-message.c (struct DBusMessage): split out
14972         internals docs
14973
14974 2002-11-23  Havoc Pennington  <hp@pobox.com>
14975
14976         * configure.in: pile on more warning flags if using gcc
14977
14978         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
14979         to document static functions
14980
14981         * configure.in: add summary to end of configure so it
14982         looks nice and attractive
14983
14984         * dbus/dbus-hash.c: finish implementation and write unit
14985         tests and docs
14986
14987         * configure.in: add --enable-tests to enable unit tests
14988
14989         * dbus/dbus-test.c: test program to run unit tests
14990         for all files in dbus/*, initially runs a test for
14991         dbus-hash.c
14992
14993         * dbus/dbus-internals.h: file to hold some internal utility stuff
14994
14995 2002-11-22  Havoc Pennington  <hp@redhat.com>
14996
14997         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
14998         "ported" away from Tcl
14999
15000         * dbus/dbus-types.h: header for types such as dbus_bool_t
15001
15002 2002-11-22  Havoc Pennington  <hp@redhat.com>
15003
15004         * dbus/dbus.h: fixups for doc warnings
15005
15006         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15007         macros
15008         (QUIET): make it quiet so we can see warnings
15009
15010         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15011
15012 2002-11-22  Havoc Pennington  <hp@redhat.com>
15013
15014         * Makefile.am: include "Doxyfile" target in all-local
15015
15016         * configure.in: generate the Doxyfile
15017
15018         * Doxyfile.in: move Doxyfile here, so we can use
15019         configure to generate a Doxyfile with the right
15020         version number etc.
15021
15022 2002-11-22  Havoc Pennington  <hp@redhat.com>
15023
15024         * dbus/dbus-message.c: move inline docs into .c file
15025
15026         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15027         so all docs are under doc/
15028         (MAN_EXTENSION): generate man pages. Use extension
15029         ".3dbus" which matches ".3qt" on my system,
15030         I guess this is OK, I don't know really.
15031         (FILE_PATTERNS): look for .c files not .h, makes sense
15032         for plain C I think
15033
15034 2002-11-22  Havoc Pennington  <hp@pobox.com>
15035
15036         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15037         because any app can be a server, and any app can be a client,
15038         the bus is a special kind of server.
15039
15040 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15041
15042         * Doxyfile : adding. Still needs Makefile rules to be generated
15043         automatically (just run "doxygen" in the toplevel dir for now to
15044         generate docs)
15045
15046         * dbus/dbus-message.h : Adding sample docs (javadoc since
15047         resembles gtk-doc a little more)
15048
15049         * dbus/dbus.h : Adding sample docs
15050
15051 2002-11-21  Havoc Pennington  <hp@redhat.com>
15052
15053         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15054         so we can allow ourselves to include files directly,
15055         instead of having to use dbus.h
15056
15057         * dbus/dbus.h: fill in
15058
15059         * dbus/dbus-message.h: sketch out a sample header file.
15060         Include griping if you include it directly instead of
15061         via dbus.h
15062
15063         * dbus/dbus-macros.h: new file with macros for extern "C",
15064         TRUE/FALSE, NULL, etc.
15065
15066         * doc/file-boilerplate.c: put include guards in here
15067
15068 2002-11-21  Havoc Pennington  <hp@redhat.com>
15069
15070         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15071
15072         * COPYING: include the GPL as well, and license code
15073         under both AFL and GPL.
15074
15075 2002-11-21  Havoc Pennington  <hp@redhat.com>
15076
15077         * acconfig.h: get rid of this
15078
15079         * autogen.sh (run_configure): add --no-configure option
15080
15081         * configure.in: remove AC_ARG_PROGRAM to make
15082         autoconf complain less. add AC_PREREQ.
15083         add AC_DEFINE third arg.
15084
15085 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15086
15087         * doc/Makefile.am:
15088         Fix references so we can distcheck.
15089
15090 2002-11-21  Havoc Pennington  <hp@redhat.com>
15091
15092         * Initial module creation
15093