2006-11-08 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
2
3         * Released 1.0.0
4
5 2006-11-08  Havoc Pennington  <hp@redhat.com>
6
7         * doc/dbus-specification.xml: add a note about protocol stability
8
9         * doc/TODO: Remove "important for 1.0" section, replace with
10         "important for 1.2" section
11         
12 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
13
14         * README: remove some of the out of date flags
15
16         * doc/TODO: Remove todo items which are done
17
18 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
19
20         * tools/dbus-monitor.c: Handle sigint so we flush stdout
21         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
22
23 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
24
25         * tools/dbus-monitor.1: update the manpage for dbus-monitor
26         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
27
28 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
29
30         * AUTHORS: Update with all people listed in the ChangeLog
31
32 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
33
34         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
35         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
36
37 2006-11-07  Havoc Pennington  <hp@redhat.com>
38
39         * HACKING: Update release instructions to include stuff about
40         stable releases, branching, etc. May not be totally correct,
41         please fix if needed, but keep instructions up-to-date so we do
42         each stable release consistently in the future.
43
44 2006-11-07  Havoc Pennington  <hp@redhat.com>
45
46         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
47         documentation updates. Bump faq/spec versions (not to 1.0; I don't
48         think the spec will be "finished"/1.0 when we ship the 1.0 library).
49
50 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
51
52         * bus/bus.c: Missed patch - pass in the context to the directory watch
53
54 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
55
56         * Released D-Bus 1.0 RC 3(0.95)
57
58 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
59
60         * bus/activation.c (bus_activation_new): don't fail if we can not read
61         the directory as it may not exist
62
63 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
64
65         * bus/config-parser.c (service_dirs_find_dir): use 
66         _dbus_list_get_next_link so we don't get stuck in an infinite loop
67         (start_busconfig_child): move processing of standard_session_servicedirs
68         tags here because they have no content
69         (bus_config_parser_content): check we don't have content in 
70         standard_session_servicedirs tag
71
72 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
73
74         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
75         Packagers need to own this directory
76
77 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
78
79         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
80         <standard_session_servicedirs> tag with a <sevicedir> tag that
81         points to the test service directory
82
83 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
84
85         * configure.in: Add a check for DIR *dirp->dd_fd
86
87         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
88         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
89         of both Solaris and Irix
90
91 2006-11-01  Havoc Pennington  <hp@redhat.com>
92
93         * bus/dbus-daemon.1.in: document standard_session_servicedirs
94
95 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
96
97         * configure.in: expose DBUS_DATADIR
98         
99         * bus/config-parser.c: add the standard_session_servicedirs element
100         to the parser
101         (bus_config_parser_content): process the standard_session_servicedirs
102         element by getting the standard directories from sysdeps and merging
103         them into the service directory list
104         (test_default_session_servicedirs): make sure we get what we expect
105
106         * bus/session.conf.in: replace the servicedir tag with the 
107         standard_session_servicedirs tag
108
109         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
110         dbus-sysdeps.h to avoid circular header dependencies
111
112         * dbus/dbus-sysdeps.h: add the typedef of DBusList
113
114         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
115         which takes a string of directories delimited by colons, parses them 
116         out, appends a suffix and puts them in a list ignoring empty elements
117         (_dbus_get_standard_session_servicedirs): returns the standard 
118         directories for a session bus to look for service activation files
119         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
120         DBUS_DATADIR directories
121
122         * test/data/valid-config-files/many-rules.conf: add the 
123         standard_session_servicedirs tag to the valid config file tests
124
125 2006-10-30  Havoc Pennington  <hp@redhat.com>
126
127         * tools/dbus-launch.1, doc/TODO: capture intent to change the
128         command line options of dbus-launch a bit post 1.0
129
130 2006-10-27  Havoc Pennington  <hp@redhat.com>
131         
132         * dbus/dbus-connection.c (dbus_connection_open_private): document
133         how to choose shared vs. private connections
134
135 2006-10-27  Havoc Pennington  <hp@redhat.com>
136
137         * dbus/dbus-test.c: enclose more of the file in the
138         DBUS_BUILD_TESTS check.
139
140         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
141         DBUS_DISABLE_ASSERT case.
142
143         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
144         that it only works on the server side
145
146         * dbus/dbus-bus.c: add a global lock covering the BusData we
147         attach to each connection
148         (internal_bus_get): lock our access to the BusData
149         (dbus_bus_register): lock the entire registration process
150         with _DBUS_LOCK(bus_datas). If we get the lock and 
151         registration is already complete, silently return (vs. previous
152         behavior of aborting).
153         (dbus_bus_set_unique_name): lock the BusData
154         (dbus_bus_get_unique_name): lock the BusData
155
156 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
157
158         * bus/config-parser.c (service_dirs_find_dir, 
159         service_dirs_append_unique_or_free, 
160         service_dirs_append_link_unique_or_free): New static methods
161         for only appending unique service directory names into
162         the service directory list
163         (merge_included, bus_config_parser_content): Only add unique
164         service directory names into the list
165
166 2006-10-27  Havoc Pennington  <hp@redhat.com>
167
168         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
169         variables volatile, suggested by Thiago. Document struct fields.
170         (PTHREAD_CHECK): remove pthread error checking if assertions are
171         disabled, should reduce the no-assertions case to the bare
172         minimum code.
173
174 2006-10-26  Havoc Pennington  <hp@redhat.com>
175         
176         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
177         to be recursive
178         (_dbus_pthread_mutex_unlock): make it recursive
179         (_dbus_pthread_condvar_wait): save/restore the recursion count
180         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
181
182 2006-10-26  Havoc Pennington  <hp@redhat.com>
183
184         * doc/dbus-specification.xml: clarify the UUID text slightly
185
186         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
187         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
188         in preparation for being able to extend them for e.g. recursive
189         mutexes.
190
191 2006-10-26  Havoc Pennington  <hp@redhat.com>
192
193         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
194         condition variables relate to recursive mutexes.
195         
196         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
197         dbus/dbus-threads.c: Split the platforms-specific thread 
198         implementations into their own files.
199         
200         * dbus/dbus-sysdeps-pthread.c
201         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
202         was backward. Not that anything uses it.
203
204 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
205
206         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
207         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
208         needs to be cleaned up more.
209
210         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
211         up the CREDS issue.
212
213 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
214
215         * configure.in, dbus-1.pc.in: Check to see if thread methods 
216         are in glibc or libpthread and add -lpthread to the link stage 
217         if it is the latter
218
219 2006-10-26  Thiago Macieira  <thiago@kde.org>
220
221         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
222         bug 8780: the connection lock is only required while recording
223         the shared connection, so protect only that code
224         section. Don't require connection_lookup_shared to return a
225         locked connection.
226
227 2006-10-26  Thiago Macieira  <thiago@kde.org>
228
229         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
230         check if get_machine_uuid() returns NULL before proceeding any
231         further: we can't init the X atoms or create a session file
232         name if there is no machine ID.
233         This solves a crash reported by some users if
234         --exit-with-session was used without --autolaunch=<machine-id>
235
236 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
237
238         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
239         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
240
241         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
242         before we run dbus-launch
243
244         * configure.in: define TEST_BUS_BINARY to be the full path to 
245         dbus-daemon in the build root 
246
247 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
248
249         * dbus/Makefile.am:
250         * tools/Makefile.am:
251         * toos/dbus-uuidgen.1:
252                 Move the machine-id file to /var/lib/dbus 
253
254 2006-10-24  David Zeuthen  <davidz@redhat.com>
255
256         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
257         _dbus_assert (thread_init_generation != _dbus_current_generation)
258         not _dbus_assert (thread_init_generation == _dbus_current_generation)
259
260 2006-10-24  Thiago Macieira  <thiago@kde.org>
261
262         * dbus/dbus-sysdeps.h:
263         * dbus/dbus-sysdeps-unix.c: Add function
264         _dbus_make_file_world_readable that chmods a file to 0644.
265
266         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
267         Avoid writing to the static "argv" array, thereby avoiding a
268         COW on the child process.
269
270         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
271         call _dbus_make_file_world_readable on the created file.
272
273 2006-10-23  David Zeuthen  <davidz@redhat.com>
274
275         * dbus/dbus-memory.c: Use atomic variable to protect
276         n_blocks_outstanding otherwise OOM will be reported using SMP on
277         some arches
278         
279         * bus/dispatch.c: Add missing end of line characters
280
281         * bus/desktop-file.c (parse_section_start, parse_key_value) 
282         (bus_desktop_file_load): Propertly handle OOM
283
284         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
285         thread_init_generation equals _dbus_current_generation, not 0
286
287 2006-10-22  Havoc Pennington  <hp@redhat.com>
288
289         * dbus/dbus-connection-internal.h: move prototype of
290         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
291         it isn't in a public header and doesn't end up in the DBusBus
292         group in Doxygen
293
294 2006-10-21  Havoc Pennington  <hp@redhat.com>
295
296         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
297         the tarball if packagers want to run it
298
299         * cleanup-man-pages.sh: Add a script which munges all the internal
300         API man pages out of the Doxygen output. This reduces the size of
301         the installed man pages from 7 to 2 megs, and avoids
302         namespace-polluting pages. Right now (like Doxygen) this script
303         isn't in the build, it's something packagers can do manually.
304
305 2006-10-21  Havoc Pennington  <hp@redhat.com>
306
307         * dbus/dbus-connection.h: don't include the watch/timeout
308         functions in connection section
309
310 2006-10-21  Havoc Pennington  <hp@redhat.com>
311
312         * Documentation! Whee! Doxygen now 100% silent. If you make it
313         angry again, you will be punished.
314         
315 2006-10-21  Havoc Pennington  <hp@redhat.com>
316
317         * More documentation - all public API now documented according to
318         Doxygen
319
320 2006-10-21  Havoc Pennington  <hp@redhat.com>
321
322         * Document a bunch of undocumented stuff
323         
324 2006-10-21  Havoc Pennington  <hp@redhat.com>
325
326         * Clean up Doxygen group markers for public API so Doxygen finds
327         everything (not comprehensively fixed for private API).
328         Means all remaining Doxygen warnings are just about missing docs
329         and thus pretty simple to resolve.
330         
331 2006-10-21  Havoc Pennington  <hp@redhat.com>
332         
333         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
334
335         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
336         as DBUS_GNUC_DEPRECATED
337
338 2006-10-21  Havoc Pennington  <hp@redhat.com>
339
340         * Move all private API into the private Doxygen group sections of
341         the files, so they don't show up in the public API docs
342         
343 2006-10-21  Havoc Pennington  <hp@redhat.com>
344
345         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
346         dbus_message_iter_get_array_len().
347
348         * throughout: documentation improvements.
349
350 2006-10-20  Havoc Pennington  <hp@redhat.com>
351
352         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
353         matter, and the message-loader-breaker thing since nobody is going
354         to do it.  Add an item to 1.0 about supporting recursive locks
355         in dbus_threads_init_default() though, since it should be easy.
356
357         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
358         Fix this in the !dispatch case to avoid busy-looping after
359         disconnection
360
361         * More misc docs improvements
362
363 2006-10-19  Havoc Pennington  <hp@redhat.com>
364
365         * more Doxygen-related fixes (lots of moving things from the
366         public to internal section in dbus-connection.c)
367
368 2006-10-19  Havoc Pennington  <hp@redhat.com>
369
370         * Fix a pile of Doxygen warnings and missing docs
371
372 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
373
374         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
375         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
376         instead of a void *.  kqueue uses this to get the context's loop
377         while the other modules ignore the parameter.  This allows us to
378         avoid platform conditionals
379
380         * bus/bus.c (process_config_postinit): Pass in the context to the 
381         watch
382
383 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
384
385         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
386         when starting the system bus
387
388 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
389
390         * configure.in: More fixups for cross compile (Patch from 
391         Marco Pracucci <development at pracucci dot com>)
392
393 2006-10-17  Havoc Pennington  <hp@redhat.com>
394
395         * tools/dbus-send.c (main): don't close shared connection, fix
396         from Timo Hoenig
397
398 2006-10-17  Havoc Pennington  <hp@redhat.com>
399
400         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
401
402         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
403         since realistically it doesn't look like we'll be changing it
404         anymore.
405
406 2006-10-17  Havoc Pennington  <hp@redhat.com>
407
408         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
409         be used for return_if_fail type warnings; prefixes the pid, and
410         fatal by default.
411
412 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
413
414         * configure.in: Released 1.0 RC 2(0.94)
415         Add check for -fPIC and enable it if available
416
417 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
418
419         * doc/TODO: Remove the check TODO item
420
421 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
422
423         * dbus-transport-socket.c (exchange_credentials):
424         Print out more detailed errors if reading or sending
425         credentials fail (Patch from Julio M. Merino Vidal 
426         <jmmv at NetBSD dot org>)
427
428 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
429
430         * configure.in: when checking for posix getpwnam_r assume true
431         for cross compiles
432
433 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
434
435         * configure.in: Check for gethostbyname first before we check for it
436         in libnsl.  On gnu systems it is implemeneted 
437
438 2006-10-13  Havoc Pennington  <hp@redhat.com>
439
440         * dbus/dbus-connection.c
441         (dbus_connection_send_with_reply_and_block): fix to handle closed
442         connections, from Tambet Ingo bug #8631
443
444 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
445
446         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
447
448 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
449
450         * test/name-test/Makefile.am: don't link against both libdbus and
451         libdbus-convenience
452
453 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
454
455         * configure.in: check for dirfd even if it is a macro
456         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
457
458 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
459
460         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
461         avoid using dirfd on systems that don't have dirfd 
462         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
463
464 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
465
466         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
467         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
468
469         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
470         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
471         macro because _dbus_abort calls it
472
473         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
474         works
475
476 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
477
478         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
479         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
480
481 2006-10-02  Thiago Macieira  <thiago@kde.org>
482
483         * tools/dbus-launch.c (main): make it complain and abort
484         execution in case an unknown option is given. Also, process
485         the '--' argument as the end of arguments.
486
487 2006-10-01  Havoc Pennington  <hp@redhat.com>
488
489         * tools/dbus-launch.c (print_variables): if no syntax is given,
490         don't print something that's sort-of-half-sh-syntax, just print
491         a plain key-value pairs thing.
492
493         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
494         the local machine representation (but still have the hostname in
495         the display). Remove the hostname from the display if it is
496         localhost. Change session files to be named
497         ~/.dbus/session-bus/machine-display. Change X atoms to be
498         underscore-prefixed so nobody whines about ICCCM compliance.
499         Otherwise name them the same as the env variables.
500         Change session file format to include key-value pairs and an
501         explanatory comment. Keys are the same as the env variables.
502         (set_address_in_x11): X property format can't depend on
503         sizeof(pid_t) on a particular machine, fix to always be 32 bits
504
505         * tools/dbus-launch.c: make --autolaunch take a machine id
506         argument. If --autolaunch is used with a program to run, complain
507         for now (but add a FIXME). Also, don't look for existing bus if 
508         there's a program to run (but add a FIXME).
509
510         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
511         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
512         just to get this, and avoids duplicating uuid-reading code).
513
514         * tools/dbus-launch.1: clarify various things
515         
516 2006-10-01  Havoc Pennington  <hp@redhat.com>
517
518         * test/test-service.c (path_message_func): remove broken extra
519         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
520
521         * test/test-shell-service.c (path_message_func): same fix
522         
523         * dbus/dbus-connection.c
524         (_dbus_connection_get_dispatch_status_unlocked): break up the
525         function a little for clarity and fix the notification of
526         dbus-bus.c to not require dispatch to be complete
527
528         * dbus/dbus-connection.c (dbus_connection_unref): improve the
529         warning when you try to finalize an open connection.
530         
531 2006-10-01  Havoc Pennington  <hp@redhat.com>
532
533         * dbus/dbus-bus.c
534         (internal_bus_get): only weak ref the connection; this means 
535         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
536         called safely in any context
537         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
538         unref
539
540         * dbus/dbus-connection.c
541         (_dbus_connection_get_dispatch_status_unlocked): move
542         _dbus_bus_notify_shared_connection_disconnected_unlocked here
543         when queuing Disconnected instead of when the Disconnected message
544         arrives, so dbus_bus_get() won't return closed connections.
545         
546 2006-10-01  Havoc Pennington  <hp@redhat.com>
547
548         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
549         Add a hack to make DBusNewConnectionFunction work right.
550
551         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
552         the hack here. Also, fix the todo about refcount leak.
553         
554         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
555         and use the hack here
556         
557         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
558         "shareable" flag; this was completely broken, since it meant 
559         dbus_connection_open() returned a connection of unknown
560         shared-ness. Now, we always hold a ref on anything opened 
561         as shareable.
562
563         Move the call to notify dbus-bus.c into
564         connection_forget_shared_unlocked, so libdbus consistently forgets
565         all its knowledge of a connection at once. This exposed numerous
566         places where things were totally broken if we dropped a ref inside
567         get_dispatch_status_unlocked where
568         connection_forget_shared_unlocked was previously, so move
569         connection_forget_shared_unlocked into
570         _dbus_connection_update_dispatch_status_and_unlock. Also move the
571         exit_on_disconnect here.
572
573         (shared_connections_shutdown): this assumed weak refs to the
574         shared connections; since we have strong refs now, the assertion 
575         was failing and stuff was left in the hash. Fix it to close
576         still-open shared connections.
577         
578         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
579         debug pipe connections
580         
581         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
582         dbus-bus.c if the closed connection is in fact shared
583         (_dbus_connection_close_possibly_shared): rename from 
584         _dbus_connection_close_internal
585         (dbus_connection_close, dbus_connection_open,
586         dbus_connection_open_private): Improve docs to explain the deal
587         with when you should close or unref or both
588
589         * dbus/dbus-bus.c
590         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
591         from _dbus_bus_check_connection_and_unref_unlocked and modify to
592         loop over all connections
593
594         * test/test-utils.c (test_connection_shutdown): don't try to close
595         shared connections.
596
597         * test/name-test/test-threads-init.c (main): fix warnings in here
598
599         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
600         env variable to cause blocking waiting for gdb; drop
601         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
602         unconditionally.
603
604         * configure.in: add -export-dynamic to libtool flags if assertions enabled
605         so _dbus_print_backtrace works.
606
607         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
608         instead of _dbus_verbose to print the backtrace, and diagnose lack 
609         of -rdynamic/-export-dynamic
610         
611 2006-09-30  Havoc Pennington  <hp@redhat.com>
612
613         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
614         (internal_bus_get): fix screwy code formatting. whoever committed
615         that was not paying attention!
616
617 2006-09-30  Havoc Pennington  <hp@redhat.com>
618
619         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
620         reflect addition of interfaces.
621
622         * doc/dbus-specification.xml: describe a new
623         org.freedesktop.DBus.Peer.GetMachineId method
624
625         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
626         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
627         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
628         at end of skip_white
629         (_dbus_string_chop_white): new function
630
631         * bus/connection.c (bus_connections_setup_connection): call
632         dbus_connection_set_route_peer_messages.
633
634         * dbus/dbus-connection.c
635         (_dbus_connection_peer_filter_unlocked_no_update): modify to
636         support a GetMachineId method.
637
638         Also, support a new flag to let the bus pass peer methods through
639         to apps on the bus, which can be set with
640         dbus_connection_set_route_peer_messages.
641
642         Finally, handle and return an error for anything unknown on the
643         Peer interface, which will allow us to extend the Peer interface
644         in the future without fear that we're now intercepting something
645         apps were wanting to see.
646         
647         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
648         dbus/dbus-uuidgen.c
649
650         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
651         binary here, since most of the code is already in libdbus
652
653         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
654         uuid from the system config file
655
656         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
657         (_dbus_read_uuid_file_without_creating) 
658         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
659         uuid-related functions, partly factored out from dbus-server.c
660
661         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
662         DBUS_ERROR_FILE_EXISTS instead of EEXIST
663
664         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
665
666         * tools/dbus-cleanup-sockets.1: explain what the point of this
667         thing is a bit more
668
669         * autogen.sh (run_configure): add --config-cache to default
670         configure args
671
672         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
673         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
674
675         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
676         don't try to save address, fixes crash in make check
677         
678 2006-09-30  Thiago Macieira  <thiago@kde.org>
679
680         * configure.in: add DBUS_BINDIR as a #define to C source code.
681
682         * tools/dbus-launch.c
683         * tools/dbus-launch.h
684         * tools/dbus-launch-x11.c:
685         * tools/dbus-launch.1: Add the --autolaunch option to
686         dbus-launch, which makes it scan for an existing session
687         started with --autolaunch. With that option, it also creates
688         an X11 window and saves the bus address and PID to it.
689
690         * dbus/dbus-sysdeps.h:
691         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
692         a function that runs "dbus-launch --autolaunch" to retrieve
693         the running D-Bus session address (or start one if none was running)
694
695         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
696         address protocol, which tries to get the running session from
697         dbus-launch.
698
699         * dbus/dbus-bus.c:
700         * dbus/dbus-internals.h: Make "autolaunch:" be the default
701         D-Bus session bus address.
702
703         * dbus/dbus-connection.c: Fix horrible typo in error message.
704
705 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
706
707         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
708
709 2006-09-17  Havoc Pennington  <hp@redhat.com>
710
711         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
712         fix so that if unix_user_function is set on windows, we still
713         do the default check that the auth identity matches the bus identity
714
715 2006-09-16  Havoc Pennington  <hp@redhat.com>
716
717         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
718         to _dbus_transport_open_platform_specific,
719         _dbus_transport_open_socket,
720         and _dbus_transport_open_debug_pipe
721
722         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
723
724 2006-09-16  Havoc Pennington  <hp@redhat.com>
725
726         Attempt auditing public API to remove all cases where a Unix
727         function returns weird emulated goo to Windows. This probably 
728         breaks the bus daemon on Windows, to fix it again we may 
729         need to stop processing unix-specific config options on Windows,
730         and may need to add Windows-specific public API or config options.
731         
732         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
733         to reflect added interfaces; should not break soname.
734         
735         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
736         not invoke unix user function on Windows. Kind of a hacky fix, but 
737         we don't want a "unix uid" leaking out on Windows.
738
739         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
740         to get the socket fd on Windows or UNIX
741         (dbus_connection_get_unix_fd): make this always fail on Windows
742
743 2006-09-16  Havoc Pennington  <hp@redhat.com>
744
745         * dbus/dbus-server.c (dbus_server_listen): change how this works
746         to be able to delegate to a set of handlers that can succeed,
747         fail, or choose not to handle. Allows us to have 
748         dbus_server_listen_platform_specific.
749
750         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
751         factor out the tcp socket stuff to be used on windows, leaving
752         unix domain socket only in dbus-socket-unix.c
753
754         * dbus/dbus-transport-socket.c
755         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
756         stuff to be used on windows, leaving unix domain socket only 
757         in dbus-transport-unix.c
758
759         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
760         temporary hack to be sure this fails on windows
761         (dbus_connection_get_unix_process_id): ditto
762
763 2006-09-16  Havoc Pennington  <hp@redhat.com>
764
765         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
766         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
767         _dbus_open_socket so the domain/type/protocol from system headers
768         are not required. This is kind of pointless though unless we move
769         part of _dbus_connect_tcp_socket into sysdeps.c instead of
770         sysdeps-unix.c, which would mean adding a wrapper around
771         bind/listen/etc.
772         Also, add DBusError to the socket-opening functions so they 
773         don't require use of errno.
774
775 2006-09-16  Havoc Pennington  <hp@redhat.com>
776
777         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
778         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
779
780         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
781         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
782         functions specifically for sockets only, and move generic 
783         read/write/open/close into unix-specific code.
784
785 2006-09-14  Havoc Pennington  <hp@redhat.com>
786
787         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
788         complaint about accessing revents when poll returns 0, from Julian Seward.
789
790 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
791
792         * Released 1.0 RC 1 (0.93) 
793
794 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
795
796         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
797         use _dbus_close instead of close
798
799 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
800
801         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
802         credentials.  Fixes "external" authentication under e.g. NetBSD
803         which does not support any other socket credentials mechanism.
804         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
805
806 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
807
808         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
809         dbus_threads_init and be used by the dbus mutex functions to
810         avoid deadlocks.
811
812         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
813
814 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
815
816         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
817         use threadsafe readdir_r instead of readdir
818
819 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
820
821         * dbus-threads.c (dbus_threads_init_default): New method for
822         initializing the internal thread implementation (Patch from
823         Alexander Larsson <alexl at redhat dot com>)
824
825 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
826
827         * remove a bunch of todo items from the 1.0 list
828
829 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
830
831         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
832         key not found
833
834 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
835
836         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
837         complex debugging code
838
839         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
840         between the test suite ifdefs
841         (_dbus_verbose_bytes): return if verbosity is not enabled 
842
843 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
844
845         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
846         remove DBusMark
847
848 2006-09-10  Havoc Pennington  <hp@redhat.com>
849
850        patch mostly by Peter Kümmel, bug #8211
851         
852         * dbus/dbus-sysdeps-unix.c: new file, which splits out
853         unix-specific stuff in dbus-sysdeps.c
854
855         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
856         and move unix-specific stuff to dbus-sysdeps-unix.c
857
858         * configure.in: check HAVE_ERRNO_H
859         
860 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
861
862         * bus/test-main.c (main): Initialize threading during tests
863
864         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
865         Unlock connection on error
866         (generate_local_error_message): static method for generating
867         an error message when we don't have a message to reply to
868         (_dbus_connection_block_pending_call): Send a disconnect error
869         instead of just a timeout (NULL) when the bus gets disconnected
870         while blocking for a reply.
871         
872 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
873
874         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
875         filters (Patch from Kimmo Hämäläinen 
876         <kimmo dot hamalainen at nokia dot com>)
877
878 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
879
880         * dbus/dbus-connection-internal.h: Add prototype for 
881         _dbus_connection_test_get_locks to remove warning
882
883 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
884
885         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
886         close child_err_report_pipe[WRITE_END] on exec (Patch from 
887         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
888
889 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
890
891         * Clean up close calls to use _dbus_close (Patch from 
892         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
893
894 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
895
896         * doc/TODO:
897         - Remove pending call locking todo item
898         - dbus_connection_open now holds hard ref.  Remove todo item
899         - do proper locking on _dbus_bus_check_connection_and_unref
900           and handle DBUS_BUS_STARTER. Remove todo item
901         - Warn on closing of a shared connection.  Remove todo item
902
903         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
904         dbus/dbus-connection.c: Use the dbus_connection_close_internal
905         so we don't get the warning when closing shared connections
906
907         * test/test-service.c, test/test-shell-service.c: Applications
908         don't close shared connections themselves so we unref instead of
909         close
910
911         * test/test-utils.c (test_connection_shutdown): Close the connection
912
913         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
914         _dbus_bus_check_connection_and_unref_unlocked since we only call this
915         method on a locked connection.  
916         Make sure we call _dbus_connection_unref_unlocked instead of 
917         dbus_connection_unref also.
918         Handle DBUS_BUS_STARTER correctly
919
920         * dbus/dbus-connection.c (connection_record_shared_unlocked):
921         Mark as shared and hard ref the connection
922         (connection_forget_shared_unlocked): Remove the hard ref from the 
923         connection
924         (_dbus_connection_close_internal_and_unlock):  New internal function
925         which takes a locked connection and unlocks it after closing it
926         (_dbus_connection_close_internal): New internal function which acts
927         like the origonal dbus_connection_close method by grabbing a connection
928         lock and calling _dbus_connection_close_internal_and_unlock
929         (dbus_connection_close): Public close method, warns when the app
930         trys to close a shared connection
931
932 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
933
934         * bus/driver.c:
935         (bus_driver_generate_introspect_string): New method for populating
936         a DBusString with the introspect data
937         (bus_driver_handle_introspect): Move introspect generation code to 
938         bus_driver_generate_introspect_string
939
940         * bus/main.c:
941         (introspect): New function which prints out the intropect data and
942         exits
943         (main): Add a --introspect switch
944
945 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
946
947         * doc/TODO: Removed dtd publishing item.  
948         It seems the dtd has already been added at
949         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
950
951 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
952
953         * doc/TODO, various source files: Audited todo's and FIXME's and
954         prepended the ones we should be looking at with 1.0.  Those
955         prepended with 1.0? need clerification or might not be needed
956         for 1.0
957
958 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
959
960         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
961         NULL in the public API (Patch from Kimmo Hämäläinen 
962         <kimmo dot hamalainen at nokia dot com>)
963
964 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
965
966         * configure.in: Fix for OS-X compile time endian issues (patch from
967         Benjamin Reed <ranger at befunk dot com>)
968
969 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
970
971         * configure.in: Check for no-common compiler flag (OS-X fix from
972         Benjamin Reed <ranger at befunk dot com>)
973
974 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
975
976         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
977         <fcrozat at mandriva dot com>)
978
979 2006-08-29  Havoc Pennington  <hp@redhat.com>
980
981         * test/test-service.c (path_message_func): fix lack of return value
982
983         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
984         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
985         any more sense than on anything else in this file.
986         (_dbus_get_tmpdir): add const to return value, and keep the
987         results of the various getenv around in a static variable.
988
989 2006-08-29  Havoc Pennington  <hp@redhat.com>
990
991         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
992         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
993
994 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
995
996         * test/Makefile.am: change find to use syntax that works with non
997         gnu versions of find
998
999 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1000
1001         * dbus/dbus-transport.c: fix invalid deref when checking if
1002         a vtable method exists (Patch from Christian Ehrlicher 
1003         <ch dot ehrlicher at gmx dot de>)
1004
1005 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1006
1007         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1008         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1009         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1010         <bernard at brenda-arkle dot demon dot co dot uk>)
1011
1012 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1013
1014         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1015         default case
1016
1017 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1018
1019         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1020         it works on any system providing this interface, not only FreeBSD.
1021         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1022
1023 2006-08-20  Havoc Pennington  <hp@redhat.com>
1024
1025         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1026         the docs
1027
1028 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1029
1030         * Released 0.92 
1031
1032 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1033
1034         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1035         to reflect the init late change
1036
1037         * bus/bus.c (bus_context_new): Check user before we fork so we can
1038         print out an error message a user will be able to see
1039
1040 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1041
1042         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1043
1044         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1045         Add two more global locks for use on windows platforms.  These are
1046         unused on non-windows platforms but are not ifdefed out to avoid
1047         potential bugs (i.e. the few bytes lost does not warrent the extra
1048         maintanence and complexity that having seperate sets of locks would
1049         cause)
1050
1051 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1052
1053         * bus/services.c (bus_registry_acquire_service): Return an error
1054         when an application tries to register the org.freedesktop.DBus Bus Name
1055
1056         * bus/services.c (bus_registry_release_service): Return an error
1057         when an application tries to release the org.freedesktop.DBus Bus Name
1058
1059 2006-08-17  Alp Toker  <alp@atoker.com>
1060
1061         * doc/dbus-specification.xml: Fix some minor typos.
1062
1063 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1064
1065         * configure.in: use $with_init_scripts instead of $operating_system
1066         to determine where to store the pid since the init scripts manipulate 
1067         the pid file (patch from Marcelo Ricardo Leitner 
1068         <marcelo dot leitner at terra dot com dot br>.  
1069
1070 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1071
1072         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1073         static DBusList *uninitialized_condvar_list to support new late 
1074         initialization threading model.  In this model threads can be initialized
1075         even after the D-Bus API has been used but still needs to be initialized 
1076         before the second thread has been started.  Mutexes and condvar addresses
1077         are stored in the two static lists and are replaced with actuall locks
1078         when threads are initalized.
1079         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1080         the location into the static list
1081         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1082         from the static list and freeing the mutex
1083         (_dbus_condvar_new_at_location): New method for creating a conditional 
1084         variable and placing the location into the static list
1085         (_dbus_condvar_free_at_location): New method for removing a conditional
1086         variable location from the static list and freeing the conditional variable 
1087         (init_uninitialized_locks): Atomic method which goes through the static 
1088         lists of mutex and condvar location and updates them with actuall locks
1089         (init_global_locks): changed to init_locks
1090         
1091         * dbus/dbus-connection.c:
1092         (_dbus_connection_test_get_locks): New method for tests to check connections
1093         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1094         condvar API
1095         (dbus_connection_allocate_data_slot): Pass in the global lock address
1096         to _dbus_data_slot_allocator_alloc
1097
1098         * dbus/dbus-dataslot.c:
1099         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1100         instead of the mutex itself
1101
1102         * dbus/dbus-message.c:
1103         (dbus_message_allocate_data_slot): Pass in the global lock address
1104         to _dbus_data_slot_allocator_alloc
1105
1106         * dbus/dbus-pending-call.c:
1107         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1108         to _dbus_data_slot_allocator_alloc
1109
1110         * dbus/dbus-server.c:
1111         (_dbus_server_init_base): Use the new at_location mutex API
1112         (dbus_server_allocate_data_slot): Pass in the global lock address
1113         to _dbus_data_slot_allocator_alloc
1114
1115         * test/name-test/test-threads-init.c: New test case for late thread
1116         initialization
1117
1118 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1119
1120         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1121         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1122         causes compile problems when asserts are turned off
1123         Keeping _dbus_warn for printing out the message so even if
1124         asserts are turned off the user gets the messages that something is 
1125         wrong 
1126
1127 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1128
1129         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1130
1131         * bus/services.c (bus_service_list_queued_owners):
1132         Add a pointer cast to fix compiler warning
1133
1134         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1135         return a NULL instead of FALSE since the return type
1136         is not expecting a boolean
1137
1138         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1139         Remove unused variable
1140
1141         * dbus/dbus-marshal-recursive-util.c (node_new):
1142         return a NULL instead of FALSE since the return type
1143         is not expecting a boolean
1144
1145         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1146         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1147         because we are expecting a pointer not a boolean
1148
1149         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1150         add void as the parameter so some compilers
1151         don't complain
1152
1153         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1154           _dbus_transport_new_for_tcp_socket):
1155         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1156         because we are expecting a pointer not a boolean
1157
1158         * test/shell-test.c (test_command_line):
1159         cast the second argument to _dbus_list_append to avoid compiler
1160         warnings
1161
1162         * test/test-names.c (main): remove unused variable
1163
1164         * test/test-service.c (check_hello_from_self_reply):
1165         Initialize echo_message and echo_reply to NULL
1166         
1167         * test/test-shell-service.c (handle_echo):
1168         Remove unused variable and cast the third parameter passed to
1169         dbus_connection_get_object_path_data to avoid compiler warrnings
1170
1171         * test/name-test/test-names.c (clear_message_queue):
1172         Remove unused function
1173
1174         * test/name-test/test-pending-call-dispatch.c:
1175         Fix format string in printf
1176
1177
1178 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1179
1180         * dbus/dbus-bus.c:
1181         * test/name-test/test-names.c:
1182         Remove test method dbus_bus_connection_get_unique_name because 
1183         we already have public method dbus_bus_get_unique_name that 
1184         does the exact same thing
1185
1186 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1187
1188         * dbus/dbus-signature.c:
1189         fix typos in Julio's previous patch which cause make check to fail
1190
1191 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1192
1193         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1194         In any case it was wrong since this is a test checking to see if
1195         address parsing is correct.  There was no need to get the true
1196         tmp directory.  
1197
1198 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1199
1200         * dbus/dbus-macros.h: Revert the addition of stddef.h
1201         as we should not be adding it to library headers 
1202
1203 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1204
1205         * dbus/dbus-signature.c:
1206         Fix the unit tests so that they work if assertions are not enabled.
1207         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1208
1209 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1210
1211         * tools/run-with-tmp-session-bus.sh:
1212         * test/name-test/run-test.sh:
1213         Remove bashisms (patch from Julio M. Merino Vidal
1214         <jmmv at NetBSD dot org>)
1215
1216 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1217
1218         * configure.in: add a version (>= 2.6.0) check for libxml2
1219
1220 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1221
1222         * configure.in: make sure the compiler supports -Wfloat-equal
1223         
1224         * bus/dir-watch-dnotify.c: move functional code after 
1225         variable declerations (C99 fix)  (patches from Jens Granseuer
1226         <jensgr at gmx dot net>
1227
1228 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1229
1230         * dbus/dbus-macros.h:
1231         add #include <stddef.h> so that Sun compilers don't complain about
1232         the defining NULL
1233
1234 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1235
1236         * dbus/dbus-sysdeps.c:
1237         * dbus/dbus-address.c:
1238         * bus/activation.c:
1239         * test/shell-test.c:
1240         don't hardcode tmp directory (patch from Dave Meikle 
1241         <dmk at davemeikle dot co dot uk>)
1242
1243 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1244
1245         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1246         Change an assert to a detailed warning and abort.  
1247         When allocator->lock != mutex it indicates that the user has failed
1248         to initalize threads before using the D-Bus library.  This warning
1249         helps the user identify the issue and fix their app.
1250
1251 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1252
1253         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1254         with cleanups of bugs found from Coverity reports:
1255
1256         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1257         close the file on error to avoid a leak
1258
1259         * bus/expirelist.c (bus_expire_list_test):
1260         Check for NULL on dbus_new0
1261
1262         * bus/activation.c (update_directory):
1263         remove dead code
1264
1265         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1266         Fix some leaks
1267
1268         * bus/bus.c (process_config_every_time):
1269         Fixed a leak
1270
1271         * bus/desktop-file.c (parse_key_value):
1272         Fixed leak
1273
1274         * bus/selinux.c (bus_selinux_id_table_insert):
1275         Fixed leak
1276
1277 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1278
1279         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1280         remove dead code
1281
1282 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1283
1284         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1285         #!/bin/bash
1286
1287 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1288
1289         * Doxyfile.in: fix the INPUT line so we can generate docs 
1290         when sourcedir != builddir (patch from Cygwin Ports maintainer
1291         <yselkowitz at users dot sourceforge dot net>
1292
1293 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1294
1295         * dbus/dbus-sysdeps.h:
1296         * dbus/dbus-sysdeps.c: 
1297         * dbus/dbus-string.c: 
1298         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1299         GLib's function which does the same thing
1300
1301         * configure.in:
1302         * bus/Makefile.am:
1303         * bus/dir-watch-default.c:
1304         * bus/dir-watch-dnotify.c:
1305         * bus/dir-watch-kqueue.c:
1306         Add kqueue directory watching for freebsd and split the directory
1307         watching code into seperate files per method/arch
1308         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1309
1310 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1311
1312         * configure.in:
1313         * tools/Makefile.am:
1314         * tools/dbus-launch.c:
1315         * bus/Makefile.am:
1316         allow --with-dbus-daemondir switch to be used to make the
1317         daemon install to a seperate bindir like /usr/libexec
1318         (patch from Brian Cameron <brian dot cameron at sun dot com)
1319
1320 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1321
1322         * bus/Makefile.am (install-data-hook): removed the slash after 
1323         $(DESTDIR) so we don't get the double slash which does not work
1324         in windows (patch from Andras Porjesz 
1325         <andras dot porjesz at siemens dot com>)
1326
1327 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1328
1329         * dbus/dbus-sysdeps.h:
1330         * dbus/dbus-sysdeps.c: 
1331           add _dbus_printf_length (patch from Peter Kümmel 
1332           <syntheticpp at gmx dot net>)
1333
1334 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1335
1336         * dbus/dbus-internals.c: unistd.h is not used 
1337         (_dbus_verbose_real): only enable verbose printing 
1338         if DBUS_VERBOSE environment var is set to '1'
1339         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1340
1341 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1342
1343         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1344         so we still compile on older gcc (patch from Frederic Peters 
1345         <fpeters at 0d dot be>
1346
1347 2006-08-04  Havoc Pennington  <hp@redhat.com>
1348
1349         * configure.in: add -Wdeclaration-after-statement
1350
1351         * dbus/dbus-connection.c: change all the pending call stuff to
1352         reflect the fact that pending call operations use the connection
1353         lock
1354
1355         * dbus/dbus-pending-call.c: add locking here
1356
1357         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1358         field const consistent with how message field is done
1359
1360 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1361
1362         * s/D-BUS/D-Bus/g
1363
1364 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1365
1366         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1367         <in7y118 at public.uni-hamburg dot de> - fix invalid
1368         read/write reported by valgrind
1369
1370 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1371
1372         * Released 0.91
1373
1374 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1375
1376         * dbus/dbus-connection.c:
1377         (_dbus_connection_attach_pending_call_unlocked):
1378         (connection_timeout_and_complete_all_pending_calls_unlocked):
1379         Make sure we set timeout_added on pending calls to FALSE when
1380         we remove the timeout from the connection
1381
1382 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1383
1384         * Removed some extra bindings stuff lingering around (thanks timo)
1385         * dbus-pendingcall.c (_dbus_pending_call_new): 
1386         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1387         when we tried to take a lock on an already locked connection
1388
1389 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1390
1391         * Released 0.90
1392
1393 2006-07-17  Havoc Pennington  <hp@redhat.com>
1394
1395         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1396         ints, reported by Owen Taylor
1397
1398 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1399
1400         * doc/TODO:
1401         * dbus/dbus-bus.c:
1402         * dbus-errors.c:
1403         * dbus/dbus-marshal-validate.c:
1404           Removed TODO items which were fixed or are no longer relevent
1405
1406 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1407
1408         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1409         Remove stray files from the stripped bindings
1410
1411 2006-07-16  Havoc Pennington  <hp@redhat.com>
1412
1413         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1414         Improve the error message on reply timeout
1415
1416 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1417
1418         * Remove all bindings
1419
1420 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1421
1422         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1423         and set pending_reply out arg to NULL is connection is disconnected
1424         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1425         static method for cleaning up pending calls on disconnect
1426         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1427         calls queued timeouts on disconnect 
1428
1429          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1430         Remove 
1431
1432 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1433
1434         * bus/activation.[ch] (bus_activation_list_services): new function to 
1435         get the list of services that can be activated
1436
1437         * bus/dispatch.c: test coverage for the new bus method
1438         ListActivatableNames
1439
1440         * bus/driver.c: new bus method ListActivatableNames to get the list of
1441         services that can be activated
1442
1443         * doc/dbus-specification.xml: ListActivatableNames method documentation
1444
1445 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1446         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1447         source files
1448
1449 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1450         * dbus/dbus-message-factory.c:
1451         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1452
1453 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1454         * dbus/dbus-connection-internal.h:
1455         * dbus/dbus-connection.c:
1456         * file dbus/dbus-pending-call.c:
1457         * dbus/dbus-pending-call.h:
1458         Make DBusPendingCall an opaque type even to D-Bus internals
1459
1460 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1461
1462         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1463         connection_close
1464
1465         * dbus/dbus-connection.c: include dbus-bus.h
1466         (_dbus_connection_read_write_dispatch): make static
1467
1468 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1469
1470         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1471         function
1472         (dbus_connection_dispatch): On disconnect unref any shared connections
1473
1474         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1475         for cleaning up shared connections on disconnect
1476         (internal_bus_get): get a hard refrence to shared connections when
1477         they are created
1478         
1479         * doc/TODO: Remove items which are no longer relevent or have been fixed
1480         Split 1.0 todo items with a 0.90 freeze todo list
1481  
1482 2006-06-14  Ross Burton  <ross@openedhand.com>
1483
1484         * glib/dbus-gobject.c:
1485         Free a leaking GArray (surely not!) in dbus_g_method_return.
1486
1487 2006-06-14  Ross Burton  <ross@openedhand.com>
1488
1489         * tools/Makefile.am:
1490         * tools/dbus-monitor.c:
1491         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1492         Habacker).
1493         
1494 2006-06-14  Ross Burton  <ross@openedhand.com>
1495
1496         * tools/dbus-print-message.c:
1497         Also print the object path when outputting signals or method calls.
1498
1499 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1500
1501         * qt/src/Makefile.am: install the qdbus.h header.
1502         This allows people to actually use the installed code.
1503
1504 2006-06-12  Ross Burton  <ross@openedhand.com>
1505
1506         * glib/dbus-gproxy.c:
1507         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1508
1509 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1510
1511         * Released 0.62
1512
1513 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1514
1515         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1516         break pedantic builds. Closes bug 6043 (patch approved by
1517         Havoc back in February).
1518
1519 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1520
1521         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1522         that took a QDBusMessage parameter.
1523         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1524         * qt/tools/dbus.cpp: Don't use automatic call because we might
1525         be calling an async method: request a reply.
1526
1527 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1528
1529         * test/qt/*: Update the testcases, including testing the new
1530         functionality of sending null QByteArray and QString over the
1531         bus. Add new headertest test and restore the old
1532         qdbusxmlparser test.
1533
1534 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1535
1536         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1537         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1538
1539         * qt/examples/Makefile.am:
1540         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1541         form.
1542
1543         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1544         QByteArray() (nulls) over the bus.
1545         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1546         the one that has the signature suffix stripped.
1547         * qt/src/qdbusreply.h: Make some methods const.
1548
1549 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1550
1551         Patch from Timo Hoenig <thoenig@suse.de>.
1552
1553         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1554         required during build to EXTRA_DIST.
1555         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1556         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1557         * configure.in: Fix "make dist", take care that the Makefile for
1558         qt/dbus is being generated.
1559
1560 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1561
1562         * bus/bus.c: Fix eavesdropping on method calls
1563
1564 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1565
1566         * configure.in:
1567         * dbus/dbus-userdb-util.c:
1568         Add Solaris console owner patch from Artem Kachitchkine
1569
1570 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1571
1572         * qt/Makfile.am:
1573         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1574         reorganisation. Thanks to Timo Hoenig for pointing this out.
1575
1576 2006-06-06  Robert McQueen  <robot101@debian.org>
1577
1578         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1579           call to dbus_g_type_get_struct.
1580
1581 2006-06-06  Robert McQueen  <robot101@debian.org>
1582
1583         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1584           pointers were put into a GPtrArray-based specialised collection, and
1585           then freed along with the array. GValues which you add into
1586           collections or maps which have the NOCOPY flag set are assumed to not
1587           belong to the caller, so rather than the existing pointer-stealing
1588           semantics, they are copied instead. Given that the main consumers of
1589           this abstraction are the bindings themselves, I don't think this is
1590           too bad, but others should watch their choice of take vs set_static.
1591
1592 2006-06-06  Robert McQueen  <robot101@debian.org>
1593
1594         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1595           of g_slist_prepend not being used. Fixed copying of slist-based
1596           specialised collections, then wrote a test case and found that it was
1597           all broken. Went on to fix iterating and appending too. Good thing
1598           nobody uses this code yet.
1599
1600 2006-06-06  Robert McQueen  <robot101@debian.org>
1601
1602         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1603           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1604           are discarded without unsetting, so it makes no difference whether
1605           we take or set_static). Remove cases for G_TYPE_POINTER because
1606           there really is nothing useful we can do with them in our
1607           specialised types - we *need* boxed copy/free functions at the very
1608           least.
1609
1610 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1611
1612         * qt/dbus: Add directory. I had forgotten to add this
1613         yesterday after the move...
1614
1615         * qt/examples/Makefile.am:
1616         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1617
1618         * qt/tools/Makefile.am:
1619         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1620         Added feature to get and set properties.
1621         Added validation of service, object path and interface names.
1622
1623         * qt/tools/dbusidl2cpp.cpp: Two new features:
1624         1) Allow specifying both the header and the source file names,
1625         by separating them with a colon.
1626         2) Don't write an interface output if the -p switch wasn't
1627         given, but the -a was.
1628
1629         * qt/src/*: Fix usage of Iterators and ConstIterators.
1630         Fix shadowing of variables by other variables (-Wshadow).
1631         Fix keyword-cleanliness in headers.
1632         Fix ASCII-cast (QLatin1String, QLatin1Char).
1633         Fix validation of member names.
1634         Add extra checking of introspection data during XML parsing.
1635         Various bug fixes.
1636
1637 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1638
1639         * dbus/Makefile.am:
1640         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1641         qt/dbus/qdbus.h now.
1642
1643 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1644
1645         * configure.in: Make --disable-qt actually do
1646           something. Patch inspired by Zack Rusin.
1647
1648 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1649
1650         * qt/: Update to Subversion r548032.
1651         This includes a big reorganisation of the files inside the
1652         subdir.
1653
1654 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1655
1656         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1657         clear:  
1658         "Failed to connect to socket <host>:<port> <error>" instead of
1659         "Failed to connect to socket <host>: <error>:<port>"
1660
1661         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1662         for a tcp transport. 
1663
1664 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1665
1666         * qt/*: Update the QtDBus bindings up to revision 546310 in
1667         Subversion.
1668         This adds the dbuscpp2xml tool, that parses a C++ header and
1669         outputs a D-BUS Introspection XML.
1670
1671 2006-05-21  Havoc Pennington  <hp@redhat.com>
1672
1673         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1674         is not NULL when it shouldn't be. Also a couple of possible fixes
1675         for #4637 though I don't understand why the bug happens, to be
1676         honest... also the object constructor has an assert name != NULL
1677         and the name is only currently NULL for peer-to-peer proxies that 
1678         I don't think anyone uses? So it should be asserting.
1679         Anyway, for now at least see if we get an earlier assertion failure.
1680
1681         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1682         apparently broken code to be sure the tests fail and someone 
1683         will fix them...
1684
1685 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1686
1687         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1688         and arrays when they had a single element: has_next returns
1689         false, even before you read the element. So, instead, check
1690         the array length.
1691
1692 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1693
1694         * qt/qdbusmessage.cpp:
1695         * qt/qdbustypehelper_p.h:
1696         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1697         the list is a const-reference
1698
1699 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1700
1701         * Adding old doc patch that never got applied
1702         
1703         * dbus/bus.c (dbus_bus_add_match): Add documentation
1704
1705         * doc/dbus-specification.xml: Add documentation for the match rules
1706           and the AddMatch and RemoveMatch methods
1707
1708 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1709
1710         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1711         call (r535506)
1712
1713         * qt/dbusidl2cpp.cpp:
1714         * qt/qdbusabstractadaptor.cpp:
1715         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1716         sibling of the QDBusAbstractAdaptor objects instead of the
1717         parent. (r535848)
1718
1719         * qt/dbusidl2cpp.cpp:
1720         * qt/qdbusabstractinterface.cpp:
1721         * qt/qdbusabstractinterface.h:
1722         * qt/qdbusabstractinterface_p.h:
1723         * qt/qdbusinterface.cpp: Make properties in interfaces
1724         actually work. The code that was generated would not compile,
1725         due to moc calls to functions that did not exist. They now
1726         shall. (r536571)
1727
1728 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1729
1730         * Makefile.am:
1731         * configure.in:
1732         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1733         Thanks to Brad Hards for providing the patch
1734
1735 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1736
1737         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1738         call. (r535506)
1739
1740 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1741
1742         * qt/examples/dbus.cpp: Enhance error messages and use
1743         QDBusInterfacePtr.
1744
1745 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1746
1747         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1748         and disable the copy operators. (r533772, r534746)
1749
1750         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1751
1752         * qt/qdbusabstractinterface.cpp:
1753         * qt/qdbusabstractinterface.h: Change the default call mode to
1754         not use the event loop. Add convenience call() methods that
1755         take a CallMode parameter. (r534042)
1756
1757         * qt/qdbusconnection.h: Change the default call mode to not
1758         use the event loop. (r534042)
1759
1760         * qt/qdbusinterface.cpp:
1761         * qt/qdbusinterface.h: Add a method to tell us if the
1762         interface is valid (since we don't return a null pointer
1763         anymore) (r534099)
1764
1765         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1766         (r534101)
1767
1768         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1769         function in two so taht we get the chance to introspect
1770         without having a QDBusMessage (r534102)
1771
1772         * qt/qdbusbus.h:
1773         * qt/qdbusconnection.cpp:
1774         * qt/qdbusconnection_p.h:
1775         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1776         avoid a round-trip to the server when attempting to introspect
1777         one of our own objects. Also make sure the filter functions
1778         match the empty interface as well. (r534108)
1779         Don't keep the connection names. Instead, trust the unique
1780         connection name (r534111)
1781         Remove event loop usage (r534112)
1782
1783 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1784
1785         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1786         Brad Hards.
1787
1788 2006-04-28  Robert McQueen  <robot101@debian.org>
1789
1790         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1791         any order, making it easier for people who inherit from this
1792         object.
1793
1794 2006-04-28  Robert McQueen  <robot101@debian.org>
1795
1796         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1797         of memory from within pointer arrays and lists. Fixes bug #6300.
1798
1799 2006-04-28  Robert McQueen  <robot101@debian.org>
1800
1801         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1802         generating struct signatures. Fixes bug #6083.
1803
1804 2006-04-28  Robert McQueen  <robot101@debian.org>
1805
1806         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1807         to qdbusconnection_p.moc.
1808
1809 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1810
1811         * README, INSTALL: Doc fixes
1812         Patch from Brad Hards <bradh at frogmouth.net>
1813
1814 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1815
1816         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1817         the dynamic meta object. No need to guess which interface to
1818         call.
1819
1820 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1821
1822         * qt/qdbusconnection_p.h:
1823         * qt/qdbusmetaobject.cpp:
1824         * qt/qdbusmetaobject_p.h:
1825         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1826         for the dynamic meta object. No need to guess which
1827         interface to call.
1828         * qt/qdbusabstractinterface_p.h:
1829         * qt/qdbusconnection.cpp:
1830         * qt/qdbusintegrator.cpp:
1831         * qt/qdbusinterface.cpp:
1832         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1833         Add a QDBusRef that looks and behaves like DCOPRef.
1834
1835 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1836
1837         * dbus/dbus-connection.c: Interfaces are optional in method
1838         calls, so don't give up if the interface parameter is NULL.
1839         Patch reviewed by Havoc Pennington.
1840
1841 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1842
1843         * qt/qdbusreply.h: Add default constructor and operator=
1844           (r532625)
1845         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1846           in public headers (r532952)
1847         * qt/qdbusabstractinterface.cpp:
1848         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1849           make it the default (r532951)
1850
1851 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1852
1853         * dbus/dbus-connection.c: Fix asserts
1854         Patch from Tim Moloney <t.moloney at verizon.net>
1855
1856 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1857
1858         * mono/Connection.cs, mono/Message.cs: Check Target type
1859         Patch from Aaron Bockover (abockover at novell.com)
1860
1861 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1862
1863         * INSTALL: fine-tune the requirements for the Qt4 binding.
1864
1865 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1866
1867         * tools/dbus-print-message.c: Added support for printing of all 
1868           remaining data types. Fixed logic for indentation of compound
1869           data types.
1870         
1871 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1872
1873         * INSTALL: fill out content of file providing DBus specific
1874           build installations, followed by generic Auto* INSTALL file
1875           content
1876         
1877 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1878
1879         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1880           Patch by Stefan Eilers. (r529537)
1881
1882 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1883
1884         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1885           contents (r528208)
1886
1887 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1888
1889         * qt/Makefile.am: fix the dependency for
1890           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1891           not in qdbusconnection.cpp.
1892           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1893           spotting this.
1894
1895 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1896
1897         * qt/examples/listnames.cpp:
1898         * qt/examples/Makefile.am: Three ways to list the names on the
1899           bus.
1900
1901 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1902
1903         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1904           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1905
1906 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1907
1908         Merge from Subversion:
1909         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1910           something that exists (r526315)
1911         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1912           slots/signals (r526316)
1913         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1914           also return an unknown-method error if the parameters don't
1915           match for org.freedesktop.DBus.Properties. (r526842)
1916         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1917         * qt/qdbusintegrator.cpp: Restore the proper order of
1918           delivery: don't make method returns be delivered on priority
1919           (r528150)
1920
1921 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1922
1923         * configure.in qt/Makefile.am: add qt/examples
1924         * qt/examples: Add QtDBus example programs:
1925           - hello: Hello, World
1926           - ping: Simple method-calling program
1927           - pong: Simple object-exporting program (not using adaptors)
1928           - complexping: Interactive method-calling program 
1929                 (also gets and sets properties).
1930           - complexpong: Sample program exporting methods, signals and
1931                 properties, using adaptors.
1932           - dbus: Simple implementation of a generic method-calling
1933                 program, similar to 'dbus-send', but with semantics
1934                 similar to 'dcop'.
1935           - chat: Simplistic chat program, implemented using signals
1936                 and the system bus. Looks like IRC.
1937
1938 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1939
1940         * configure.in: Detect QtGui (necessary for one of the
1941           example programs). Note: this increases the minimum required
1942           version of Qt to 4.1.3.
1943
1944 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1945
1946         * test/qt/*: Sync with KDE Subversion revision 523647.
1947         Update the testcases to the new API. Remove testcases for
1948         classes that are no longer public or have been removed.
1949
1950 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1951
1952         * qt/*: 
1953         * dbus/qdbus.h: Sync with KDE Subversion revision
1954         523647. Hopefully, this will be the last of the
1955         source-incompatible changes. Documentation has been improved;
1956         support for QList<basic-types> has been added; QDBusObject is
1957         gone; QDBus(Abstract)Interface is now a QObject with
1958         auto-generated meta-object; QDBusIntrospection is marked
1959         private, since QMetaObject can be used now; lots of bugfixes.
1960
1961 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1962
1963         Patch from Milosz Derezynski <internalerror at gmail.com>
1964         
1965         * configure.in:
1966         Output the service directory in the configure summary
1967
1968         * dbus-1.pc.in:
1969         Add session_bus_services_dir
1970
1971 2006-03-10  Ross Burton  <ross@openedhand.com>
1972
1973         * tools/dbus-print-message.c:
1974         Add support for object paths and signatures.
1975
1976 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
1977
1978         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
1979         config reload.
1980         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
1981         information caches
1982         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
1983         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
1984         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
1985         * dbus/dbus-userdb.h: Add function to flush all user/group information
1986         caches.
1987
1988 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1989
1990         * qt/dbusidl2cpp.cpp:
1991         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
1992         for dcopidl2cpp, found in the KDE installations (or the more
1993         modern kalyptus): generate Qt4 C++ code for the input XML
1994         introspection. Currently no IDL parsing.
1995
1996 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1997
1998         * test/qt/*: Update the self-tests.
1999
2000 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2001
2002         * qt/*: 
2003         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2004         represents the first feature-complete version of the Qt4
2005         bindings since I took ove maintainership.
2006
2007 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2008
2009         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2010         dir. This is C++, so we can't use the DBus ones.
2011
2012 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2013
2014         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2015         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2016
2017 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2018
2019         * dbus/dbus-connection.c: 
2020         (_dbus_connection_block_pending_call):
2021         Check to see if our data has already been read off the connection
2022         by another blocking pending call before we block in poll.
2023         (check_for_reply_and_update_dispatch_unlocked):
2024         Code taken from _dbus_connection_block_pending_call - checks for
2025         an already read reply and updates the dispatch if there is one.
2026
2027         * test/name-test/test-pending-call-dispatch.c:
2028         New test for making sure we don't get stuck polling a 
2029         dbus connection which has no data on the socket when
2030         blocking out of order on two or more pending calls.
2031
2032 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2033
2034         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2035         make/automake don't detect that we're talking about the same
2036         .lo file if I specify the full path to the source files.
2037
2038 2006-02-26  Havoc Pennington  <hp@redhat.com>
2039
2040         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2041
2042         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2043         session bus variable is unset, suggest "man dbus-launch" and "man
2044         dbus-daemon" to figure out how to fix the problem
2045
2046 2006-02-25  Havoc Pennington  <hp@redhat.com>
2047
2048         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2049         should make this thing use the new glib options parser
2050
2051 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2052
2053         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2054         .lo files taking moc sources.
2055
2056 2006-02-25  Havoc Pennington  <hp@redhat.com>
2057
2058         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2059         and install it as a public header
2060
2061 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2062
2063         * Released 0.61
2064
2065 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2066         
2067         * proxies.py: Fix the callchain
2068
2069 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2070         
2071         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2072
2073         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2074         dbus/dbus-sysdeps.c
2075
2076         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2077         call _dbus_group_info_free_allocated which causes infinite loop,
2078         correctly call _dbus_group_info_free
2079
2080 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2081
2082         * qt/qdbusinterface_p.h:
2083         * qt/qdbusinterface.cpp: Use the standard
2084         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2085         calls instead of creating one for us.
2086
2087         * qt/qdbusconnection_p.h:
2088         * qt/qdbusintegrator.cpp: Remove debugging code.
2089
2090         * qt/qdbusintegrator.cpp:
2091         * qt/qdbusmessage.cpp:
2092         * qt/qdbusmessage_p.h:
2093         * qt/qdbusmessage.h: Change the behaviour of automatic
2094         reply-sending: now a reply is always sent, unless the caller
2095         didn't request one or if the user slot has already sent one.
2096
2097 2006-02-16  Robert McQueen  <robot101@debian.org>
2098
2099         * configure.in: Patch from Debian packages by Sjoerd Simons
2100         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2101         arguments so it's possible to build both bindings in the
2102         same tree.
2103
2104         * qt/Makefile.am: Fix truncated value so that make dist works.
2105
2106 2006-02-16  Robert McQueen  <robot101@debian.org>
2107
2108         * acinclude.m4, configure.in: Patch from Brad Hards
2109         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2110         improving quoting, re-ordering a few checks, and a few other
2111         aesthetic tidy-ups.
2112
2113 2006-02-16  Robert McQueen  <robot101@debian.org>
2114
2115         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2116         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2117         assertion that the next element to read from the iter is fixed in
2118         size. This is not the case when you are at the end of the iter,
2119         because the next element type is INVALID.
2120
2121         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2122         a bogus assert which means that you may not initialise a 0-length
2123         string unless you provide a non-NULL pointer. This prevented
2124         you from marshalling messages containing zero-length arrays in
2125         some cases.
2126
2127         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2128         from Rob to correct bogus asserts when trying to demarshal an
2129         array and get_fixed_array got you 0 elements. Append nothing to
2130         the GArray in this case.
2131
2132         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2133         an empty array via the glib bindings. Without all of the above
2134         patches, this new test fails.
2135
2136 2006-02-16  Robert McQueen  <robot101@debian.org>
2137
2138         * glib/dbus-gmain.c: Make the previous commit compile.
2139
2140         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2141         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2142         specify sender_keyword="foo", path_keyword="bar" when adding
2143         a signal listener, so that you can bind to signals generically
2144         but still do something useful in your callback.
2145
2146         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2147         chars so that they're not cast to chars and made negative. Thanks
2148         to Jakub Stachowski for reporting this and testing the fix.
2149
2150 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2151
2152         * dbus/dbus-glib.h:
2153         * glib/dbus-gmain.h:
2154         (dbus_g_connection_open): new method for openning
2155         a connection to an arbitrary address in the glib bindings
2156
2157         * ChangeLog: checkin last entry which doesn't seem to be commited
2158
2159 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2160
2161         * tools/dbus-launch.c: Fixed sh syntax output
2162
2163 2006-02-13  Robert McQueen  <robot101@debian.org>
2164
2165         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2166         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2167         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2168         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2169         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2170         missing piece of the glib bindings jigsaw puzzle. This modifies
2171         the existing specialised types to have N type parameters (rather
2172         than the current 1 or 2 for arrays and dictionaries respectively).
2173         You can then use this to get a glib type to represent any arbitrary
2174         D-Bus struct type using dbus_g_type_get_struct. The only
2175         implementation of these types is with GValueArrays as before,
2176         but it's now possible to store these in arrays, emit them in
2177         signals, etc.
2178
2179 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2180
2181         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2182         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2183         <thiago.macieira at trolltech.com>
2184
2185 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2186
2187         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2188         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2189
2190 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2191
2192         * bus/connection.c (bus_connections_expect_reply): Make
2193         pending reply limit not common to all connections (Bug #5416)
2194         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2195
2196 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2197
2198         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2199
2200 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2201
2202         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2203         patch from Doug Goldstein <cardoe at gentoo.org>
2204
2205 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2206
2207         * mono/Arguments.cs: Fix a magic number in the mono bindings
2208         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2209
2210 2006-01-27  Robert McQueen  <robot101@debian.org>
2211
2212         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2213         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2214         when generating the client-side methods, instead of overloading
2215         CSymbol which broke everything horribly. My apologies.
2216
2217 2006-01-27  Robert McQueen  <robot101@debian.org>
2218
2219         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2220         by me and Rob Taylor to add a simple_free function to D-Bus map
2221         and collection types, which allows those types which can be freed
2222         with a GDestroyNotify (such as GHashTables and GArrays, but not
2223         GPtrArrays) to be stored as the values in hashtables.
2224
2225         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2226         Patch by Rob Taylor to add nested dicts to the glib tests to check
2227         the above code works, and appears not to leak when called repeatedly.
2228
2229 2006-01-27  Robert McQueen  <robot101@debian.org>
2230
2231         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2232         to free a D-Bus allocated string with dbus_free () instead of
2233         g_free ().
2234
2235 2006-01-27  Iain Holmes  <iain@openedhand.com>
2236
2237         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2238         method from being called multiple times.
2239
2240 2006-01-19  Robert McQueen  <robot101@debian.org>
2241
2242         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2243         <rob.taylor@collabora.co.uk> to add support for generating bindings
2244         to arrays that are represented as GPtrArrays rather than GArrays (ie
2245         size-variable things, such as strings, objects, structs, etc).
2246
2247 2006-01-05  Robert McQueen  <robot101@debian.org>
2248
2249         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2250         <ricardo.kekki@movial.fi> to make it possible to inherit from
2251         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2252         a private part, and moving the setting of the DBusGProxyManager into a
2253         connection property, allowing proper GObject construction.
2254
2255 2006-01-05  Robert McQueen  <robot101@debian.org>
2256
2257         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2258         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2259         annotations when generating glib client bindings.
2260
2261 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2262
2263         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2264
2265         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2266
2267 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2268
2269         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2270
2271 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2272
2273         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2274
2275 2005-12-19  Ross Burton  <ross@openedhand.com>
2276
2277         * doc/dbus-tutorial.xml:
2278         Document the Glib client-side bindings, and list all possible annotations.
2279
2280 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2281
2282         * dbus/bus.c (dbus_bus_release_name): Add documentation
2283
2284 2005-12-06  Robert McQueen  <robot101@debian.org>
2285
2286         * python/service.py: s/sucessful/successful/ so we're allocating to
2287         and reading from the same variable. Oops.
2288
2289 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2290
2291         * Released 0.60
2292
2293 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2294
2295         * test/qt/Makefile.am: build from srcdir
2296
2297         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2298         Note - this code is wrong and needs to be fixed by the Qt binding
2299         developers.  The flags should be treated as bitfields and not enums.
2300
2301         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2302
2303 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2304
2305         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2306           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2307           in production code
2308
2309 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2310
2311         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2312         method for getting messages off the bus in the absence of a
2313         mainloop.  This method is much like 
2314         dbus_connection_read_write_dispatch except it does not dispatch
2315         the messages to a registered filter function.  Instead it
2316         allows a developer to process messages by directly popping
2317         them off the bus.
2318
2319 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2320
2321         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2322         the parser to continue instead of returning error
2323         (bus_desktop_file_load): Do not free parser data when
2324         parse_section_start or parse_key_value fails because it was 
2325         already freed by parser_free (patch from Carlos Garcia Campos  
2326         <carlosgc at gnome.org>)
2327
2328 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2329
2330         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2331         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2332         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2333         test/test-segfault.c, test/test-utils.c,
2334         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2335         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2336         Various cleanup of dead code and compiler warnings (patch from
2337         Kjartan Maraas <kmaraas at gnome.org>) 
2338
2339 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2340
2341         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2342         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2343
2344 2005-11-27  Robert McQueen  <robot101@debian.org>
2345
2346         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2347         part of the preceding one. Oops. Merge patch by Johan Hedberg
2348         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2349         on big-endian platforms.
2350
2351         * test/python/test-client.py: Add some 16-bit integers to the test
2352         values.
2353
2354 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2355
2356         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2357         method return message for property getters
2358
2359 2005-11-27  Robert McQueen  <robot101@debian.org>
2360
2361         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2362         with type v of an instance of dbus.Variant(foo, type='x') caused
2363         it to be boxed twice before sending over the bus.
2364
2365         * python/dbus_bindings.pyx, python/service.py,
2366         test/python/test-client.py: Update the constants for the new
2367         request_name flags, and update comments/test cases now that queueing
2368         is the default action.
2369
2370 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2371
2372         * configure.in:
2373         - Change version to 0.60 for impending release
2374         - upped the sonames because of ABI and API breakage
2375
2376 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2377
2378         * configure.in: Add test/name-test/Makefile to the generated
2379         Makefile list
2380
2381         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2382         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2383         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2384         not to queue an ower if it can't be the primary owner
2385
2386         * bus/bus.h: Add new internal BusOwner struct
2387
2388         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2389         to bus_registry_ensure and don't set the prohibit_replacement flag
2390         since they are now set per BusOwner and not per name.
2391         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2392         that returns the list of connections in a name's connection queue
2393         
2394         * bus/services.c (struct BusService): remove prohibit_replacement field
2395         (struct BusOwner): new struct for keeping track of queued connections
2396         and their associated flags for the queue
2397         (struct BusRegistry): add a BusOwner memory pool
2398         (bus_registry_new): initialize the BusOwner memory pool
2399         (bus_registry_unref): free the BusOwner memory pool
2400         (_bus_service_find_owner_link): new internal method for
2401         searching the queue for a specific connection
2402         (bus_owner_set_flags): new method for adding setting the flags on a
2403         bus owner
2404         (bus_owner_new): new method that creates a BusOwner object from the
2405         pool and sets its flags
2406         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2407         (bus_registry_ensure): Add the flags parameter
2408         (bus_registry_acquire_service): Switch from using raw connections to
2409         using the BusOwner struct
2410         Add new state machine for dealing with the new set of flags
2411         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2412         cancel_ownership, free_ownership_cancel_data, 
2413         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2414         restore_ownership, free_ownership_restore_data, 
2415         add_restore_ownership_to_transaction): Switch to using BusOwner 
2416         instead of raw connections
2417         (bus_service_add_owner): Add flags parameter
2418         Switch to using BusOwner instead of raw connections
2419         Add state machine for dealing with the new set of flags
2420         (bus_service_swap_owner): Swaps the first and second owners in the
2421         queue.  Used to make sure proper signals are sent when a service looses 
2422         or gains primary ownership.  We never insert an owner at the top of the
2423         queue.  Instead we insert it in the second position and then swap.
2424         (bus_service_remove_owner): Remove the owner from the queue sending
2425         out the NameLost and NameOwnerChanged signals if the we were the 
2426         primary owner
2427         (bus_service_get_primary_owners_connection): New method that extracts
2428         the connection from the primary owner
2429         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2430         connection
2431         (bus_service_get_allow_replacement): Changed from the old 
2432         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2433         primary owner and returns if it can be replaced or not
2434         (bus_service_set_prohibit_replacement): removed
2435         (bus_service_has_owner): returns TRUE if and owner with
2436         the specified connection exists in the queue
2437         
2438         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2439         method that only compiles if tests are enabled.  Allows us to get the 
2440         unique name of a connection so we can check it against the queue when
2441         doing regression tests
2442
2443         * bus/activation.c (bus_activation_send_pending_auto_activate),
2444         bus/dispatch.c (bus_dispatch),  
2445         bus/driver.c (bus_driver_handle_get_service_owner, 
2446         bus_driver_handle_get_connection_unix_user, 
2447         bus_driver_handle_get_connection_unix_process_id,
2448         bus_driver_handle_get_connection_selinux_security_context),
2449         bus/signals.c (connection_is_primary_owner): 
2450         use bus_service_get_primary_owners_connection instead of
2451         bus_service_get_primary_owner
2452
2453         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2454         _dbus_listen_unix_socket): Calculate the length of the socket
2455         path and use that instead of using a fixed length which was
2456         causing socket names to contain many trailing Nul bytes.
2457
2458         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2459         (dbus_g_method_get_sender): New method for extracting the sender 
2460         from a DBusGMethodInvocation
2461         (dbus_g_method_return_get_reply): changed name to 
2462         dbus_g_method_get_reply
2463         (dbus_g_method_return_send_reply): changed name to
2464         dbus_g_method_send reply
2465
2466         * doc/dbus-specification.xml: New docs that describe how the new
2467         queueing system works and talks about the changes to the how
2468         we specify socket names
2469
2470         * glib/examples/example-service.c, 
2471         glib/examples/example-signal-emitter.c,
2472         glib/examples/statemachine/statemachine-server.c:
2473         Changed the RequestName flags to the new system
2474
2475         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2476         regression test suite for testing various states of the new
2477         queueing system
2478         
2479 2005-11-15  Robert McQueen  <robot101@debian.org>
2480
2481         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2482         Taylor to add two methods, dbus_g_method_return_get_reply and
2483         dbus_g_method_return_send_reply, to allow you to get the reply
2484         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2485         and send it. The GLib bindings can't marshal a return value of
2486         something like a(s) if the array is empty - ultimately they should be
2487         made to heed the signature of the out arguments as the Python bindings
2488         now can, but this is a workable interim solution which might have
2489         other applications.
2490
2491 2005-11-15  Robert McQueen  <robot101@debian.org>
2492
2493         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2494         method to org.freedesktop.DBus to release a bus name or give up
2495         waiting in the queue for it.
2496
2497         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2498         dbus_bus_release_name method to send the ReleaseName method calls.
2499         Add constants for the return values to dbus/dbus-shared.h.
2500
2501         * doc/dbus-specification.xml: Document the new ReleaseName method
2502         in the specification.
2503
2504         * python/dbus_bindings.pyx: Add a low-level python binding for the
2505         release name method.
2506
2507         * python/exceptions.py, python/service.py: Make freeing BusName
2508         objects release the name. Add a NameExistsException, and fix a
2509         bug with creating UnknownMethodException.
2510
2511         * test/python/test-client.py: Add tests for freeing BusName
2512         objects causing names to be released.
2513
2514 2005-11-14  Robert McQueen  <robot101@debian.org>
2515
2516         * python/service.py: Include the traceback in the error reply when we
2517         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2518
2519 2005-11-14  David Zeuthen  <davidz@redhat.com>
2520
2521         Patch from Timo Hoenig <thoenig@suse.de>.
2522
2523         * bus/bus.c: I've recently investigated why the automatic reload
2524         of configuration files does not work as expected.
2525
2526         Currently, reloading configuration files does only work when
2527         running dbus-daemon with --nodaemon.  If we are running as daemon
2528         we're hitting a dnotify bug once we fork the process.
2529
2530         We're initializing the dnotify fds before calling fork().  Once
2531         the child process forked it does still have the fds (and they
2532         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2533         getting SIGIO as changes are made to the configuration files.
2534
2535         The attached patch moves the initialization of the dnotify fds to
2536         process_config_postinit().  This is safe for all current code
2537         paths and solves the dnotify disfunction.  If we're running
2538         dbus-daemon as daemon the fds for dnotify are now being
2539         initialized after fork() for the child process.
2540
2541         * configure.in: The current configure.in check for dnotify probes
2542         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2543         match for 'xlinux', too. Additionally I have adapted the configure
2544         option's style to match with the others.
2545
2546 2005-11-14  Robert McQueen  <robot101@debian.org>
2547
2548         * python/decorators.py, python/service.py: Add a new argument to the
2549         dbus.service.method decorator called sender_keyword, which if set,
2550         specifies the name of an argument which will be provided the bus
2551         name of the method caller.
2552
2553         * test/python/test-client.py, test/python/test-service.py: Add a
2554         method and test to check the sender_keyword functionality.
2555
2556 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2557
2558         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2559         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2560         Simons <sjoerd at luon.net>)
2561
2562         * AUTHORS: Add Robert McQueen for his work on the Python
2563         Bindings and other parts of D-Bus
2564
2565 2005-11-07  Robert McQueen  <robot101@debian.org>
2566
2567         * python/decorators.py: Change emit_signal function to use the
2568         signature annotation of the signal when marhsalling the arguments from
2569         the service. Fix a bug where the code checking signature length
2570         against argument length referenced the wrong variable.
2571
2572         * python/introspect_parser.py: Avoid adding the type signature of
2573         signal arguments to any methods which occur after them in the
2574         introspection data (!) by making the parser a little more careful
2575         about its current state.
2576
2577         * python/service.py: Remove debug prints from last commit (again :D).
2578
2579         * test/python/test-client.py, test/python/test-service.py: Add test
2580         signals with signature decorators to test the strict marshalling code
2581         gives errors at the right time. Could do with checking the signals
2582         actually get emitted too, given that the test does nothing with
2583         signals at the moment...
2584
2585 2005-11-07  Robert McQueen  <robot101@debian.org>
2586
2587         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2588         instances to stop madness of creating new instances representing
2589         the same bus connection all the time, rendering any tracking of
2590         match rules and bus names quite meaningless. Caught a bug where
2591         the private argument to SessionBus() and friends was being passed
2592         in as use_default_mainloop by mistake. Still some problems with
2593         multiple dbus_binding.Connection instances representing the same
2594         low-level connection (eg when you use both SessionBus() and
2595         StarterBus() in same process), but it's a lot better now than it
2596         was.
2597
2598         * python/dbus_bindings.pyx: Add constants with the return values
2599         for bus_request_name().
2600
2601         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2602         and retrieve the same instances for the same name, so deletion can be
2603         done with refcounting. Also now throws some kind of error if you
2604         don't actually get the name you requested, unlike previously...
2605
2606         * test/python/test-client.py: Add tests for instance caching of buses
2607         and bus name objects.
2608
2609 2005-11-04  Robert McQueen  <robot101@debian.org>
2610
2611         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2612         marshalling of boolean values. Add some booleans to the values in
2613         the test client.
2614
2615         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2616         argument to the dbus.service.method decorator, which allows you to
2617         name arguments to take two callback functions for replying with
2618         return values or an exception.
2619
2620         * test/python/test-client.py, test/python/test-service.py: Add test
2621         case using asynchronous method reply functions, both return values and
2622         errors, and from within both the function itself and from a mainloop
2623         callback.
2624
2625         * python/decorators.py, python/service.py: Perform checking that the
2626         number of method/signal arguments matches the number of types in the
2627         signature at class loading time, not when you first introspect the
2628         class.
2629
2630         * python/service.py: Remove debug print left by the last commit.
2631
2632 2005-11-03  Robert McQueen  <robot101@debian.org>
2633
2634         * python/service.py: Heavy refactoring of method invocation, with
2635         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2636         in favour of a new _message_cb that uses seperate functions for
2637         looking up the method to call, marshalling the return values, and
2638         sending exceptions as errors, and is easier to follow as a
2639         consequence.  Fixes some corner cases about returning things that
2640         don't match your declared out_signature, allows exceptions to define
2641         _dbus_error_name and have it be sent over the bus as the error name,
2642         and paves the way for cool stuff like heeding the message no reply
2643         flag, asynchronous method implementations, informing the method of the
2644         sender, and including backtraces in the error messages.
2645
2646         * test/python/test-client.py: Catch and print exceptions thrown in the
2647         async callback tests, rather than passing them to the low-level
2648         bindings to be ignored in a noisy and frustrating manner.
2649
2650 2005-11-03  Robert McQueen  <robot101@debian.org>
2651
2652         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2653         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2654         tweak others to be consistent.
2655
2656         * test/python/test-client.py: Tweak output of testInheritance.
2657
2658 2005-10-29  Robert McQueen  <robot101@debian.org>
2659
2660         * python/service.py: Major changes to allow multiple inheritance
2661         from classes that define D-Bus interfaces:
2662         
2663          1. Create a new Interface class which is the parent class of
2664             Object, and make the ObjectType metaclass into InterfaceType.
2665         
2666          2. Patch written with Rob Taylor to replace use of method_vtable
2667             with code that walks the class's __MRO__ (method resolution order)
2668             to behave like Python does when invoking methods and allow
2669             overriding as you'd expect. Code is quite tricky because
2670             we have to find two methods, the one to invoke which has the
2671             right name and isn't decorated with the /wrong/ interface,
2672             and the one to pick up the signatures from which is decorated
2673             with the right interface.
2674         
2675             The same caveats apply as to normal multiple inheritance -
2676             this has undefined behaviour if you try and inherit from two
2677             classes that define a method with the same name but are
2678             decorated with different interfaces. You should decorate
2679             your overriding method with the interface you want.
2680         
2681          3. Replace grungy introspection XML generation code in the metaclass
2682             with dictionaries that cope correctly with multiple inheritance
2683             and the overriding of methods. This also uses the signature
2684             decorations to provide correct introspection data, including
2685             the debut appearance of the types of your return values. :D
2686
2687         * test/python/test-client.py, test/python/test-service.py: Add a test
2688         case to try invoking an method that overrides one inherited from a
2689         D-Bus interface class.
2690
2691 2005-10-29  Robert McQueen  <robot101@debian.org>
2692
2693         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2694         Add checking for the end of struct character when marshalling a
2695         struct in MessageIter.append_strict.
2696
2697         * python/examples/example-service.py,
2698         python/examples/gconf-proxy-service.py,
2699         python/examples/gconf-proxy-service2.py: Update to use gobject
2700         mainloop directly rather than appearing to depend on gtk.
2701
2702         * python/test/test-client.py, python/test/test-server.py: Remove
2703         obsolete and broken test scripts for old bindings. We have up to date
2704         and working tests in test/python/.
2705
2706 2005-10-29  Robert McQueen  <robot101@debian.org>
2707
2708         * python/decorators.py: Add optional arguments to the method and
2709         signal decorators to allow you to specify the signature of arguments
2710         and return values. Preserve the doc strings of signal functions in the
2711         decorated version, for pydoc and friends.
2712
2713         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2714         parse_signature_block function with an iterable dbus.Signature()
2715         type. Fix a bug in MessageIter.append_strict where you could append
2716         anything by claiming it was a string.
2717
2718         * python/service.py: Use the out_signature decoration on methods to
2719         marshal return values, meaning you no longer require dbus.Array()
2720         or dbus.Dictionary() to indicate the type when returning empty
2721         arrays or dictionaries. Fix a bug where exceptions which are defined
2722         in __main__ are not turned into error replies.
2723
2724         * test/python/test-client.py, test/python/test-service.py: Add test
2725         for correct marshalling of return values according to out_signature.
2726         Fix a bug in the async call test where the error_handler is missing a
2727         self argument.
2728
2729 2005-10-29  Robert McQueen  <robot101@debian.org>
2730
2731         * glib/Makefile.am, glib/examples/Makefile.am,
2732         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2733         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2734
2735         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2736
2737         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2738         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2739         the command line.
2740
2741 2005-10-27  Ross Burton  <ross@openedhand.com>
2742
2743         * dbus/dbus-marshal-header.c:
2744         Remove dead code.
2745
2746         * glib/dbus-gobject.c:
2747         Stop compiler warning.
2748
2749 2005-10-25  Ross Burton  <ross@openedhand.com>
2750
2751         * dbus/dbus-auth.c:
2752         * dbus/dbus-server-unix.c:
2753         * dbus/dbus-transport-unix.c:
2754         * glib/dbus-gmain.c:
2755         * glib/dbus-gobject.c:
2756         Add some const keywords.
2757
2758 2005-10-25  Ross Burton  <ross@openedhand.com>
2759
2760         * doc/dbus-specification.xml:
2761         Document the NoReply annotation.
2762
2763         * glib/dbus-binding-tool-glib.h:
2764         * glib/dbus-binding-tool-glib.c:
2765         Respect the NoReply annotation.
2766
2767 2005-10-24  Robert McQueen <robot101@debian.org>
2768
2769         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2770         derive from unicode instead of str, and encode/decode UTF-8 when
2771         marshalling/unmarshalling bus messages
2772
2773         * python/introspect_parser.py: encode introspection data as UTF-8
2774         before passing the buffer into libxml2
2775
2776         * test/python/test-client.py: add unicode test strings
2777
2778         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2779         ignore generated python test files
2780
2781 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2782
2783         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2784         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2785         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2786
2787         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2788         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2789         when constructing struct signatures
2790
2791         * python/_dbus.py (Bus): handle private connections using the
2792         private keyword in the constructor. defaults to private=False
2793         (Bus::close): new method to close a connection to the bus
2794
2795         * python/dbus_bindings.pyx (Connection::close): renamed method
2796         was previously called disconnect
2797         (bus_get): now supports getting a private connection
2798
2799         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2800         keyword is set to True.  if it is, execute the method without waiting
2801         for a reply
2802         (ProxyObject::_introspect_execute_queue): new method for executing
2803         all the pending methods that were waiting for the introspect to
2804         finish.  this is called when introspect either succeeds or fails
2805         (ProxyObject::_introspect_error_handler): call queued methods
2806
2807 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2808
2809         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2810         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2811
2812         * python/service.py (Object::_message_cb): handle exceptions correctly
2813         by sending them over the wire to the calling app.  This makes sure
2814         the client returns immediately instead of waiting the 15 seconds to
2815         timeout.
2816
2817         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2818         Add a test to benchmark how long it takes to introspect a service and 
2819         call a method which returns a large element (pretty fast)
2820
2821         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2822         method which pushes a lot of data
2823
2824 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2825
2826         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2827         reclaim memory outside of the loop and use del istead of just setting
2828         the key to None
2829
2830 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2831
2832         * python/service.py (ObjectType::_reflect_on_signal): Always close
2833         signal tag even when there are no arguments
2834
2835 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2836
2837         * configure.in: Set mono, mono-docs and Qt3 to default
2838         to no instead of auto when building.  These bindings do not
2839         have full time maintainers and will not be supported for the
2840         1.0 release.
2841
2842 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2843
2844         patches from Michael Krivoruchko <misha at sun.com>: 
2845         
2846         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2847         _dbus_connection_message_sent, 
2848         _dbus_connection_send_preallocated_unlocked_no_update, 
2849         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2850         is NULL when calling _dbus_verbose
2851
2852         * configure.in: check for functions getpeerucred and getpeereid
2853
2854         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2855         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2856         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2857         Patch was only tested on Solaris 10 x86 so it might be issues
2858         with other platforms (i.e. BSDs and MacOSX)
2859         
2860
2861 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2862
2863         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2864         instead of marshal basic so we can handle recursive types in a variant
2865
2866         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2867         in variants
2868
2869         * test/glib/test-service-glib.c, test-service-glib.xml
2870         (my_object_echo_variant [EchoVariant], 
2871         my_object_process_variant_of_array_of_ints123
2872         [ProcessVariantOfArrayOfInts123]): 
2873         Add two test methods
2874
2875         * python/introspect_parser.py: New module for parsing introspect
2876         data.
2877
2878         * python/dbus_bindings.pyx:
2879         (various places): when throwing errors fix to use errormsg instead 
2880         of message local variable because Pyrex can get confused with other 
2881         message variables (initial patch by Robert McQueen 
2882         <robert.mcqueen at collabora.co.uk>)
2883         (MessageIter::parse_signature_block): new method for getting the next
2884         block in a signiture.
2885         (MessageIter::append_strict): new method for appending values strictly
2886         using the passed in signature instead of guessing at the type
2887         (MessageItter:: append_dict, append_struct, append_array): use 
2888         signatures to marshal children if the signature is available
2889         
2890         * python/exceptions.py (IntrospectionParserException): new exception
2891
2892         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2893         introspected signatures if available, else we fall back to the
2894         old way of doing things.
2895         (ProxyObject::_introspect_reply_handler ): parse introspection data
2896         
2897         * python/service.py (ObjectType::_reflect_on_method): Properly
2898         terminate <method> if there are no args in the reflection data
2899
2900         * test/python/test-client.py: add tests for talking with the GLib
2901         test server.  This gives us better coverage for introspection since
2902         python to python will always generate arguments as variants.  It also
2903         allows us to test the robustness of the GLib bindings and interlanguage
2904         communications.
2905
2906         
2907 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2908
2909         * bus/driver.c (bus_driver_handle_introspect): Add signals
2910         to the introspect data. (patch from Daniel P. Berrange 
2911         <dan at berrange.com>)
2912
2913         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2914         
2915         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2916         _dbus_connection_run_builtin_filters): Changed these to
2917         be unlock_no_update functions and call 
2918         _dbus_connection_send_unlocked_no_update instead of
2919         dbus_connection_send to avoid locking errors.
2920         
2921         * doc/TODO: Removed the make Ping test TODO
2922         
2923 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2924
2925         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2926         We now copy the message from a DBusError and then free 
2927         the error object befor throwing the error
2928
2929         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2930         DBusBindingOutputMode enum which was causing a warning.
2931         #include <time.h> so using time_t is explicitly defined
2932
2933 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2934
2935         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2936         - dbus/dbus-bus.c
2937         (internal_bus_get): new method that take over the heavy lifting
2938         of dbus_bus_get and adds the ability to get a private connection
2939         to the bus
2940         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2941         interface as in previous versions
2942         (dbus_bus_get_private): new method that is a wrapper to 
2943         internal_bus_get to get a private connection to the bus
2944
2945         - dbus/dbus-bus.h
2946         (dbus_bus_get_private): add as a public libdbus interface
2947
2948         - dbus-1.pc.in: output system_bus_default_address and 
2949         sysconfdir variables so apps can use them when compiling
2950
2951 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2952         * dbus/qt: New Qt bindings
2953
2954 2005-09-12  Waldo Bastian  <bastian@kde.org>
2955
2956         * dbus/dbus-marshal-validate.c,
2957         doc/dbus-specification.xml, test/Makefile.am,
2958         test/test-names.c: allow hyphens in bus names.
2959
2960 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2961
2962         * test/data/auth/fallback.auth-script: we don't
2963         retry the EXTERNAL method when we know its going
2964         to fail anymore.
2965
2966 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2967
2968         * dbus/dbus-connection-internal.h: rename
2969         (add|remove|toggle)_(watch|timeout) to unlocked()
2970         
2971         * dbus/dbus-connection.c: ditto.
2972         
2973         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
2974         Update some callers for the renaming.
2975
2976 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
2977
2978         * dbus/dbus-auth.c: (record_mechanisms): don't
2979         retry the first auth mechanism because we know
2980         we're just going to get rejected again.
2981         
2982         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
2983         Fix thinko ... and what a nasty little bugger to
2984         track down you were ...
2985
2986         * dbus/dbus-connection.c:
2987         (_dbus_connection_add_watch),
2988         (_dbus_connection_remove_watch): add note about
2989         these needing the connection to be locked.
2990         (_dbus_connection_get_dispatch_status_unlocked):
2991         set status to DATA_REMAINS when we queue the
2992         disconnected message.
2993         
2994         * bus/dispatch.c:
2995         (bus_dispatch): fix warning.
2996         (check_existent_service_no_auto_start):
2997         Expect ChildSignaled error too.
2998         (check_existent_hello_from_self): fix another
2999         couple of warnings.
3000         
3001 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3002
3003         Patches from James Willcox <snorp@snorp.net>
3004
3005         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3006
3007         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3008         support array "out" parameters.
3009
3010         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3011         for 16-bit int support.
3012
3013 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3014
3015         * Released 0.50
3016
3017         * Patch from Steve Grubb:
3018         - bus/activation.c (bus_activation_service_reload_test): clean up
3019         some indentation
3020         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3021         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3022         buffer overflows in the test suite.  This is non critical because
3023         it can not be exploited and this code is only run when doing a 
3024         make check.
3025
3026         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3027         - configure.in: Don't check and link against kdecore, only qt headers
3028         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3029         - gcj/org/freedesktop/dbus/Makefile.am:
3030         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3031         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3032         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3033         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3034         - tools/Makefile.am: Add platform extentions to binaries 
3035         (i.e. .exe on windows)
3036
3037         * configure.in: 
3038         - Make it so if no suitable version of python is found we only 
3039         disable building python instead of exiting the configure script
3040         - Require version 2.4 of glib for glib bindings
3041         - Up version to 0.50
3042
3043         * python/__init__.py: Sync version with libdbus to (0,50,0)
3044         
3045 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3046
3047         * dbus/dbus-object-tree.c (find_subtree_recurse):
3048         a couple of optimizations (bug #710):
3049         - do a binary search in the tree
3050         - insert a new child at the right place directly, no need for
3051           qsort anymore
3052         - do the "double alloc" thing when allocating children
3053
3054 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3055
3056         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3057
3058         * python/dbus_bindings.pyx: Memory management foo
3059         (global): remove hacky _user_data_references global list
3060         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3061         tuples. Unref user_data
3062         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3063         (Connection::__del__): Remove and replace with __dealloc__ method
3064         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3065         to keep tuple from being deallocated instead of the global var hack
3066         (Connection::register_object_path): Stuff user_data into a tuple.
3067         Use Py_INCREF to keep tuple from being deallocated instead of the 
3068         global var hack
3069         (Connection::register_fallback): Stuff user_data into a tuple.
3070         Use Py_INCREF to keep tuple from being deallocated instead of the 
3071         global var hack
3072         (GIL_safe_pending_call_notification): Don't unref the message
3073         because it gets unreffed when going out of scope.  Py_XDECREF
3074         the user_data
3075         (PendingCall::__del__): Remove and replace with __dealloc__ method
3076         (PendingCall::set_notify): ref the pending call because we will
3077         need it to stick around for when the notify callback gets called
3078         (Message::__del__): Remove and replace with __dealloc__ method
3079
3080         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3081         gthreads_init to match up with the dbus call
3082
3083         * python/glib.py (init_threads): Changed to threads_init to match
3084         up with gobject.threads_init().  init_threads is kept for backwards
3085         compat but will most likely be deprecated in the future
3086
3087         * test/python/test-client.py: 
3088         - revamp to use Python's unittest functionality
3089         - add async call tests
3090         - setup threads in glib and dbus so we make sure locks are working
3091         
3092 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3093
3094         * python/dbus_bindings.pyx 
3095         (_pending_call_notification, cunregister_function_handler, 
3096         cmessage_function_handler): All callback functions have been rearranged 
3097         to workaround a bug in Pyrex when working with the GIL which is Python's 
3098         global lock when dealing with threads.  They have been split into
3099         a wrapper function (which assumes the name of the old function) and
3100         a _GIL_safe_<function name> function which contains the functionality
3101         of the old function.  This ensures that Pyrex does not write code
3102         the lock is released.
3103         
3104
3105 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3106
3107         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3108         GIL global lock when calling back into Python
3109
3110 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3111
3112         * Release 0.36.2
3113
3114         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3115
3116         * bus/policy.c (bus_policy_allow_user): change default "user is
3117         allowed" to be "user has same uid as the bus itself"; any
3118         allow/deny rules will override.
3119
3120         * bus/session.conf.in: don't allow all users, since now by default
3121         the user that ran the bus can connect.
3122
3123 2005-08-26  Colin Walters  <walters@verbum.org>
3124
3125         * tools/dbus-print-message.c (print_message): Flush stdout
3126         after printing a message, so that redirecting to a file, then
3127         hitting Ctrl-C works.
3128
3129 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3130
3131         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3132         (EmptyMessage): new class that subclasses Message.  This is a workaround
3133         to a Pyrex bug that fails to call __del__ when the Message object goes out
3134         of scope.  For some reason subclassing Message fixes this bug
3135         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3136         - s/Message(_create=0)/EmptyMessage everywhere else
3137         
3138         * test/python/test-{server|client}.py: add the python/.libs directory
3139         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3140         get picked up from the system
3141
3142 2005-08-25  Colin Walters  <walters@verbum.org>
3143
3144         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3145         to Ryan Lortie for the suggestion.
3146
3147 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3148
3149         * test/python: Add python regression test
3150
3151         * configure.in: Add test/python/Makefile
3152
3153         * test/Makefile.am: Add the python directory to SUBDIRS
3154
3155 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3156
3157         * Release 0.36.1
3158
3159         * python/_dbus.py: 
3160         (Interface::connect_to_signal): propigate keywords for match on args
3161         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3162
3163         * python/proxies.py (ProxyObject::connect_to_signal):
3164         propigate keywords for match on args
3165
3166         * Makefile.am: point everything to pyexecdir since python borks
3167         on multilib
3168
3169 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3170
3171         * Release 0.36
3172
3173 2005-08-23  Colin Walters  <walters@verbum.org>
3174
3175         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3176
3177 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3178
3179         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3180         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3181         of defining DBusConnection ourselves.
3182
3183 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3184
3185         * python/dbus.pth: New path file to fix up problems when installing
3186         c libraries to lib64 and python files to lib.
3187
3188         * python/Makefile.am: install dbus.pth in the correct spot
3189
3190 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3191         * ChangeLog: clean up my last entry a bit
3192
3193         * doc/introspect.xsl: New stylesheet for converting introspection data
3194         into browser renderable xhtml. Contributed by Lennart Poettering.
3195
3196         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3197         Poettering.
3198
3199         * doc/dbus-tutorial.xml: 
3200         - Add Colin Walter to the Authors section for authoring the GLib
3201         section
3202         - Add descriptions of the new signature and type functionality
3203         in the Python complex type mapping section
3204         - Add a sidenote on the new args matching functionality in 
3205         the Python bindings
3206         - Fixed up some of the examples to use the gobject.MainLoop
3207         instead of gtk.main
3208         
3209         * python/_dbus.py:
3210         (Bus::_create_args_dict): New. Converts a hash of arg matches
3211         to a more useable format
3212         (Bus::add_signal_receiver): add a **keywords parameter for catching
3213         arg match parameters
3214         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3215         arg match parameters
3216         
3217         * python/matchrules.py:
3218         (MatchTree::exec_matches): Check for arg matches
3219         (SignalMatchRule::add_args_match): New method
3220         (SignalMatchRule::execute): Added args_list parameter as an optimization
3221         so we don't have to marshal the args more than once
3222         (SignalMatchRule::match_args_from_list): New method that checks to see
3223         if the rule's arg matches match an argument list.  Only arguments
3224         set in the rule are checked.
3225         (SignalMatchRule::match_args_from_rule): New method that checks to see
3226         if the rule's arg matches match another rule's.  All args have to match
3227         in order for this method to return true.  If either rule has more args
3228         then it is not a match.
3229         (SignalMatchRule::is_match): Add args match
3230         (SignalMatchRule::repr): Add args to the final output if they exist
3231
3232 2005-08-17  Ross Burton  <ross@burtonini.com>
3233
3234         * glib/dbus-gproxy.c:
3235         (dbus_g_proxy_call_no_reply): unref the message once sent.
3236         (dbus_g_proxy_call): protect against NULL proxy.
3237
3238 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3239
3240         * python/__init__.py: Version updated (0, 43, 0)
3241         
3242         * python/dbus_bindings.pyx: 
3243         - Fixed type objects to have self passed into __init__
3244         - Added the Variant type
3245         - Add the ability to specify types or signatures for Array, Variant 
3246         and Dictionary
3247         (Connection::send_with_reply_handlers): return a PendingCall object
3248         (_pending_call_notification): handle the case when an error is returned 
3249         without an error message in the body
3250         (MessageIter::get_boolean): return True or False instead of an integer
3251         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3252         and add checks for objects with embeded signatures or types (Array, 
3253         Variant and Dictionary)
3254         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3255         (MessageIter::append_dict): handle embeded types or signatures
3256         (MessageIter::append_array): handle embeded types or signatures
3257         (MessageIter::append_variant): new method
3258         
3259         * python/proxies.py:
3260         (DeferedMethod): New. Dummy executable object used when queuing calls 
3261         blocking on introspection data
3262         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3263         or shorter timeouts for method calls
3264         (ProxyObject): Add first pass at an introspection state machine
3265         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3266         introspection. 
3267         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3268         the usual mechanisms for sending messages.  This is to avoid a deadlock
3269         where the Intospect call would be queued waiting for the Introspect 
3270         call to finish ;-)
3271         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3272         when introspection returns with no error
3273         (ProxyObject::_introspect_error_handler): New.  This method is called 
3274         when introspection encounters an error
3275         (ProxyObject::__getattr__): Code to handle different introspection 
3276         states.  Queue async calls or block blocking calls if we are 
3277         introspecting.  Pass through as normal if we are not or are done with 
3278         introspecting.
3279         
3280         * python/service.py: Import signal and method from decorators.py
3281
3282         * python/types.py: Add Variant type
3283
3284 2005-08-16  Colin Walters  <walters@verbum.org>
3285
3286         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3287         DBusError message is NULL.
3288
3289 2005-08-09  Havoc Pennington  <hp@redhat.com>
3290
3291         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3292         malloc'd copy of the name parameter
3293
3294 2005-08-09  Havoc Pennington  <hp@redhat.com>
3295
3296         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3297         warning if the reply serial is set to 0
3298
3299 2005-08-04  Colin Walters  <walters@verbum.org>
3300
3301         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3302         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3303         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3304         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3305         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3306         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3307         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3308         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3309         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3310         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3311         
3312         Prefix name with _ to ensure they're not exported.  All callers
3313         updated.
3314
3315         * glib/dbus-gvalue.c (typecode_to_gtype)
3316         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3317         (signature_iter_to_g_type_dict)
3318         (signature_iter_to_g_type_array)
3319         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3320         (dbus_gtypes_from_arg_signature):
3321         Move to dbus-gsignature.c.
3322
3323         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3324         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3325         (dbus_binding_tool_output_glib_client): Ditto.
3326
3327         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3328         and dbus-gsignature.h
3329
3330         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3331         unused variable.
3332
3333 2005-08-03  Colin Walters  <walters@verbum.org>
3334
3335         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3336         catch any incompatible changes accidentally made.
3337
3338 2005-08-03  Havoc Pennington  <hp@redhat.com>
3339
3340         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3341         typo, from Julien Puydt
3342
3343         * bus/connection.c (bus_connection_disconnected): we were always
3344         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3345
3346 2005-08-01  Colin Walters  <walters@verbum.org>
3347
3348         Patch from Joe Markus Clarke:   
3349         
3350         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3351         use-after-free.
3352
3353 2005-08-01  Colin Walters  <walters@verbum.org>
3354         
3355         Patch from Joe Markus Clarke:   
3356         
3357         * tools/dbus-send.c (main): 
3358         
3359         Don't use C99 style initializers (bug #3933).
3360         
3361 2005-08-01  Colin Walters  <walters@verbum.org>
3362
3363         Patch from Joe Markus Clarke:   
3364
3365         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3366         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3367         * glib/dbus-gobject.c (write_interface):
3368
3369         Don't use C99 style initializers (bug #3933).
3370
3371 2005-07-31  Havoc Pennington  <hp@redhat.com>
3372
3373         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3374         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3375
3376 2005-07-30  Havoc Pennington  <hp@redhat.com>
3377
3378         * fix a bunch of Doxygen warnings and mistakes
3379
3380 2005-07-30  Havoc Pennington  <hp@redhat.com>
3381
3382         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3383         DBUS_BUILD_TESTS since it's now used in production code
3384
3385 2005-07-29  Havoc Pennington  <hp@redhat.com>
3386
3387         * test/glib/test-profile.c (write_junk): initialize the junk
3388         buffer so valgrind doesn't have a breakdown
3389
3390 2005-07-29  Havoc Pennington  <hp@redhat.com>
3391
3392         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3393         (match_rule_matches): remove unused arg
3394         (test_matching): add tests for match_rule_matches()
3395
3396         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3397         do arg0='foo' arg5='bar' in the match rules
3398         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3399
3400         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3401
3402 2005-07-29  Ross Burton  <ross@openedhand.com>
3403
3404         * dbus/dbus-connection.c:
3405         Don't create a DBusCondVar which is never used.
3406
3407 2005-07-27  Ross Burton  <ross@openedhand.com>
3408
3409         * dbus/dbus-message.c:
3410         Reduce the size of the maximum cached message to 10K.
3411
3412 2005-07-25  Ross Burton  <ross@openedhand.com>
3413
3414         * glib/dbus-gproxy.c:
3415         Remove matches when all proxies are unregistered.
3416
3417 2005-07-24  Colin Walters  <walters@verbum.org>
3418
3419         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3420         typedata; recursive arrays won't have it.
3421
3422         * test/glib/test-dbus-glib.c:
3423         * test/glib/test-service-glib.c:
3424         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3425         
3426 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3427
3428         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3429         proxies.py, service.py: Cleanup of code after running it through the
3430         pyflakes code checker mostly dealing with undefined names.  
3431         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3432
3433 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3434
3435         * NEWS: Update to 0.35.2
3436
3437 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3438
3439         * python/_dbus.py: Remove import of the dbus.services
3440         module as it no longer exists (patch from Dimitur Kirov)
3441
3442         * python/service.py (Object::__init__): Fixed typo
3443         s/name/bus_name (patch from Dimitur Kirov)
3444
3445         * python/examples/example-signal-emitter.py: import dbus.glib
3446         to get the main loop and use glib mainloop instead of gtk so
3447         X doesn't have to be running.
3448
3449         * python/examples/example-signal-recipient.py: import dbus.glib
3450         to get the main loop and use glib mainloop instead of gtk so
3451         X doesn't have to be running. Import the decorators module
3452         directly.
3453
3454         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3455         didn't pick up on but are needed to build
3456
3457         * configure.in: upped version to 0.35.2
3458
3459         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3460         added Colin Walters' SELinux API rename patch from head 
3461         s/unix sercurity context/selinux security context/
3462
3463 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3464
3465         * python/Makefile.am: dbus_binding.pxd.in should be included 
3466         in EXTRA_DIST not dbus_binding.pxd
3467         fix up $(srcdir) hopefully for the last time
3468
3469         * NEWS: Update to 0.35.1
3470
3471 2005-07-16  Colin Walters  <walters@verbum.org>
3472
3473         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3474         from bus_driver_handle_get_connection_unix_security_context.  Update for
3475         error usage.
3476         (message_handlers): Update for renames.
3477
3478         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3479         _dbus_string_init failure correctly.
3480         (bus_selinux_append_context): Convert SID to context.  Append it
3481         as a byte array.
3482         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3483         hasn't been called.
3484
3485         * bus/selinux.h: Update prototype.
3486
3487         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3488         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3489
3490 2005-07-15  Colin Walters  <walters@verbum.org>
3491
3492         * doc/TODO: Add note about convenience wrappers.
3493
3494 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3495
3496         * NEWS: Update to 0.35
3497
3498 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3499
3500         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3501         so distcheck doesn't fail
3502
3503         * glib/examples/Makefile.am: Add example-service.xml and 
3504         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3505
3506         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3507         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3508
3509         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3510         compiler looks in the right places during distcheck
3511
3512 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3513
3514         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3515         to fail
3516
3517 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3518
3519         * python/examples/example-service.py,
3520         python/examples/example-signal-emitter.py: Fixed up examples
3521         for API changes
3522
3523 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3524
3525         * python/__init__.py: Upped to version (0,42,0) because of
3526         the API change
3527
3528 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3529
3530         * ChangeLog: fix date in last entry
3531
3532         * configure.in, bus/system.conf.in: add the ability to configure 
3533         the system bus user at compiletime with the --with-dbus-user flag
3534         (patch from Kristof Vansant)
3535
3536 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3537
3538         * bus/dispatch.c, test/test-service.c: Add testcase
3539         for sending messages to oneself (TODO item).
3540
3541         * python/service.py (class Object): Swap ordering of bus_name 
3542         and object_path parameters to better support inheritance.
3543
3544         * doc/dbus-tutorial.xml: change Python docs to reflect change
3545         in parameter ordering and fix the inheritance section.
3546
3547         * doc/TODO: remove sending message to oneself TODO item
3548
3549 2005-07-15  Ross Burton  <ross@openedhand.com>
3550
3551         * glib/dbus-gproxy.c:
3552         Fix a leak when calling methods via the proxy.
3553
3554 2005-07-15  Colin Walters  <walters@verbum.org>
3555
3556         * bus/selinux.c (bus_selinux_append_context): Wrap in
3557         HAVE_SELINUX.
3558
3559 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3560
3561         * python/_dbus.py (Bus::remove_signal_receiver):
3562         don't add a callback to the match if none has been passed in
3563         
3564         * python/matchrules.py (SignalMatchTree::remove): if the rule
3565         being matched does not have a callback treat it as a wildcard
3566         fix matching logic
3567
3568         * doc/dbus-tutorial.xml: Add Python tutorial
3569
3570 2005-07-14  Colin Walters  <walters@verbum.org>
3571
3572         * bus/driver.c
3573         (bus_driver_handle_get_connection_unix_security_context): New function.
3574         (message_handlers): Add.
3575
3576         * bus/selinux.c (bus_selinux_append_context): New function; appends
3577         security context to message.
3578
3579         * bus/selinux.h: Prototype.
3580
3581         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3582
3583 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3584
3585         * bus/activation.c: clean up all tabs to be 8 spaces 
3586         (bus_activation_activate_service): make sure we clean up
3587         if activation fails
3588
3589         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3590         (check_shell_fail_service_auto_start): New function
3591         tests to make sure we get fail properly when trying to auto start a service
3592         with a faulty command line
3593         (check_shell_service_success_auto_start): New function tests to make sure
3594         auto started services get the arguments on the command line
3595
3596         * test/test-shell-service.c: Added service for testing auto-starting with 
3597         command line arguments
3598
3599         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3600         test/data/valid-service-files/debug-shell-echo-success.service.in:
3601         Added service files for testing auto-starting with command line arguments
3602
3603         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3604
3605 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3606
3607         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3608         
3609         * dbus/Makefile.am: added new files to build.
3610
3611         * bus/activation.c (bus_activation_activate_service): support
3612         activation commands with parameters.
3613
3614         * test/shell-test.c: added test program for the shell parsing
3615         code.
3616
3617 2005-07-13  David Zeuthen  <davidz@redhat.com>
3618
3619         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3620         64 bit signed and unsigned parameters
3621
3622 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3623
3624         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3625
3626         * python/service.py (class Name): renamed BusName to make it clearer
3627         what the object is for (a name on the bus)
3628
3629         * python/examples/example-service.py,
3630         python/examples/example-signal-emitter.py: change the Name object to
3631         BusName
3632
3633 2005-07-12  Colin Walters  <walters@verbum.org>
3634
3635         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3636
3637         * tools/dbus-launch.c: Include sys/select.h.
3638
3639 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3640         * python/dbus_bindings.pyx.in: removed
3641
3642         * python/dbus_bindings.pyx: Added.
3643         - Fixed some memleaks (patch from 
3644         Sean Meiners <sean.meiners@linspireinc.com>)
3645         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3646         own pxd file (Pyrex definition)
3647         - Broke out glib dependancies into its own pyx module
3648         
3649         * python/dbus_bindings.pdx: Added.
3650         - Defines C class Connection for exporting to other modules
3651
3652         * python/dbus_glib_bindings.pyx: Added.
3653         - New module to handle lowlevel dbus-glib mainloop integration
3654
3655         * python/glib.py: Added.
3656         - Registers the glib mainloop when you import this module
3657
3658         * python/services.py: Removed (renamed to service.py)
3659         
3660         * python/service.py: Added.
3661         - (class Server): renamed Name
3662
3663         * python/__init__.py: Bump ro version (0,41,0)
3664         -don't import the decorators or service module
3665         by default.  These now reside in the dbus.service namespace
3666
3667         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3668         setup function on creation 
3669
3670         * python/examples/example-service.py,
3671         python/examples/example-signal-emitter.py: update examples
3672
3673         * python/examples/gconf-proxy-service.py,
3674         python/examples/gconf-proxy-service2.py: TODO fix these up
3675
3676         * doc/TODO: Addition
3677         - Added a Python Bindings 1.0 section
3678         - added "Add match on args or match on details to match rules"
3679
3680
3681 2005-07-12  Colin Walters  <walters@verbum.org>
3682
3683         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3684         (statemachine-glue.h): 
3685         * glib/examples/Makefile.am (example-service-glue.h) 
3686         (example-signal-emitter-glue.h): 
3687         * glib/Makefile.am (dbus-glib-error-switch.h): 
3688         Add libtool --mode=execute so we use the built library instead
3689         of any installed one.
3690
3691 2005-07-11  Colin Walters  <walters@verbum.org>
3692
3693         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3694         (dbus_g_value_types_init): Remove assertion.
3695         (dbus_g_value_get_g_type, dbus_g_value_open)
3696         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3697         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3698         functions related to DBusGValue.  Now we marshal/demarshal
3699         structures as GValueArray.
3700         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3701         structures.
3702         (signature_iter_to_g_type_array): Don't call
3703         signature_iter_to_g_type_struct.
3704         (signature_iter_to_g_type_struct): Delete.
3705         (dbus_gvalue_to_signature): Delete.
3706         (dbus_gvalue_to_signature): New function with same name as other
3707         one; we can convert structures to signatures.
3708         (demarshal_valuearray): New function.
3709         (get_type_demarshaller): Use it.
3710         (demarshal_recurse): Delete.
3711         (marshal_proxy): New function.
3712         (marshal_map): Warn if we can't determine signature from type.
3713         (marshal_collection_ptrarray): Ditto.
3714         (marshal_collection_array): Ditto.
3715         (get_type_marshaller): Use marshal_valuearray.
3716         (marshal_recurse): Delete.
3717         (_dbus_gvalue_test): Add some tests.
3718
3719         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3720         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3721         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3722         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3723         (dbus_g_value_free): Remove prototypes.
3724
3725         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3726         G_TYPE_VALUE_ARRAY.
3727
3728         * glib/examples/example-service.c:
3729         * glib/examples/example-client.c: Implement GetTuple.
3730
3731         * test/glib/test-dbus-glib.c:
3732         * test/glib/test-service-glib.c:
3733         * test/glib/test-service-glib.xml: Add structure tests.
3734
3735 2005-07-10  Colin Walters  <walters@verbum.org>
3736
3737         * doc/TODO: Knock off some GLib items with this patch.
3738
3739         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3740         (_dbus_gvalue_signals_error): New functions.
3741
3742         * glib/dbus-gvalue-utils.h: Prototype them.
3743
3744         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3745         and change to not output const/retval flags for input args.  All
3746         callers updated.
3747         (invoke_object_method): Refactor to handle return values.  Add
3748         some more comments in various places.  Remove debug g_print.
3749
3750         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3751
3752         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3753         Handle G_TYPE_NONE.
3754         (compute_gsignature): New function; refactored from code from
3755         compute_marshaller and compute_marshaller_name.  Enhance to
3756         handle return values and async ops more cleanly.  Update for
3757         async ops returning NONE instead of BOOLEAN.
3758         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3759         and output appropriate string.
3760         (generate_glue): Handle return value annotation.  Also don't dump
3761         constness flag for input arguments.
3762
3763         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3764         files shared between installed library and utilities.
3765         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3766         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3767         binding tool can access gtype utility functions.
3768
3769         * test/glib/test-service-glib.c: 
3770         * test/glib/test-service-glib.xml: 
3771         * test/glib/test-dbus-glib.c: Add some tests for return values.
3772
3773 2005-07-09  Colin Walters  <walters@verbum.org>
3774
3775         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3776         argument if available, not method.
3777
3778         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3779         (invoke_object_method): First, remove some redundant
3780         GValues (object_value, error_value) in favor of working on
3781         array directly.  Second, rework constness to be less buggy.
3782         Now we iterate directly over the argument metadata instead
3783         of parallel iterating over output signature and metadata.
3784
3785         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3786
3787         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3788         annotation on input args.
3789         
3790 2005-07-09  Colin Walters  <walters@verbum.org>
3791
3792         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3793         Define.
3794
3795         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3796         annotation.
3797
3798         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3799         (method_dir_signature_from_object_info): Handle arg_iterate change.
3800         (write_interface): Ditto.
3801         (lookup_object_info): Don't barf if format_version is > 0.
3802         (invoke_object_method): Handle arg constness.
3803
3804         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3805         (arg_info_new): Create.
3806         (arg_info_unref): Destroy.
3807         (arg_info_get_annotations, arg_info_get_annotation) 
3808         (arg_info_add_annotation): New functions.
3809
3810         * glib/dbus-gidl.h: Prototype them.
3811
3812         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3813         args, disallow them in properties.
3814         (parse_annotation): Handle arg annotations.
3815
3816         * test/glib/test-service-glib.xml: 
3817         * test/glib/test-service-glib.c: Update to make some methods
3818         const.
3819
3820 2005-07-08  Colin Walters  <walters@verbum.org>
3821
3822         * test/glib/test-service-glib.xml: 
3823         * test/glib/test-service-glib.c:
3824         * test/glib/test-dbus-glib.c: Test a{sv}.
3825
3826         * glib/examples/statemachine/statemachine.c:
3827         * glib/examples/statemachine/statemachine-server.c:
3828         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3829         add progress bar, etc.
3830
3831         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3832         needed anymore due to generic array/map marshalling.
3833         (dbus_g_value_types_init): Don't register basic arrays or the
3834         string/string hash.
3835         (dbus_gtype_from_signature_iter): Don't try to recurse into
3836         variants.
3837         (dbus_gtype_to_signature): Check collection/map before type
3838         metadata.
3839         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3840         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3841         generic map creation/append functions instead of hash table
3842         specifically.
3843         (get_type_demarshaller): Handle maps.
3844         (demarshal_collection): Dispatch on collection type to either
3845         demarshal_collection_ptrarray or demarshal_collection_array.
3846         (get_type_marshaller): Handle maps.
3847         (marshal_collection): Dispatch collection type to either
3848         marshal_collection_ptrarray or marshal_collection_array.
3849         (_dbus_gvalue_test): New test.
3850
3851         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3852         (hash_free_from_gtype): Use it to free GValues.
3853         (hashtable_append): New function.
3854         (ptrarray_append): Fix prototype.
3855         (slist_append): Ditto.
3856         (_dbus_gvalue_utils_test): Extend tests.
3857
3858         * glib/dbus-gtype-specialized.c
3859         (dbus_g_type_specialized_init_append): Renamed from
3860         dbus_g_type_specialized_collection_init_append.  Remove const from
3861         value, since we steal it.
3862         (dbus_g_type_specialized_map_append): New function.
3863
3864         * glib/dbus-gtype-specialized.h: Update prototypes.
3865         Add DBusGTypeSpecializedMapAppendFunc.
3866
3867         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3868         _dbus_gvalue_test.
3869         
3870         * glib/dbus-gtest.h: Prototype it.
3871
3872 2005-07-08  Ross Burton  <ross@openedhand.com>
3873
3874         * dbus/dbus-glib.h:
3875         Add DBysGAsyncData for the async bindings.
3876
3877         * glib/dbus-binding-tool-glib.c:
3878         Re-enable the async bindings.
3879
3880         * test/glib/test-dbus-glib.c:
3881         Add a test for the generated async bindings.
3882
3883 2005-07-08  Colin Walters  <walters@verbum.org>
3884
3885         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3886         connection concept.
3887         
3888 2005-07-08  Colin Walters  <walters@verbum.org>
3889         
3890         * tools/Makefile.am: Kill of print-introspect in favor of using
3891         dbus-send --print-reply=literal.
3892
3893         * test/glib/test-service-glib.xml: 
3894         * test/glib/test-service-glib.c (my_object_get_objs): New test
3895         for "ao".
3896
3897         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3898         (main): Test GetObjs.
3899
3900         * glib/examples/statemachine/Makefile.am:
3901         * glib/examples/statemachine/sm-marshal.list:
3902         * glib/examples/statemachine/statemachine-client.c:
3903         * glib/examples/statemachine/statemachine-server.c:
3904         * glib/examples/statemachine/statemachine-server.xml:
3905         * glib/examples/statemachine/statemachine.c:
3906         * glib/examples/statemachine/statemachine.h:
3907         * glib/examples/statemachine/statemachine.xml:
3908
3909         New example.
3910
3911         * glib/examples/example-service.c (main): Move invocation
3912         of dbus_g_object_type_install_info earlier, to emphasize it
3913         should only be done once.
3914
3915         * glib/examples/example-signal-emitter.c (main): Ditto.
3916
3917         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3918
3919         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3920         (dbus_gvalue_marshal): Update prototypes.
3921
3922         * glib/dbus-gvalue.c: Update all marshalling functions to take
3923         const GValue instead of GValue.
3924         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3925         types.
3926         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3927         change.
3928         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3929         Return a newly-allocated string.
3930         (demarshal_proxy, demarshal_object_path, demarshal_object)
3931         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3932         we get the wrong types from message.
3933         (get_type_demarshaller): New function, extracted from
3934         dbus_gvalue_demarshal.
3935         (demarshal_collection): New function, demarshals generic
3936         collection.
3937         (dbus_gvalue_demarshal): Just invoke result of
3938         get_type_demarshaller.  Throw error if we don't have one.
3939         (marshal_garray_basic): Abort on OOM.
3940         (get_type_marshaller): New function, extracted from
3941         dbus_gvalue_marshal.
3942         (collection_marshal_iterator, marshal_collection): New functions;
3943         implements generic marshalling for an iteratable specialized
3944         collection.
3945         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3946
3947         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3948         G_TYPE_STRING.
3949         (ptrarray_value_from_gvalue): Ditto.
3950         (ptrarray_append, ptrarray_free): New functions.
3951         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3952         (slist_append, slist_end_append, slist_free): New functions.
3953         (dbus_g_type_specialized_builtins_init): Add append fuctions
3954         for GPtrArray and GSList.  Register GSList.
3955         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3956
3957         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3958         New.
3959         (dbus_g_type_specialized_collection_init_append)
3960         (dbus_g_type_specialized_collection_append)
3961         (dbus_g_type_specialized_collection_end_append): Prototype.
3962         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3963         end_append_func.
3964
3965         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3966         (dbus_g_type_specialized_collection_append) 
3967         (dbus_g_type_specialized_collection_end_append): New functions.
3968         (dbus_g_type_map_value_iterate): Take const GValue.
3969         (dbus_g_type_collection_value_iterate): Ditto.
3970
3971         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3972         _dbus_gvalue_utils_test.
3973         
3974         * glib/dbus-gtest.h: Prototype it.
3975
3976         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
3977         using uninitialized owner_list.
3978         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
3979         public API.
3980         (dbus_g_proxy_end_call_internal): Update to use error set
3981         from dbus_gvalue_demarshal instead of setting it here.
3982         (dbus_g_proxy_begin_call): Move return_if_fail here.
3983
3984         * glib/dbus-gobject.c (write_interface): Update for
3985         dbus_gtype_to_signature returning new string.
3986
3987         * configure.in: Add glib/examples/statemachine.
3988
3989 2005-07-08  Joe Shaw  <joeshaw@novell.com>
3990
3991         * configure.in: Add a configure option, --with-console-auth-dir
3992         
3993         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
3994         new setting.  Patch from Kay Sievers.
3995
3996 2005-07-06  Colin Walters  <walters@verbum.org>
3997
3998         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
3999         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4000         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4001         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4002         Delete in favor of dbus_g_proxy_begin_call and
4003         dbus_g_proxy_cancel_call.
4004         (DBusGProxyCall, DBusGProxyCallNotify): New.
4005         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4006         data, and destroy function.  This replaces
4007         dbus_g_pending_call_set_notify.
4008         (dbus_g_proxy_cancel_call): Prototype.
4009         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4010
4011         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4012         pending_calls map.
4013         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4014         internal proxy for calls to the bus. Remove
4015         pending_nameowner_calls, now the internal proxy keeps track.
4016         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4017         pending_nameowner_calls.
4018         (got_name_owner_cb): Update prototype, and use
4019         dbus_g_proxy_end_call.
4020         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4021         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4022         favor of using internal proxy.
4023         (dbus_g_proxy_manager_unregister): Update to use
4024         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4025         (dbus_g_proxy_init): Initialize pending calls map.
4026         (dbus_g_proxy_constructor): New.
4027         (dbus_g_proxy_class_init): Add get/set property functions,
4028         constructor, and add NAME, PATH, and INTERFACE properties.
4029         (cancel_pending_call): New function.
4030         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4031         cancel them.
4032         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4033         (GPendingNotifyClosure): New structure.
4034         (d_pending_call_notify, d_pending_call_free): Moved here from
4035         dbus-glib.c.
4036         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4037         ordering.
4038         (manager_begin_bus_call): New internal function for talking to
4039         internal bus proxy.
4040         (dbus_g_proxy_new): Construct object using GObjet properties.
4041         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4042         Create closure of same, and insert call into map of pending calls.
4043         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4044         call.  Look up pending call in current set.  Remove it when we've
4045         completed.
4046         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4047         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4048         and destroy function directly.
4049         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4050         (dbus_g_proxy_call): Invoke with NULL callback.
4051         (dbus_g_proxy_cancel_call): New function, replaces
4052         dbus_g_pending_call_cancel.
4053
4054         * glib/dbus-gparser.c (validate_signature): Fix call to
4055         dbus_set_g_error.
4056
4057         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4058         New quark for attaching metadata to GType.
4059         (info_hash): Delete.
4060         (lookup_object_info): Look up using quark.
4061         (dbus_g_object_type_install_info): Check that a type is classed,
4062         not that it's an object.  Also just install type data using quark
4063         instead of using global hash.
4064
4065         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4066         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4067         (GPendingNotifyClosure): Delete.
4068         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4069         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4070
4071         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4072         client method generation until we can fix it...
4073         
4074         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4075         (load_from_service_thread_func): Ditto.
4076
4077         * tools/dbus-names-model.c (struct NamesModel): Hold
4078         DBusGProxyCall.
4079         (have_names_notify): Update prototype, use
4080         dbus_g_proxy_cancel_call.
4081         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4082
4083         * tools/dbus-monitor.c (filter_func): Update for print_message
4084         API change.
4085
4086         * test/glib/test-dbus-glib.c: Add more tests for async
4087         invocations.  Update many begin_call/end_call pairs to just use
4088         dbus_g_proxy_call.
4089
4090         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4091         allows us to dump print-introspect.c.
4092
4093         * tools/dbus-print-message.h (print_message): Add literal argument
4094         to print_message which is intended to allow printing arguments without
4095         metadata like "string=".
4096
4097         * tools/dbus-print-message.c (print_iter): Add literal argument.
4098         (print_message): Allow printing string messages literally.
4099
4100 2005-07-05  Colin Walters  <walters@verbum.org>
4101
4102         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4103         Remove value refcount leak, original patch from Jorn Baayen
4104         <jorn@openedhand.com>.  Also remove useless extra value in favor
4105         of prepending to value array directly.
4106
4107 2005-07-02  Colin Walters  <walters@verbum.org>
4108
4109         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4110
4111 2005-07-01  Colin Walters  <walters@verbum.org>
4112
4113         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4114         
4115         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4116         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4117         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4118         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4119
4120 2005-06-30  Colin Walters  <walters@verbum.org>
4121
4122         * test/glib/test-dbus-glib.c:
4123         * test/glib/test-service-glib.c:
4124         * test/glib/test-service-glib.xml: Update tests for new error
4125         setting bits, also add async tests (patch from Ross Burton).
4126
4127         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4128         DBUS_GLIB_THREADS_LIBS.
4129
4130         * glib/dbus-gproxy.c (get_name_owner)
4131         (dbus_g_pending_call_end_valist): Ditto.
4132
4133         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4134         domain (GQuark) to DBusGErrorInfo.  
4135         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4136         quark in error_metadata.  Take message interface as default
4137         error message interface.
4138         (gerror_to_dbus_error_message): Pass message interface.
4139         (dbus_set_g_error): Resurrected.
4140         (dbus_g_error_info_free): New function.
4141         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4142         of _peek to actually create the object class if it hasn't been
4143         created yet.
4144         (dbus_g_error_domain_register): New function.
4145
4146         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4147
4148         * glib/dbus-gparser.c (validate_signature): Ditto.
4149
4150         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4151         (dbus_g_error_domain_register): Prototype.
4152
4153         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4154         Update tests.
4155
4156 2005-06-29  Colin Walters  <walters@verbum.org>
4157
4158         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4159         DBUS_TYPE_G_OBJECT_PATH.
4160
4161         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4162         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4163         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4164         (dbus_g_object_path_get_g_type): New function.
4165         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4166         to DBUS_TYPE_G_OBJECT_PATH by default.
4167         (demarshal_proxy): Remove unused name variable.
4168         (demarshal_object_path, marshal_object_path): New functions.
4169         (demarshal_proxy_array, marshal_proxy_array): Delete.
4170         
4171         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4172         DBUS_TYPE_G_OBJECT_PATH to char *.
4173         (dbus_g_type_get_lookup_function): Map builtin
4174         DBUS_TYPE_G_OBJECT_PATH.
4175
4176         * test/glib/test-dbus-glib.c
4177         * test/glib/test-service-glib.c (my_object_objpath): 
4178         Adapt tests to new object path marshalling.
4179
4180 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4181
4182         * configure.in: force check for Python >= 2.4
4183
4184 2005-06-29  Colin Walters  <walters@verbum.org>
4185         
4186         Patch from Ross Burton <ross@openedhand.com>
4187         
4188         * glib/dbus-gobject.c (invoke_object_method): Unset object
4189         value in all cases, not only in async case.
4190
4191 2005-06-29  Colin Walters  <walters@verbum.org>
4192
4193         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4194         name_call for keeping track of any outgoing GetNameOwner call.
4195         Also add for_owner and associated.
4196         (struct _DBusGProxyManager): Add owner_names, which is hash table
4197         that maps a base name to a list of names it owns (that we're
4198         interested in).  Add pending_nameowner_calls which is a list of
4199         all outstanding GetNameOwner; avoids us having to iterate over
4200         every proxy.  Add unassociated_proxies which keeps track of name
4201         proxies with no associated name owner.
4202         (dbus_g_proxy_manager_unref): Destroy owner_names.
4203         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4204         name refcounts.
4205         (find_name_in_info, name_owner_foreach)
4206         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4207         (dbus_g_proxy_manager_monitor_name_owner)
4208         (dbus_g_proxy_manager_unmonitor_name_owner)
4209         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4210         New functions; they manipulate the owner_names mapping.
4211         (got_name_owner_cb): New function.
4212         (get_name_owner): New function, extracted from
4213         dbus_g_proxy_new_for_name_owner.
4214         (dbus_g_proxy_manager_register): For now we need to keep track of
4215         all NameOwnerChanged.  Also if the proxy is for a name, if we
4216         don't already know the name owner, queue a new GetNameOwner
4217         request and add it to our list of unassociated proxies.  Otherwise
4218         inc the refcount.
4219         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4220         cancel any pending GetNameOwner call, etc.
4221         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4222         the owner_names mapping to look up the current names for the
4223         signal source, and dispatch to any proxies for that name.
4224         (dbus_g_proxy_new): Initialize new members.
4225         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4226         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4227         (dbus_g_pending_call_end_valist): New function, extracted from
4228         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4229         but want to use the GLib infrastructure.  Also note how many
4230         arguments in reply were over.
4231         (dbus_g_pending_call_end): New function, just call
4232         dbus_g_pending_call_end_valist.
4233         (dbus_g_proxy_end_call_internal): Just call
4234         dbus_g_pending_call_end_valist.
4235
4236         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4237         of builtin marshaller for STRING_STRING_STRING.
4238
4239         * test/glib/test-dbus-glib.c: 
4240         * test/glib/test-service-glib.c:
4241         * test/glib/test-service-glib.xml:
4242         Extend tests to cover name proxies, destruction of owner proxies,
4243         etc.
4244         
4245         * glib/examples/example-signal-recipient.c
4246         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4247         
4248         * tools/dbus-send.c (main): Print D-BUS error name in addition
4249         to message.
4250
4251 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4252
4253         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4254         cmessage_function_handler): Patch from 
4255         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4256         by using the Py_GILState_Ensure/Release to synchronize with the
4257         python runtime.
4258         
4259 2005-06-28  Ray Strode  <rstrode@redhat.com>
4260
4261         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4262         babysitter helper process on last unref, bug #2813.
4263
4264 2005-06-27  Colin Walters  <walters@verbum.org>
4265
4266         * test/glib/test-dbus-glib.c: 
4267         * test/glib/test-service-glib.c:
4268         * test/glib/test-service-glib.xml:
4269         Test hash table signal emitting.
4270
4271         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4272         types to their fundamental basis types, since this is what
4273         marshallers operate on.  Also add an entry for VOID__BOXED.
4274         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4275
4276 2005-06-26  Havoc Pennington  <hp@redhat.com>
4277
4278         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4279         from Don Park
4280
4281 2005-06-26  Colin Walters  <walters@verbum.org>
4282
4283         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4284         (dbus_g_error_set): New public function from its ashes; used by
4285         both service-side method implementation and GLib bindings
4286         internals.
4287         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4288         (_dbus_glib_test): Add some tests.
4289
4290         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4291
4292         * test/glib/test-service-glib.c (my_object_throw_error): Use
4293         dbus_g_error_set.
4294
4295         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4296         errors thrown by dbus_g_error_set.
4297
4298         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4299
4300         * glib/dbus-gparser.c (validate_signature): Ditto.
4301
4302         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4303         (dbus_g_proxy_end_call_internal): Ditto.
4304
4305         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4306         converts DBUS_ERROR_x to DBUS_GERROR_x.
4307         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4308
4309         * doc/TODO: Remove error TODO.
4310
4311         * doc/dbus-tutorial.xml: Update with documentation about error
4312         handling.
4313
4314         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4315         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4316         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4317
4318 2005-06-22  Colin Walters  <walters@verbum.org>
4319         
4320         Patch from Ross Burton <ross@openedhand.com>
4321
4322         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4323
4324 2005-06-20  Colin Walters  <walters@verbum.org>
4325
4326         * configure.in: Add glib/examples.
4327
4328         * glib/Makefile.am: Add examples/
4329
4330         * glib/examples/.cvsignore
4331         * glib/examples/Makefile.am
4332         * glib/examples/example-client.c
4333         * glib/examples/example-service.c
4334         * glib/examples/example-service.xml
4335         * glib/examples/example-signal-emitter.c
4336         * glib/examples/example-signal-emitter.xml
4337         * glib/examples/example-signal-recipient.c:
4338         New files; GLib binding examples, ported from
4339         python/examples.
4340
4341 2005-06-20  Colin Walters  <walters@verbum.org>
4342
4343         * dbus/dbus-glib.h: 
4344         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4345         dbus_g_proxy_call.
4346
4347         * glib/dbus-binding-tool-glib.c: 
4348         * doc/dbus-tutorial.xml: 
4349         * test/glib/test-dbus-glib.c: Update for rename.
4350         
4351 2005-06-20  Colin Walters  <walters@verbum.org>
4352
4353         Patch suggested by Ross Burton <ross@openedhand.com>
4354
4355         * glib/dbus-gobject.c (export_signals): Free signal name.
4356         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4357         memory leak.  Add a bit of documentation.
4358         (dbus_g_method_return_error): Free context, and note we do
4359         so.
4360
4361 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4362
4363         * dbus/dbus-glib.h:
4364         * glib/dbus-gobject.c:
4365         * glib/dbus-gproxy.c:
4366         * glib/dbus-gvalue.c: Predeclare structs as 
4367         typedef struct _Something Something instead of 
4368         typedef struct Something Something, so we can 
4369         redeclare the prototypes. Other GNOME libraries 
4370         do this already.
4371
4372 2005-06-17  Colin Walters  <walters@verbum.org>
4373
4374         * tools/dbus-names-model.c (have_names_notify): Fix call
4375         to dbus_g_proxy_end_call.
4376         
4377 2005-06-17  Colin Walters  <walters@verbum.org>
4378
4379         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4380         spew warnings if we get malformed remote signals.
4381
4382         * glib/dbus-gobject.c (propsig_iterate): New function.
4383         (lookup_object_info): New function, extracted from
4384         lookup_object_and_method.
4385         (introspect_properties, introspect_signals): Delete; these
4386         are merged into write_interface.
4387         (write_interface): Write out signals and properties here;
4388         dump the org.gtk.object stuff and use the interface given
4389         in the introspection data blob.  Also fix up property XML.
4390         (lookup_values): New function.
4391         (introspect_interfaces): Gather a mapping from interface to a
4392         list of its methods, signals, and properties, then write out
4393         each interface.
4394         (lookup_object_and_method): Use lookup_object_info.
4395         (struct DBusGSignalClosure): Add interface.
4396         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4397         we can just use the constant data.
4398         (dbus_g_signal_closure_finalize): Don't free signal name.
4399         (signal_emitter_marshaller): Use interface from signal closure.
4400         (export_signals): Only export signals mentioned in introspection
4401         blob.
4402         (dbus_g_connection_register_g_object): Warn if we have no
4403         introspection data for an object.
4404         (funcsig_equal): Remove unused variable.
4405         (dbus_g_object_register_marshaller): Take varargs instead of
4406         list.
4407         (dbus_g_object_register_marshaller_array): New function,
4408         extracted from old dbus_g_object_register_marshaller.
4409
4410         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4411         signals and property data.
4412         (write_quoted_string): New function, extracted from generate_glue.
4413         (generate_glue): Write signals and properties to introspection
4414         blob.
4415
4416         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4417         exported_signals and exported_properties.
4418         (dbus_g_object_register_marshaller): Update prototype.
4419         (dbus_g_object_register_marshaller_array): Prototype.
4420         
4421         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4422
4423         * test/glib/test-service-glib.c: Add new test signals and method
4424         to emit them.
4425
4426         * test/glib/test-service-glib.xml: Add some test signals.
4427
4428         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4429         and my-object-marshal.h
4430         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4431         my-object-marshal.c.
4432         (my-object-marshal.c, my-object-marshal.h): Implement.
4433
4434         * test/glib/.cvsignore: Update.
4435
4436         * doc/TODO: Remove two GLib TODO items fixed by this
4437         patch.
4438
4439 2005-06-16  Colin Walters  <walters@verbum.org>
4440
4441         * doc/TODO: Update for GLib bindings.
4442         
4443 2005-06-16  Colin Walters  <walters@verbum.org>
4444
4445         * glib/dbus-binding-tool-glib.c:
4446         * glib/dbus-gobject.c:
4447         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4448         from Ross Burton, for his GLib bindings work.
4449
4450 2005-06-16  Colin Walters  <walters@verbum.org>
4451
4452         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4453         to iterate instead of walking to G_TYPE_INVALID.
4454
4455         Patch based on a patch from Ryan Gammon.
4456
4457 2005-06-16  Colin Walters  <walters@verbum.org>
4458
4459         * bus/bus.c (bus_context_new): Set parser to NULL
4460         after we unref it (Patch from Chris Boscolo, #2174).
4461         
4462 2005-06-16  Colin Walters  <walters@verbum.org>
4463
4464         * python/dbus_bindings.pyx.in: Import size_t,
4465         __int64_t, __uint64_t, and __signed.
4466
4467         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4468         Define cmsg struct, output it.
4469         (_dbus_read_credentials_unix_socket):
4470         Use cmsg struct.
4471         
4472         Patch from Joe Markus Clarke for FreeBSD support.
4473         
4474 2005-06-16  Colin Walters  <walters@verbum.org>
4475
4476         * tools/dbus-send.c (append_array): Use strtok.
4477         (append_dict): New function.
4478         (type_from_name): New function, extracted from main.
4479         (main): Handle sending dicts.
4480
4481         * tools/dbus-print-message.c (print_iter): Print dict
4482         entries.
4483         
4484 2005-06-16  Colin Walters  <walters@verbum.org>
4485
4486         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4487         values as the empty string (#2948).
4488         
4489 2005-06-16  Colin Walters  <walters@verbum.org>
4490
4491         * dbus/Makefile.am:
4492         * mono/doc/Makefile.am:
4493         * test/glib/Makefile.am:
4494
4495         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4496
4497 2005-06-16  Colin Walters  <walters@verbum.org>
4498
4499         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4500         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4501
4502         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4503         Increment pointer after swapping fixed array.  Add assertion
4504         for array length.
4505                 
4506 2005-06-15  Colin Walters  <walters@verbum.org>
4507
4508         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4509         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4510         
4511 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4512
4513         * NEWS: Update to 0.34
4514
4515 2005-06-15  David Zeuthen  <davidz@redhat.com>
4516
4517         * configure.in (LT_CURRENT): Revert back to 1 as the library
4518         hasn't changed and we've certainly not committed to protocol
4519         stability yet.  All this does is to break ABI. See commit note
4520         from hp@redhat.com 2005-05-05 for details.
4521         
4522 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4523
4524         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4525         (_dbus_connection_run_builtin_filters): New method
4526         (dbus_connection_dispatch): Run the builtin filters which in turn
4527         runs the peer filter which handles Ping messages.
4528
4529         * doc/TODO: 
4530          - Ping isn't handled: This patch fixes it
4531          
4532          - Add a test case for the Ping message: added TODO item
4533
4534 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4535
4536         * dbus/dbus-message.c:
4537         (dbus_message_has_path): New method
4538         (dbus_message_has_interface): New method
4539         (dbus_message_has_member): New method
4540
4541         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4542         New method
4543
4544         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4545         the keyring directory is private to the user
4546
4547         * doc/TODO:
4548          - The convenience functions in dbus-bus.h should perhaps have
4549          the signatures that they would have if they were autogenerated
4550          stubs. e.g. the acquire service function. We should also evaluate
4551          which of these functions to include, in light of the fact that
4552          GLib/Qt native stubs will probably also exist.: Punted
4553
4554          - add dbus_message_has_path(), maybe has_member/interface:
4555          fixed in this patch
4556
4557          - in dbus-keyring.c, enforce that the keyring dir is not
4558          world readable/writable: Fixed in this patch
4559
4560 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4561
4562         * dbus/dbus-marshal-validate.h: Added a new validation
4563         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4564         out of memory errors when validating signitures
4565
4566         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4567         in places where we previously used DBUS_VALID and a FALSE return 
4568         value to indicate OOM
4569         
4570         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4571         Use a stack to track the number of elements inside containers.  The 
4572         stack values are then used to validate that dict entries have only two
4573         elements within them.
4574         (validate_body_helper): check the reason for failure when validating
4575         varients
4576         
4577         * dbus/dbus-message.c (load_message): use 
4578         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4579         DBUS_VALID and a FALSE return value to indicate OOM
4580
4581         * doc/TODO: remove "- validate dict entry number of fields" as this
4582         patch fixes it
4583
4584 2005-06-14  David Zeuthen  <davidz@redhat.com>
4585
4586         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4587         watches (if applicable) and add new watches
4588
4589         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4590         (main): Setup SIGIO signal handler if using D_NOTIFY
4591
4592         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4593
4594         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4595         (merge_included): Also merge conf_dirs list
4596         (bus_config_parser_unref): Clear conf_dirs list
4597         (include_dir): Add directory to conf_dirs list
4598         (bus_config_parser_get_conf_dirs): New function
4599
4600         * bus/dir-watch.[ch]: New files
4601
4602         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4603
4604         * configure.in: Add checks for D_NOTIFY on Linux
4605
4606 2005-06-14  Colin Walters  <walters@verbum.org>
4607
4608         * glib/dbus-binding-tool-glib.c:
4609         * glib/dbus-gobject.c:
4610         * glib/dbus-gvalue.c: Fix indentation and brace style.
4611         
4612 2005-06-14  Ross Burton <ross@openedhand.com>.
4613
4614         * glib/dbus-glib.h: Make DBusGMethodInvocation
4615         a private structure.  Rearrange prototypes a bit.
4616         
4617         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4618         documentation for first_arg_type.
4619         
4620         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4621         here, add documentation.  Move dbus_g_method_return
4622         and dbus_g_method_return_error into public API
4623         section.
4624
4625 2005-06-14  Colin Walters  <walters@verbum.org>
4626
4627         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4628         Add missing return statements, noticed by Ross Burton.
4629         
4630 2005-06-13  Ross Burton <ross@openedhand.com>.
4631
4632         * glib/dbus-gobject.c: Handle errors on message
4633         demarshalling by sending error message back.
4634         * glib/dbus-gvalue.c: Initialize return variables.
4635
4636 2005-06-13  Colin Walters  <walters@verbum.org>
4637
4638         * glib/Makefile.am: Fix thinko in last patch.
4639
4640 2005-06-13  Colin Walters  <walters@verbum.org>
4641
4642         * glib/Makefile.am: Move dbus-gtype-specialized.c
4643         and dbus-gtype-specialized.h into a _HEADERS variable,
4644         install them.
4645
4646 2005-06-12  Colin Walters  <walters@verbum.org>
4647
4648         Async signals and various bugfixes and testing by
4649         Ross Burton <ross@openedhand.com>.
4650
4651         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4652         (dbus_gvalue_genmarshal_name_from_type)
4653         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4654         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4655         (dbus_g_value_types_init, dbus_gtype_from_signature)
4656         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4657         (dbus_gtypes_from_arg_signature): New function prototypes.
4658         (dbus_gvalue_demarshal): Take context and error arguments.
4659         (dbus_gvalue_demarshal_variant): New function.
4660         (dbus_gvalue_demarshal_message): New function.
4661         (dbus_gvalue_store): Delete.
4662
4663         * glib/dbus-gvalue.c:
4664
4665         File has been almost entirely rewritten; now we special-case
4666         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4667         hash tables correctly, etc.  Full support for recursive values
4668         is not yet complete.
4669
4670         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4671         argument of signal to G_TYPE_POINTER since we now pass a
4672         structure.
4673         (lookup_g_marshaller): Delete in favor of
4674         _dbus_gobject_lookup_marshaller.
4675         (marshal_dbus_message_to_g_marshaller): Use
4676         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4677         to handle remote signal callbacks.
4678         (dbus_g_proxy_new_from_proxy): New function; creates a new
4679         DBusGProxy by copying an existing one.
4680         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4681         (dbus_g_proxy_get_path): New functions.
4682         (dbus_g_proxy_marshal_args_to_message): New function;
4683         factored out of existing code.
4684         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4685         from a varargs array.
4686         (dbus_g_proxy_begin_call_internal): New function.
4687         (dbus_g_proxy_end_call_internal): New function.
4688         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4689         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4690         after collecting args into value array.
4691         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4692         invoke dbus_g_proxy_end_call_internal.
4693         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4694         end_call_internal.
4695         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4696         types.
4697         (array_free_all): New function.
4698         (dbus_g_proxy_add_signal): Take GTypes.
4699
4700         * glib/dbus-gobject.h:
4701         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4702         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4703         Prototype.
4704
4705         * glib/dbus-gobject.c: Add a global marshal_table hash which
4706         stores mappings from type signatures to marshallers.  Change lots
4707         of invocations of dbus_gtype_to_dbus_type to
4708         dbus_gtype_to_signature.
4709         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4710         (introspect_signals): Fix test for query.return_type.
4711         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4712         (invoke_object_method): Many changes.  Handle asynchronous
4713         invocations.  Convert arguments with
4714         dbus_gvalue_demarshal_message.  Handle errors.  Use
4715         DBusSignatureIter instead of strlen on args. Handle all arguments
4716         generically.  Special-case variants.
4717         (dbus_g_method_return, dbus_g_method_return_error): New function.
4718         (DBusGSignalClosure): New structure, closes over signal
4719         information.
4720         (dbus_g_signal_closure_new): New function.
4721         (dbus_g_signal_closure_finalize): New function.
4722         (signal_emitter_marshaller): New function; is special marshaller
4723         which emits signals on bus.
4724         (export_signals): New function; introspects object signals and
4725         connects to them.
4726         (dbus_g_object_type_install_info): Take GType instead of
4727         GObjectClass.
4728         (dbus_g_connection_register_g_object): Invoke export_signals.
4729         (dbus_g_connection_lookup_g_object): New function.
4730         (DBusGFuncSignature) New structure; used for mapping type
4731         signatures to marshallers.
4732         (funcsig_hash): New function; hashes DBusGFuncSignature.
4733         (funcsig_equal): New function; compares DBusGFuncSignature.
4734         (_dbus_gobject_lookup_marshaller): New function.
4735         (dbus_g_object_register_marshaller): New function; used to
4736         register a marshaller at runtime for a particular signature.
4737
4738         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4739
4740         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4741         which notes a server method implementation should be
4742         asynchronous.
4743
4744         * glib/dbus-binding-tool-glib.c
4745         (dbus_binding_tool_output_glib_server): Call
4746         dbus_g_value_types_init.
4747         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4748         variants specially.
4749         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4750         of a lookup function.
4751         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4752         (write_untyped_out_args): New method; write output arguments.
4753         (write_formal_declarations_for_direction): Function for
4754         writing prototypes.
4755         (write_formal_parameters_for_direction): Function for
4756         writing implementations.
4757         (write_typed_args_for_direction): Function for writing
4758         arguments prefixed with GTypes.
4759         (write_async_method_client): Write out async version
4760         of method.
4761
4762         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4763         (dbus_g_type_get_marshal_name): Move mapping from GType
4764         to marshal name into here.
4765         (dbus_g_type_get_c_name): Move into here.
4766         (compute_marshaller): Convert signature to type with
4767         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4768         (compute_marshaller_name): Ditto.
4769         (compute_marshaller): Handle async signal annotations.
4770         (gather_marshallers): Return if we don't have a known
4771         prefix.
4772         (generate_glue): Collect introspection blob here, and
4773         write all of the blob at the end.  This allows an object
4774         with multiple interfaces to work.
4775         Mark async methods in introspection blob.
4776
4777         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4778         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4779         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4780
4781         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4782         avoids people accidentally using DBUS_TYPE_* which should
4783         not be necessary anymore.
4784         Do include dbus-gtype-specialized.h, which are utilities
4785         for GLib container types.
4786         Add various #defines for types such as
4787         DBUS_TYPE_G_BOOLEAN_ARRAY.
4788         (DBusGValueIterator, DBusGValue): Define, not fully used
4789         yet.
4790         (dbus_g_value_get_g_type): Type for recursive value.
4791         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4792         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4793         (dbus_g_value_free): Prototypes.
4794         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4795         (dbus_g_proxy_set_interface): Prototype.
4796         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4797         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4798         types.
4799         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4800         Accessors.
4801         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4802         doing async invocations.
4803         (dbus_g_method_return, dbus_g_method_return_error):
4804         Prototypes.
4805         * doc/dbus-tutorial.xml: Update GLib section.
4806         
4807         * tools/dbus-viewer.c (load_child_nodes): Update
4808         for new invocation type of dbus_g_proxy_end_call.
4809         (load_from_service_thread_func): Ditto.
4810
4811         * tools/print-introspect.c (main): Ditto.
4812
4813         * tools/dbus-names-model.c (have_names_notify)
4814         (names_model_reload, names_model_set_connection)
4815         Use GTypes.
4816
4817         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4818         needed since Python bindings use GLib bindings.
4819
4820         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4821         Add --prefix argument.
4822
4823         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4824         unneeded --ignore-unsupported arg.
4825         
4826         * test/glib/test-service-glib.c: 
4827         * test/glib/test-service-glib.xml:
4828         * test/glib/test-dbus-glib.c: Add many more tests.
4829
4830 2005-06-06  David Zeuthen  <davidz@redhat.com>
4831
4832         * doc/TODO: Add item about need to remove deprecated functions.
4833
4834         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4835
4836         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4837         to repair the ABI which was broken with the last commit.
4838
4839 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4840
4841         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4842         (dbus_connection_disconnect): renamed to dbus_connection_close 
4843         for API symmetry with dbus_connection_open
4844         (_dbus_connection_open_internal): 
4845         s/dbus_connection_disconnect/dbus_connection_close
4846
4847         * dbus/dbus-bus.c (dbus_bus_get):
4848         s/dbus_connection_disconnect/dbus_connection_close
4849
4850         * bus/connection.c (bus_connections_unref, 
4851         bus_connections_setup_connection, bus_connections_expire_incomplete):
4852         s/dbus_connection_disconnect/dbus_connection_close
4853
4854         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4855         kill_client_connection_unchecked, check_hello_connection):
4856         s/dbus_connection_disconnect/dbus_connection_close
4857
4858         * bus/bus.c (new_connection_callback):
4859         s/dbus_connection_disconnect/dbus_connection_close
4860
4861         * tools/dbus-send.c (main):
4862         s/dbus_connection_disconnect/dbus_connection_close
4863
4864         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4865         s/dbus_connection_disconnect/dbus_connection_close
4866         
4867         * test/test-service.c (path_message_func, filter_func):
4868         s/dbus_connection_disconnect/dbus_connection_close
4869         
4870         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4871         
4872 2005-05-25  Colin Walters  <walters@verbum.org>
4873
4874         * dbus/dbus-protocol.h: Move various bus service #defines such
4875           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4876           dbus/dbus-shared.h.
4877         * dbus/dbus-shared.h: Various defines moved here.
4878         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4879
4880 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4881
4882         * python/__init__.py: Python bindings deserve a minor version
4883         update.  Upped to (0, 40, 2)
4884
4885 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4886
4887         * python/decorators.py: add explicitly_pass_message decorator
4888         for passing in the dbus message as keyword for edge case signal
4889         handling
4890
4891         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4892         to conform with what dbus expects for match rules
4893         (SignalMatchRule.execute): add the dbus message as a keyword
4894         if the signal handler has requested it
4895
4896         * python/examples/example/signal-recipient.py: added some more
4897         examples on how to hook up to signals
4898
4899 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4900
4901         * python/decorators.py: import dbus_bindings
4902
4903         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4904         SignalMatchNode): new classes that implement wildcard signal
4905         callback matching using a tree lookup. Heavily modified from a
4906         patch sent by Celso Pinto (fd.o bug #3241)
4907
4908         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4909         use new match classes to handle signals.
4910
4911 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4912         
4913         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4914
4915 2005-05-18  Havoc Pennington  <hp@redhat.com>
4916
4917         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4918         gettext. Not really worth requiring yet perhaps, but any
4919         production quality 1.0 would require it so we should go ahead and
4920         get things set up. We do have a couple token calls to
4921         bindtextdomain in the code already.
4922
4923 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4924
4925         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4926         when using recursive g_main_loops
4927
4928         * python/_dbus.py (class Bus): add the ProxyObjectClass
4929         alias for ProxyObject to make it easier for the Twisted 
4930         networking framework to integrate dbus.
4931
4932         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4933         alias for ProxyMethod to make it easier for the Twisted 
4934         networking framework to integrate dbus. 
4935
4936 2005-05-11  Ross Burton  <ross@openedhand.com>
4937
4938         * glib/dbus-glib-tool.c: Add --prefix argument.
4939         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4940         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4941         Add prefix argument.
4942         (generate_glue): Pass prefix argument down.
4943         (dbus_binding_tool_output_glib_server): Pass prefix to
4944         glib-genmarshal.
4945         
4946 2005-05-11  Colin Walters  <walters@verbum.org>
4947
4948         * tools/dbus-send.c (append_array): New function.
4949         (append_arg): Broken out from main.
4950         (main): Add cheesy hack to send arrays and variants.
4951         (usage): Update.
4952         * tools/dbus-print-message.c (print_iter): Broken out
4953         from main.
4954
4955 2005-05-11  Colin Walters  <walters@verbum.org>
4956
4957         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4958         New function, returns signature string for signature iter.
4959         * dbus/dbus-signature.h: Prototype it.
4960         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4961         New function, returns signature string for message iter.
4962         (dbus_message_iter_get_array_len): New function, returns
4963         length of array.
4964         (dbus_message_iter_get_fixed_array): Fix assertion; this
4965         function should be used when the iter is pointing to the
4966         contents of an array
4967         * dbus/dbus-message.h: Prototypes.
4968         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4969         New function; returns length of an array.
4970         * dbus/dbus-marshal-recursive.h: Prototype it.
4971         
4972 2005-05-11  Colin Walters  <walters@verbum.org>
4973
4974         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
4975         compilation error.
4976         
4977 2005-05-08  Havoc Pennington  <hp@redhat.com>
4978
4979         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
4980         daemon's pid, not the parent's pid, to the file descriptor.
4981         Reported by Taj Morton.
4982
4983 2005-05-05  Havoc Pennington  <hp@redhat.com>
4984
4985         * configure.in (LT_*): add notes on how the libtool versioning
4986         works to save thinking. Increment soname to indicate protocol
4987         breakage (though really the library interface hasn't changed I
4988         guess)
4989
4990         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
4991         verify the GUID received from server matches what we were
4992         expecting, if we had an expectation
4993
4994         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
4995         (_dbus_auth_get_guid_from_server): new function
4996         (send_begin): parse the OK args
4997
4998         * doc/dbus-specification.xml: add GUID to the auth protocol
4999
5000 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5001
5002         * Fix my name in previous changelog ;)
5003
5004         * python/proxies.py (ProxyObject.__getattr__): add further patch
5005         from Anthony Baxter to throw an AttributeError when python 
5006         __special__ functions are called instead of marshling them over 
5007         the bus (Bug#1685 comment 3).
5008
5009 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5010
5011         * python/Makefile.am: changed to use pyexecdir for the binding
5012         shared libraries (Bug#2494)
5013
5014         * python/exceptions.py: bring exceptions over from the bindings
5015         so they can be used in applications (Bug#2036)
5016         Make all exceptions derive from DBusException
5017
5018         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5019         of classes so that print obj doesn't throw an exception (Bug #1685)
5020
5021 2005-05-03  Ross Burton  <ross@openedhand.com>
5022
5023         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5024         Return if we get an error during registration.  Set up a
5025         weak reference on object to unregister if object is destroyed.
5026         (unregister_gobject): New function.
5027         
5028 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5029
5030         * python/dbus_bindings.pyx.in: 
5031         - added new type classes for hinting to the marashaler what type 
5032         to send over the wire
5033         - added int16 and uint16 marshalers
5034         - Fixed a bug in the type constants that caused int32 to go out
5035         as uint16 over the wire
5036         * python/dbus.py: split up into different files and renamed _dbus.py
5037         * python/__init__.py, python/_util.py, python/decorators.py, 
5038         python/exceptions.py, python/proxies.py, python/services.py,
5039         python/types.py: new files split off from dbus.py
5040         * python/Makefile.am: Add new files, remove dbus.py and 
5041         install all python files to <python module dir>/dbus
5042         * python/examples/*: Added #!/usr/bin/env python to the top of
5043         every example.  Patch provided by Tatavarty Kalyan
5044
5045 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5046
5047         * NEWS: Update to 0.33
5048
5049 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5050
5051         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5052         method for doing async calls
5053         (_pending_call_notification): New C function for handling pendning call
5054         callbacks
5055         (set_notify): New method for setting pending call notification
5056         
5057         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5058         Async capabilities added to remote method calls
5059         (Sender): class removed
5060         (RemoteService): class removed
5061         (ObjectTree): class removed for now
5062         (RemoteObject): Renamed to ProxyObject
5063         (RemoteMethod): Renamed to ProxyMethod
5064         (method): Decorator added for decorating python methods as dbus methods
5065         (signal): Decorator added for decorating python methods as signal emitters
5066         (ObjectType): Metaclass added for generating introspection data and the
5067         method callback vtable
5068         (Interface): Wrapper class added to wrap objects in a dbus interface
5069         (Object): Uses ObjectType as its metaclass and exports Introspect
5070         of the org.freedesktop.DBus.Introspectable interface
5071         (ValidationException, UnknownMethodException): new exceptions
5072
5073         * python/examples/*: Modified to fit with the new bindings
5074
5075 2005-04-23  Havoc Pennington  <hp@redhat.com>
5076
5077         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5078         reported by Tony Houghton
5079
5080         * test/test-service.c (main): test
5081         dbus_connection_get_object_path_data()
5082
5083         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5084         the exact_match
5085         (_dbus_object_tree_get_user_data_unlocked): new function used by
5086         dbus_connection_get_object_path_data()
5087         (do_register): add assertion test for get_user_data_unlocked
5088         (object_tree_test_iteration): more tests
5089
5090         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5091         new function from Dan Reed to let you get the user data from 
5092         dbus_connection_register_object_path()
5093
5094 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5095
5096         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5097         in numerous places that did not account for the NULL terminator
5098         (signature_from_seed): changed the manual string copy loop to 
5099         just use strcpy instead
5100         make check should now pass
5101
5102 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5103
5104         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5105         so that it allows messages that are not signals to pass in 
5106         NULL as the interface.
5107
5108 2005-04-18  David Zeuthen  <davidz@redhat.com>
5109
5110         * glib/dbus-gmain.c (io_handler_destroy_source): 
5111         (timeout_handler_destroy_source, connection_setup_free): 
5112         Also unref the source to avoid memory leaks.
5113
5114 2005-04-13  David Zeuthen  <davidz@redhat.com>
5115
5116         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5117         more reasonable, yet still totally arbitrary, value :-). 
5118
5119 2005-04-13  David Zeuthen  <davidz@redhat.com>
5120
5121         * doc/TODO: Added an "important for 1.0" item about selinux
5122         allow/deny messages
5123
5124 2005-04-13  David Zeuthen  <davidz@redhat.com>
5125
5126         * bus/selinux.c: Add c-file-style to top of file
5127         (log_audit_callback): Don't free the data here anymore
5128         (bus_selinux_check): Don't take spid and tpid since appending
5129         that to auxdata may OOM.
5130         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5131         to the caller if we are OOM by taking an error object.
5132         (bus_selinux_allows_send): -do-
5133
5134         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5135         and bus_selinux_allows_send
5136
5137         * bus/bus.c (bus_context_check_security_policy): Pass error and
5138         pass on OOM thrown by bus_selinux_allows_send()
5139
5140         * bus/services.c (bus_registry_acquire_service): Pass error and
5141         pass on OOM thrown by bus_selinux_allows_acquire_service()
5142
5143 2005-04-13  Havoc Pennington  <hp@redhat.com>
5144
5145         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5146         message at a time to avoid monopolizing the main loop, bug 
5147         #2953 from Benjamin Otte
5148
5149 2005-04-09  Havoc Pennington  <hp@redhat.com>
5150
5151         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5152         possible overlap, fix from Daniel Reed
5153         (fixup_alignment): fix signedness warnings
5154         (_dbus_string_append_unichar): ditto
5155
5156 2005-04-09  Havoc Pennington  <hp@redhat.com>
5157
5158         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5159
5160         * glib/dbus-glib-tool.c (main): fix warning
5161
5162         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5163
5164         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5165         add a new function that can be used in simple applications that
5166         don't have a main loop and are willing to block
5167
5168 2005-04-05  David Zeuthen  <davidz@redhat.com>
5169
5170         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5171
5172         * glib/dbus-gmain.c:
5173         (io_handler_destroy_source): Remove from list of IO handlers
5174         of the ConnectionSetup object
5175         (timeout_handler_destroy_source): -do- for timeout handlers
5176         (io_handler_source_finalized): Don't remove from list since
5177         we now do that in io_handler_destroy_source(). Renamed from
5178         io_handler_source_destroyed
5179         (timeout_handler_source_destroyed): -do- for timeout handlers
5180         (connection_setup_free): It is now safe to iterate over all
5181         IO and timeout handlers as the _destroy_source removes them
5182         from the list synchronously
5183
5184 2005-03-30  Havoc Pennington  <hp@redhat.com>
5185
5186         * configure.in: change check to gtk 2.4
5187
5188         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5189         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5190         to 2.4
5191
5192 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5193
5194         * News: Update 0.32
5195
5196         * HACKING: Fixed realease instructions.  configure.in should be updated to
5197           the next release by the person who made the last release.
5198
5199 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5200
5201         * python/lvalue_cast_post_process.py - removed.  Patch has been
5202           submitted to Pyrex maintainers that fixes gcc4.0 errors
5203
5204         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5205
5206 2005-03-24  Daniel Reed  <n@ml.org>
5207
5208         * tools/Makefile.am: Make print-introspect and
5209         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5210
5211 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5212
5213         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5214
5215         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5216           had in Red Hat packages for a while but for some reason never 
5217           got merged upstream
5218           (_dbus_is_a_number): New checks if a string
5219           can be converted to a number and does the conversion if it can
5220           (_dbus_user_database_lookup): Add check to see if the given username
5221           is a udi.  This allows udi's to be used instead of usernames in the
5222           config file.
5223           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5224           is a gdi.  This allows gdi's to be used instead of groupnames in the
5225           config file.
5226
5227 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5228
5229         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5230           code so that it compiles with gcc4.0
5231
5232         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5233           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5234           results back to dbus_binding.c
5235
5236 2005-03-20  Colin Walters  <walters@verbum.org>
5237
5238         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5239
5240         * configure.in: Require GTK+ 2.6.
5241         
5242 2005-03-20  Colin Walters  <walters@verbum.org>
5243
5244         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5245
5246 2005-03-17  Tom Parker  <palfrey@tevp.net>
5247
5248         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5249         print DBUS_UID_UNSET; instead print passed username.  Also
5250         be sure to actually use gid looked up in cache.
5251         
5252         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5253         for DBUS_GID_UNSET and groupname.
5254
5255 2005-03-17  Colin Walters  <walters@verbum.org>
5256
5257         * bus/print-introspect.c: Move to tools/.
5258         * bus/run-with-tmp-session-bus.sh: Ditto.
5259         
5260         * glib/Makefile.am (dbus-glib-bindings.h): Move
5261         generation to tools/Makefile.am.
5262
5263         * test/glib/run-test.sh: Update to handle move
5264         of run-with-tmp-session-bus.sh.
5265
5266         * test/glib/test-service-glib.c: Update to handle
5267         move of dbus-glib-bindings.h.
5268
5269         * tools/print-introspect.c: Moved here
5270         from bus/, and ported to GLib bindings.
5271
5272         * tools/run-with-tmp-session-bus.sh: Moved here
5273         from bus/.
5274
5275         * tools/Makefile.am: Generate dbus-glib-bindings.h
5276         and dbus-bus-introspect.xml here.
5277
5278         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5279         Update.
5280
5281 2005-03-17  Colin Walters  <walters@verbum.org>
5282
5283         * bus/driver.c (write_args_for_direction): Use
5284         _dbus_string_get_const_data to retrieve string;
5285         _dbus_string_get_const_data_len doesn't actually return
5286         a NULL-terminated substring.
5287
5288         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5289         (main): Change to use org_freedesktop_DBus_request_name
5290         instead of using g_proxy_begin_call/end_call.
5291
5292 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5293
5294         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5295         generating the finalizer.  Fixes from Ben Maurer.
5296
5297 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5298
5299         * mono/BusDriver.cs: Update method names: ListServices
5300         becomes ListNames; GetOwner becomes GetNameOwner.
5301
5302         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5303         onto the eval stack when removing the delegate.
5304
5305 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5306
5307         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5308         LT_CURRENT.  Set it to the autoconf variable.
5309                                                                                 
5310         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5311         classes that disconnects the signal handler delegate from the
5312         service object.  Fixes a big leak of proxy objects on the
5313         client side of things.  Patch from Ben Maurer
5314         <bmaurer@ximian.com>
5315
5316 2005-03-12  Colin Walters  <walters@verbum.org>
5317
5318         * bus/driver.c (write_args_for_direction): New function,
5319         parses a type signature into arguments and outputs to
5320         XML.
5321         (bus_driver_handle_introspect): Use it instead of
5322         hardcoding XML for certain signatures.
5323         
5324         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5325         dependency on dbus-daemon.
5326
5327         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5328         argument, pass it to dbus_binding_tool_output_glib_client.
5329
5330         * glib/dbus-binding-tool-glib.c
5331         (generate_client_glue): Protect against multiple inclusion.
5332         (dbus_binding_tool_output_glib_client): Add
5333         G_BEGIN_DECLS/G_END_DECLS.
5334
5335         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5336         Change to just take iface prefix directly.
5337         (write_formal_parameters): Clarify error message.
5338         (check_supported_parameters): New function; checks to see type
5339         signatures of method parameters are supported.
5340         (generate_client_glue): Handle ignore_unsupported flag.
5341         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5342         parameter.
5343
5344         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5345         --ignore-unsupported by default until glib bindings
5346         support arrays.
5347
5348 2005-03-11  Colin Walters  <walters@verbum.org>
5349
5350         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5351         install it.
5352
5353         * bus/print-introspect.c: New file; prints introspection
5354         data for a given name and object path.
5355
5356         * bus/run-with-tmp-session-bus.sh: New file, refactored
5357         from test/glib/run-test.sh.  Creates a temporary session
5358         bus and runs another program.
5359
5360         * test/glib/run-test.sh: Refactor to invoke
5361         run-with-tmp-session-bus.sh.
5362
5363         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5364         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5365         macros instead of hardcoding.
5366
5367         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5368
5369 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5370
5371         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5372         this unref; it doesn't match up evenly in some codepaths.
5373         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5374         this evenly matches with the ref near the top of this function.
5375
5376 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5377
5378         * dbus/dbus-object-tree.c
5379         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5380         and we try to unregister a path that's not registered, still go
5381         through the process of unlocking and don't just return.
5382
5383 2005-03-09  Colin Walters  <walters@verbum.org>
5384
5385         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5386         to this are generated for client-side wrappers.  Invokes a
5387         D-BUS method and returns reply values.  
5388
5389         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5390         function; writes signature string for argument direction.
5391         (write_args_for_direction): Change to pass input values directly
5392         instead of via address, and fix indentation.
5393         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5394         make generated wrappers inlineable.
5395
5396         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5397         note about using dbus_type_is_fixed.
5398
5399         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5400         dbus/dbus-signature.c as dbus_type_is_fixed.
5401
5402         All callers updated.
5403
5404         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5405         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5406
5407         * dbus/dbus-signature.h: Prototype.
5408
5409         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5410         error printf code.
5411
5412         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5413         appropriate instead of just freeing it.
5414         (main): Free returned strings using g_free.
5415
5416         * test/glib/Makefile.am (test-service-glib-glue.h)
5417         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5418
5419         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5420         simply maps a simple D-BUS type to GType.
5421         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5422         GType.
5423         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5424         initialize the value with it.
5425         (dbus_gvalue_binding_type_from_type): Unused, delete.
5426         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5427         various types instead of unmarshalling to value data directly.
5428         Remove can_convert boolean.
5429         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5430         returning directly instead of using can_convert boolean.
5431         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5432         Stores a GValue in a pointer to a value of its corresponding C
5433         type.
5434
5435         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5436         add dbus_gvalue_store.
5437
5438 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5439
5440         Fix a bunch of lifecycle and memory management problems
5441         in the mono bindings.
5442
5443         * mono/Arguments.cs (Arguments): Implement IDisposable
5444
5445         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5446         strictly a static class.
5447
5448         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5449         delegates into this file.
5450         (Connection): Implement IDisposable.
5451         (Dispose): Disconnect the connection and set the raw connection
5452         pointer to IntPtr.Zero.
5453         (~Connection): Call Dispose().
5454         (RegisterObjectPath): Added.  Manages the registration of object
5455         paths so we can cleanly disconnect them at dispose/finalize time.
5456         (UnregisterObjectPath): Ditto.
5457         (set_RawConnection): Unregister all of the object paths when
5458         changing the underlying DBusConnection.  Add them back onto the
5459         new connection, if any.
5460
5461         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5462         more unmanaged resources anymore, so it's not necessary.  Move all
5463         the DBusObjectPathVTable stuff out of here.
5464         (Handler): Save references to our delegates so that they don't get
5465         finalized.  Call Connection.RegisterObjectPath() instead of
5466         dbus_connection_register_object_path() directly.
5467         (Message_Called): Dispose the message after we're finished with
5468         it.
5469
5470         * mono/Message.cs (Message): Implement IDisposable.
5471         (Dispose): Dispose the Arguments, and set the RawMessage to
5472         IntPtr.Zero.
5473         (SendWithReplyAndBlock): We own the ref to the reply that comes
5474         back from dbus_connection_send_with_reply_and_block() so add a
5475         comment about that and unref it after we've constructed a managed
5476         MethodReturn class around it.  Fixes a big, big leak.
5477
5478         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5479         method.
5480         (BuildSignalHandler): After we've sent the Signal message, dispose
5481         of it.
5482         (BuildMethod): Dispose of the method call and reply messages after
5483         we've sent the message and extracted the data we want from the
5484         reply.
5485
5486         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5487         anymore.
5488         (Service_FilterCalled): Dispose of the message after we're
5489         finished with it.
5490
5491 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5492
5493         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5494         After we attach our pending call to the connection, unref
5495         it.  Fixes a leak.
5496  
5497         * mono/Connection.cs (set_RawConnection): Disconnect our
5498         filter and match callbacks from the old connection and
5499         reconnect them to the new connection, if any.
5500
5501         * mono/DBusType/Array.cs: "Code" is a static member, so
5502         don't use "this" to refer to it.  Fix for stricter checking
5503         in Mono 1.1.4.
5504  
5505         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5506         object path that we pass into unmanaged code.
5507  
5508         * mono/DBusType/String.cs (Append): Don't leak the string
5509         that we pass into unmanged code.
5510
5511 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5512         * NEWS: Update for 0.31
5513
5514         * configure.in: Release 0.31
5515         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5516
5517         * qt/Makefile.am: fixed build
5518
5519         * dbus/Makefile.am: soname bump for libdbus
5520
5521         * glib/Makefile.am: soname bump for libdbus-glib
5522
5523 2005-03-05  Havoc Pennington  <hp@redhat.com>
5524
5525         * dbus/dbus-sysdeps.c:
5526         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5527         value
5528         (_dbus_generate_random_bytes_buffer): fix return value
5529
5530         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5531         checks actually work, from Tom Parker <fdo@tevp.net>
5532
5533 2005-03-01  Colin Walters  <walters@verbum.org>
5534
5535         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5536         functions copied from dbus-glib-tool.c.
5537         (main): Convert lots of error code to use them.
5538         Also add some testing for introspection bits.
5539
5540 2005-03-01  Colin Walters  <walters@verbum.org>
5541         
5542         * doc/TODO: Remove introspection signature TODO.
5543
5544 2005-02-27  Colin Walters  <walters@verbum.org>
5545
5546         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5547         Change return value to const char * instead of int so we can do
5548         full signatures.
5549         (struct PropertyInfo, struct ArgInfo): Store char *.
5550         (property_info_new, arg_info_new): Update parameters, strdup.
5551         (property_info_unref, arg_info_unref): Free.
5552
5553         * glib/dbus-gidl.h: Update prototypes.
5554
5555         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5556         (validate_signature): New function, just validates signature and
5557         sets GError.
5558         (parse_property, parse_arg): Invoke validate_signature.  Store
5559         signature instead of just type code.
5560
5561         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5562         function to return a primary type for a signature, dropping
5563         information about types in container types.
5564         (dbus_gvalue_genmarshal_name_from_type)
5565         (dbus_gvalue_binding_type_from_type)
5566         (dbus_gvalue_ctype_from_type): Update to take full signature
5567          instead of type code.
5568         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5569
5570         * glib/dbus-gvalue.h: Update prototypes for above.
5571
5572         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5573         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5574         (introspect_properties, introspect_signals, write_interface):
5575         Update to handle signatures, and remove usage of
5576         _dbus_gutils_type_to_string.
5577         (handle_introspect): Print out type codes instead of e.g. "string"
5578         in hardcoded introspection XML; also use x_AS_STRING constants
5579         instead of hardcoding in string.
5580
5581         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5582         to string.  Remove usage of _dbus_gutils_type_to_string.
5583
5584         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5585
5586         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5587         deletion.
5588         
5589         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5590         (compute_marshaller_name, generate_glue): Handle signature change
5591         to string.
5592         (write_formal_parameters, write_args_for_direction): Ditto, and
5593         remove FIXME.
5594
5595         * tools/dbus-tree-view.c (type_to_string): Delete.
5596         (info_set_func_text): Update to print full signatures.
5597
5598         * test/glib/test-service-glib.xml: Change types to new
5599         introspection format.
5600
5601 2005-02-26  Havoc Pennington  <hp@redhat.com>
5602
5603         * doc/TODO: remove the "guid" item
5604
5605         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5606         (with_bus_thread_func): use open_private
5607
5608         * dbus/dbus-connection.c (dbus_connection_open_private): new
5609         function that works like the old dbus_connection_open()
5610         (dbus_connection_open): now returns an existing connection if
5611         possible
5612
5613         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5614         through the GUID to the transport
5615
5616         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5617         GUID in hex-encoded form.
5618
5619         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5620         pass GUID argument in to the transport
5621
5622         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5623         guid argument
5624
5625         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5626
5627         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5628
5629 2005-02-25  Havoc Pennington  <hp@redhat.com>
5630
5631         * doc/dbus-specification.xml: document the GUID thing
5632
5633         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5634         globally unique ID for the server, and put a "guid=hexencoded"
5635         field in the address
5636
5637         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5638
5639         * dbus/dbus-message.c: ditto
5640
5641         * dbus/dbus-dataslot.c: ditto
5642
5643         * dbus/dbus-list.c: ditto
5644
5645         * dbus/dbus-internals.h: wait, just include
5646         dbus-threads-internal.h here
5647         
5648         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5649         use in main library
5650
5651         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5652
5653 2005-02-24  Colin Walters  <walters@verbum.org>
5654
5655         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5656
5657 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5658
5659         * glib/Makefile.am: added dbus-gobject.h to sources list
5660         so distcheck doesn't fail
5661         
5662 2005-02-24  Havoc Pennington  <hp@redhat.com>
5663
5664         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5665         you must disconnect before unref, since locking and other things
5666         are screwed up otherwise. Fix assorted other locking stuff.
5667
5668         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5669         fix compilation
5670
5671         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5672         into a private header and don't export from the library
5673
5674         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5675
5676 2005-02-24  Colin Walters  <walters@verbum.org>
5677         
5678         * dbus/dbus-signature.c: New file; implements various functions
5679         related to type signatures.  Includes an interator for parsing,
5680         validation functions.
5681         (dbus_type_is_basic): Moved here from
5682         dbus-marshal-basic.c:_dbus_type_is_basic.
5683         (dbus_type_is_container): Moved here from
5684         dbus-marshal-basic.c:_dbus_type_is_container.
5685
5686         All callers of _dbus_type_is_container and _dbus_type_is_basic
5687         updated, and include dbus-signature.h.
5688
5689         * dbus/dbus-signature.h: New file; prototypes for the above.
5690
5691         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5692         dbus-signature.h.
5693
5694         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5695         function factored out of _dbus_first_type_in_signature.
5696         (_dbus_first_type_in_signature_c_str): New function; returns first
5697         type code for a type signature character.
5698
5699         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5700         handle function moves.
5701
5702         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5703
5704         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5705         function; skips to next complete type in type signature.
5706         Implemented using previous skip_one_complete_type.  Now
5707         skip_one_complete_type just delegates to
5708         _dbus_type_signature_next.
5709
5710         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5711         to dbus-signature.c
5712         (_dbus_type_is_container): Ditto.
5713
5714         * doc/dbus-specification.xml: Update introspection sample to
5715         use real type signatures.
5716
5717         * dbus/dbus-test.h: Prototype signature test.
5718
5719         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5720         signature tests.
5721
5722         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5723
5724 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5725
5726         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5727         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5728
5729 2005-02-21  Colin Walters  <walters@verbum.org>
5730
5731         * dbus/dbus-test-main.c (main): Take optional specific test
5732         argument.
5733
5734         * dbus/dbus-test.c (run_test): New function, runs a test function
5735         with no data directory.
5736         (run_data_test): Like above, but takes data directory.
5737         (dbus_internal_do_not_use_run_tests): Take
5738         specific test argument.  Replace lots of cut n' paste code
5739         with run_test and run_data_test.
5740
5741         * dbus/dbus-test.h: Update prototype for
5742         dbus_internal_do_not_use_run_tests.
5743
5744 2005-02-20  Havoc Pennington  <hp@redhat.com>
5745
5746         Fix bugs reported by Daniel P. Berrange
5747         
5748         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5749         (protected_change_watch): new function
5750         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5751         (_dbus_server_add_watch): change to work like the
5752         dbus-connection.c equivalents; like those, probably kind of
5753         busted, but should at least mostly work for now
5754         (dbus_server_disconnect): drop the lock if we were already
5755         disconnected, patch from Daniel P. Berrange
5756
5757         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5758         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5759         same stuff
5760
5761         * doc/TODO: todo about unscrewing this mess
5762
5763 2005-02-19  Colin Walters  <walters@verbum.org>
5764
5765         * glib/dbus-binding-tool-glib.c
5766         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5767
5768         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5769         as errno.h and sys/stat.h.
5770         (lose): New function, prints error with
5771         newline and exits.
5772         (lose_gerror): Similar, but takes GError for message.
5773         (main): Add --output argument to specify output file to write to,
5774         instead of always printing to stdout.  In this mode, determine
5775         timestamps on source files to see whether any are newer than the
5776         target file.  If not, exit.  Also convert a number of error
5777         messages to use lose (since it's shorter), and switch to using
5778         g_io_channel_shutdown.
5779
5780 2005-02-19  Havoc Pennington  <hp@redhat.com>
5781
5782         * glib/dbus-gobject.c
5783         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5784
5785         * glib/dbus-glib.c: fix doxygen warnings
5786
5787         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5788         is found on an <arg>
5789
5790 2005-02-17  Colin Walters  <walters@verbum.org>
5791
5792         * glib/dbus-gobject.h: Don't export
5793         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5794         
5795         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5796         (invoke_object_method): Handle it.
5797
5798         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5799         Handle rename.
5800         
5801 2005-02-17  Colin Walters  <walters@verbum.org>
5802
5803         * bus/.cvsignore, doc/.cvsignore
5804         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5805         Update.
5806
5807 2005-02-17  Colin Walters  <walters@verbum.org>
5808         
5809         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5810         Rename to DBUS_SERVICE_DBUS.
5811         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5812         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5813         Change the value from "org.freedesktop.Local"
5814         to "org.freedesktop.DBus.Local".
5815         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5816         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5817         DBUS_INTERFACE_INTROSPECTABLE.
5818         Change the value from "org.freedesktop.Introspectable"
5819         to "org.freedesktop.DBus.Introspectable".
5820         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5821         DBUS_INTERFACE_PROPERTIES.
5822         Change the value from "org.freedesktop.Properties"
5823         to "org.freedesktop.DBus.Properties".
5824         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5825         DBUS_INTERFACE_PEER.
5826         Change the value from "org.freedesktop.Peer"
5827         to "org.freedesktop.DBus.Peer".
5828         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5829         DBUS_INTERFACE_LOCAL.
5830         Change the value from "org.freedesktop.Local"
5831         to "org.freedesktop.DBus.Local".
5832
5833         All other users of those constants have been changed.
5834
5835         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5836
5837         * glib/dbus-gobject.c (handle_introspect): Use constants.
5838
5839         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5840
5841 2005-02-17  Colin Walters  <walters@verbum.org>
5842
5843         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5844         (parse_node, parse_interface, parse_method, parse_signal)
5845         (parse_property, parse_annotation): Lose if we're currently in an
5846         annotation.
5847         (parse_annotation): New function.
5848         (parser_start_element, parser_end_element): Handle annotation.
5849         (parse_method, parse_interface): Remove support for c_name attribute,
5850         switch to annotations.
5851
5852         * glib/dbus-gidl.h (interface_info_get_binding_names)
5853         (method_info_get_binding_names)
5854         (interface_info_get_binding_name, method_info_get_binding_name)
5855         (interface_info_set_binding_name, method_info_set_binding_name):
5856         Remove.
5857         (interface_info_get_annotations, method_info_get_annotations)
5858         (interface_info_get_annotation, method_info_get_annotation)
5859         (interface_info_add_annotation, method_info_add_annotation):
5860         Prototype.
5861
5862         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5863         for "bindings".
5864         (struct MethodInfo): Ditto.
5865         Straightfoward conversion of binding methods into annotation methods
5866         as prototyped.
5867
5868         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5869
5870         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5871
5872         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5873         Use new annotation API.
5874
5875         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5876         annotation element.
5877         
5878         * doc/dbus-specification.xml: Discuss introspection annotations,
5879         include list of well-known annotations.
5880
5881         * test/glib/test-service-glib.xml: Make validate against new DTD.
5882
5883 2005-02-17  Colin Walters  <walters@verbum.org>
5884
5885         This patch is based on initial work from
5886         Paul Kuliniewicz <kuliniew@purdue.edu>.
5887
5888         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5889         initialization of GValue from dbus type to here.
5890         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5891         for the "glib-genmarshal" program from a DBus type.
5892         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5893         into the C name for it we use in the glib bindings.
5894         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5895         glib C type (not GValue).
5896         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5897
5898         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5899         from dbus-gobject.c.
5900
5901         * glib/dbus-gutils.h: Prototype it.
5902
5903         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5904         (marshal_dbus_message_to_g_marshaller): Use new shared function
5905         dbus_glib_marshal_dbus_message_to_gvalue_array.
5906
5907         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5908         Will be changed once we have annotations.
5909
5910         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5911         GStaticRWLock.  Callers updated.
5912         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5913         (string_table_next): New function for iterating over zero-terminated
5914         string value array.
5915         (string_table_lookup): New function; retrieves specific entry in
5916         array.
5917         (get_method_data): New function; look up method data in object data chunk.
5918         (object_error_domain_prefix_from_object_info)
5919         (object_error_code_from_object_info): New functions, but not implemented yet.
5920         (method_interface_from_object_info): New function; retrieve interface name.
5921         (method_name_from_object_info): New function; retrieve method name.
5922         (method_arg_info_from_object_info): New function; retrieve argument data.
5923         (arg_iterate): New function; iterates over serialized argument data.
5924         (method_dir_signature_from_object_info): New function; returns a
5925         GString holding type signature for arguments for just one
5926         direction (input or output).
5927         (method_input_signature_from_object_info)
5928         (method_output_signature_from_object_info): New functions.
5929         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5930         converts dbus message arguments into a GValue array.  Used for both
5931         signal handling and method invocation.
5932         (struct DBusGlibWriteIterfaceData): New utility structure.
5933         (write_interface): New function; generate introspection XML for
5934         an interface.
5935         (introspect_interfaces): New function; gathers all interface->methods,
5936         generates introspection XML for them.
5937         (handle_introspect): Invoke introspect_interfaces.
5938         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5939         (lookup_object_and_method): New function; examines an incoming message
5940         and attempts to match it up (via interface, method name, and argument
5941         signature) with a known object and method.
5942         (gerror_domaincode_to_dbus_error_name): New function; converts a
5943         GError domain and code into a DBus error name.  Needs GError data
5944         added to object introspection to work well.
5945         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5946         GError.
5947         (invoke_object_method): New function to invoke an object method
5948         looked up via lookup_object_and_method.  Parses the incoming
5949         message, turns it into a GValue array, then invokes the marshaller
5950         specified in the DBusGMethodInfo.  Creates a new message with
5951         either return values or error message as appropriate.
5952         (gobject_message_function): Invoke lookup_object_and_method and
5953         invoke_object_method.
5954
5955         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5956         (enum DBusBindingOutputMode): New enum for binding output modes.
5957         (pretty_print): Print binding names.
5958         (dbus_binding_tool_error_quark): GError bits.
5959         (version): Fix typo.
5960         (main): Create GIOChannel for output.  Parse new --mode argument,
5961         possible values are "pretty-print", "glib-server", "glib-client".
5962         Use mode to invoke appropriate function.
5963         
5964         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5965
5966         * glib/dbus-glib-tool.h: New header, just includes GError bits
5967         for now.
5968
5969         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5970         maps binding style to name.
5971         (struct MethodInfo): Ditto.
5972         (get_hash_keys, get_hash_key): Utility function, returns keys for
5973         a GHashTable.
5974         (interface_info_new, method_info_new): Initialize bindings.
5975         (interface_info_unref, method_info_unref): Destroy bindings.
5976         (method_info_get_binding_names, method_info_get_binding_name)
5977         (interface_info_get_binding_names, interface_info_get_binding_name):
5978         Functions for retrieving binding names.
5979         (method_info_set_binding_name, interface_info_set_binding_name):
5980         Functions for setting binding names.
5981
5982         * glib/dbus-binding-tool-glib.h: New file, has prototypes
5983         for glib binding generation.
5984
5985         * glib/dbus-binding-tool-glib.c: New file, implements server-side
5986         and client-side glib glue generation.
5987
5988         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
5989         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
5990         dbus-glib-tool.h.
5991
5992         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
5993         of using GClosureMarshal directly.
5994         (struct DBusGObjectInfo): Add n_infos member.
5995
5996         * test/glib/test-service-glib.xml: New file; contains introspection data
5997         for MyTestObject used in test-service-glib.c.
5998
5999         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6000         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6001         (my_object_uppercase, my_object_many_args): New test methods.
6002         (main): Use dbus_g_object_class_install_info to include generated object
6003         info.
6004
6005         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6006         as well as client-side bindings.
6007
6008         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6009         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6010         using both the dbus_gproxy stuff directly as well as the generated bindings.
6011
6012 2005-02-15  Havoc Pennington  <hp@redhat.com>
6013
6014         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6015         complete a pending call, don't run filters first.
6016
6017         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6018         dbus_pending_call_steal_reply
6019
6020         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6021         _dbus_connection_block_pending_call
6022         (dbus_pending_call_get_reply): change to steal_reply and return a
6023         ref
6024
6025         * dbus/dbus-connection.c
6026         (dbus_connection_send_with_reply_and_block): port to work in terms
6027         of DBusPendingCall
6028         (_dbus_connection_block_pending_call): replace block_for_reply
6029         with this
6030
6031 2005-02-14  Havoc Pennington  <hp@redhat.com>
6032
6033         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6034         properly handle looking up group information by name; fix 
6035         from j@bootlab.org
6036
6037 2005-02-13  Havoc Pennington  <hp@redhat.com>
6038
6039         * dbus/dbus-connection.c (dbus_connection_return_message) 
6040         (dbus_connection_borrow_message): hold dispatch lock while message
6041         is outstanding
6042         (_dbus_connection_block_for_reply): hold dispatch lock while we
6043         block for the reply, so nobody steals our reply
6044         (dbus_connection_pop_message): hold the dispatch lock while we
6045         pluck the message
6046
6047 2005-02-13  Havoc Pennington  <hp@redhat.com>
6048
6049         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6050         (_dbus_connection_release_dispatch)
6051         (_dbus_connection_acquire_io_path)
6052         (_dbus_connection_release_io_path): make the mutex and condvar
6053         control access to the "acquired" flag. Drop the connection lock
6054         while waiting on the condvar. Hopefully these are baby steps in
6055         roughly the right direction.
6056
6057 2005-02-13  Havoc Pennington  <hp@redhat.com>
6058
6059         * dbus/dbus-connection.c: use separate mutexes for the condition
6060         variables; this is some kind of baseline for sanity, but the
6061         condition variables still aren't used correctly afaict
6062
6063 2005-02-13  Havoc Pennington  <hp@redhat.com>
6064
6065         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6066         fix a double-unlock
6067
6068         * dbus/dbus-connection.c
6069         (_dbus_connection_detach_pending_call_unlocked): add this
6070
6071         Initial semi-correct pass through to fix thread locking; there are
6072         still some issues with the condition variable paths I'm pretty
6073         sure
6074         
6075         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6076         lock/unlock calls
6077
6078         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6079         rename to add _unlocked
6080         (struct DBusConnection): move "dispatch_acquired" and
6081         "io_path_acquired" to use only one bit each.
6082         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6083         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6084         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6085         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6086         (_dbus_connection_remove_timeout) 
6087         (_dbus_connection_toggle_timeout): drop lock when calling out to
6088         user functions; done in a hacky/bad way.
6089         (_dbus_connection_send_and_unlock): add a missing unlock
6090         (_dbus_connection_block_for_reply): add a missing unlock
6091
6092         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6093         drop lock in a hacky probably unsafe way to call out to user
6094         function
6095
6096 2005-02-12  Havoc Pennington  <hp@redhat.com>
6097
6098         * tools/dbus-tree-view.c (info_set_func_text): display more
6099         details on args
6100
6101         * bus/driver.c (bus_driver_handle_list_services): list the bus
6102         driver
6103
6104         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6105
6106         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6107         (method_info_get_n_args): new function
6108
6109 2005-02-12  Havoc Pennington  <hp@redhat.com>
6110
6111         * bus/driver.c (bus_driver_handle_introspect): add introspection
6112         for bus driver
6113
6114 2005-02-12  Havoc Pennington  <hp@redhat.com>
6115
6116         * bus/driver.c: put the signature of each bus driver method in the
6117         table of handlers and check it on incoming calls; this isn't
6118         really useful, but going to add introspect support in a minute.
6119
6120 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6121
6122         * mono/Connection.cs: The unpredictability of finalizers in mono
6123         prevents us from deterministically disconnecting the filters from
6124         the Service class's finalizer, so move tracking of filters and
6125         matches here.  Add API for that.
6126
6127         * mono/Service.cs: Remove the code, add code which calls the
6128         methods now on the Connection class.
6129
6130 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6131
6132         * python/dbus.py (class Sender): added to support dbus signals better
6133         (Bus::add_signal_receiver): added expand_args parameter which defaults
6134         to True.  When expand args is True the signal handler will pass the 
6135         message arguments as parameters to the signal handler.  If False
6136         revert to previous behavior where the signal handler must get the
6137         argument list from the message.  This is to help port applications
6138         like HAL that have a tendancy to send variable length argument lists.
6139         self._match_rule_to_receivers is now a dict of dicts.
6140         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6141         removing it from a list
6142         (Bus::_signal_func): change signal handlers so that interface,
6143         signal_name, service, path and message are packed into a Sender
6144         object and that is passed to the handler.  If expand_args is True
6145         extract the args list from the message and append it to the parameter
6146         list
6147         
6148         * python/dbus_bindings.pyx.in (class Signature): added to support 
6149         signiature types
6150         (MessageIter::__init__): changed iteration limit to match D-BUS
6151         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6152         STRUCT and VARIENT type support
6153         (MessageIter::python_value_to_dbus_sig): made recursive to support
6154         recursive types
6155         (MessageIter::append*): added Signature, dict, tuple 
6156         support
6157
6158         * python/examples/example-client.py: added examples of getting tuples
6159         and dicts
6160
6161         * python/examples/example-service.py: added examples of sending tuples
6162         and dicts
6163
6164         * python/examples/example-signal-recipient.py: Fixed to handle new
6165         signal callback format
6166
6167 2005-02-10  Havoc Pennington  <hp@redhat.com>
6168
6169         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6170         (call dbus_g_proxy_add_signal)
6171
6172         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6173         escape the hostname
6174         (_dbus_server_new_for_domain_socket): escape the path
6175
6176         * dbus/dbus-address.c (dbus_address_escape_value): new
6177         (dbus_address_unescape_value): new
6178         (dbus_parse_address): unescape values
6179
6180         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6181
6182         * doc/dbus-specification.xml: explain how to escape values in
6183         addresses
6184
6185 2005-02-10  Havoc Pennington  <hp@redhat.com>
6186
6187         * dbus/dbus-message-factory.c (generate_special): modify test to
6188         avoid using a non-basic dict key
6189
6190         * dbus/dbus-marshal-validate-util.c: add test for the below
6191
6192         * doc/dbus-specification.xml: require that dict keys are a basic
6193         type
6194
6195         * dbus/dbus-marshal-validate.c
6196         (_dbus_validate_signature_with_reason): require that dict key is a
6197         basic type
6198
6199 2005-02-10  Havoc Pennington  <hp@redhat.com>
6200
6201         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6202         change to be _and_unlock instead of _unlocked
6203
6204         * dbus/dbus-connection.c
6205         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6206         have no_update so we can find this bug quickly in future
6207
6208 2005-02-10  Havoc Pennington  <hp@redhat.com>
6209
6210         * dbus/dbus-message-util.c (verify_test_message): tests for string
6211         array
6212
6213         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6214         support for arrays of string/signature/path
6215
6216 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6217
6218         * dbus/dbus-connection.c
6219         (_dbus_connection_queue_received_message_link,
6220         _dbus_connection_message_sent): Add the path to
6221         the verbose output.
6222         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6223         _dbus_connection_send_preallocated_unlocked(), updated the
6224         dispatch status, and unlocks.  Fixes a bug where certain
6225         situations (like a broken pipe) could cause a Disconnect message
6226         to not be sent, tricking the bus into thinking a service was still
6227         there when the process had quit.
6228         (_dbus_connection_send_preallocated): Call
6229         _dbus_connection_send_preallocated_and_unlock().
6230         (_dbus_connection_send_and_unlock): Added.  Calls
6231         _dbus_connection_send_preallocated_and_unlock().
6232         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6233         (dbus_connection_send_with_reply): Update the dispatch status and
6234         unlock.
6235
6236         * mono/Service.cs (~Service): Added.  Removes the filter so that
6237         we don't get unmanaged code calling back into a GCed delegate.
6238         (RemoveFilter); Added.
6239
6240 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6241
6242         * dbus/dbus-message.c (dbus_message_iter_open_container):
6243         - Removed check for iterator type being an array because
6244         get_arg_type does not work with writer iterators
6245         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6246
6247 2005-02-07  Havoc Pennington  <hp@redhat.com>
6248
6249         * doc/dbus-specification.xml: some more language cleanups; add
6250         stuff about how to deal with invalid protocol and extension
6251         points; add _ to allowed chars in auth commands; add EXTENSION_
6252         auth command prefix
6253
6254 2005-02-06  Havoc Pennington  <hp@redhat.com>
6255
6256         * s/expected/required/ in a couple places for clarity
6257
6258 2005-02-07  Colin Walters  <walters@verbum.org>
6259
6260         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6261         sender or proposed_recipient.
6262
6263 2005-02-06  Havoc Pennington  <hp@redhat.com>
6264
6265         * dbus/dbus-message-factory.c (generate_special): more tests
6266
6267         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6268         array length that exceeds the maximum
6269
6270 2005-02-05  Havoc Pennington  <hp@redhat.com>
6271
6272         * dbus/dbus-message-factory.c (generate_special): more test cases,
6273         increasing coverage
6274
6275         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6276         reason why a signature was invalid
6277
6278         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6279         skip the length of the string before we look at it in validation
6280
6281         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6282         equal_substring
6283
6284         * dbus/dbus-message.c (_dbus_message_loader_new): default
6285         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6286
6287 2005-02-05  Havoc Pennington  <hp@redhat.com>
6288
6289         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6290         if the signature of a variant was empty
6291         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6292         struct with no element type)
6293
6294         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6295         mangled messages to break things
6296
6297 2005-02-04  Havoc Pennington  <hp@redhat.com>
6298
6299         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6300         g_quark_try_string() so it actually can return 0
6301         (dbus_g_proxy_connect_signal): ditto
6302
6303 2005-02-04  Havoc Pennington  <hp@redhat.com>
6304
6305         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6306         bogus warning
6307         (tristring_from_message): assert cleanly on null path/interface
6308         (should not be possible though I decided later)
6309         (dbus_g_proxy_dispose): move proxy manager unregistration here
6310         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6311         g_return_if_fail() checks
6312
6313 2005-02-04  Havoc Pennington  <hp@redhat.com>
6314
6315         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6316
6317         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6318         (with some minor changes)
6319
6320         * doc/dbus-specification.xml: add deprecated attribute to
6321         introspection format
6322
6323 2005-01-31  Havoc Pennington  <hp@redhat.com>
6324
6325         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6326         think it's sort of right
6327
6328 2005-01-30  Havoc Pennington  <hp@redhat.com>
6329
6330         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6331
6332 2005-01-30  Havoc Pennington  <hp@redhat.com>
6333
6334         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6335
6336         * autogen.sh: change to autotools 1.9
6337
6338         * glib/dbus-gproxy.c: completely change how signals work
6339         (dbus_g_proxy_add_signal): new function to specify signature of a
6340         signal
6341         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6342         and g_warning if the incoming message has the wrong signature.
6343
6344 2005-01-30  Havoc Pennington  <hp@redhat.com>
6345
6346         * tools/dbus-names-model.c (have_names_notify): fix this
6347
6348         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6349         up the string array handling a bit 
6350
6351 2005-01-30  Havoc Pennington  <hp@redhat.com>
6352
6353         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6354         (dbus_g_pending_call_cancel): new function
6355
6356         * dbus/dbus-glib.h: move GType decls for connection/message here;
6357         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6358         here, just kind of rationalizing how we handle all that
6359
6360         * tools/dbus-names-model.c: new file for a tree model listing the
6361         services on a bus
6362
6363         * tools/dbus-tree-view.c (model_new): use proper typing on the
6364         model rows
6365
6366 2005-01-30  Havoc Pennington  <hp@redhat.com>
6367
6368         * glib/dbus-gmain.c: add a custom GSource back that just checks
6369         whether the message queue has anything in it; otherwise, there are 
6370         cases where we won't see messages in the queue since there was no 
6371         IO visible to the glib main loop
6372
6373         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6374         increase default message timeout to 25 seconds
6375
6376 2005-01-30  Havoc Pennington  <hp@redhat.com>
6377
6378         * test/glib/test-profile.c (no_bus_stop_server): remove the
6379         warning about the g_warning that I just fixed
6380
6381         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6382         custom source, seems to be a lot easier to understand and work
6383         better.
6384
6385 2005-01-30  Havoc Pennington  <hp@redhat.com>
6386
6387         I think this main loop thing is conceptually broken, but here are 
6388         some band aids. I'll maybe rewrite it in a minute.
6389         
6390         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6391         custom GSource, so don't pass it in; confusing
6392         (gsource_server_finalize, gsource_connection_finalize): add
6393         finalize handlers that remove all the watches.  
6394
6395 2005-01-30  Havoc Pennington  <hp@redhat.com>
6396
6397         * glib/dbus-gobject.c (introspect_properties): fix the XML
6398         generated
6399
6400         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6401         which effectively detects the use of freed messages
6402
6403         * glib/dbus-gobject.c (handle_introspect): modify and return the
6404         reply message instead of the incoming message
6405
6406         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6407         gee, maybe it should SEND THE XML instead of just making a string
6408         and freeing it again ;-)
6409
6410         * tools/dbus-print-message.c (print_message): improve printing of
6411         messages
6412
6413         * configure.in: add debug-glib.service to the output
6414
6415 2005-01-30  Havoc Pennington  <hp@redhat.com>
6416
6417         dbus-viewer introspected and displayed the bus driver
6418         
6419         * dbus/dbus-object-tree.c 
6420         (object_tree_test_iteration): add tests for a handler registered on "/"
6421
6422         * dbus/dbus-object-tree.c
6423         (_dbus_decompose_path): fix to handle path "/" properly
6424         (run_decompose_tests): add tests for path decomposition
6425         
6426         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6427         properly
6428
6429         * glib/dbus-gobject.c (handle_introspect): fix quotes
6430
6431         * test/glib/run-test.sh: support launching the bus, then running
6432         dbus-viewer
6433
6434         * test/glib/test-service-glib.c (main): put in a trivial gobject
6435         subclass and register it on the connection
6436
6437         * bus/driver.c (bus_driver_handle_introspect): implement
6438         introspection of the bus driver service
6439
6440         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6441         identifiers, doctype decl
6442
6443         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6444         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6445         returning the service unchanged.
6446         (bus_driver_handle_message): remove old check for reply_serial in
6447         method calls, now the message type deals with that
6448         (bus_driver_handle_message): handle NULL interface
6449
6450         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6451
6452         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6453         -1 for len
6454
6455         * tools/dbus-viewer.c: add support for introspecting a service on
6456         a bus
6457
6458         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6459         (dbus_g_pending_call_unref): add
6460
6461 2005-01-29  Havoc Pennington  <hp@redhat.com>
6462
6463         * tools/dbus-tree-view.c: add support for displaying properties.
6464         (run dbus-viewer with an introspect xml file as arg, then resize
6465         the window so the tree elements show up, not sure what that is)
6466
6467         * glib/dbus-gobject.c (handle_introspect): return
6468         org.freedesktop.Properties and org.freedesktop.Introspectable
6469         interfaces when we are introspected.
6470
6471         * doc/dbus-specification.xml: allow empty interface name when 
6472         Get/Set a property
6473
6474 2005-01-29  Havoc Pennington  <hp@redhat.com>
6475
6476         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6477         though it uses glib, it could be extended for any binding in
6478         principle
6479
6480         * glib/dbus-gobject.c (gobject_message_function): change to the
6481         new way properties work
6482
6483         * dbus/dbus-protocol.h: add the new interfaces
6484
6485         * doc/dbus-specification.xml: document the introspection format,
6486         Introspectable interface, and add an org.freedesktop.Properties
6487         interface.
6488
6489         * glib/dbus-gparser.c: add support for a <property> element
6490
6491         * glib/dbus-gidl.c: add PropertyInfo
6492
6493         * glib/dbus-gobject.c (handle_introspect): put the outermost
6494         <node> outside the signal and property descriptions.
6495         (introspect_properties): export properties as <property> rather
6496         than as method calls
6497
6498 2005-01-28  Havoc Pennington  <hp@redhat.com>
6499
6500         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6501         related to authentication protocol
6502
6503 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6504
6505         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6506                 - BUS_ACTIVATION -> BUS_STARTER
6507                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6508                 - class MessageIter (__init__): Added recursion checking 
6509                 so we throw a nice error instead of just disconnecting from the
6510                 bus.
6511                 (get): Added arg_type parameter for recursion.
6512                 Removed the nil type
6513                 Added signiture type placeholder (not implemented)
6514                 Added struct type placeholder (not implemented)
6515                 Added varient type placeholder (not implemented)
6516                 Commented out dict type for now     
6517                 (get_element_type): renamed from get_array_type
6518                 (get_*): changed to use the dbus_message_iter_get_basic API
6519                 (get_*_array): removed in favor of recursive get_array method
6520                 (get_array): new recursive method which calls get to marshal
6521                 the elements of the array
6522                 (value_to_dbus_sig): New method returns the corrasponding
6523                 dbus signiture to a python value
6524                 (append): Comment out dict handling for now
6525                 Handle lists with the new recursive API
6526                 Comment out None handling for now
6527                 (append_nil): removed
6528                 (append_*): changed to use dbus_message_iter_append_basic API
6529                 (append_*_array): removed in favor of recursive append_array 
6530                 method
6531                 (__str__): Make it easier to print out recursive iterators
6532                 for debugging
6533                 - class Message (__str__): moved type inspection to the
6534                 MessageIter class' __str__ method
6535                 (get_iter): Added an append parameter wich defaults to False
6536                 If True use the new API's to create an append iterator
6537
6538         * python/dbus.py: Update to use new bindings API
6539                 - TYPE_ACTIVATION -> TYPE_STARTER
6540                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6541                 - class ActivationBus -> class StarterBus
6542                 - class RemoteObject (__call__): get an append iterator
6543                 - (_dispatch_dbus_method_call): get an append iterator
6544                 - class Object (emit_signal): get an append iterator
6545
6546         * python/examples/: Fixed up the examples to work with the new API
6547                 
6548 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6549
6550         * configure.in: Bump version up to 0.30.
6551
6552         * HACKING: Add a release item to bump the version number up after 
6553         a release.
6554
6555 2005-01-28  Havoc Pennington  <hp@redhat.com>
6556
6557         * doc/dbus-specification.xml: update to describe 16-bit types and
6558         dict entries
6559
6560         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6561         assertion
6562
6563         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6564         type
6565
6566         * dbus/dbus-marshal-recursive.c: implement
6567
6568 2005-01-27  Havoc Pennington  <hp@redhat.com>
6569
6570         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6571
6572         * configure.in: find the right type for 16 and 32 bit ints as well
6573         as 64
6574
6575         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6576         the 16-bit types so people don't have to stuff them in 32-bit or
6577         byte arrays.
6578
6579 2005-01-27  Havoc Pennington  <hp@redhat.com>
6580
6581         * dbus/dbus-message.c: byteswap the message if you init an
6582         iterator to read/write from it
6583         
6584         * dbus/dbus-marshal-byteswap.c: new file implementing 
6585         _dbus_marshal_byteswap()
6586
6587         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6588
6589 2005-01-26  Havoc Pennington  <hp@redhat.com>
6590         
6591         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6592         build, apparently - nobody noticed?)
6593         
6594 2005-01-26  Havoc Pennington  <hp@redhat.com>
6595
6596         * dbus/dbus-marshal-recursive.h: remove todo comment
6597
6598 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6599
6600         * Land the mono binding changes to conform to the new APIs.
6601
6602         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6603         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6604
6605         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6606         type code as a string.
6607         (InitAppending): Rename dbus_message_append_iter_init() to
6608         dbus_message_iter_init_append().
6609
6610         * mono/BusDriver.cs: Rename ServiceEventHandler to
6611         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6612         Rename ServiceOwnerChanged to NameOwnerChanged.
6613
6614         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6615         underlying C call.
6616
6617         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6618
6619         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6620         dbus_bus_acquire_service() to dbus_bus_request_name().
6621
6622         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6623         of Type.UnderlyingSystemType to get the correct element type for
6624         the array.
6625         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6626         dbus_message_get_{element|arg}_type() instead of
6627         dbus_message_iter_init_array_iterator().
6628         (Append): Replace dbus_message_iter_append_array() with
6629         dbus_message_iter_open_container() and
6630         dbus_message_iter_close_container().
6631
6632         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6633         types have been removed.
6634         
6635         * mono/DBusType/*.cs: Replace calls of
6636         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6637         but specify the type in the DllImport extern declaration.  Ditto
6638         for dbus_message_iter_append_[type]() ->
6639         dbus_message_iter_append_basic().
6640
6641         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6642         NameOwnerChangedHandler.
6643
6644 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6645
6646         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6647                 - get_base_service -> get_unique_name
6648                 - bus_get_base_service -> bus_get_unique_name
6649                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6650                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6651                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6652                 - bus_activate_service -> bus_start_service_by_name
6653                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6654                 - bus_acquire_service -> bus_request_name
6655                 - dbus_bus_acquire_service -> dbus_bus_request_name
6656                 - bus_service_exists -> bus_name_has_owner
6657                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6658
6659         * python/dbus.py: Rename of methods
6660                 - activate_service -> start_service_by_name
6661                 - bus_acquire_service -> bus_request_name
6662                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6663                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6664
6665         
6666 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6667
6668         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6669         signature for the method that can't be found.
6670
6671         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6672         the message has any arguments, we need to call
6673         _dbus_type_reader_get_current_type(), not
6674         _dbus_type_reader_has_next().
6675
6676 2005-01-24  Havoc Pennington  <hp@redhat.com>
6677
6678         * dbus/dbus-message-factory.c: more testing of message validation
6679
6680         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6681         header
6682
6683 2005-01-23  Havoc Pennington  <hp@redhat.com>
6684
6685         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6686         get this all working, not many tests in the framework yet though
6687
6688 2005-01-22  Havoc Pennington  <hp@redhat.com>
6689
6690         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6691         tutorial, based on work from David Wheeler.
6692
6693 2005-01-21  Havoc Pennington  <hp@redhat.com>
6694
6695         * dbus/dbus-bus.c: add more return_if_fail checks
6696
6697         * dbus/dbus-message.c (load_message): have the "no validation"
6698         mode (have to edit the code to toggle the mode for now though)
6699
6700         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6701         skips all validation; I want to use this at least for benchmark
6702         baseline, I'm not sure if it should be a publicly-available switch.
6703
6704 2005-01-21  Havoc Pennington  <hp@redhat.com>
6705
6706         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6707         toplevel doxygen group as the low-level API stuff
6708
6709         * dbus/dbus.h: note that libdbus is the low-level API
6710
6711 2005-01-20  Havoc Pennington  <hp@redhat.com>
6712
6713         * update-dbus-docs.sh: script to update docs on the web site, only
6714         works for me though. neener.
6715
6716 2005-01-20  Havoc Pennington  <hp@redhat.com>
6717
6718         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6719         code can reveal bugs in it
6720
6721 2005-01-20  Havoc Pennington  <hp@redhat.com>
6722
6723         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6724         select() version, patches from Tor Lillqvist
6725
6726 2005-01-20  Havoc Pennington  <hp@redhat.com>
6727
6728         * doc/dbus-tutorial.xml: replace > with &gt;
6729
6730         * bus/services.c (bus_registry_acquire_service): validate the name
6731         and return a better error if it's no good.
6732
6733         * doc/dbus-specification.xml: note NO_AUTO_START change
6734
6735         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6736         from AUTO_START, we're toggling the default
6737
6738         * bus/dispatch.c: adapt the tests to change of auto-start default
6739
6740 2005-01-18  Havoc Pennington  <hp@redhat.com>
6741
6742         * rename dbus-daemon-1 to dbus-daemon throughout
6743
6744 2005-01-18  Havoc Pennington  <hp@redhat.com>
6745
6746         * Throughout, grand renaming to strip out the use of "service",
6747         just say "name" instead (or "bus name" when ambiguous).  Did not
6748         change the internal code of the message bus itself, only the
6749         programmer-facing API and messages.
6750         
6751         * doc/dbus-specification.xml: further update the message bus section
6752         
6753         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6754         in error case
6755
6756 2005-01-17  Havoc Pennington  <hp@redhat.com>
6757
6758         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6759         ever
6760
6761         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6762         "invalid name character" not only non-ASCII
6763
6764         * doc/dbus-specification.xml: further update spec, message bus 
6765         parts are still out-of-date but the marshaling etc. stuff is now
6766         accurate-ish
6767
6768 2005-01-17  Havoc Pennington  <hp@redhat.com>
6769
6770         * doc/dbus-specification.xml: partially update spec
6771
6772 2005-01-17  Havoc Pennington  <hp@redhat.com>
6773
6774         * Throughout, align variant bodies according to the contained
6775         type, rather than always to 8. Should save a fair bit of space in
6776         message headers.
6777         
6778         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6779         fix handling of case where p == end
6780
6781         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6782
6783 2005-01-17  Havoc Pennington  <hp@redhat.com>
6784
6785         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6786
6787         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6788         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6789         are marshaling/unmarshaling a boolean.
6790
6791 2005-01-16  Havoc Pennington  <hp@redhat.com>
6792
6793         This is about it on what can be disabled/deleted from libdbus
6794         easily, back below 150K anyhow. Deeper cuts are more work than 
6795         just turning the code off as I've done here.
6796         
6797         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6798         signed int convenience funcs
6799
6800         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6801         verbose mode
6802
6803         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6804         things out of libdbus
6805
6806         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6807         
6808         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6809         tests-enabled-only, though it should probably be deleted)
6810
6811         * dbus/dbus-message-util.c: same stuff
6812
6813         * dbus/dbus-auth-util.c: same stuff
6814
6815 2005-01-16  Havoc Pennington  <hp@redhat.com>
6816
6817         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6818
6819         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6820         way for stripping down dbus-userdb.c stuff included in libdbus.
6821         Rename _dbus_parse_uid for consistency.
6822
6823 2005-01-16  Havoc Pennington  <hp@redhat.com>
6824
6825         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6826         name the assertion failed in
6827
6828         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6829         (_dbus_return_val_if_fail): assert that the name of the function
6830         containing the check doesn't start with '_', since we only want to 
6831         use checks on public functions
6832         
6833         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6834         checks to assertions
6835
6836         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6837         change checks to asserts for private function
6838
6839         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6840         to asserts for private function
6841
6842         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6843         broken assertion that was breaking make check
6844         (_dbus_type_reader_array_is_empty): remove this rather than fix
6845         it, was only used in assertions
6846
6847 2005-01-16  Havoc Pennington  <hp@redhat.com>
6848
6849         * test/unused-code-gc.py: hacky script to find code that's used
6850         only by the bus (not libdbus) or used only by tests or not used at
6851         all. It has some false alarms, but looks like we can clean up a
6852         lot of size from libdbus.
6853
6854         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6855         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6856         
6857 2005-01-16  Havoc Pennington  <hp@redhat.com>
6858
6859         * Add and fix docs according to Doxygen warnings throughout
6860         source.
6861         
6862         * dbus/dbus-marshal-recursive.c
6863         (_dbus_type_reader_array_is_empty): change this to just call
6864         array_reader_get_array_len() and make it static
6865
6866         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6867         from get_array_type
6868         (dbus_message_iter_init_append): rename from append_iter_init
6869
6870         * dbus/dbus-marshal-recursive.c
6871         (_dbus_type_reader_get_element_type): rename from
6872         _dbus_type_reader_get_array_type
6873
6874 2005-01-15  Havoc Pennington  <hp@redhat.com>
6875
6876         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6877
6878         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6879         when DBUS_DISABLE_ASSERT
6880         (_dbus_marshal_set_basic): be sure we align for the string length
6881
6882         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6883         this look faster
6884
6885         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6886         inline macro version
6887         (_dbus_string_set_byte): provide inline macro version
6888
6889 2005-01-15  Havoc Pennington  <hp@redhat.com>
6890
6891         * Land the new message args API and type system.
6892
6893         This patch is huge, but the public API change is not 
6894         really large. The set of D-BUS types has changed somewhat, 
6895         and the arg "getters" are more geared toward language bindings;
6896         they don't make a copy, etc.
6897
6898         There are also some known issues. See these emails for details
6899         on this huge patch:
6900         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6901         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6902         
6903         * dbus/dbus-marshal-*: all the new stuff
6904
6905         * dbus/dbus-message.c: basically rewritten
6906
6907         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6908         freed blocks to be all non-nul bytes so using freed memory is less
6909         likely to work right
6910
6911         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6912         DBUS_FAIL_MALLOC=N environment variable, so you can do
6913         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6914         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6915         thorough.
6916
6917         * qt/message.cpp: port to the new message args API
6918         (operator<<): use str.utf8() rather than str.unicode()
6919         (pretty sure this is right from the Qt docs?)
6920
6921         * glib/dbus-gvalue.c: port to the new message args API
6922
6923         * bus/dispatch.c, bus/driver.c: port to the new message args API
6924
6925         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6926         "locked" flag to TRUE and align_offset to 0; I guess we never
6927         looked at these anyhow, but seems cleaner.
6928
6929         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6930         move allocation padding macro to this header; use it to implement
6931         (_DBUS_STRING_STATIC): ability to declare a static string.
6932
6933         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6934         change to return TRUE if the interface is not set.
6935
6936         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6937         to dbus-marshal-validate.[hc]
6938
6939         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6940         dbus-internals.c
6941
6942         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6943         to dbus-marshal-*.[hc]
6944
6945         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6946         function here from dbus-marshal.c
6947
6948 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6949
6950         * NEWS: Update for 0.23.
6951
6952         * configure.in: Release 0.23.
6953
6954 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6955
6956         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6957         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6958         behind.
6959
6960         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6961         uninstall"
6962
6963         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6964         is an enum, get the enum's underlying type.  Another mono
6965         1.1.3 fix.
6966
6967 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6968
6969         Patch from Sjoerd Simons <sjoerd@luon.net>
6970
6971         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6972         DESTDIR.  It breaks stuff.
6973
6974 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6975
6976         Patch from Tambet Ingo <tambet@ximian.com>
6977
6978         * mono/DBusType/Array.cs (Get): Get the underlying element type by
6979         calling type.GetElementType().  The code previously depended on
6980         broken Mono behavior, which was fixed in Mono 1.1.3.
6981
6982         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
6983         Activator.CreateInstance() so that the class's constructor is
6984         called with the right parameters.
6985
6986 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6987
6988         Patch from Timo Teräs <ext-timo.teras@nokia.com>
6989
6990         * dbus/dbus-connection.c
6991         (_dbus_connection_queue_received_message_link): Call
6992         _dbus_connection_remove_timeout() instead of the _locked()
6993         variant, since it's always called from
6994         _dbus_connection_handle_watch(), which handles the locking.
6995         Removed the _locked() variant since it's no longer used.
6996
6997 2005-01-03  Havoc Pennington  <hp@redhat.com>
6998
6999         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7000         return
7001         
7002 2004-12-26  Havoc Pennington  <hp@redhat.com>
7003
7004         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7005
7006 2005-01-03  Havoc Pennington  <hp@redhat.com>
7007
7008         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7009         floating point
7010
7011         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7012
7013 2005-01-02  Havoc Pennington  <hp@redhat.com>
7014
7015         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7016
7017 2005-01-01  Havoc Pennington  <hp@redhat.com>
7018
7019         * configure.in: add -Wfloat-equal
7020
7021 2005-01-01  Havoc Pennington  <hp@redhat.com>
7022
7023         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7024         for a variety of reasons '==' doesn't do this.
7025
7026 2004-12-31  Havoc Pennington  <hp@redhat.com>
7027
7028         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7029         I keep wishing I had
7030
7031 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7032
7033         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7034
7035 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7036
7037         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7038         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7039         dbus-protocol.h.  Because they are defines and not enums they are not
7040         autogenerated.
7041
7042 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7043
7044         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7045         dbus_bus_activate_service
7046
7047         * python/dbus.py (Bus.activate_service): activate a service on the
7048         bus.
7049
7050 2004-12-24  Havoc Pennington  <hp@redhat.com>
7051
7052         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7053         file format has also changed and I haven't adapted to that yet
7054         
7055         * Makefile.am: load .gcno files from latest gcc
7056
7057 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7058         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7059
7060         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7061         lowlevel binding
7062
7063         * python/dbus.py (get_unix_user): Added binding to 
7064         call dbus_bindings.bus_get_unix_user
7065
7066         * python/extract.py: Modified the proto_pat regex to
7067         handle unsigned long
7068
7069 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7070
7071         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7072         better POSIX compliance.
7073
7074 2004-12-19  Havoc Pennington  <hp@redhat.com>
7075
7076         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7077         (_dbus_string_insert_8_aligned): new functions
7078
7079         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7080
7081 2004-12-18  Havoc Pennington  <hp@redhat.com>
7082
7083         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7084         macro
7085
7086         * dbus/dbus-message.c: fix a comment, and add a still-unused
7087         not-implemented function
7088
7089         * dbus/dbus-marshal.h: fix comment
7090
7091         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7092
7093 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7094
7095         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7096         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7097         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7098         Type.UnderlyingSystemType to get the actual system type
7099         underneath.  This code previously depended on the broken Mono
7100         behavior, which was fixed in 1.1.3.
7101
7102 2004-11-27  Havoc Pennington  <hp@redhat.com>
7103
7104         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7105         are disabled
7106         (_dbus_string_get_const_data): inline when asserts are disabled
7107
7108         * dbus/dbus-message.c: record the _dbus_current_generation of
7109         creation so we can complain if dbus_shutdown() is used improperly.
7110         Do this only if checks are enabled.
7111
7112         * dbus/dbus-connection.c: ditto
7113         
7114 2004-11-26  Havoc Pennington  <hp@redhat.com>
7115
7116         * test/glib/test-profile.c: add with_bus mode to profile echoes
7117         that go through the bus.
7118
7119         * test/glib/run-test.sh: add ability to run test-profile
7120
7121         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7122         config file reload.
7123
7124 2004-11-26  Havoc Pennington  <hp@redhat.com>
7125
7126         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7127         thing was implemented
7128
7129 2004-11-26  Havoc Pennington  <hp@redhat.com>
7130
7131         * test/glib/test-profile.c: tweak a bit, add support for some
7132         made-up minimal malloc overhead with plain sockets, since in 
7133         real life some sort of buffers are unavoidable thus we could 
7134         count them in the theoretical best case
7135
7136 2004-11-26  Havoc Pennington  <hp@redhat.com>
7137
7138         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7139         where I was trying to cache one too many messages
7140
7141 2004-11-26  Havoc Pennington  <hp@redhat.com>
7142
7143         * dbus/dbus-message.c: reimplement message cache as an array which 
7144         makes the cache about twice as fast and saves maybe 1.5% overall
7145
7146 2004-11-26  Havoc Pennington  <hp@redhat.com>
7147
7148         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7149         message cache lock here
7150
7151 2004-11-26  Havoc Pennington  <hp@redhat.com>
7152
7153         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7154         the "char byte_order" next to each other to save 4 bytes
7155         (dbus_message_new_empty_header): reduce preallocation, since the
7156         message cache should achieve a similar effect
7157         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7158         message cache that keeps a few DBusMessage around in a pool,
7159         another 8% speedup or so.
7160
7161         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7162
7163 2004-11-25  Havoc Pennington  <hp@redhat.com>
7164
7165         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7166         to write, without reading or blocking, try it before the poll()
7167         and skip the poll() if nothing remains to write. This is about a
7168         3% speedup in the echo client/server
7169
7170 2004-11-25  Havoc Pennington  <hp@redhat.com>
7171
7172         The primary change here is to always write() once before adding
7173         the write watch, which gives us about a 10% performance increase.
7174         
7175         * dbus/dbus-transport-unix.c: a number of modifications to cope
7176         with removing messages_pending
7177         (check_write_watch): properly handle
7178         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7179         messages_pending stuff
7180         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7181         AUTHENTICATED cases
7182         (unix_handle_watch): after writing, see if the write watch can be
7183         removed
7184         (unix_do_iteration): assert that write_watch/read_watch are
7185         non-NULL rather than testing that they aren't, since they 
7186         aren't allowed to be NULL. check_write_watch() at the end so 
7187         we add the watch if we did not finish writing (e.g. got EAGAIN)
7188
7189         * dbus/dbus-transport-protected.h: remove messages_pending call,
7190         since it resulted in too much inefficient watch adding/removing; 
7191         instead we now require that the transport user does an iteration 
7192         after queueing outgoing messages, and after trying the first
7193         write() we add a write watch if we got EAGAIN or exceeded our 
7194         max bytes to write per iteration setting
7195
7196         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7197         function
7198
7199         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7200         freed and then accessed, valgrind flagged this bug, fix it
7201
7202         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7203         as the last valid field plus 1, where really it is equal to the
7204         last valid field. Corrects some message corruption issues.
7205
7206         * dbus/dbus-mainloop.c: verbosity changes
7207
7208         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7209         instead of aborting in one of the test codepaths
7210
7211         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7212         caused not printing the pid ever again if a verbose was missing
7213         the newline at the end
7214         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7215
7216         * dbus/dbus-connection.c: verbosity changes; 
7217         (dbus_connection_has_messages_to_send): new function
7218         (_dbus_connection_message_sent): no longer call transport->messages_pending
7219         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7220         try to write() immediately, so we can avoid the write watch. This
7221         is the core purpose of this patchset
7222         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7223         dump the outgoing message queue, so nobody will get confused
7224         trying to send them or thinking stuff is pending to be sent
7225
7226         * bus/test.c: verbosity changes
7227
7228         * bus/driver.c: verbosity/assertion changes
7229
7230         * bus/dispatch.c: a bunch of little tweaks to get it working again
7231         because this patchset changes when/where you need to block.
7232
7233 2004-11-23  Havoc Pennington  <hp@redhat.com>
7234
7235         * test/glib/test-profile.c: modify to accept a plain_sockets
7236         argument in which case it will bench plain sockets instead of
7237         libdbus, for comparison purposes.
7238
7239 2004-11-22  Havoc Pennington  <hp@redhat.com>
7240
7241         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7242         threads for more time, so sysprof can get a grip on it.
7243
7244         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7245         pointless variable
7246
7247 2004-11-13  Havoc Pennington  <hp@redhat.com>
7248
7249         * test/glib/test-profile.c: fix this thing up a bit
7250
7251         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7252         preallocation sizes by a fair bit; not sure if this will be an
7253         overall performance win or not, but it does reduce reallocs.
7254
7255         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7256         the test hack that forced constant realloc if asserts are
7257         disabled, so we can profile sanely. Sprinkle in some
7258         _DBUS_UNLIKELY() which are probably pointless, but before I
7259         noticed the real performance problem I put them in.
7260         (_dbus_string_validate_utf8): micro-optimize this thing a little
7261         bit, though callgrind says it didn't help; then special-case
7262         ascii, which did help a lot; then be sure we detect nul bytes as
7263         invalid, which is a bugfix.
7264         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7265         superstition; use memset to nul the padding instead of a manual
7266         loop.
7267         (_dbus_string_get_length): inline this as a
7268         macro; it showed up in the profile because it's used for loop
7269         tests and so forth
7270
7271 2004-11-10  Colin Walters  <walters@verbum.org>
7272
7273         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7274         for extra paranoia.
7275
7276 2004-11-09  Colin Walters  <walters@verbum.org>
7277
7278         * dbus/dbus-string.c (_dbus_string_get_length): New
7279         function, writes DBusString to C buffer.
7280
7281         * dbus/dbus-string.h: Prototype it.
7282
7283         * dbus/dbus-message.c (dbus_message_type_to_string): New
7284         function, converts message type into C string.
7285
7286         * dbus/dbus-message.h: Prototype it.
7287
7288         * bus/selinux.c (bus_selinux_check): Take source pid,
7289         target pid, and audit data.  Pass audit data to
7290         avc_has_perm.
7291         (log_audit_callback): New function, appends extra
7292         audit information.
7293         (bus_selinux_allows_acquire_service): Also take
7294         service name, add it to audit data.
7295         (bus_selinux_allows_send): Also take message
7296         type, interface, method member, error name,
7297         and destination, and add them to audit data.
7298         (log_cb): Initialize func_audit.
7299         
7300         * bus/selinux.h (bus_selinux_allows_acquire_service)
7301         (bus_selinux_allows_send): Update prototypes 
7302
7303         * bus/services.c (bus_registry_acquire_service): Pass
7304         service name to bus_selinux_allows_acquire_service.
7305
7306         * bus/bus.c (bus_context_check_security_policy): Pass
7307         additional audit data.  Move assignment of dest
7308         to its own line.
7309
7310 2004-11-07  Colin Walters  <walters@verbum.org>
7311
7312         * dbus/dbus-transport-unix.c (do_authentication): Always
7313         initialize auth_completed.
7314         
7315 2004-11-07  Colin Walters  <walters@verbum.org>
7316
7317         * bus/bus.c (load_config): Break into three
7318         separate functions: process_config_first_time_only,
7319         process_config_every_time, and process_config_postinit.
7320         (process_config_every_time): Move call of
7321         bus_registry_set_service_context_table into
7322         process_config_postinit.
7323         (process_config_postinit): New function, does
7324         any processing that needs to happen late
7325         in initialization (and also on reload).
7326         (bus_context_new): Instead of calling load_config,
7327         open config parser here and call process_config_first_time_only
7328         and process_config_every_time directly.  Later, after
7329         we have forked but before changing UID,
7330         invoke bus_selinux_full_init, and then call
7331         process_config_postinit.
7332         (bus_context_reload_config): As in bus_context_new,
7333         load parse file inside here, and call process_config_every_time
7334         and process_config_postinit.
7335
7336         * bus/services.h, bus/services.c
7337         (bus_registry_set_service_context_table): Rename
7338         from bus_registry_set_sid_table.  Take string hash from config
7339         parser, and convert them here into SIDs.
7340
7341         * bus/config-parser.c (struct BusConfigParser): Have
7342         config parser only store a mapping of service->context
7343         string.
7344         (merge_service_context_hash): New function.
7345         (merge_included): Merge context string hashes instead
7346         of using bus_selinux_id_table_union.
7347         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7348         simply create a new string hash.
7349         (bus_config_parser_unref): Unref it.
7350         (start_selinux_child): Simply insert strings into hash,
7351         don't call bus_selinux_id_table_copy_over.
7352
7353         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7354         (bus_selinux_id_table_copy_over): Delete.
7355
7356 2004-11-03  Colin Walters  <walters@verbum.org>
7357
7358         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7359         variables.
7360         
7361 2004-11-03  Colin Walters  <walters@verbum.org>
7362
7363         * bus/test-main.c (test_pre_hook): Fix test logic,
7364         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7365
7366 2004-11-02  Colin Walters  <walters@redhat.com>
7367
7368         * bus/selinux.c (bus_selinux_init): Split into two functions,
7369         bus_selinux_pre_init and bus_selinux_post_init.
7370         (bus_selinux_pre_init): Just determine whether SELinux is
7371         enabled.
7372         (bus_selinux_post_init): Do everything else.
7373
7374         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7375         config file, and bus_selinux_post_init after.  This ensures that
7376         we don't lose the policyreload notification thread that
7377         bus_selinux_init created before forking previously.
7378         
7379         * bus/test-main.c (test_pre_hook): Update for split.
7380
7381 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7382
7383         Patch from Johan Fischer <linux@fischaz.com>
7384         
7385         * mono/doc/Makefile.am (install-data-local): Added directory
7386         install for DESTDIR
7387
7388 2004-10-29  Colin Walters  <walters@redhat.com>
7389
7390         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7391         parameter for fd to write pid to.       
7392
7393         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7394         
7395         * bus/bus.c (bus_context_new): Pass print_pid_fd
7396         to _dbus_become_daemon (bug #1720)
7397
7398 2004-10-29  Colin Walters  <walters@redhat.com>
7399
7400         Patch from Ed Catmur <ed@catmur.co.uk>
7401
7402         * mono/doc/Makefile.am (install-data-local): Handle
7403         DESTDIR.
7404
7405 2004-10-29  Colin Walters  <walters@redhat.com>
7406
7407         * bus/.cvsignore, qt/.cvsignore: Update.
7408
7409 2004-10-29  Colin Walters  <walters@redhat.com>
7410
7411         Patch from Kristof Vansant <de_lupus@pandora.be>
7412
7413         * configure.in: Detect Slackware.
7414         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7415         * bus/rc.messagebus.in: New file.
7416
7417 2004-10-29  Colin Walters  <walters@redhat.com>
7418
7419         * tools/dbus-monitor.c (filter_func): Return
7420         DBUS_HANDLER_RESULT_HANDLED in filter function
7421         for now.  See:
7422         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7423
7424 2004-10-29  Colin Walters  <walters@redhat.com>
7425
7426         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7427
7428         * bus/services.c (bus_registry_acquire_service): 
7429         Correctly retrieve service name from DBusString
7430         for printing.
7431
7432 2004-10-29  Colin Walters  <walters@redhat.com>
7433
7434         * dbus/dbus-glib.h: Update documentation to not
7435         refer to internal APIs.
7436
7437 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7438
7439         * mono/Arguments.cs (GetDBusTypeConstructor):
7440         type.UnderlyingSystemType will return "System.Byte" if you do it
7441         on "byte[]", which is not what we want.  So check the type.IsArray
7442         property and use System.Array instead.
7443
7444 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7445
7446         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7447         the DBusUserInfo structure since this is passed into the function.
7448         This would cause a double free when the function that allocated
7449         the structure would try to free it when an error occured.
7450
7451         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7452         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7453         for service activation to avoid 32bit/64bit parallel install issues
7454
7455 2004-10-21  Colin Walters  <walters@verbum.org>
7456
7457         * AUTHORS: Fix my email address, the @gnu.org one
7458         has been bouncing for some time.  Also add J5.
7459         
7460 2004-10-21  Colin Walters  <walters@verbum.org>
7461
7462         * dbus/dbus-transport-unix.c (do_authentication): Return
7463         authentication status to callers.
7464         (unix_handle_watch): If we completed authentication this round,
7465         don't do another read.  Instead wait until the next iteration,
7466         after we've read any pending data in the auth buffer.
7467         (unix_do_iteration): Ditto.
7468         (unix_handle_watch): Updated for new do_authentication prototype.
7469
7470 2004-10-18  Colin Walters  <walters@verbum.org>
7471
7472         * bus/selinux.c (bus_selinux_enabled): Handle
7473         --disable-selinux case.
7474         
7475 2004-10-18  Colin Walters  <walters@verbum.org>
7476
7477         * bus/selinux.h: Add bus_selinux_enabled.
7478         
7479         * bus/selinux.c (bus_selinux_enabled): Implement it.
7480         
7481         * bus/config-parser.c (struct include): Add
7482         if_selinux_enabled member.
7483         (start_busconfig_child): Parse if_selinux_enabled
7484         attribute for include.
7485         (bus_config_parser_content): Handle it.
7486
7487         * bus/session.conf.in, bus/system.conf.in: Add
7488         inclusion of context mapping to default config files;
7489         conditional on SELinux being enabled.
7490         
7491         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7492         
7493         * test/data/invalid-config-files/badselinux-1.conf, 
7494         test/data/invalid-config-files/badselinux-2.conf:
7495         Test files for bad syntax.
7496         
7497 2004-10-17  Colin Walters  <walters@verbum.org>
7498
7499         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7500         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7501         format specifier mismatches.
7502
7503 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7504
7505         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7506         format string.
7507
7508         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7509         pointer (bug #1540, Leonardo Boiko).
7510
7511 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7512
7513         * mono/BusDriver.cs: Changed BusDriver struct to remove
7514         the ServiceCreated and ServiceDeleted events and replace them
7515         with the new ServiceOwnerChanged event.
7516
7517         * mono/example/BusListener.cs: Added a new example program,
7518         which listens for and reports any ServiceOwnerChanged events
7519         on the bus driver.
7520
7521         * mono/example/Makefile.am (DESTDIR): Build changes for the
7522         new BusListener.cs example.
7523
7524 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7525
7526         * bus/signals.c (bus_match_rule_parse): validate the components of
7527         match rules (bug #1439).
7528
7529         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7530
7531 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7532
7533         * doc/dbus-specification.xml: document ServiceOwnerChanged
7534         signal.
7535         
7536         * bus/driver.c, bus/driver.h, bus/services.c: Use
7537         ServiceOwnerChanged signal instead of ServiceCreated and
7538         ServiceDeleted.
7539         
7540         * bus/dispatch.c: update testcase for the new signal.
7541
7542 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7543
7544         Patch from Nat Friedman <nat@novell.com>
7545
7546         * mono/Makefile.am: A number of small build fixes to allow "make
7547         distcheck" to succeed.
7548
7549         * mono/example/Makefile.am: "make distcheck" fixes.
7550
7551         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7552         key in @srcdir@.
7553
7554         * test/Makefile.am: "make distcheck" fixes.
7555
7556 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7557
7558         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7559
7560         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7561
7562         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7563         messages after the first one (bug #1389).
7564         
7565         * bus/dispatch.c (check_double_hello_message): add a test case for
7566         the double hello message bug.
7567         (check_existent_service_activation): fix check of spawning error.
7568         
7569 2004-09-16  David Zeuthen  <david@fubar.dk>
7570
7571         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7572
7573 2004-09-12  David Zeuthen  <david@fubar.dk>
7574
7575         Patch from Kay Sievers <kay.sievers@vrfy.org>
7576
7577         * bus/bus.c (bus_context_new):
7578         * bus/bus.h:
7579         * bus/main.c (usage)
7580         (main):
7581         Add commandline option --nofork to override configuration file
7582         setting.
7583
7584 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7585
7586         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7587         compilers don't like it (bug #974).
7588
7589 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7590
7591         * qt/connection.*: Applied patch by Jérôme Lodewyck
7592         <lodewyck@clipper.ens.fr> to integrate an existing
7593         connection into the Qt eventloop
7594
7595 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7596
7597         * mono/BusDriver.cs: Added.  This is a class for interacting with
7598         the org.freedesktop.DBus service.
7599
7600         * mono/Message.cs: Added a mechanism to expose the message that is
7601         currently being dispatched via the static Message.Current
7602         property.  Added Message.Sender and Message.Destination
7603         properties.
7604
7605         * mono/Handler.cs: Expose the dispatched message via
7606         Message.Current when handling method calls.
7607
7608         * mono/Service.cs: Expose the dispatched message via
7609         Message.Current when handling signal emissions.
7610         
7611         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7612         Connection.BaseService property.
7613
7614 2004-08-28  Havoc Pennington  <hp@redhat.com>
7615
7616         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7617
7618         More fixes from Steve Grubb
7619         
7620         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7621         (_dbus_listen_tcp_socket): fix fd leak
7622
7623         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7624         EINTR to a bit lower in the code
7625
7626 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7627
7628         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7629         TRUE if we are inquiring about the existence of the built-in
7630         org.freedesktop.DBus service.
7631
7632 2004-08-25  John Palmieri  <johnp@redhat.com>
7633         * bus/config-parser.c:
7634         (struct PolicyType): Add POLICY_CONSOLE
7635         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7636         (start_busconfig_child): Sets up console element when
7637         <policy at_console=""> is encountered in a policy file
7638         (append_rule_from_element): Convert console elements to console
7639         rules.
7640
7641         * bus/policy.c: 
7642         (bus_policy_create_client_policy): Add console rules to the client
7643         policy based on if the client is at the console
7644         (bus_policy_append_console_rule): New function for adding a
7645         console rule to a policy
7646         (bus_policy_merge): Handle console rule merging
7647
7648         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7649         where we check for console user files
7650         
7651         * dbus/dbus-sysdeps.c:
7652         (_dbus_file_exists): New function which checks if the given
7653         file exists
7654         (_dbus_user_at_console): New function which does the system
7655         specific process of checking if the user is at the console
7656
7657         * dbus/dbus-userdb.c:
7658         (_dbus_is_console_user): New function converts a UID to user name
7659         and then calls the system specific _dbus_user_at_console to 
7660         see if the user is at the console and therefor a console user
7661
7662 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7663
7664         * bus/config-parser.c (set_limit):
7665         * bus/dbus-daemon-1.1.in:
7666         * test/data/valid-config-files/many-rules.conf: set the
7667         max_match_rules_per_connection limt from the config file. 
7668
7669         * doc/busconfig.dtd: update the DTD.
7670
7671         * bus/driver.c: remove some unused variables.
7672
7673 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7674
7675         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7676         it's been replaced by dbus_g_bus_get
7677
7678 2004-08-23  Colin Walters  <walters@redhat.com>
7679
7680         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7681
7682         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7683
7684         * bus/selinux.c: Create a thread for policy reload notification.
7685         (bus_selinux_get_policy_root): Implement.
7686
7687         * bus/config-parser.c (start_busconfig_child)
7688         (bus_config_parser_content): Support SELinux-root relative
7689         inclusion.
7690
7691         * configure.in <HAVE_SELINUX>: Add -lpthread.
7692         
7693         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7694         (test_post_hook): Move memory checking into here.
7695         (test_pre_hook, test_post_hook): Move SELinux checks in
7696         here, but conditional on a DBUS_TEST_SELINUX environment
7697         variable.  Unfortunately we can't run the SELinux checks
7698         as a normal user, since they won't have any permissions
7699         for /selinux.  So this will have to be tested manually
7700         for now, until we have virtualization for most of
7701         libselinux.
7702         
7703 2004-08-23  Havoc Pennington  <hp@redhat.com>
7704
7705         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7706         drop supplementary groups, suggested by Steve Grubb
7707
7708 2004-08-20  Colin Walters  <walters@redhat.com>
7709
7710         * bus/config-parser.c (start_busconfig_child): Remove some unused
7711         variables.
7712         
7713         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7714         warning.
7715
7716 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7717
7718         * configure.in: If --enable-mono is passed in, if we can't find
7719         mono error out.
7720
7721         * mono/Makefile.am: Use /gacutil to install assemblies into the
7722         GAC and not /root.
7723
7724 2004-08-12  Havoc Pennington  <hp@redhat.com>
7725
7726         * NEWS: update for 0.22
7727
7728         * configure.in: release 0.22
7729
7730 2004-08-11  Colin Walters  <walters@redhat.com>
7731
7732         * tools/dbus-send.c (main, usage): Add --reply-timeout
7733         argument.
7734
7735 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7736
7737         * bus/bus.c (process_config_first_time_only): get rid of an unused
7738         DBusError that was causing a memoy leak (bug #989).
7739
7740         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7741         fix compilation on Solaris/Forte C (bug #974)
7742
7743         * bus/main.c (main): plug two minuscule memleaks.
7744
7745 2004-08-10  Havoc Pennington  <hp@redhat.com>
7746
7747         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7748
7749 2004-08-09  Havoc Pennington  <hp@redhat.com>
7750
7751         * COPYING: switch to Academic Free License version 2.1 instead of
7752         2.0, to resolve complaints about patent termination clause.
7753
7754 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7755
7756         * README: added documentation for the --enable-python 
7757         configure switch.
7758
7759 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7760
7761         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7762         _unref in the SELinux support.
7763
7764         * doc/busconfig.dtd: update DTD for SELinux support.
7765
7766         * bus/config-loader-libxml.c: fix error handler and parser
7767         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7768
7769         * configure.in: remove the warning about libxml2.
7770
7771         * dbus/dbus-bus.c: silence doxygen warning.
7772
7773 2004-07-31  Colin Walters  <walters@redhat.com>
7774
7775         * configure.in: Move #error in SELinux check to its own line.
7776
7777 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7778
7779         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7780         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7781         dbus_error_set.
7782
7783         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7784         broken by the change in the _SET_OOM macros.
7785
7786 2004-07-31  Colin Walters  <walters@redhat.com>
7787
7788         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7789         BUS_SET_OOM.
7790
7791 2004-07-31  Colin Walters  <walters@redhat.com>
7792
7793         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7794         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7795         AC_MSG_CHECKING.
7796
7797 2004-07-24  Havoc Pennington  <hp@redhat.com>
7798
7799         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7800
7801         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7802         functionality
7803
7804         * configure.in: add --enable-selinux
7805         
7806         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7807
7808         * bus/main.c (main): initialize and shut down selinux
7809
7810         * bus/connection.c: store SELinux ID on each connection, to avoid 
7811         repeated getting of the string context and converting it into 
7812         an ID
7813
7814         * bus/bus.c (bus_context_get_policy): new accessor, though it
7815         isn't used
7816         (bus_context_check_security_policy): check whether the security
7817         context of sender connection can send to the security context of
7818         recipient connection
7819
7820         * bus/config-parser.c: add parsing for <selinux> and <associate>
7821         
7822         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7823         implement dbus_connection_get_unix_fd()
7824
7825         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7826         function, used by the selinux stuff
7827         
7828 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7829
7830         * bus/config-loader-libxml.c: complete the implementation of
7831         libxml backend for config file loader. Doesn't work with full OOM
7832         test yet. 
7833         
7834         * configure.in: change error when selecting libxml into a warning.
7835         
7836         * test/data/invalid-config-files: add two non-well-formed XML
7837         files. 
7838         
7839         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7840         
7841         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7842         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7843         be necessary to read all the buffer. (bug #894)
7844
7845         * bus/activation.c (bus_activation_activate_service): fix a
7846         potential assertion failure (bug #896). Small optimization in the
7847         case of auto-activation messages.
7848
7849         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7850         add test case for byte-through-vararg bug (#901). patch by Kimmo
7851         Hämäläinen. 
7852
7853 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7854
7855         * python/dbus.py:
7856         * python/dbus_bindings.pyx.in:
7857         Add dbus.init_gthreads (), allow emit_signal to pass
7858         arguments to the signal.
7859         
7860 2004-07-24  Havoc Pennington  <hp@redhat.com>
7861
7862         * AUTHORS: add some people, not really comprehensively, let me
7863         know if I missed you
7864
7865 2004-07-24  Havoc Pennington  <hp@redhat.com>
7866
7867         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7868         Owen
7869
7870         * test/Makefile.am (DIST_SUBDIRS): here also
7871
7872 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7873
7874         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7875         breaking build on Solaris, reported by Farhad Saberi on the ML.
7876
7877         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7878         va_arg invocation to account for integer promotion in the case of
7879         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7880
7881         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7882         _dbus_list_get_first_link, not _dbus_list_get_first.
7883
7884         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7885
7886         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7887         handler functions so that the asserts in _dbus_object_subtree_unref
7888         do not fail.
7889
7890         * dbus/dbus-transport-unix.c (do_reading):
7891         _dbus_transport_queue_messages return value is of type
7892         dbus_bool_t, not DBusDispatchStatus.
7893         
7894 2004-07-19  David Zeuthen  <david@fubar.dk>
7895
7896         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7897
7898         * bus/dispatch.c:
7899         (check_get_connection_unix_user): Debug says GetProperty; but the
7900         method is called GetConnectionUnixUser
7901         (check_get_connection_unix_process_id): New function
7902         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7903         also call check_get_connection_unix_process_id()
7904         
7905         * bus/driver.c:
7906         (bus_driver_handle_get_connection_unix_process_id): New function,
7907         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7908         interface
7909         
7910         * dbus/dbus-auth.c:
7911         (handle_server_data_external_mech): Set pid from the credentials
7912         obtained from the socket
7913         
7914         * dbus/dbus-connection.c:
7915         (dbus_connection_get_unix_process_id): New function
7916         
7917         * dbus/dbus-connection.h: 
7918         Add prototype for dbus_connection_get_unix_process_id
7919         
7920         * dbus/dbus-transport.c:
7921         (_dbus_transport_get_unix_process_id): New function
7922         
7923         * dbus/dbus-transport.h:
7924         Add prototype for _dbus_transport_get_unix_process_id
7925         
7926 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7927
7928         * dbus/dbus-message.c: Message counter fix, patch by Christian
7929         Hammond <chipx86@gnupdate.org>
7930
7931 2004-07-18  Seth Nickell  <seth@gnome.org>
7932
7933         * python/dbus.py:
7934         * python/dbus_bindings.pyx.in:
7935         * python/tests/test-client.py:
7936
7937         Add dbus.ByteArray and dbus_bindings.ByteArray
7938         types so that byte streams can be passed back.
7939
7940         Give jdahlin the heaps of credit that are so
7941         rightfully his.
7942         
7943 2004-07-12  Seth Nickell  <seth@gnome.org>
7944
7945         * python/dbus.py:
7946
7947         Add message argument to the default object_method_handler
7948         function.
7949         
7950         * python/dbus_bindings.pyx.in:
7951
7952         Automatically return NIL when passed an empty list
7953         (we can't pass back a list since lists are typed
7954         and we don't have any idea what type the the client
7955         intended the list to be... :-( )
7956         
7957 2004-07-10  Seth Nickell  <seth@gnome.org>
7958
7959         * python/examples/Makefile.am:
7960
7961         Fix distcheck breakage caused by new examples.
7962
7963 2004-07-10  Seth Nickell  <seth@gnome.org>
7964
7965         * python/dbus.py:
7966
7967         Add "message" argument to service-side dbus.Object
7968         methods. This will break existing services written
7969         using the python bindings, but will allow extraction
7970         of all the message information (e.g. who its from).
7971
7972         Add improved "object oriented" signal handling/emission.
7973         
7974         * python/examples/example-service.py:
7975
7976         Nix this example.
7977         
7978         * python/examples/example-signal-emitter.py:
7979         * python/examples/example-signal-recipient.py:
7980
7981         Two new examples that show how to emit and receive
7982         signals using the new APIs.
7983         
7984         * python/examples/example-signals.py:
7985         * python/examples/gconf-proxy-service.py:
7986         * python/examples/gconf-proxy-service2.py:
7987
7988         Add "message" argument to service methods.
7989
7990 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
7991
7992         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
7993         * dbus/bus.c (dbus_bus_get_unix_user)
7994         * doc/dbus-specification.xml: implement GetConnectionUnixUser
7995         method of org.freedesktop.DBus interface.
7996
7997         * bus/dispatch.c: test case
7998
7999 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8000
8001         * python/Makefile.am: switched include directory from glib/ to dbus/
8002         since dbus-glib.h moved
8003  
8004 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8005
8006         * configure.in: prevent building the gcj stuff and libxml loader
8007         since they are broken.
8008
8009 2004-06-20  Havoc Pennington  <hp@redhat.com>
8010
8011         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8012         codes from the dbus error names
8013         
8014         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8015         as dbus/dbus-glib.h and that breakage is now visible due to 
8016         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8017         
8018         * glib/dbus-glib.h: s/gproxy/g_proxy/
8019
8020         * dbus/dbus-shared.h: new header to hold stuff shared with
8021         binding APIs
8022         
8023         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8024         than dbus-errors.h
8025
8026         * glib/dbus-glib.h (dbus_set_g_error): move to
8027         dbus-glib-lowlevel.h
8028
8029         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8030         of stuff to enable this
8031
8032         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8033
8034         * a bunch of other changes with the same basic "separate glib 
8035         bindings from dbus.h" theme
8036         
8037 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8038
8039         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8040
8041         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8042
8043 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8044
8045         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8046         the reply value of the ServiceExists message.
8047
8048 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8049
8050         * python/dbus_bindings.pyx.in: No longer need to parse path
8051         elements and pass them as arrays of strings.  The C API now
8052         accepts plain path strings.
8053         (_build_parsed_path): removed 
8054
8055 2004-06-07  Havoc Pennington  <hp@redhat.com>
8056
8057         * doc/TODO: remove auto-activation item since it's done; sort
8058         items by importance/milestone
8059
8060 2004-06-07  Havoc Pennington  <hp@redhat.com>
8061
8062         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8063         random signature when using REQUIRED_FIELDS (this hack won't work
8064         in the long term)
8065
8066         * dbus/dbus-message.c: change the signature to be a header field,
8067         instead of message->signature special-case string. Incremental
8068         step forward. Then we can fix up code to send the signature in the
8069         message, then fix up code to validate said signature, then fix up
8070         code to not put the typecodes inline, etc.
8071         (load_one_message): don't make up the signature after the fact
8072         (decode_header_data): require signature field for the known
8073         message types
8074
8075         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8076
8077         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8078
8079 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8080
8081         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8082
8083         * mono/Handler.cs: Updated to follow new path argument for
8084         (un-)registering objects.
8085
8086         * mono/example/Makefile.am:
8087         * mono/Makefile.am:
8088         * configure.in: Bumped required version for mono and use new -pkg
8089         syntax for deps
8090
8091 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8092
8093         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8094         registration functions take the path argument as char* instead of
8095         char**.
8096
8097         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8098         split off the path decompostion part of
8099         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8100         warnings. 
8101
8102         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8103         
8104 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8105  
8106         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8107         machine approach.  A state is implemented as a function that
8108         handles incoming events as specified for that state.
8109         
8110         * doc/dbus-specification.xml: Update auth protocol state machine
8111         specification to match implementation.  Remove some leftover
8112         base64 examples.
8113
8114 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8115
8116         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8117         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8118         quiet doxygen.
8119
8120         * Doxyfile.in: remove deprecated options.
8121
8122         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8123         glib/test-thread.h, glib/test-thread-client.c,
8124         glib/test-thread-server.c, glib/test-profile.c,
8125         glib/test-dbus-glib.c: remove these unused files.
8126
8127 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8128
8129         * dbus/dbus-object-tree.c
8130         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8131         non-fallback handlers (bug #684).
8132         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8133         (find_subtree_recurse): report wether the returned subtree is an
8134         exact match or a "fallback" match higher up in the tree.
8135         (object_tree_test_iteration): update test case.
8136
8137 2004-06-01  Seth Nickell  <seth@gnome.org>
8138
8139         * python/dbus_bindings.pyx.in:
8140         * python/tests/test-client.py:
8141
8142         Round off basic type support. Add dicts (yay!), and 
8143         remaining array types.
8144
8145         Make MessageIter more general so it works for dicts too.
8146
8147         Mark all loop variables as C integers.
8148         
8149 2004-05-31  Havoc Pennington  <hp@redhat.com>
8150
8151         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8152         "in" before "out"
8153
8154         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8155
8156         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8157         option that runs the tests, and start filling in some code
8158         including for starters just dumping the interfaces to stdout
8159
8160         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8161
8162         * test/data/valid-introspection-files/lots-of-types.xml: test of
8163         an example introspection file
8164
8165         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8166         "node" (I think...)
8167
8168 2004-05-31  Seth Nickell  <seth@gnome.org>
8169
8170         * python/dbus_bindings.pyx.in:
8171         * python/tests/test-client.py:
8172
8173         Test Suite: 1
8174         Python Bindings: 0
8175
8176         Fix string array memory trashing bug... oops...
8177
8178 2004-05-30  Seth Nickell  <seth@gnome.org>
8179
8180         * python/dbus.py:
8181
8182         Add a nicer-but-less-flexible alternate API for handling 
8183         calls to virtual objects in dbus.ObjectTree.
8184
8185         Screw up the argument order to the dbus.Object constructor
8186         for consistency with dbus.ObjectTree (and to make dbus_methods
8187         optional for future extension)
8188         
8189         * python/examples/Makefile.am:
8190         * python/examples/gconf-proxy-service.py:
8191         * python/examples/gconf-proxy-service2.py:
8192
8193         Alternate implementation of gconf-proxy-service using the
8194         nicer dbus.ObjectTree API.
8195         
8196         * python/examples/example-service.py:
8197         * python/tests/test-server.py
8198
8199         Reverse the argument order to deal with dbus.Object constructor
8200         changes.
8201         
8202 2004-05-30  Seth Nickell  <seth@gnome.org>
8203
8204         * python/examples/example-client.py:
8205         * python/examples/example-service.py:
8206
8207         Take it back. Lists seem to work but they're broken
8208         in the test suite. Make the base examples use
8209         lists (works fine).
8210
8211 2004-05-30  Seth Nickell  <seth@gnome.org>
8212
8213         * python/dbus_bindings.pyx.in:
8214         * python/tests/test-client.py:
8215
8216         Add some more tests and fix errors that crop up.
8217         Unfortunately, currently it seems like marshalling
8218         and unmarshalling of lists is completely broken :-(
8219
8220 2004-05-30  Seth Nickell  <seth@gnome.org>
8221
8222         * python/dbus_bindings.pyx.in:
8223
8224         Add support for ObjectPath type.
8225
8226         * python/dbus.py:
8227
8228         Refactor message handling code to a common function.
8229         
8230         * python/tests/test-client.py:
8231         * python/tests/test-server.py:
8232
8233         Add tests that check to make sure values of all types
8234         can be echoed from a service w/o mangling.
8235         
8236 2004-05-29  Seth Nickell  <seth@gnome.org>
8237
8238         * python/dbus.py:
8239
8240         Add ObjectTree class which allows implementation
8241         of trees of "virtual" objects. Basically the python
8242         wrapper for "register_fallback".
8243         
8244         * python/examples/Makefile.am
8245         * python/examples/gconf-proxy-client.py:
8246         * python/examples/gconf-proxy-service.py:
8247
8248         Implement a simple GConf proxy service that supports
8249         get/set on string and int GConf keys using the ObjectTree.
8250         
8251 2004-05-29  Seth Nickell  <seth@gnome.org>
8252
8253         * python/dbus.py:
8254         * python/examples/example-client.py:
8255         * python/examples/example-service.py:
8256         * python/examples/list-system-services.py:
8257
8258         Add SessionBus, SystemBus and ActivationBus classes
8259         so you don't need to know the special little BUS_TYPE
8260         flag.
8261         
8262 2004-05-29  Havoc Pennington  <hp@redhat.com>
8263
8264         * bus/config-parser.c (process_test_valid_subdir): temporarily
8265         stop testing config parser OOM handling, since expat has issues
8266         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8267
8268         * bus/dbus-daemon-1.1.in: change requested_reply to
8269         send_requested_reply/receive_requested_reply so we can send the
8270         replies, not just receive them.
8271
8272         * bus/config-parser.c: parse the new
8273         send_requested_reply/receive_requested_reply
8274
8275         * bus/policy.c (bus_client_policy_check_can_send): add
8276         requested_reply argument and use it
8277
8278         * bus/bus.c (bus_context_check_security_policy): pass through
8279         requested_reply status to message send check
8280
8281         * bus/system.conf.in: adapt to requested_reply change
8282         
8283 2004-05-28  Havoc Pennington  <hp@redhat.com>
8284
8285         * test/glib/test-service-glib.c (main): remove unused variable
8286
8287         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8288
8289         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8290         from the enum, no longer in use.
8291
8292         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8293         works right.
8294
8295         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8296         whether error_name passed in is a valid error name.
8297
8298 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8299
8300         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8301         OBJECT_PATH and OBJECT_PATH_ARRAY
8302
8303 2004-05-28  Seth Nickell  <seth@gnome.org>
8304
8305         * python/examples/Makefile.am:
8306
8307         Forget to add Makefile.am. Do not pass go.
8308
8309 2004-05-28  Michael Meeks  <michael@ximian.com>
8310
8311         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8312         fix no int64 case.
8313
8314         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8315
8316         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8317         (_dbus_message_iter_get_basic_type_array): impl.
8318         drastically simplify ~all relevant _get methods to use these.
8319         (_dbus_message_iter_append_basic_array),
8320         (dbus_message_iter_append_basic): impl
8321         drastically simplify ~all relevant _append methods to use these.
8322
8323         * dbus/dbus-message-builder.c (parse_basic_type) 
8324         (parse_basic_array, lookup_basic_type): impl.
8325         (_dbus_message_data_load): prune scads of duplicate /
8326         cut & paste coding.
8327
8328         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8329         (_dbus_demarshal_basic_type): implement,
8330         (demarshal_and_validate_len/arg): beef up debug.
8331         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8332
8333 2004-05-27  Seth Nickell  <seth@gnome.org>
8334
8335         * configure.in:
8336         * python/Makefile.am:
8337
8338         Include the example python apps in the tarball.
8339         
8340         * python/examples/list-system-services.py
8341
8342         Add a python new example that fetches the list of services
8343         from the system bus.
8344         
8345 2004-05-27  Seth Nickell  <seth@gnome.org>
8346
8347         * python/dbus.py:
8348         * python/dbus_bindings.pyx.in:
8349
8350         Fix failure to notify that a signal was not handled,
8351         resulted in hung functions.
8352         
8353 2004-05-25  Colin Walters  <walters@redhat.com>
8354
8355         * tools/dbus-monitor.c (main): Monitor all types of messages.
8356
8357 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8358
8359         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8360         which unregisters the object path and disposes the handler.
8361
8362 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8363  
8364         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8365          
8366         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8367         operands to && so we call dbus_message_iter_next () for the last
8368         argument also.
8369
8370 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8371
8372         * dbus/dbus-object-tree.c
8373         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8374         children even if the requested path isn't registered.
8375         (object_tree_test_iteration): test object_tree_list_registered.
8376
8377         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8378         it to 0.
8379         
8380 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8381
8382         * doc/TODO: Remove resolved items.
8383
8384         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8385         field.
8386         
8387         * bus/connection.c (bus_connections_expect_reply): Enforce the
8388         per-connection limit on pending replies.
8389         
8390         Patch from Jon Trowbridge <trow@ximian.com>:
8391  
8392         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8393         up a watch that triggers a config reload when one end of the pipe
8394         becomes readable.
8395         (signal_handler): Instead of doing the config reload in our SIGHUP
8396         handler, just write to the reload pipe and let the associated
8397         watch handle the reload when control returns to the main loop.
8398  
8399         * bus/driver.c (bus_driver_handle_reload_config): Added.
8400         Implements a ReloadConfig method for requesting a configuration
8401         file reload via the bus driver.
8402  
8403 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8404
8405         * HACKING: Updated release instructions concerning the wiki page.
8406
8407 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8408
8409         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8410         filter against auth->allowed_mechs; we only add allowed mechs in
8411         record_mechanisms().
8412  
8413         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8414         ALLOWED_MECHS to auth-script format so we can set the list of
8415         allowed mechanisms.
8416  
8417         * data/auth/client-out-of-mechanisms.auth-script: New test to
8418         check client disconnects when it is out of mechanisms to try.
8419  
8420         * dbus/dbus-auth.c (process_command): Remove check for lines
8421         longer that 1 MB; we only buffer up maximum 16 kB.
8422  
8423         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8424         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8425         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8426         assume there might be unused bytes.
8427  
8428         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8429         client-out-of-mechs, it is handled in process_reject(). Move check
8430         for max failures to send_rejected(), as it's a server-only thing.
8431
8432         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8433         send_auth(), send_data(), send_rejected(), send_error(),
8434         send_ok(), send_begin() and send_cancel().
8435
8436 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8437
8438         Remove base64 encoding, replace with hex encoding. Original patch
8439         from trow@ximian.com, added error handling.
8440
8441         * dbus/dbus-string.c (_dbus_string_base64_encode)
8442         (_dbus_string_base64_decode): Remove.
8443         (_dbus_string_hex_decode): Add end_return argument so we can
8444         distinguish between OOM and invalid hex encoding.
8445         (_dbus_string_test): Remove base64 tests and add test case for
8446         invalid hex.
8447
8448         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8449         Replace base64 with hex.
8450
8451         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8452         for invalid hex encoded data in auth protocol.
8453
8454 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8455
8456         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8457         leak.
8458
8459 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8460
8461         * mono/dbus-sharp.dll.config.in: Added for GAC
8462         * mono/dbus-sharp.snk: Added for GAC
8463         * mono/Assembly.cs.in: Added for GAC
8464         * mono/Makefile.am: Changes for GAC installation        
8465         * configure.in: Added refs for dbus-sharp.dll.config.in and
8466         Assembly.cs.in. More fixes for mono testing
8467         * mono/example/Makefile.am: Changed var to CSC
8468         * Makefile.am: Changed flag name to DBUS_USE_CSC
8469
8470 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8471
8472         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8473         * mono/doc/*: Added documentation framework
8474         * configure.in: Added monodoc check
8475         * README: Added description of mono configure flags
8476
8477 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8478
8479         * doc/dbus-specification.xml: Added a "Required" column to the 
8480         header fields table and changed the "zero or more" verbage in
8481         the above paragraph to read "The header must contain the required 
8482         named header fields and zero or more of the optional named header 
8483         fields".
8484         * test/data/invalid-messages/*.message: Added the required PATH 
8485         named header field to the tests so that they don't fail on 
8486         'Missing path field'
8487
8488 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8489
8490         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8491         the stack by implicitly defining variable and parameter types and
8492         removing the hack of defining C pointers as python objects and later
8493         casting them.
8494
8495 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8496
8497         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8498
8499 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8500
8501         * mono/DBusType/Dict.cs: Handle empty dicts
8502         * mono/DBusType/Array.cs: Handle empty arrays
8503         * mono/Arguments.cs: Handle empty arguments
8504
8505 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8506
8507         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8508         field
8509
8510 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8511
8512         * test/data/valid-messages/standard-*.message: Update message
8513         test scripts to new header field names.
8514
8515 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8516
8517         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8518         overflow to times_we_did_each_thing array which would chop off the
8519         first character of the failure_dir string. Increased the size of
8520         the array to 7 to reflect the number of random mutation functions
8521         we have.
8522
8523 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8524
8525         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8526         unix_server->watch here, it is unreffed in disconnect.
8527         (_dbus_server_new_for_tcp_socket): convert NULL host to
8528         "localhost" here so we don't append NULL to address.
8529         
8530         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8531         various addresses, including tcp with no explicit host.
8532
8533 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8534
8535         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8536         fix incorrect setting of .name_offset in the HeaderField (it was
8537         off by two bytes, positioned right after the name and typecode)
8538
8539         * bus/bus.c (bus_context_new, bus_context_unref): test before
8540         calling dbus_server_free_data_slot and _dbus_user_database_unref
8541         in case of an error.
8542
8543         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8544         by libdbus-gtool.
8545
8546 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8547
8548         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8549         _dbus_poll() instead of select().
8550
8551 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8552
8553         * bus/main.c (signal_handler): Reload the configuration files
8554         on SIGHUP.
8555         (main): Set up our SIGHUP handler.
8556
8557         * bus/bus.c (struct BusContext): Store the config file, user and
8558         fork flag in the BusContext.
8559         (process_config_first_time_only): Added.  Contains the code
8560         (previously in bus_context_new) for setting up the BusContext from
8561         the BusConfigParser that should only be run the first time the
8562         config files are read.
8563         (process_config_every_time): Added.  Contains the code (previously
8564         in bus_context_new) for setting up the BusContext from the
8565         BusConfigParser that should be run every time the config files are
8566         read.
8567         (load_config): Added.  Builds a BusConfigParser from the config
8568         files and passes the resulting structure off to
8569         process_config_first_time_only (assuming this is the first time)
8570         and process_config_every_time.
8571         (bus_context_new): All of the config-related code has been moved
8572         to process_config_first_time_only and process_config_every_time.
8573         Now this function just does the non-config-related initializations
8574         and calls load_config.
8575         (bus_context_reload_config): Added.
8576
8577 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8578
8579         * bus/driver.c (bus_driver_handle_get_service_owner):
8580         implement a GetServiceOwner method.
8581         * doc/dbus-specification.xml: document it.
8582         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8583         
8584         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8585         implement, using the bus GetServiceOwner method.
8586
8587         * test/glib/test-dbus-glib.c:
8588         use dbus_gproxy_new_for_service_owner so that we can receive the
8589         signal. 
8590
8591 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8592
8593         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8594         dbus/dbus-message.c, dbus/dbus-protocol.h
8595         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8596
8597         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8598         dbus/dbus-message.c, dbus/dbus-protocol.h
8599         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8600
8601         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8602         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8603         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8604
8605         * doc/dbus-specification.xml (Header Fields Table):
8606         s/SERVICE/DESTINATION
8607         s/SENDER_SERVICE/SENDER
8608
8609
8610 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8611
8612         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8613         a few seconds.
8614
8615 2004-04-13  Michael Meeks  <michael@ximian.com>
8616
8617         * glib/dbus-gobject.c (handle_introspect): split out
8618         (introspect_properties): this.
8619         (handle_introspect): implement this.
8620
8621         * test/glib/Makefile.am: use the absolute path so the bus
8622         daemon's chdir ("/") doesn't kill us dead.
8623
8624         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8625
8626 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8627
8628         * bus/config-parser.c (struct BusConfigParser): Added
8629         included_files field.
8630         (seen_include): Added.  Checks whether or not a file has already
8631         been included by any parent BusConfigParser.
8632         (bus_config_parser_new): Copy the parent's included_files.
8633         (include_file): Track which files have been included, and fail on
8634         circular inclusions.
8635         (process_test_valid_subdir): Changed printf to report if we are
8636         testing valid or invalid conf files.
8637         (all_are_equiv): Changed printf to be a bit clearer about
8638         what we are actually doing.
8639         (bus_config_parser_test): Test invalid configuration files.
8640
8641 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8642
8643         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8644         argument.  If non-null, the newly-constructed BusConfigParser will
8645         be initialized with the parent's BusLimits instead of the default
8646         values.
8647         (include_file): When including a config file, pass in
8648         the current parser as the parent and then copy the BusLimits
8649         from the included BusConfigParser pack to the current parser.
8650         (process_test_valid_subdir): Renamed from process_test_subdir.
8651         (process_test_equiv_subdir): Added.  Walks through a directory,
8652         descending into each subdirectory and loading the config files
8653         it finds there.  If any subdirectory contains two config files
8654         that don't produce identical BusConfigParser structs, fail.
8655         For now, the BusConfigParser's BusPolicies are not compared.
8656         (bus_config_parser_test): Call both process_test_valid_subdir and
8657         process_test_equiv_subdir.
8658
8659         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8660         argument and pass it along to the call to bus_config_parser_new.
8661         Also made a few small changes to allow this code to compile.
8662
8663         * bus/config-loader-expat.c (bus_config_load): Take a parent
8664         argument and pass it along to the call to bus_config_parser_new.
8665
8666         * bus/bus.c (bus_context_new): Load the config file
8667         with a NULL parent argument.
8668
8669 2004-03-29  Michael Meeks  <michael@ximian.com>
8670
8671         * glib/dbus-gobject.c (introspect_properties): split
8672         out, fix mangled 'while' flow control.
8673         (introspect_signals): implement.
8674         (handle_introspect): update.
8675
8676 2004-03-29  Michael Meeks  <michael@ximian.com>
8677
8678         * glib/dbus-gobject.c (set_object_property): split out / 
8679         re-work, use the property type, and not the message type(!)
8680         (get_object_property): ditto.
8681
8682         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8683         (dbus_gvalue_marshal): make this code re-usable, needed
8684         for signals too, also on both proxy and server side.
8685         Re-write for more efficiency / readability.
8686
8687 2004-03-29  Michael Meeks  <michael@ximian.com>
8688
8689         * dbus/dbus-message.c
8690         (dbus_message_new_error_printf): impl.
8691
8692         * dbus/dbus-connection.c
8693         (dbus_connection_unregister_object_path): fix warning.
8694
8695         * configure.in: fix no-mono-installed situation.
8696
8697 2004-03-27  Havoc Pennington  <hp@redhat.com>
8698
8699         Patch from Timo Teräs:
8700         
8701         * tools/dbus-send.c (main): if --print-reply, assume type is
8702         method call; support boolean type args
8703         
8704         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8705         bunch of memleak and logic bugs
8706         
8707 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8708
8709         * mono/Arguments.cs:
8710         * mono/Introspector.cs:
8711         * mono/Handler.cs:
8712         * mono/InterfaceProxy.cs:
8713         * mono/Message.cs
8714         * mono/ProxyBuilder.cs:
8715         * mono/Service.cs:
8716         Added InterfaceProxy class to avoid building proxies for every
8717         object.
8718
8719         * dbus-message.h:
8720         * dbus-message.c (dbus_message_append_args_valist)
8721         (dbus_message_iter_get_object_path)
8722         (dbus_message_iter_get_object_path_array)
8723         (dbus_message_iter_append_object_path)
8724         (dbus_message_iter_append_object_path_array):
8725         Added object_path iter functions to handle OBJECT_PATH arguments
8726         
8727 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8728
8729         First checkin of mono bindings.
8730         * configure.in:
8731         * Makefile.am:
8732         Build stuff for the bindings
8733         * dbus-sharp.pc.in: Added for pkgconfig
8734         
8735 2004-03-21  Havoc Pennington  <hp@redhat.com>
8736
8737         * test/test-service.c (main): remove debug spew
8738
8739 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8740
8741         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8742         arrays
8743
8744         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8745         (dbus_message_iter_init_array_iterator)
8746         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8747         indicate whether the iterator is empty
8748
8749         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8750         warnings
8751
8752 2004-03-19  Havoc Pennington  <hp@redhat.com>
8753
8754         * NEWS: 0.21 updates
8755
8756         * configure.in: 0.21
8757
8758         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8759         
8760         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8761         you don't need pyrex to make dist
8762
8763         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8764         sources; run moc
8765         
8766 2004-03-18  Richard Hult  <richard@imendio.com>
8767
8768         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8769         (dbus_message_set_auto_activation): Add doxygen docs.
8770
8771 2004-03-16  Richard Hult  <richard@imendio.com>
8772
8773         * bus/activation.c: (bus_activation_service_created),
8774         (bus_activation_send_pending_auto_activation_messages),
8775         (bus_activation_activate_service):
8776         * bus/activation.h:
8777         * bus/dispatch.c: (bus_dispatch),
8778         (check_nonexistent_service_auto_activation),
8779         (check_service_auto_activated),
8780         (check_segfault_service_auto_activation),
8781         (check_existent_service_auto_activation), (bus_dispatch_test):
8782         * bus/driver.c: (bus_driver_handle_activate_service):
8783         * bus/services.c: (bus_registry_acquire_service):
8784         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8785         (dbus_message_get_auto_activation):
8786         * dbus/dbus-message.h:
8787         * dbus/dbus-protocol.h: Implement auto-activation.
8788         
8789         * doc/dbus-specification.xml: Add auto-activation to the spec.
8790
8791 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8792
8793         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8794         fix a bug with CUSTOM types.
8795
8796         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8797         a unit test for this bug (used to fail).
8798
8799 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8800
8801         * bus/activation.c:
8802         (babysitter_watch_callback): notify all pending activations waiting for
8803           the same exec that the activation failed.
8804         (bus_activation_activate_service): shortcut the activation if we 
8805           already waiting for the same executable to start up.
8806
8807 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8808
8809         * bus/activation.c: 
8810         - Added service file reloading. 
8811           Each service files directory is kept in an hash table in 
8812           BusActivation and each BusActivationEntry knows what .service-file it
8813           was read from. So when you try to activate a service the bus will 
8814           check if it's been updated, removed or if new .service-files has 
8815           been installed.
8816         - Test code at the bottom for the service file reloading.
8817         * bus/test-main.c: (main):
8818         * bus/test.h:
8819         - added service reloading test.
8820         * dbus/dbus-sysdeps.c: 
8821         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8822
8823 2004-03-08  Michael Meeks  <michael@ximian.com>
8824
8825         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8826         bail immediately if disconnected, to avoid busy loop.
8827
8828         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8829         cleanup cut/paste/inefficiency.
8830
8831 2004-03-01  David Zeuthen  <david@fubar.dk>
8832
8833         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8834         bug where args were used twice. This bug resulted in a segfault
8835         on a Debian/PPC system when starting the messagebus daemon. Include
8836         dbus-sysdeps.h for DBUS_VA_COPY
8837
8838         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8839
8840         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8841         appropriate va_copy implementation. From GLib
8842         
8843 2004-02-24  Joe Shaw  <joe@ximian.com>
8844
8845         * bus/services.c (bus_registry_acquire_service): We need to pass
8846         in the service name to dbus_set_error() to prevent a crash.
8847
8848 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8849
8850         * AUTHORS: Reveal my True identity.
8851
8852 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8853
8854         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8855         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8856
8857 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8858
8859         * doc/TODO: Added not about better error check of configuration files.
8860
8861 2003-12-02  Richard Hult  <richard@imendio.com>
8862
8863         * Update AFL version to 2.0 throughout the source files to reflect
8864         the update that was done a while ago.
8865
8866 2003-12-02  Richard Hult  <richard@imendio.com>
8867
8868         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8869         wrote_dict_key to FALSE on the iter that the dict is appended to,
8870         just like when appending other types. Fixes a bug where a dict
8871         couldn't be put inside a dict.
8872         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8873         (message_iter_test, _dbus_message_test): Add test case for dict
8874         inside dict.
8875
8876 2003-12-01  David Zeuthen  <david@fubar.dk>
8877
8878         * python/dbus.py: Add the actual message when calling the reciever
8879         of a signal such that parameters can be inspected. Add the method
8880         remove_signal_receiver
8881         
8882 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8883
8884         * bus/*.[ch]:
8885         * dbus/*.[ch]:
8886         * glib/*.[ch]: Made ref functions return the pointer
8887
8888 2003-11-25  Zack Rusin  <zack@kde.org>
8889
8890         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8891
8892         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8893         wrappers,
8894
8895         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8896         the Integrator and to better fit with the server,
8897
8898 2003-11-24  Zack Rusin  <zack@kde.org>
8899
8900         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8901         the integrator handles it now
8902
8903         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8904         since QTimer wasn't really meant to be used the way DBusTimeout is
8905
8906 2003-11-24  Zack Rusin  <zack@kde.org>
8907
8908         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8909         Integrator class which integrates D-BUS with the Qt event loop,
8910
8911         * qt/connection.h, qt/connection.cpp: Move all the code which
8912         was dealing with D-BUS integration to the Integrator class,
8913         and start using Integrator,
8914
8915 2003-11-23  Zack Rusin  <zack@kde.org>
8916
8917         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8918         wrapper
8919
8920         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8921         switching namespaces to DBusQt, reworking the class,
8922
8923         * Makefile.cvs: switching dependencies so that it matches KDE 
8924         schematics,
8925         
8926         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8927         the library
8928
8929 2003-11-19  Havoc Pennington  <hp@redhat.com>
8930
8931         * NEWS: update
8932
8933         * configure.in: bump version to 0.20
8934
8935         * configure.in (have_qt): add yet another place to look for qt
8936         (someone hand trolltech a .pc file...)
8937
8938 2003-11-01  Havoc Pennington  <hp@redhat.com>
8939
8940         * doc/dbus-specification.xml: add state machine docs on the auth
8941         protocol; just a first draft, I'm sure it's wrong.      
8942
8943 2003-10-28  David Zeuthen  <david@fubar.dk>
8944
8945         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8946         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8947         
8948 2003-10-28  Havoc Pennington  <hp@redhat.com>
8949
8950         * dbus/dbus-message.c (get_next_field): delete unused function
8951
8952 2003-10-28  Havoc Pennington  <hp@redhat.com>
8953
8954         * bus/expirelist.c (do_expiration_with_current_time): detect
8955         failure of the expire_func due to OOM
8956
8957         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8958
8959         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8960         NoReply error that's now created by the bus when the service exits
8961
8962 2003-10-28  Havoc Pennington  <hp@redhat.com>
8963
8964         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8965         tests for set_path, set_interface, set_member, etc.
8966
8967         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8968
8969         * dbus/dbus-message.c (set_string_field): always just delete and
8970         re-append the field; accept NULL for deletion
8971         (re_align_fields_recurse): reimplement
8972         
8973 2003-10-26  Havoc Pennington  <hp@redhat.com>
8974
8975         * dbus/dbus-connection.c: fix docs to properly describe the
8976         disconnected message
8977         (_dbus_connection_notify_disconnected): remove this function; 
8978         we can't synchronously add the disconnected message, we have to 
8979         do it after we've queued any remaining real messages
8980         (_dbus_connection_get_dispatch_status_unlocked): queue the
8981         disconnect message only if the transport has finished queueing all
8982         its real messages and is disconnected.
8983         (dbus_connection_disconnect): update the dispatch status here
8984
8985 2003-10-22  Havoc Pennington  <hp@redhat.com>
8986
8987         * bus/bus.c (bus_context_check_security_policy): fix up assertion
8988
8989         * bus/connection.c (bus_transaction_send_from_driver): set the
8990         destination to the connection's base service
8991
8992 2003-10-20  Havoc Pennington  <hp@redhat.com>
8993
8994         hmm, make check is currently not passing.
8995         
8996         * doc/dbus-specification.xml: add requirement that custom type
8997         names follow the same rules as interface names.
8998
8999         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9000         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9001         'map'
9002
9003         * doc/dbus-specification.xml: update type codes to match
9004         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9005         CUSTOM. Add type OBJECT_PATH to the spec.
9006
9007 2003-10-17  Havoc Pennington  <hp@redhat.com>
9008
9009         * bus/driver.c (create_unique_client_name): use "." as separator
9010         in base service names instead of '-'
9011
9012         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9013         byte at the end of the string
9014
9015         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9016         optimization macros since string validation seems to be a slow
9017         point.
9018         
9019         * doc/dbus-specification.xml: restrict valid
9020         service/interface/member/error names. Add test suite code for the
9021         name validation.
9022
9023         * dbus/dbus-string.c: limit service/interface/member/error names 
9024         to [0-9][A-Z][a-z]_
9025
9026         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9027         format arg to verbose spew
9028
9029         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9030         memory, return instead of g_error
9031
9032         * test/test-service.c (path_message_func): support emitting a
9033         signal on request
9034
9035         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9036         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9037         assuming the activation bus was the session bus so that services
9038         started manually will still register.
9039         (init_connections_unlocked): fix so that in OOM situation we get
9040         the same semantics when retrying the function
9041         
9042         * test/test-service.c (main): change to use path registration, to
9043         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9044         than DBUS_BUS_SESSION
9045
9046 2003-10-16  Havoc Pennington  <hp@redhat.com>
9047
9048         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9049
9050         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9051         coverage of the tests
9052         (coverage-report.txt): don't move the .da and .bbg files around
9053
9054 2003-10-16  Havoc Pennington  <hp@redhat.com>
9055
9056         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9057         to put there
9058
9059 2003-10-16  Havoc Pennington  <hp@redhat.com>
9060
9061         * bus/connection.c (bus_pending_reply_expired): either cancel or
9062         execute, not both
9063         (bus_connections_check_reply): use unlink, not remove_link, as we
9064         don't want to free the link; fixes double free mess
9065
9066         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9067         where no reply was received
9068
9069         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9070         fix a refcount leak
9071
9072         * bus/signals.c (match_rule_matches): add special cases for the
9073         bus driver, so you can match on sender/destination for it.
9074
9075         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9076         DBUS_PRINT_BACKTRACE is set
9077
9078         * dbus/dbus-internals.c: add pid to assertion failure messages
9079
9080         * dbus/dbus-connection.c: add message type code to the debug spew
9081
9082         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9083         sender=foo not service=foo
9084
9085         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9086         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9087         DBUS_ACTIVATION_ADDRESS instead
9088
9089         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9090         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9091
9092         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9093         context struct
9094
9095         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9096         (dbus_message_iter_get_object_path_array): new function (half
9097         finished, disabled for the moment)
9098         
9099         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9100         DBUS_MESSAGE_TYPE_ERROR
9101
9102         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9103         avoid redirecting stderr to /dev/null
9104         (babysit): close stdin if not doing the "exit_with_session" thing
9105
9106         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9107         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9108         stdout/stdin, so things don't get confused
9109         
9110         * bus/system.conf.in: fix to allow replies, I modified .conf
9111         instead of .conf.in again.
9112
9113 2003-10-14  David Zeuthen  <david@fubar.dk>
9114
9115         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9116         argtype to arg_type when raising unknown arg type exception.
9117         Changed type list to reflect the changes in dbus-protocol.h so 
9118         the bindings actually work.
9119
9120 2003-10-14  Havoc Pennington  <hp@redhat.com>
9121
9122         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9123         to have a bug keeping it from outputting the .da files sometimes
9124         (string_get_string): don't append garbage nul bytes to the string.
9125
9126 2003-10-15  Seth Nickell  <seth@gnome.org>
9127
9128         * python/Makefile.am:
9129
9130         Include dbus_h_wrapper.h in the dist tarball.
9131
9132 2003-10-14  Havoc Pennington  <hp@redhat.com>
9133
9134         * bus/bus.c (bus_context_check_security_policy): revamp this to
9135         work more sanely with new policy-based requested reply setup
9136
9137         * bus/connection.c (bus_transaction_send_from_driver): set bus
9138         driver messages as no reply
9139
9140         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9141         requested_reply attribute on allow/deny rules
9142
9143         * bus/system.conf: add <allow requested_reply="true"/>
9144
9145         * bus/driver.c (bus_driver_handle_message): fix check for replies
9146         sent to the bus driver, which was backward. How did this ever work
9147         at all though? I think I'm missing something.
9148
9149         * dbus/dbus-message.c (decode_header_data): require error and
9150         method return messages to have a reply serial field to be valid
9151         (_dbus_message_loader_queue_messages): break up this function;
9152         validate that reply serial and plain serial are nonzero; 
9153         clean up the OOM/error handling.
9154         (get_uint_field): don't return -1 from this
9155         (dbus_message_create_header): fix signed/unsigned bug
9156
9157         * bus/connection.c (bus_connections_expect_reply): save serial of
9158         the incoming message, not reply serial
9159
9160 2003-10-14  Havoc Pennington  <hp@redhat.com>
9161
9162         * bus/connection.c: implement pending reply tracking using
9163         BusExpireList
9164
9165         * bus/bus.c (bus_context_check_security_policy): verify that a
9166         reply is pending in order to allow a reply to be sent. Deny 
9167         messages of unknown type.
9168
9169         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9170
9171         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9172         (bus_context_get_reply_timeout): new
9173
9174 2003-10-13  Seth Nickell  <seth@gnome.org>
9175
9176         * python/Makefile.am:
9177
9178         Pass "make distcheck": remove a couple files from DIST_FILES
9179         that weren't included in the final version.
9180
9181 2003-10-12  Havoc Pennington  <hp@pobox.com>
9182
9183         Added test code that 1) starts an actual bus daemon and 2) uses
9184         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9185         more testing possible, but this is the basic framework.
9186         
9187         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9188         empty proxy lists from the proxy list hash
9189
9190         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9191         couple of return_if_fail checks
9192
9193         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9194         to allocate, so everything is cleared to NULL as it should be.
9195
9196         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9197         source as data to dbus_connection_set_timeout_functions() as the 
9198         timeout functions expected
9199
9200         * test/glib/run-test.sh: add a little script to start up a message
9201         bus and run tests using it
9202
9203         * tools/dbus-launch.1: updates
9204
9205         * tools/dbus-launch.c (main): add --config-file option
9206
9207         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9208         that could never be reached.
9209
9210         * dbus/dbus-message.c (dbus_message_new_method_return) 
9211         (dbus_message_new_error, dbus_message_new_signal): set the
9212         no-reply-expected flag on all these. Redundant, but may
9213         as well be consistent.
9214
9215 2003-10-11  Havoc Pennington  <hp@pobox.com>
9216
9217         * test/decode-gcov.c (function_solve_graph): make broken block
9218         graph a nonfatal error since it seems to be broken. Need to debug
9219         this.
9220
9221         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9222         can't just check type > INVALID < LAST anymore
9223
9224         * dbus/dbus-message.c (dbus_message_get_signature): new function
9225         (dbus_message_has_signature): new function
9226         (struct DBusMessage): add signature field (right now it isn't sent
9227         over the wire, just generated on the fly)
9228         (dbus_message_copy): copy the signature, and init strings to
9229         proper length to avoid some reallocs
9230         (dbus_message_iter_init_array_iterator): return void, since it
9231         can't fail
9232         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9233         (_dbus_message_loader_queue_messages): add silly temporary hack to
9234         fill in message->signature on load
9235
9236         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9237         characters, so they are relatively human-readable.
9238
9239 2003-10-11  Havoc Pennington  <hp@pobox.com>
9240
9241         * dbus/dbus-message.c (_dbus_message_test): add more test
9242         coverage, but #if 0 for now since they uncover a bug 
9243         not fixed yet; I think in re_align_field_recurse()
9244         (re_align_field_recurse): add FIXME about broken assertion
9245
9246         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9247
9248         * bus/connection.c: share a couple code bits with expirelist.c
9249
9250         * bus/expirelist.h, bus/expirelist.c: implement a generic
9251         expire-items-after-N-seconds facility, was going to share between
9252         expiring connections and replies, decided not to use for expiring
9253         connections for now.
9254
9255         * COPYING: include AFL 2.0 (still need to change all the file headers)
9256
9257 2003-10-09  Havoc Pennington  <hp@redhat.com>
9258
9259         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9260         gcc 3.3. Not that we do anything about it yet.
9261
9262         * bus/signals.c (bus_match_rule_parse): impose max length on the
9263         match rule text
9264
9265         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9266
9267 2003-10-09  Havoc Pennington  <hp@redhat.com>
9268
9269         Make matching rules theoretically work (add parser).
9270         
9271         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9272         the case where destination is explicitly specified as bus driver
9273         and someone else is eavesdropping.
9274         
9275         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9276         definition of eavesdropping and assertion
9277
9278         * tools/dbus-send.c (main): use dbus_message_type_from_string
9279
9280         * bus/signals.c (bus_match_rule_parse): implement
9281
9282         * dbus/dbus-message.c (dbus_message_type_from_string): new
9283
9284         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9285
9286 2003-10-02  Havoc Pennington  <hp@pobox.com>
9287
9288         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9289         dbus_gproxy_oneway_call
9290
9291         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9292         (dbus_server_setup_with_g_main): fix to allow calling them more
9293         than once on the same args
9294         (dbus_bus_get_with_g_main): new function
9295
9296 2003-10-02  Havoc Pennington  <hp@redhat.com>
9297
9298         * doc/dbus-tutorial.xml: write some stuff
9299
9300 2003-09-29  Havoc Pennington  <hp@pobox.com>
9301
9302         * configure.in: split checks for Doxygen from XML docs, check for
9303         xmlto
9304
9305         * doc/Makefile.am: XML-ify all the docs, and add a blank
9306         dbus-tutorial.xml
9307
9308 2003-09-29  Havoc Pennington  <hp@pobox.com>
9309
9310         * Merge dbus-object-names branch. To see the entire patch 
9311         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9312         it's huuuuge though.
9313         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9314         
9315 2003-09-28  Havoc Pennington  <hp@pobox.com>
9316
9317         * HACKING: update to reflect new server
9318
9319 2003-09-26  Seth Nickell  <seth@gnome.org>
9320
9321         * python/dbus.py:
9322         * python/examples/example-signals.py:
9323
9324         Start implementing some notions of signals. The API
9325         is really terrible, but they sort of work (with the
9326         exception of being able to filter by service, and to
9327         transmit signals *as* a particular service). Need to
9328         figure out how to make messages come from the service
9329         we registered :-(
9330         
9331         * python/dbus_bindings.pyx.in:
9332
9333         Removed duplicate message_handler callbacks.
9334         
9335 2003-09-25  Havoc Pennington  <hp@redhat.com>
9336
9337         * bus/session.conf.in: fix my mess
9338
9339 2003-09-25  Havoc Pennington  <hp@pobox.com>
9340
9341         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9342
9343 2003-09-25  Seth Nickell  <seth@gnome.org>
9344
9345         * python/examples/example-service.py:
9346
9347         Johan notices complete wrong code in example-service, but
9348         completely wrong in a way that works exactly the same (!).
9349         Johan is confused, how could this possibly work? Example
9350         code fails to serve purpose of making things clear.
9351         Seth fixes.
9352
9353 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9354
9355         * doc/dbus-specification.sgml: don't require header fields
9356         to be 4-byte aligned and specify that fields should be
9357         distinguished from padding by the fact that zero is not
9358         a valid field name.
9359         
9360         * doc/TODO: remove re-alignment item and add item to doc
9361         the OBJECT_PATH type.
9362         
9363         * dbus/dbus-message.c:
9364         (HeaderField): rename the original member to value_offset
9365         and introduce a name_offset member to keep track of where
9366         the field actually begins.
9367         (adjust_field_offsets): remove.
9368         (append_int_field), (append_uint_field),
9369         (append_string_field): don't align the start of the header
9370         field to a 4-byte boundary.
9371         (get_next_field): impl finding the next marhsalled field
9372         after a given field.
9373         (re_align_field_recurse): impl re-aligning a number of
9374         already marshalled fields.
9375         (delete_field): impl deleting a field of any type and
9376         re-aligning any following fields.
9377         (delete_int_or_uint_field), (delete_string_field): remove.
9378         (set_int_field), (set_uint_field): no need to re-check
9379         that we have the correct type for the field.
9380         (set_string_field): ditto and impl re-aligning any
9381         following fields.
9382         (decode_header_data): update to take into account that
9383         the fields aren't 4-byte aligned any more and the new
9384         way to distinguish padding from header fields. Also,
9385         don't exit when there is too much header padding.
9386         (process_test_subdir): print the directory.
9387         (_dbus_message_test): add test to make sure a following
9388         field is re-aligned correctly after field deletion.
9389         
9390         * dbus/dbus-string.[ch]:
9391         (_dbus_string_insert_bytes): rename from insert_byte and
9392         allow the insert of multiple bytes.
9393         (_dbus_string_test): test inserting multiple bytes.
9394
9395         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9396         warning note to docs about having to re-align any
9397         marshalled values following the string.
9398         
9399         * dbus/dbus-message-builder.c:
9400         (append_string_field), (_dbus_message_data_load):
9401         don't align the header field.
9402         
9403         * dbus/dbus-auth.c: (process_test_subdir): print the
9404         directory.
9405         
9406         * test/break-loader.c: (randomly_add_one_byte): upd. for
9407         insert_byte change.
9408         
9409         * test/data/invalid-messages/bad-header-field-alignment.message:
9410         new test case.
9411         
9412         * test/data/valid-messages/unknown-header-field.message: shove
9413         a dict in the unknown field.
9414
9415 2003-09-25  Seth Nickell  <seth@gnome.org>
9416
9417         * python/dbus.py:
9418         * python/dbus_bindings.pyx.in:
9419
9420         Handle return values.
9421         
9422         * python/examples/example-client.py:
9423         * python/examples/example-service.py:
9424
9425         Pass back return values from the service to the client.
9426         
9427 2003-09-24  Seth Nickell  <seth@gnome.org>
9428
9429         * python/dbus.py:
9430
9431         Connect Object methods (when you are sharing an object) up... pass
9432         in a list of methods to be shared. Sharing all the methods just
9433         worked out too weird. You can now create nice Services over the
9434         DBus in Python. :-)
9435         
9436         * python/dbus_bindings.pyx.in:
9437
9438         Keep references to user_data tuples passed into C functions so 
9439         Python doesn't garbage collect on us.
9440
9441         Implement MethodReturn and Error subclasses of Message for creating
9442         DBusMessage's of those types.
9443         
9444         * python/examples/example-client.py:
9445         * python/examples/example-service.py:
9446
9447         Simple example code showing both how create DBus services and objects,
9448         and how to use them.
9449
9450 2003-09-23  Havoc Pennington  <hp@pobox.com>
9451
9452         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9453
9454 2003-09-23  Havoc Pennington  <hp@redhat.com>
9455
9456         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9457         (dbus_gproxy_disconnect_signal): implement
9458         (dbus_gproxy_manager_remove_signal_match): implement
9459         (dbus_gproxy_manager_add_signal_match): implement
9460         (dbus_gproxy_oneway_call): implement
9461
9462 2003-09-23  Havoc Pennington  <hp@pobox.com>
9463
9464         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9465         subclass. This means dropping the transparent thread safety of the
9466         proxy; you now need a separate proxy per-thread, or your own
9467         locking on the proxy. Probably right anyway.
9468         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9469
9470 2003-09-22  Havoc Pennington  <hp@redhat.com>
9471
9472         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9473
9474 2003-09-21  Seth Nickell  <seth@gnome.org>
9475
9476         First checkin of the Python bindings.
9477         
9478         * python/.cvsignore:
9479         * python/Makefile.am:
9480         * python/dbus_bindings.pyx.in:
9481         * python/dbus_h_wrapper.h:
9482
9483         Pieces for Pyrex to operate on, building a dbus_bindings.so
9484         python module for low-level access to the DBus APIs.
9485         
9486         * python/dbus.py:
9487
9488         High-level Python module for accessing DBus objects.
9489
9490         * configure.in:
9491         * Makefile.am:
9492
9493         Build stuff for the python bindings.
9494
9495         * acinclude.m4:
9496
9497         Extra macro needed for finding the Python C header files.
9498
9499 2003-09-21  Havoc Pennington  <hp@pobox.com>
9500
9501         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9502         implementing the proxy manager, didn't get very far.
9503
9504         * dbus/dbus-bus.c (dbus_bus_add_match): new
9505         (dbus_bus_remove_match): new
9506
9507         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9508         path_name argument; adjust the other not-yet-implemented 
9509         gproxy constructors to be what I think they should be.
9510
9511 2003-09-21  Havoc Pennington  <hp@pobox.com>
9512
9513         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9514         by default for message bus connections.
9515
9516         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9517         exit_on_disconnect flag is set and we process the disconnected
9518         signal.
9519         (dbus_connection_set_exit_on_disconnect): new function
9520
9521 2003-09-21  Havoc Pennington  <hp@pobox.com>
9522
9523         Get matching rules mostly working in the bus; only actually
9524         parsing the rule text remains. However, the client side of
9525         "signal connections" hasn't been started, this patch is only the
9526         bus side.
9527         
9528         * dbus/dispatch.c: fix for the matching rules changes
9529         
9530         * bus/driver.c (bus_driver_handle_remove_match)
9531         (bus_driver_handle_add_match): send an ack reply from these
9532         method calls
9533
9534         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9535         arguments, reported by Seth Nickell
9536
9537         * bus/config-parser.c (append_rule_from_element): support
9538         eavesdrop=true|false attribute on policies so match rules 
9539         can be prevented from snooping on the system bus.
9540
9541         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9542         and "destination" in attribute names; fix some docs bugs; 
9543         add eavesdrop=true|false attribute
9544
9545         * bus/driver.c (bus_driver_handle_add_match)
9546         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9547         messages
9548
9549         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9550         rid of broadcast service concept, signals are just always broadcast
9551
9552         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9553         mostly implement matching rules stuff (currently only exposed as signal
9554         connections)
9555
9556 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9557
9558         * doc/dbus-specification.sgml: Change the header field name
9559         to be an enum and update the rest of the spec to reference
9560         the fields using the conventinal name.
9561
9562         * dbus/dbus-protocol.h: update to reflect the spec.
9563
9564         * doc/TODO: add item to remove the 4 byte alignment requirement.
9565         
9566         * dbus/dbus-message.c: Remove the code to generalise the
9567         header/body length and serial number header fields as named
9568         header fields so we can reference field names using the 
9569         protocol values.
9570         (append_int_field), (append_uint_field), (append_string_field):
9571         Append the field name as a byte rather than four chars.
9572         (delete_int_or_uint_field), (delete_string_field): reflect the
9573         fact that the field name and typecode now occupy 4 bytes instead
9574         of 8.
9575         (decode_string_field), (decode_header_data): update to reflect
9576         protocol changes and move the field specific encoding from
9577         decode_string_field() back into decode_header_data().
9578         
9579         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9580         Add utility to aid debugging.
9581         
9582         * dbus/dbus-message-builder.c:
9583         (append_string_field), (_dbus_message_data_load): Update to
9584         reflect protocol changes; Change the FIELD_NAME directive
9585         to HEADER_FIELD and allow it to take the field's conventional
9586         name rather than the actual value.
9587         
9588         * test/data/*/*.message: Update to use HEADER_FIELD instead
9589         of FIELD_NAME; Always align the header on an 8 byte boundary
9590         *before* updating the header length.
9591
9592 2003-09-15  Havoc Pennington  <hp@pobox.com>
9593
9594         * dbus/dbus-pending-call.c: add the get/set object data
9595         boilerplate as for DBusConnection, etc. Use generic object data
9596         for the notify callback.
9597
9598         * glib/dbus-gparser.c (parse_node): parse child nodes
9599
9600         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9601         
9602         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9603         contain functions shared between the convenience lib and the
9604         installed lib
9605
9606         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9607         -export-symbols-regex to the GLib library
9608
9609         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9610         fix the locking in here, and add a default handler for
9611         Introspect() that just returns sub-nodes.
9612
9613 2003-09-14  Havoc Pennington  <hp@pobox.com>
9614
9615         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9616         rather than gfoo consistent
9617
9618         * glib/dbus-gproxy.h: delete for now, move contents to
9619         dbus-glib.h, because the include files don't work right since we
9620         aren't in the dbus/ subdir.
9621         
9622         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9623         (dbus_gproxy_end_call): finish
9624         (dbus_gproxy_begin_call): finish
9625
9626         * glib/dbus-gmain.c (dbus_set_g_error): new
9627
9628         * glib/dbus-gobject.c (handle_introspect): include information
9629         about child nodes in the introspection
9630
9631         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9632         function to help in implementation of introspection
9633
9634         * dbus/dbus-object-tree.c
9635         (_dbus_object_tree_list_registered_and_unlock): new function
9636
9637 2003-09-12  Havoc Pennington  <hp@pobox.com>
9638
9639         * glib/dbus-gidl.h: add common base class for all the foo_info
9640         types
9641
9642         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9643         similar to kdcop
9644
9645         * test/Makefile.am: try test srcdir -ef . in addition to test
9646         srcdir = ., one of them should work (yeah lame)
9647         
9648         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9649         library
9650         
9651         * glib/dbus-gparser.h: make description_load routines return
9652         NodeInfo* not Parser*
9653
9654         * Makefile.am (SUBDIRS): build test dir after all library dirs
9655
9656         * configure.in: add GTK+ detection
9657
9658 2003-09-07  Havoc Pennington  <hp@pobox.com>
9659
9660         * Make Doxygen contented.
9661
9662 2003-09-07  Havoc Pennington  <hp@pobox.com>
9663
9664         * doc/dbus-specification.sgml: more updates
9665
9666 2003-09-06  Havoc Pennington  <hp@pobox.com>
9667
9668         * doc/dbus-specification.sgml: partial updates
9669
9670         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9671         zillionth time; hopefully I edited the right file this time.
9672
9673         * bus/config-parser.c (append_rule_from_element): support
9674         send_type, send_path, receive_type, receive_path
9675
9676         * bus/policy.c: add message type and path to the list of things
9677         that can be "firewalled"
9678
9679 2003-09-06  Havoc Pennington  <hp@pobox.com>
9680
9681         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9682         (dbus_connection_register_object_path): make this not handle
9683         messages to paths below the given path
9684
9685 2003-09-03  Havoc Pennington  <hp@pobox.com>
9686
9687         * test/glib/Makefile.am: add this with random glib-linked test
9688         programs
9689
9690         * glib/Makefile.am: remove the random test programs from here,
9691         leave only the unit tests
9692
9693         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9694         uscore/javacaps conversion, and fix     
9695         (get_object_property, set_object_property): change to .NET
9696         convention for mapping props to methods, set_FooBar/get_FooBar, 
9697         since one language has such a convention we may as well copy it. 
9698         Plus real methods in either getFooBar or get_foo_bar style won't 
9699         collide with this convention.
9700
9701 2003-09-01  Havoc Pennington  <hp@pobox.com>
9702
9703         * glib/dbus-gparser.c: implement
9704
9705         * glib/dbus-gobject.c: start implementing skeletons support
9706
9707         * configure.in: when disabling checks/assert, also define
9708         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9709
9710 2003-09-01  Havoc Pennington  <hp@pobox.com>
9711
9712         * glib/Makefile.am: rearrange a bunch of files and get "make
9713         check" framework set up
9714
9715 2003-08-31  Havoc Pennington  <hp@pobox.com>
9716
9717         * fix build with --disable-tests
9718
9719 2003-08-30  Havoc Pennington  <hp@pobox.com>
9720
9721         * dbus/dbus-connection.c: purge DBusMessageHandler
9722
9723         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9724         use callbacks everywhere
9725
9726 2003-08-30  Havoc Pennington  <hp@pobox.com>
9727
9728         * test/data/valid-config-files/system.d/test.conf: change to 
9729         root for the user so warnings don't get printed
9730
9731         * dbus/dbus-message.c: add dbus_message_get_path,
9732         dbus_message_set_path
9733         
9734         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9735         dispatching to a path
9736
9737         * dbus/dbus-string.c (_dbus_string_validate_path): add
9738
9739         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9740         (_dbus_marshal_object_path): implement
9741
9742         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9743         to contain the path to the target object
9744         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9745         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9746
9747 2003-08-30  Havoc Pennington  <hp@pobox.com>
9748
9749         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9750
9751 2003-08-29  Havoc Pennington  <hp@pobox.com>
9752
9753         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9754         registered
9755         (struct DBusObjectSubtree): shrink this
9756         a lot, since we may have a lot of them
9757         (_dbus_object_tree_free_all_unlocked): implement
9758         (_dbus_object_tree_dispatch_and_unlock): implement
9759
9760 2003-08-29  Havoc Pennington  <hp@pobox.com>
9761
9762         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9763
9764 2003-08-28  Havoc Pennington  <hp@pobox.com>
9765
9766         purge DBusObjectID
9767         
9768         * dbus/dbus-connection.c: port to no ObjectID, create a
9769         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9770
9771         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9772         everything except UnregisterFunction and MessageFunction
9773         
9774         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9775         add DBUS_TYPE_OBJECT_PATH
9776         
9777         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9778         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9779         path-based object IDs
9780
9781 2003-08-25  Havoc Pennington  <hp@pobox.com>
9782
9783         Just noticed that dbus_message_test is hosed, I wonder when I
9784         broke that. I thought make check was passing earlier...
9785         
9786         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9787         container tree, will replace most of dbus-object-registry
9788
9789         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9790         screwup
9791
9792 2003-08-19  Havoc Pennington  <hp@pobox.com>
9793
9794         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9795         (dbus_message_is_error): fix this function
9796
9797         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9798         match
9799
9800         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9801         reflect clarified man page
9802         (bus_client_policy_check_can_send): ditto
9803         
9804         * bus/session.conf.in: fixup
9805
9806         * bus/system.conf.in: fixup
9807
9808 2003-08-18  Havoc Pennington  <hp@redhat.com>
9809
9810         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9811
9812         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9813         dumb bug created earlier (wrong order of args to
9814         decode_header_data())
9815         
9816         * tools/dbus-send.c: port
9817
9818         * tools/dbus-print-message.c (print_message): port
9819
9820         * test/data/*messages: port all messages over
9821         
9822         * dbus/dbus-message-builder.c: support including 
9823         message type
9824         
9825         * bus/driver.c: port over
9826         
9827         * bus/dispatch.c: port over to new stuff
9828
9829         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9830         rename disconnect signal to "Disconnected"
9831
9832 2003-08-17  Havoc Pennington  <hp@pobox.com>
9833
9834         This doesn't compile yet, but syncing up so I can hack on it from
9835         work. What are branches for if not broken code? ;-)
9836         
9837         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9838         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9839         DBUS_HEADER_FIELD_ERROR_NAME
9840         
9841         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9842         for the interface+member pairs
9843         (string_hash): change to use g_str_hash algorithm
9844         (find_direct_function, find_string_function): refactor these to
9845         share most code.
9846         
9847         * dbus/dbus-message.c: port all of this over to support 
9848         interface/member fields instead of name field
9849
9850         * dbus/dbus-object-registry.c: port over
9851         
9852         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9853         from _dbus_string_validate_name
9854
9855         * bus/dbus-daemon-1.1: change file format for the 
9856         <deny>/<allow> stuff to match new message naming scheme
9857
9858         * bus/policy.c: port over
9859
9860         * bus/config-parser.c: parse new format
9861         
9862 2003-08-16  Havoc Pennington  <hp@pobox.com>
9863
9864         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9865         broken assertion
9866
9867         * glib/dbus-gproxy.c: some hacking
9868
9869 2003-08-15  Havoc Pennington  <hp@redhat.com>
9870
9871         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9872
9873         * dbus/dbus-connection.c
9874         (dbus_connection_send_with_reply_and_block): factor out internals;
9875         change to convert any error replies to DBusError instead of 
9876         returning them as a message
9877
9878 2003-08-15  Havoc Pennington  <hp@pobox.com>
9879
9880         * dbus/dbus-connection.c, 
9881         dbus/dbus-pending-call.c: Finish the pending call stuff
9882
9883 2003-08-14  Havoc Pennington  <hp@redhat.com>
9884
9885         * dbus/dbus-pending-call.c: start on new object that will replace
9886         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9887         replies
9888
9889         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9890         with remote interfaces
9891
9892         * dbus/dbus-gidl.c: do the boring boilerplate in here
9893         
9894 2003-08-12  Havoc Pennington  <hp@pobox.com>
9895
9896         * bus/dispatch.c (bus_dispatch): make this return proper 
9897         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9898
9899         * dbus/dbus-errors.c (dbus_set_error): use
9900         _dbus_string_append_printf_valist
9901
9902         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9903         (_dbus_string_append_printf): new
9904
9905         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9906         UNKNOWN_METHOD
9907
9908         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9909         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9910         message is unhandled.
9911
9912 2003-08-11  Havoc Pennington  <hp@pobox.com>
9913
9914         * bus/test.c (client_disconnect_handler): change to return
9915         HANDLED (would have been REMOVE_MESSAGE)
9916
9917         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9918         HANDLED/NOT_YET_HANDLED instead of
9919         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9920         should be used.
9921
9922 2003-08-10  Havoc Pennington  <hp@pobox.com>
9923
9924         * tools/dbus-send.c (main): add --type argument, for now
9925         supporting only method_call and signal types.
9926
9927         * tools/dbus-print-message.c: print message type
9928
9929         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9930         init connection->objects
9931
9932         * doc/dbus-specification.sgml: fix sgml
9933
9934         * bus/*.c: port over to object-instance API changes
9935
9936         * test/test-service.c: ditto
9937         
9938         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9939         name, we will have to fix up the rest of the code to also handle
9940         this
9941         (dbus_message_new): generic message-creation call
9942         (set_string_field): allow appending name field
9943
9944 2003-08-06  Havoc Pennington  <hp@pobox.com>
9945
9946         * dbus/dbus-object-registry.c: implement signal connection 
9947         and dispatch
9948
9949         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9950
9951         * dbus/dbus-internals.c (_dbus_memdup): new function
9952
9953 2003-08-02  Havoc Pennington  <hp@pobox.com>
9954
9955         * dbus/dbus-message.c (dbus_message_get_no_reply)
9956         (dbus_message_set_no_reply): add these and remove
9957         set_is_error/get_is_error
9958
9959         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9960         remove the ERROR flag, since there's now an ERROR type
9961
9962 2003-08-01  Havoc Pennington  <hp@pobox.com>
9963
9964         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9965         implement
9966
9967         * dbus/dbus-message.c (dbus_message_get_type): new function
9968
9969         * doc/dbus-specification.sgml: add "type" byte to messages
9970
9971 2003-08-01  Havoc Pennington  <hp@pobox.com>
9972
9973         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
9974         a message type enum to distinguish kinds of message
9975         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
9976         that need not be replied to
9977
9978 2003-08-01  Havoc Pennington  <hp@pobox.com>
9979
9980         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
9981         (unpack_8_octets): fix no-64-bit-int bug
9982
9983         * dbus/dbus-object-registry.c (validate_id): validate the 
9984         connection ID bits, not just the instance ID.
9985
9986         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
9987         the connection-global 33 bits of the object ID
9988
9989         * dbus/dbus-object-registry.c (info_from_entry): fill in 
9990         object ID in the new way
9991
9992         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
9993         define server/client/instance bits.
9994
9995 2003-07-30  Havoc Pennington  <hp@pobox.com>
9996
9997         * dbus/dbus-connection.c (dbus_connection_register_object): fix
9998         build
9999
10000 2003-07-13  Havoc Pennington  <hp@pobox.com>
10001
10002         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10003         fields to DBusObjectVTable and DBusObjectInfo
10004
10005 2003-07-12  Havoc Pennington  <hp@pobox.com>
10006
10007         * dbus/dbus-object-registry.c: implement unit test,
10008         fix bugs discovered in process
10009
10010         * dbus/dbus-connection.c: remove handler_table and
10011         register_handler(), add DBusObjectRegistry usage
10012
10013         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10014         (dbus_object_id_set_null): new functions
10015
10016 2003-07-08  Havoc Pennington  <hp@pobox.com>
10017
10018         * dbus/dbus-object.c: implement some of this
10019
10020         * dbus/dbus-object-registry.c
10021         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10022         param
10023         (_dbus_object_registry_new): handle OOM
10024
10025 2003-07-08  Havoc Pennington  <hp@pobox.com>
10026
10027         * dbus/dbus-object.h: sketch out an API for registering objects
10028         with a connection, that allows us to use as little as 24 bytes
10029         per object and lets application code represent an object in 
10030         any conceivable way.
10031
10032         * dbus/dbus-object-registry.c: implement the hard bits of the
10033         DBusConnection aspect of object API. Not yet wired up.
10034         
10035 2003-07-06  Havoc Pennington  <hp@pobox.com>
10036
10037         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10038         (_dbus_marshal_object_id): new
10039         (_dbus_demarshal_object_id): new
10040         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10041         consolidate identical switch cases. Don't conditionalize handling
10042         of DBUS_TYPE_UINT64, need to handle the type always.
10043         (_dbus_marshal_validate_arg): consolidate identical cases, and
10044         handle DBUS_TYPE_OBJECT_ID
10045
10046         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10047
10048         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10049
10050 2003-09-28  Havoc Pennington  <hp@pobox.com>
10051
10052         * real 0.13 release
10053
10054 2003-09-28  Havoc Pennington  <hp@pobox.com>
10055
10056         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10057         to work with Debian db2html
10058
10059 2003-09-28  Havoc Pennington  <hp@pobox.com>
10060
10061         * configure.in: 0.13
10062
10063         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10064         stylesheet-images for benefit of Debian
10065         
10066         Change back to using filesystem-linked sockets for the system
10067         bus, so only root can create the default system bus address.
10068         
10069         * bus/system.conf.in: change to use
10070         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10071
10072         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10073         from here.
10074
10075         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10076         here, and AC_DEFINE DBUS_SYSTEM_PATH
10077
10078 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10079
10080         * doc/TODO:
10081         * doc/busconfig.dtd:
10082         Add busconfig DTD.
10083         
10084 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10085
10086         * doc/dbus-specification.sgml:
10087         Add activation reply values.
10088         
10089 2003-08-05  Havoc Pennington  <hp@redhat.com>
10090
10091         * configure.in: 0.12
10092
10093 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10094
10095         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10096         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10097         (add_watch), (remove_watch), (create_source):
10098         Refcount fds, fixes some reentrancy issues.
10099         
10100 2003-07-30  Havoc Pennington  <hp@redhat.com>
10101
10102         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10103         bus address to be abstract if we have abstract sockets
10104
10105         * NEWS: update
10106
10107 2003-07-28  Havoc Pennington  <hp@redhat.com>
10108
10109         * bus/messagebus.in: fix to avoid processname/servicename 
10110         confusion, from Michael Kearey
10111         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10112         
10113 2003-07-23  Havoc Pennington  <hp@pobox.com>
10114
10115         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10116         fix from Andy Hanton to remove broken "+1"
10117
10118 2003-07-16  Havoc Pennington  <hp@pobox.com>
10119
10120         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10121         babysitter process, as suggested by Thomas Leonard, so 
10122         an "eval `dbus-launch --exit-with-session`" will actually 
10123         return
10124
10125 2003-07-16  Havoc Pennington  <hp@pobox.com>
10126
10127         * configure.in: print out EXPANDED_* variables in the summary at
10128         the end; clean up the code that computes EXPANDED_ variables and
10129         get the ones using exec_prefix right. Should make things work
10130         when you build without --prefix
10131
10132 2003-06-29  Havoc Pennington  <hp@pobox.com>
10133
10134         * mono/Test.cs (class Test): fire up a main loop and run it
10135
10136         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10137         done once, the app has to do it
10138
10139 2003-06-26  Havoc Pennington  <hp@pobox.com>
10140
10141         * mono/Connection.cs: set up connection with the glib main loop
10142
10143 2003-07-01  Havoc Pennington  <hp@redhat.com>
10144
10145         * doc/dbus-specification.sgml: clarify the format of a type code,
10146         change suggested by Jim Blandy
10147
10148 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10149
10150         * doc/Makefile.am:
10151         * tools/Makefile.am: Don't assume srcdir == builddir.
10152
10153         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10154         the allocated block.
10155         (_dbus_memory_test): New function.
10156         * dbus/dbus-test.h: Add _dbus_memory_test ().
10157         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10158
10159         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10160         of %c%c%c%c.
10161         (dbus_message_new): Remove obsolete @todo.
10162
10163         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10164         (_dbus_marshal_set_uint64): Fix comment.
10165
10166         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10167         hardcode FIELD_REPLY_SERIAL.
10168
10169         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10170         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10171
10172         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10173         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10174
10175 2003-06-24  Havoc Pennington  <hp@pobox.com>
10176
10177         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10178
10179 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10180
10181         * configure.in:
10182         * gcj/.cvsignore:
10183         * gcj/Hello.java:
10184         * gcj/Makefile.am:
10185         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10186         * gcj/org/.cvsignore:
10187         * gcj/org/Makefile.am:
10188         * gcj/org/freedesktop/.cvsignore:
10189         * gcj/org/freedesktop/Makefile.am:
10190         * gcj/org/freedesktop/dbus/.cvsignore:
10191         * gcj/org/freedesktop/dbus/Makefile.am:
10192         * gcj/org/freedesktop/dbus/Message.java: (Message),
10193         (Message.Message):
10194         * gcj/org/freedesktop/dbus/natMessage.cc:
10195         Fix the build system.
10196
10197 2003-06-22  Havoc Pennington  <hp@pobox.com>
10198
10199         * mono/Connection.cs: add more bindings
10200
10201         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10202         more than once.
10203
10204 2003-06-22  Havoc Pennington  <hp@pobox.com>
10205
10206         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10207         Start wrapping more stuff.
10208
10209 2003-06-22  Havoc Pennington  <hp@pobox.com>
10210
10211         * mono/Message.cs: implement Message.Wrap() that ensures we only
10212         have a single C# wrapper per DBusMessage, assuming it works which
10213         it probably doesn't.
10214
10215         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10216         (dbus_message_free_data_slot): new
10217         (dbus_message_set_data): new
10218         (dbus_message_get_data): new
10219
10220 2003-06-22  Havoc Pennington  <hp@pobox.com>
10221
10222         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10223         (_dbus_data_slot_allocator_alloc): rework these to keep a
10224         reference count on each slot and automatically manage a global
10225         slot ID variable passed in by address
10226
10227         * bus/bus.c: convert to new dataslot API
10228
10229         * dbus/dbus-bus.c: convert to new dataslot API
10230
10231         * dbus/dbus-connection.c: convert to new dataslot API
10232
10233         * dbus/dbus-server.c: convert to new dataslot API
10234
10235         * glib/dbus-gmain.c: ditto
10236
10237         * bus/test.c: ditto
10238
10239         * bus/connection.c: ditto
10240
10241 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10242
10243         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10244         after the gcj checks so that the correct configuration tags
10245         will be added to libtool.
10246
10247         * dbus-glib-1.pc.in: No need to specify any includes since
10248         dbus-1.pc.in has those.
10249
10250 2003-06-22  Havoc Pennington  <hp@pobox.com>
10251
10252         * mono/*, gcj/*, configure.in, Makefile.am:
10253         Check in makefiles and subdirs for mono and gcj bindings.
10254         Neither binding actually exists, just trying to get through
10255         all the build and other boring bits.
10256
10257 2003-06-21  Philip Blundell  <philb@gnu.org>
10258
10259         * tools/dbus-monitor.1: Updated.
10260
10261         * tools/dbus-send.1: Likewise.
10262
10263 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10264
10265         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10266         for hangup and error after checking read so we won't discard
10267         pending data if both hangup and read are set.
10268
10269 2003-06-19  Philip Blundell  <philb@gnu.org>
10270
10271         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10272
10273         * tools/dbus-send.c: Accept both --system and --session.
10274
10275         * tools/dbus-monitor.c: Same here.
10276
10277 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10278
10279         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10280         from C++ (Patch by Miloslav Trmac).
10281
10282 2003-06-15  Joe Shaw  <joe@assbarn.com>
10283
10284         * configure.in: Check for socklen_t.
10285
10286         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10287
10288         * test/test-segfault.c: Add #include <sys/time.h>
10289
10290         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10291         dbus-launch needs it.
10292
10293 2003-06-09  Havoc Pennington  <hp@redhat.com>
10294
10295         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10296         SUN_LEN, it breaks abstract socket usage
10297
10298         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10299         starts of lines.
10300
10301 2003-06-04  Havoc Pennington  <hp@pobox.com>
10302
10303         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10304         using unix:abstract=/foo, and when listening in a tmpdir
10305         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10306
10307         * dbus/dbus-transport.c (_dbus_transport_open): support
10308         unix:abstract=/foo
10309
10310         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10311         support abstract sockets
10312
10313         * dbus/dbus-transport-unix.c
10314         (_dbus_transport_new_for_domain_socket): support abstract sockets
10315
10316         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10317         toggle as an argument, implement abstract namespace support
10318         (_dbus_listen_unix_socket): ditto
10319
10320         * configure.in: add --enable-abstract-sockets and implement
10321         a configure check for autodetection of the right value.
10322
10323 2003-06-01  Havoc Pennington  <hp@pobox.com>
10324
10325         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10326         in /tmp (though on Linux this will end up being useless,
10327         when we add abstract namespace support)
10328
10329         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10330         subst'ing it
10331
10332 2003-05-28  Colin Walters  <walters@verbum.org>
10333
10334         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10335
10336 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10337
10338         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10339
10340 2003-05-17  Colin Walters  <walters@gnu.org>
10341
10342         * tools/dbus-send.c: Don't exit with an error code if --help was
10343         passed.  Default to using the session bus instead of the system
10344         one.
10345
10346         * tools/dbus-launch.c: Ditto.
10347
10348         * tools/dbus-monitor.c: Ditto.
10349
10350         * tools/dbus-send.1: Update with new arguments.
10351
10352         * tools/dbus-launch.c: Emit code to export variables.  New
10353         arguments -s and -c to specify shell syntax, and a bit of code to
10354         autodetect syntax.  Also, allow specifying a program to run.
10355
10356         * tools/dbus-launch.1: Update with new arguments.
10357
10358         * tools/dbus-send.1: Ditto.
10359
10360         * tools/dbus-monitor.1: Ditto.
10361
10362 2003-05-17  Havoc Pennington  <hp@pobox.com>
10363
10364         * bus/config-parser.c (merge_included): merge in policies from
10365         child configuration file.
10366
10367         * bus/policy.c (bus_policy_merge): function to merge two policies
10368         together
10369
10370 2003-05-16  Havoc Pennington  <hp@redhat.com>
10371
10372         * dbus/dbus-connection.c: disable verbose lock spew
10373
10374         * tools/dbus-send.c: add --print-reply command line option
10375
10376         * tools/dbus-print-message.h (print_message): new util function
10377         shared by dbus-send and dbus-monitor
10378
10379         * tools/dbus-monitor.c (handler_func): exit on disconnect
10380
10381         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10382         disconnected, don't try to use the read_watch
10383
10384         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10385         so we can find this bug more easily
10386
10387 2003-05-16  Havoc Pennington  <hp@redhat.com>
10388
10389         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10390         NULL as DBusHashTable is annoyingly likely to do.
10391
10392 2003-05-16  Colin Walters  <walters@verbum.org>
10393
10394         * tools/dbus-monitor.c: Add --session argument and usage()
10395         function.
10396
10397         * tools/dbus-monitor.1: Update with new --session arg.
10398
10399         * bus/Makefile.am (install-data-hook): Create
10400         $(libdir)/dbus-1.0/services so that the session bus is happy.
10401
10402 2003-05-15  Havoc Pennington  <hp@redhat.com>
10403
10404         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10405         on non-x86. ifdef's are evil.
10406
10407 2003-05-15  Havoc Pennington  <hp@redhat.com>
10408
10409         * configure.in: 0.11
10410
10411         * NEWS: update
10412
10413         * bus/Makefile.am (initddir): apparently we are supposed to put
10414         init scripts in /etc/rc.d/init.d not /etc/init.d
10415
10416         * bus/Makefile.am: remove the "you must --enable-tests to make
10417         check" as it broke distcheck
10418
10419         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10420
10421 2003-05-13  James Willcox  <jwillcox@gnome.org>
10422
10423         * configure.in:
10424         * bus/activation.c: (bus_activation_service_created),
10425         (bus_activation_activate_service):
10426         * bus/driver.c: (bus_driver_send_service_deleted),
10427         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10428         (bus_driver_send_service_acquired),
10429         (bus_driver_send_welcome_message),
10430         (bus_driver_handle_list_services):
10431         * bus/session.conf.in:
10432         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10433         (dbus_bus_service_exists), (dbus_bus_activate_service):
10434         * dbus/dbus-bus.h:
10435
10436         Add some convenience API which lets you activate a service, and did a
10437         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10438         and dbus_message_get_args()
10439
10440 2003-05-11  Havoc Pennington  <hp@pobox.com>
10441
10442         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10443         calling _dbus_marshal_validate_arg() for every byte in a byte
10444         array, etc.
10445
10446         * dbus/dbus-message-handler.c: use atomic reference counting to
10447         reduce number of locks slightly; the global lock in here sucks
10448
10449         * dbus/dbus-connection.c
10450         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10451         update_dispatch_status that can be called with lock held; then use
10452         in a couple places to reduce locking/unlocking
10453         (dbus_connection_send): hold the lock over the whole function
10454         instead of acquiring it twice.
10455
10456         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10457
10458         * bus/connection.c (bus_connections_setup_connection): fix access
10459         to already-freed memory.
10460
10461         * dbus/dbus-connection.c: keep a little cache of linked list
10462         nodes, to avoid using the global linked list alloc lock in the
10463         normal send-message case. Instead we just use the connection lock
10464         that we already have to take.
10465
10466         * dbus/dbus-list.c (_dbus_list_find_last): new function
10467
10468         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10469         change to use a struct for the atomic type; fix docs,
10470         they return value before increment, not after increment.
10471
10472         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10473         (_dbus_string_append_8_aligned): new functions to try to
10474         microoptimize this operation.
10475         (reallocate_for_length): break this out of set_length(), to
10476         improve profile info, and also so we can consider inlining the
10477         set_length() part.
10478
10479         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10480         strings with some preallocation, cuts down on our calls to realloc
10481         a fair bit. Though if we can get the "move entire string to empty
10482         string" optimization below to kick in here, it would be better.
10483
10484         * dbus/dbus-string.c (_dbus_string_move): just call
10485         _dbus_string_move_len
10486         (_dbus_string_move_len): add a special case for moving
10487         an entire string into an empty string; we can just
10488         swap the string data instead of doing any reallocs.
10489         (_dbus_string_init_preallocated): new function
10490
10491 2003-05-11  Havoc Pennington  <hp@pobox.com>
10492
10493         Write a "test-profile" that does echo client-server with threads;
10494         profile reveals lock contention, memcpy/realloc of buffers, and
10495         UTF-8 validation as hot spots. 20% of lock contention eliminated
10496         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10497         contention is global mempool locks for GList and DBusList.
10498
10499         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10500         x86 implementation
10501
10502         * dbus/dbus-connection.c (struct DBusConnection): use
10503         dbus_atomic_t for the reference count
10504
10505         * dbus/dbus-message.c (struct DBusMessage): declare
10506         dbus_atomic_t values as volatile
10507
10508         * configure.in: code to detect ability to use atomic integer
10509         operations in assembly, from GLib patch
10510
10511         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10512         time, tired of it being wrong in threads and forked processes
10513
10514         * glib/test-profile.c: a little program to bounce messages back
10515         and forth between threads and eat CPU
10516
10517         * dbus/dbus-connection.c: add debug spew macros for debugging
10518         thread locks; include config.h at top; fix deadlock in
10519         dbus_connection_flush()
10520
10521 2003-05-08  Havoc Pennington  <hp@pobox.com>
10522
10523         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10524         data from getting written, and there wasn't a good reason to
10525         use _exit really.
10526
10527         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10528         dbus_verbose lines in test coverage
10529         (main): add list of functions sorted by # of untested blocks
10530         to the coverage report
10531
10532         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10533
10534         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10535
10536         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10537         extend test coverage
10538
10539         * test/data/auth/cancel.auth-script: test canceling an
10540         authentication
10541
10542         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10543         aren't used. in CVS history if we end up needing them.
10544
10545 2003-05-04  Havoc Pennington  <hp@pobox.com>
10546
10547         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10548         unit test
10549
10550         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10551         function, which assumed length was in # of strings, not bytes
10552
10553         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10554         missing coverage
10555
10556         * dbus/dbus-connection.c
10557         (_dbus_connection_queue_received_message): disable function for
10558         now, we are only using it in test mode
10559
10560         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10561         remove a mistaken FIXME
10562
10563 2003-05-04  Havoc Pennington  <hp@pobox.com>
10564
10565         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10566         unlock mutex on successful return, patch from Anders Gustafsson
10567
10568 2003-05-04  Havoc Pennington  <hp@pobox.com>
10569
10570         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10571         Anders Gustafsson
10572
10573 2003-05-04  Havoc Pennington  <hp@pobox.com>
10574
10575         * tools/dbus-launch.c: implement
10576
10577         * bus/main.c (main), bus/bus.c (bus_context_new):
10578         implement --print-pid and --fork
10579
10580 2003-05-03  Havoc Pennington  <hp@redhat.com>
10581
10582         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10583         the address had no value, and add to test suite. Fix and
10584         regression test from Miloslav Trmac
10585
10586 2003-05-03  Havoc Pennington  <hp@pobox.com>
10587
10588         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10589         watch is invalid when handled
10590
10591         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10592         dbus-launch utility to launch the bus from a shell script.  Didn't
10593         actually implement dbus-launch yet, it's just a placeholder still.
10594
10595 2003-05-03  Havoc Pennington  <hp@pobox.com>
10596
10597         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10598         daemon; also documents daemon config file, so replaces
10599         doc/config-file.txt. Corrected some stuff from config-file.txt in
10600         the process of moving it.
10601
10602 2003-05-03  Havoc Pennington  <hp@pobox.com>
10603
10604         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10605         add some man pages
10606
10607 2003-05-03  Colin Walters  <walters@verbum.org>
10608
10609         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10610         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10611
10612         * Makefile.am: Update to use new .pc versioning scheme.
10613
10614 2003-05-02  Havoc Pennington  <hp@redhat.com>
10615
10616         * bus/system.conf.in: allow send/receive to/from message bus
10617         service
10618
10619 2003-04-30  Havoc Pennington  <hp@redhat.com>
10620
10621         * configure.in: print a note when building with unit tests and
10622         without assertions
10623
10624 2003-04-30  Havoc Pennington  <hp@redhat.com>
10625
10626         * Makefile.am: add a check-local that complains if you didn't
10627         configure with --enable-tests
10628
10629 2003-04-29  Havoc Pennington  <hp@redhat.com>
10630
10631         * glib/dbus-gmain.c: docs cleanups
10632
10633         * dbus/dbus-types.h: add docs on int64 types
10634
10635         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10636         public API docs section
10637
10638 2003-04-29  Havoc Pennington  <hp@redhat.com>
10639
10640         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10641         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10642         parallel install API version, not with the D-BUS package version.
10643
10644         * HACKING: move some of README over here
10645
10646         * README: updates, and document API/ABI policy
10647
10648         * configure.in: reindentation
10649
10650 2003-04-29  Havoc Pennington  <hp@redhat.com>
10651
10652         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10653         to use this library" to be sure people have the right
10654         expectations.
10655
10656 2003-04-28  Havoc Pennington  <hp@redhat.com>
10657
10658         * configure.in: add --enable-docs which by default is auto yes if
10659         doxygen and db2html found, no otherwise; but can be forced on/off
10660
10661         * doc/Makefile.am: conditionalize whether to build docs on
10662         --enable-docs
10663
10664 2003-04-28  Havoc Pennington  <hp@redhat.com>
10665
10666         * configure.in: 0.10
10667
10668         * NEWS: update
10669
10670         * bus/system.conf.in: add <includedir>system.d</includedir>
10671
10672         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10673         username was provided but not uid
10674
10675         * bus/config-parser.c (struct BusConfigParser): keep track of
10676         whether the parser is toplevel or was included; change some
10677         of the error handling if it's included.
10678
10679 2003-04-27  Havoc Pennington  <hp@pobox.com>
10680
10681         Unbreak my code...
10682
10683         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10684         report correct status if we finish processing authentication
10685         inside this function.
10686
10687         * bus/activation.c (try_send_activation_failure): use
10688         bus_transaction_send_error_reply
10689
10690         * bus/connection.c (bus_connection_get_groups): return an error
10691         explaining the problem
10692
10693         * bus/bus.c (bus_context_check_security_policy): implement
10694         restriction here that inactive connections can only send the
10695         hello message. Also, allow bus driver to send anything to
10696         any recipient.
10697
10698         * bus/connection.c (bus_connection_complete): create the
10699         BusClientPolicy here instead of on-demand.
10700         (bus_connection_get_policy): don't return an error
10701
10702         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10703         sender field in message being replied to
10704
10705         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10706         causing it to return FALSE always
10707
10708         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10709         we checked sender rather than destination
10710
10711 2003-04-25  Havoc Pennington  <hp@redhat.com>
10712
10713         test suite is slightly hosed at the moment, will fix soon
10714
10715         * bus/connection.c (bus_connections_expire_incomplete): fix to
10716         properly disable the timeout when required
10717         (bus_connection_set_name): check whether we can remove incomplete
10718         connections timeout after we complete each connection.
10719
10720         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10721         probably still broken.
10722
10723         * bus/services.c (bus_registry_acquire_service): implement max
10724         number of services owned, and honor allow/deny rules on which
10725         services a connection can own.
10726
10727         * bus/connection.c (bus_connection_get_policy): report errors here
10728
10729         * bus/activation.c: implement limit on number of pending
10730         activations
10731
10732 2003-04-25  Havoc Pennington  <hp@redhat.com>
10733
10734         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10735         where we used >= 0 instead of != DBUS_UID_UNSET.
10736
10737 2003-04-25  Havoc Pennington  <hp@redhat.com>
10738
10739         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10740         were toggled without add/remove, fix from Anders Gustafsson
10741
10742 2003-04-24  Havoc Pennington  <hp@redhat.com>
10743
10744         * test/data/valid-config-files/basic.conf: add <limit> tags to
10745         this test
10746
10747         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10748         <limit> tag in configuration file.
10749
10750 2003-04-24  Havoc Pennington  <hp@redhat.com>
10751
10752         * bus/dispatch.c: somehow missed some name_is
10753
10754         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10755         (_dbus_timeout_set_interval): new
10756
10757         * bus/connection.c (bus_connections_setup_connection): record time
10758         when each connection is first set up, and expire them after the
10759         auth timeout passes.
10760
10761 2003-04-24  Havoc Pennington  <hp@redhat.com>
10762
10763         * dbus/dbus-message.c (dbus_message_name_is): rename
10764         (dbus_message_service_is): rename
10765         (dbus_message_sender_is): rename
10766         (dbus_message_get_service): rename
10767
10768 2003-04-24  Havoc Pennington  <hp@redhat.com>
10769
10770         * configure.in: add --enable-checks
10771
10772         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10773
10774         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10775         to use thread locks.
10776         (_dbus_connection_handler_destroyed_locked): move some private
10777         functions into proper docs group
10778
10779         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10780         _dbus_return_val_if_fail
10781
10782         Throughout: use dbus_return_if_fail
10783
10784 2003-04-23  James Willcox  <jwillcox@gnome.org>
10785
10786         * glib/dbus-glib.h:
10787         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10788         (dbus_connection_setup_with_g_main),
10789         (dbus_server_setup_with_g_main):
10790         * glib/test-dbus-glib.c: (main):
10791         * glib/test-thread-client.c: (main):
10792         * glib/test-thread-server.c: (new_connection_callback), (main):
10793         * tools/dbus-monitor.c: (main):
10794
10795         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10796         and dbus_server_setup_with_g_main().
10797
10798 2003-04-20  Havoc Pennington  <hp@pobox.com>
10799
10800         * doc/dbus-specification.sgml: document the restrictions on
10801         message and service names
10802
10803 2003-04-22  Havoc Pennington  <hp@redhat.com>
10804
10805         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10806         support, and do some code cleanups to share more code and
10807         speed up array marshal/demarshal.
10808
10809         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10810
10811         * configure.in: generate dbus-arch-deps.h
10812
10813         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10814         64-bit typecodes
10815
10816 2003-04-22  Havoc Pennington  <hp@redhat.com>
10817
10818         * test/data/valid-messages/opposite-endian.message: fix test
10819         to use proper type for rply field
10820
10821         * test/data/invalid-messages: add tests for below validation
10822
10823         * dbus/dbus-message.c (decode_header_data): validate field types,
10824         and validate that named fields are valid names
10825         (decode_name_field): consider messages in the
10826         org.freedesktop.Local. namespace to be invalid.
10827
10828         * dbus/dbus-string.c (_dbus_string_validate_name): new
10829
10830 2003-04-19  Havoc Pennington  <hp@pobox.com>
10831
10832         * bus/driver.c (bus_driver_handle_hello): check limits and
10833         return an error if they are exceeded.
10834
10835         * bus/connection.c: maintain separate lists of active and inactive
10836         connections, and a count of each. Maintain count of completed
10837         connections per user. Implement code to check connection limits.
10838
10839         * dbus/dbus-list.c (_dbus_list_unlink): export
10840
10841         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10842         number of bytes in the message queue for a connection
10843
10844 2003-04-18  Havoc Pennington  <hp@pobox.com>
10845
10846         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10847
10848         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10849         memleaks
10850
10851         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10852         on realloc be sure to update the pointer in the keyring
10853
10854         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10855         offset to avoid writing to unallocated memory
10856
10857         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10858         try the next mechanism, so we properly handle OOM
10859
10860         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10861         on OOM.
10862         (_dbus_keyring_new): fix OOM bug
10863         (_dbus_keyring_new_homedir): always set error; impose a maximum
10864         number of keys we'll load from the file, mostly to speed up the
10865         test suite and make its OOM checks more useful, but also for
10866         general sanity.
10867
10868         * dbus/dbus-auth.c (process_error_server): reject authentication
10869         if we get an error from the client
10870         (process_cancel): on cancel, send REJECTED, per the spec
10871         (process_error_client): send CANCEL if we get an error from the
10872         server.
10873
10874 2003-04-18  Havoc Pennington  <hp@pobox.com>
10875
10876         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10877         debug spew
10878
10879         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10880         handling problem
10881
10882         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10883         about DBUS_TEST_HOMEDIR once
10884
10885         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10886         the environment
10887
10888         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10889         config file so we test the right thing
10890
10891         Throughout: assorted docs improvements
10892
10893 2003-04-18  Havoc Pennington  <hp@pobox.com>
10894
10895         * glib/dbus-gmain.c: adapt to watch changes
10896
10897         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10898
10899         * dbus/dbus-server.h: remove dbus_server_handle_watch
10900
10901         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10902
10903         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10904         like DBusTimeout, so we don't need dbus_connection_handle_watch
10905         etc.
10906
10907 2003-04-17  Havoc Pennington  <hp@redhat.com>
10908
10909         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10910         database usage so it all goes via the DBusUserDatabase cache.
10911
10912 2003-04-17  Havoc Pennington  <hp@redhat.com>
10913
10914         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10915         there was an OOM watch we skipped, we always return TRUE so we
10916         iterate again to have a look at it again. Fixes test suite hang.
10917         Code rearrangement also lets us lose some memset and only iterate
10918         over callbacks once.
10919
10920         * bus/driver.c (bus_driver_handle_message): sense of test for
10921         reply was backward
10922
10923 2003-04-16  Havoc Pennington  <hp@pobox.com>
10924
10925         * doc/dbus-specification.sgml: make spec say serials are unsigned
10926
10927         * dbus/dbus-message.h: change message serials to unsigned
10928
10929         * dbus/dbus-connection.c: adapt to message serials being unsigned
10930
10931 2003-04-15  Havoc Pennington  <hp@pobox.com>
10932
10933         * bus/bus.c: create and keep around a shared DBusUserDatabase
10934         object.
10935
10936         * bus/connection.c (bus_connection_get_groups): don't cache
10937         groups for user in the connection object, since user database
10938         object now does that.
10939
10940 2003-04-16  Havoc Pennington  <hp@redhat.com>
10941
10942         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10943         list of size counters
10944         (_dbus_message_loader_putback_message_link): put back a popped link
10945
10946         * dbus/dbus-connection.c
10947         (dbus_connection_set_max_live_messages_size): rename
10948         max_received_size
10949         (dbus_connection_get_outgoing_size): get size of outgoing
10950         queue
10951         (_dbus_connection_set_connection_counter): remove this cruft
10952
10953 2003-04-14  Havoc Pennington  <hp@redhat.com>
10954
10955         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10956         caching, but at some point we might want to be able to use a
10957         different database.
10958
10959         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10960         SHA1 conf file to test the sha1 auth mechanism, since the regular
10961         test always uses EXTERNAL when available.
10962
10963         * configure.in,
10964         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10965         add conf file that requires use of sha1 auth
10966
10967 2003-04-13  Havoc Pennington  <hp@pobox.com>
10968
10969         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10970         from Philip Blundell to send messages and monitor them.
10971
10972 2003-04-13  Havoc Pennington  <hp@pobox.com>
10973
10974         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
10975         callbacks
10976
10977         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
10978         users
10979
10980         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10981         fix to only recover unused bytes if we're already authenticated
10982         (_dbus_transport_get_is_authenticated): fix to still mark us
10983         authenticated if there are unused bytes.
10984
10985         * bus/dispatch.c: implement security policy checking
10986
10987         * bus/connection.c (bus_transaction_send_from_driver): new
10988
10989         * bus/bus.c (bus_context_check_security_policy): new
10990
10991         * bus/dispatch.c (send_service_nonexistent_error): delete this,
10992         now we just set the DBusError and it gets converted to an error
10993         reply.
10994
10995         * bus/connection.c (allow_user_function): enable code using actual
10996         data from the config file
10997
10998         * bus/policy.c (list_allows_user): handle wildcard rules for
10999         user/group connection perms
11000
11001 2003-04-13  Havoc Pennington  <hp@pobox.com>
11002
11003         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11004
11005         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11006
11007         * bus/policy.c (bus_policy_append_mandatory_rule)
11008         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11009         (bus_policy_append_group_rule): new functions
11010
11011 2003-04-12  Havoc Pennington  <hp@pobox.com>
11012
11013         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11014
11015         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11016         the pid/gid/uid, just for paranoia.
11017
11018         * test/break-loader.c (randomly_do_n_things): find a byte
11019         containing a type code, and randomly change it to a different
11020         type code.
11021
11022 2003-04-12  Havoc Pennington  <hp@pobox.com>
11023
11024         * bus/policy.h: change BusPolicy to be the thing from the config
11025         file, and rename old BusPolicy to BusClientPolicy
11026
11027         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11028         match change in how policy works
11029
11030         * dbus/dbus-internals.h: mark assert_not_reached as
11031         __attribute((noreturn))__
11032
11033 2003-04-11  Havoc Pennington  <hp@redhat.com>
11034
11035         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11036         the broadcast service. Use boolean return for ServiceExists.
11037
11038 2003-04-11  Havoc Pennington  <hp@redhat.com>
11039
11040         * configure.in: add another directory to look for qt in.
11041
11042 2003-04-11  Havoc Pennington  <hp@redhat.com>
11043
11044         * AUTHORS: add Colin Walters
11045
11046 2003-04-11  Havoc Pennington  <hp@redhat.com>
11047
11048         * NEWS: update
11049
11050         * configure.in: 0.9
11051
11052 2003-04-11  Havoc Pennington  <hp@redhat.com>
11053
11054         * bus/messagebus.in: remove pid file when stopping the
11055         message bus, since the bus won't have privileges to remove it
11056         itself.
11057
11058 2003-04-11  Havoc Pennington  <hp@redhat.com>
11059
11060         * bus/bus.c (bus_context_new): move credentials change after
11061         creating pidfile
11062
11063 2003-04-11  Havoc Pennington  <hp@pobox.com>
11064
11065         * test/decode-gcov.c: add "below average functions" to the
11066         coverage report, and change how some of the code works.
11067
11068         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11069         not in the coverage stats.
11070
11071         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11072         couple places so running the test suite doesn't result in megaspam.
11073
11074 2003-04-11  Havoc Pennington  <hp@pobox.com>
11075
11076         * bus/dispatch.c (check_existent_service_activation): accept a no
11077         memory error in a place we didn't before
11078
11079         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11080         in case the first one failed," since the test suite is less
11081         broken now.
11082
11083 2003-04-10  Havoc Pennington  <hp@pobox.com>
11084
11085         * bus/dispatch.c (check_segfault_service_activation): add test
11086         for launching an executable that just crashes.
11087
11088         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11089         don't leave a million cores. We'll see how portable this is.
11090
11091 2003-04-10  Havoc Pennington  <hp@pobox.com>
11092
11093         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11094         the possible parent failures before we fork, so that we don't
11095         fail to create a babysitter after creating the child.
11096
11097         * bus/activation.c (bus_activation_activate_service): kill child
11098         if we don't successfully complete the activation.
11099
11100 2003-04-10  Havoc Pennington  <hp@redhat.com>
11101
11102         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11103         the connection if it's disconnected
11104
11105         * bus/activation.c (bus_activation_service_created): use new
11106         transaction features to roll back removal of pending activation if
11107         we don't successfully create the service after all. Don't remove
11108         pending activation if the function fails.
11109
11110         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11111         (_dbus_list_insert_after_link): new code to facilitate
11112         services.c fixes
11113
11114         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11115         new functionality, so we can preallocate the ability to insert
11116         into a hash table.
11117
11118         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11119         allowing us to put custom hooks in a transaction to be used for
11120         cancelling said transaction
11121
11122         * doc/dbus-specification.sgml: add some discussion of secondary
11123         service owners, and disallow zero-length service names
11124
11125         * bus/services.c (bus_registry_acquire_service): new function,
11126         splits out part of bus_driver_handle_acquire_service() and fixes
11127         a bug where we didn't remove the service doing the acquiring
11128         from the secondary queue if we failed to remove the current owner
11129         from the front of the queue.
11130
11131 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11132
11133         * doc/dbus-specification.sgml:
11134         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11135
11136 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11137
11138         * bus/.cvsignore:
11139         * glib/.cvsignore:
11140         * test/.cvsignore:
11141         Added files to cvsignore
11142
11143         * dbus/dbus-message.h:
11144         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11145         Make get_named() take two out argument and return a boolean.
11146         (dbus_message_iter_get_args_valist):
11147         Update usage of get_named().
11148         (dbus_message_iter_append_byte):
11149         Fix typo
11150         (dbus_message_iter_append_named)
11151         Fix typo
11152         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11153         More tests.
11154
11155 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11156
11157         * dbus/dbus-marshal.[ch]:
11158         Add array_type_pos argument to _dbus_marshal_validate_arg.
11159         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11160
11161         * dbus/dbus-message.[ch]:
11162         Multi-dimensional arrays have full type specification in the
11163         outermost array. Iter code re-arranged to handle this.
11164         Added some more iter tests.
11165
11166         * doc/dbus-specification.sgml:
11167         Add me to authors.
11168         Remove old FIXME.
11169         Update new array encoding description.
11170         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11171
11172         * test/data/invalid-messages/array-with-mixed-types.message:
11173         * test/data/valid-messages/array-of-array-of-uint32.message:
11174         Change to the new array format.
11175
11176         * test/data/invalid-messages/too-short-dict.message:
11177         Fix bug in test.
11178
11179         * test/data/valid-messages/recursive-types.message:
11180         Fix up and extend test.
11181
11182 2003-04-10  Havoc Pennington  <hp@pobox.com>
11183
11184         * bus/dispatch.c: lots of fixes
11185
11186         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11187         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11188         that was crack, broke the test service.
11189
11190         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11191         handling to avoid piling up errors if we get a failure on the
11192         first address.
11193
11194         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11195         pid in assertion failures.
11196
11197         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11198         to some fixed size of file descriptor array. Don't return TRUE
11199         anytime a timeout exists, that led to lots of busy loop silliness
11200         in the tests.
11201
11202 2003-04-09  Havoc Pennington  <hp@redhat.com>
11203
11204         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11205         I'd checked this in earlier but hadn't.
11206
11207 2003-04-09  Havoc Pennington  <hp@redhat.com>
11208
11209         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11210         the activation test (man this is getting old!)
11211
11212 2003-04-09  Havoc Pennington  <hp@redhat.com>
11213
11214         * test/test-utils.c: use dispatch status function to fix this up
11215
11216         * bus/connection.c (connection_watch_callback): don't dispatch
11217         from here
11218         (connection_timeout_callback): don't dispatch from here
11219         (bus_connections_setup_connection): set the dispatch status function
11220         (bus_connection_disconnected): unset it
11221
11222         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11223         used to add a connection to be dispatched
11224         (_dbus_loop_iterate): do the dispatching at the end of each
11225         iteration
11226
11227         * dbus/dbus-connection.c
11228         (dbus_connection_set_dispatch_status_function): new function
11229         allowing us to fix up main loop usage
11230         (_dbus_connection_last_unref): free all the various function
11231         user data
11232         (dbus_connection_dispatch): call the DispatchStatusFunction
11233         whenever this function returns
11234         (dbus_connection_handle_watch): call DispatchStatusFunction
11235         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11236         (reply_handler_timeout): call DispatchStatusFunction
11237         (dbus_connection_flush): call DispatchStatusFunction
11238
11239 2003-04-09  Havoc Pennington  <hp@redhat.com>
11240
11241         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11242         a memory leak
11243
11244         * bus/dispatch.c (check_service_activated): fix bug in test
11245
11246         * dbus/dbus-mainloop.c (check_timeout): fix this up
11247
11248         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11249         verbose output so we can sort out output from different processes,
11250         e.g. in the activation case.
11251
11252 2003-04-08  Colin Walters  <walters@gnu.org>
11253
11254         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11255         the pid file.
11256         (bus_context_new): Set it.
11257         (bus_context_unref): Use it to delete the pid file.
11258
11259 2003-04-08  Havoc Pennington  <hp@redhat.com>
11260
11261         * test/data/invalid-messages/array-with-mixed-types.message:
11262         regression test that fails for the moment
11263
11264         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11265         tests for convenience
11266
11267         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11268         array of nil, it broke things.
11269
11270         * test/data/invalid-messages/array-of-nil.message: regression test
11271
11272         * test/data/valid-messages/array-of-array-of-uint32.message:
11273         happened to write this so added it to suite
11274
11275 2003-04-08  Havoc Pennington  <hp@redhat.com>
11276
11277         * bus/driver.c (bus_driver_handle_acquire_service): init
11278         retval/reply before checking name
11279
11280         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11281         recursion depth argument
11282
11283         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11284         in the public struct for future extension
11285
11286         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11287         typo
11288
11289         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11290         message
11291
11292         * doc/dbus-specification.sgml: fix typo
11293
11294 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11295
11296         Implemented recursive types, named types and new-style iters
11297
11298         * bus/driver.c:
11299         * glib/test-thread-client.c: (thread_func):
11300         * glib/test-thread-server.c: (handle_test_message):
11301         * test/test-service.c: (handle_echo):
11302         Update to new api
11303
11304         * dbus/Makefile.am:
11305         * dbus/dbus-dict.c:
11306         * dbus/dbus-dict.h:
11307         * dbus/dbus.h
11308         Remove DBusDict
11309
11310         * dbus/dbus-internals.c: (_dbus_type_to_string):
11311         Update for new types.
11312
11313         * dbus/dbus-marshal.[ch]:
11314         Implement recursive types and the new marshalling format.
11315         Remove hardcoded dict marshalling.
11316         Marshal named types.
11317
11318         * dbus/dbus-message-builder.c:
11319         Add BYTE_ARRAY.
11320         Remove references to old types
11321
11322         * dbus/dbus-message.[ch]:
11323         New non-refcounted iter API that supports recursive iters.
11324         Use iters for appending, including support for recursive
11325         iters.
11326         Add byte and named type support.
11327         Update everything to new marshalling formats.
11328         Add tests for new API.
11329
11330         * dbus/dbus-protocol.h:
11331         Remove old array types.
11332         Add types: BYTE, ARRAY, DICT, NAMED
11333
11334         * dbus/dbus-string.c:
11335         * dbus/dbus-sysdeps.c:
11336         Make parse_double locale safe.
11337
11338         * dbus/dbus-test-main.c:
11339         Call setlocale.
11340
11341         * dbus/dbus-test.c:
11342         Kill dict test
11343
11344         * doc/dbus-specification.sgml:
11345         Update spec
11346
11347         * test/data/incomplete-messages/missing-body.message:
11348         * test/data/invalid-messages/bad-boolean.message:
11349         * test/data/invalid-messages/bad-boolean-array.message:
11350         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11351         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11352         * test/data/invalid-messages/too-short-dict.message:
11353         * test/data/valid-messages/dict-simple.message:
11354         * test/data/valid-messages/dict.message:
11355         * test/data/valid-messages/emptiness.message:
11356         * test/data/valid-messages/lots-of-arguments.message:
11357         * test/data/valid-messages/no-padding.message:
11358         * test/data/valid-messages/recursive-types.message:
11359         Add missing NAME fields
11360         Fix up dicts & arrays
11361
11362         * test/data/invalid-messages/dict-with-nil-value.message:
11363         Removed, this is not invalid anymore.
11364
11365         * test/data/valid-messages/recursive-types.message:
11366         Add new test for deeply recursive types.
11367
11368 2003-04-07  Havoc Pennington  <hp@pobox.com>
11369
11370         * bus/driver.c (bus_driver_handle_acquire_service): return an
11371         error if you try to acquire a service that starts with ':'
11372
11373 2003-04-07  Havoc Pennington  <hp@redhat.com>
11374
11375         * doc/dbus-specification.sgml: require that base service names
11376         start with ':' and that the base service is created/deleted
11377         as first and last things a connection does on the bus
11378
11379         * bus/dispatch.c (check_existent_service_activation): lots more
11380         work on the activation test; it doesn't fully pass yet...
11381
11382         * test/test-service.c (main): fix so we don't memleak the
11383         connection to the message bus
11384         (filter_func): accept a message asking us to exit
11385
11386 2003-04-06  Havoc Pennington  <hp@pobox.com>
11387
11388         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11389         from Colin Walters
11390
11391         * configure.in: fixes to Qt detection from Colin Walters
11392
11393         * doc/Makefile.am: Only remove generated docbook dirs if they
11394         exist, from Colin Walters
11395
11396         * dbus/dbus-bus.c: change how we set well-known connections to
11397         NULL, so that it works if a single connection is stored in
11398         two well-known array slots.
11399
11400         * test/Makefile.am: remove a lot of stuff that isn't immediately
11401         useful, it's in CVS history if we want it.
11402
11403         * test/test-service.c: use dbus-mainloop instead of that
11404         watch.[hc] crack
11405
11406 2003-04-06  Havoc Pennington  <hp@pobox.com>
11407
11408         * dbus/Makefile.am: split lists of sources into stuff that goes in
11409         the library, util functions that go in the lib and are also used
11410         elsewhere, and util functions that are used in tests/daemon but
11411         don't go in the lib.
11412
11413         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11414         here so it can be used in test binaries also
11415
11416 2003-04-06  Havoc Pennington  <hp@pobox.com>
11417
11418         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11419         here in the parent process, so we can return an error if it
11420         fails. Also, move some of the code into the child so the parent
11421         is less hosed if we fail midway through.
11422
11423         * bus/bus.c (bus_context_new): move pidfile detection further up
11424         in the function, before we start overwriting sockets and such.
11425
11426         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11427
11428         * configure.in: add --with-system-pid-file and --with-system-socket
11429
11430 2003-04-06  Colin Walters  <walters@verbum.org>
11431
11432         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11433
11434         * bus/system.conf.in: Declare a pidfile.
11435
11436         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11437         create one (if appropriate).
11438
11439         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11440         (struct BusConfigParser) [pidfile]: New.
11441         (element_type_to_name, merge_included, start_busconfig_child)
11442         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11443         (bus_config_parser_unref): Free it.
11444         (bus_config_parser_get_pidfile): New function.
11445
11446         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11447
11448         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11449
11450         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11451
11452         * dbus/dbus-sysdeps.h: Prototype it.
11453
11454 2003-04-06  Havoc Pennington  <hp@pobox.com>
11455
11456         * bus/bus.c (bus_context_new): print the address in here, rather
11457         than in main(), because we need to do it before forking the daemon
11458
11459         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11460         on the service nonexistent error
11461
11462         * bus/driver.c (bus_driver_handle_acquire_service): set the
11463         sender on the AcquireService reply
11464
11465         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11466         server also listen on a UNIX socket so services can connect to it.
11467
11468 2003-04-06  Havoc Pennington  <hp@pobox.com>
11469
11470         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11471         so it detects deadlocks and also we actually init threads when
11472         debugging.
11473
11474 2003-04-06  Havoc Pennington  <hp@pobox.com>
11475
11476         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11477         save the domain socket name, and unlink it when we disconnect the
11478         server. Means that at least when we exit normally, we won't leave
11479         a bunch of junk in /tmp
11480
11481         * dbus/dbus-transport-unix.c
11482         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11483         memory management). (I was making a real change here but then
11484         didn't)
11485
11486 2003-04-06  Havoc Pennington  <hp@pobox.com>
11487
11488         * bus/bus.c (bus_context_new): fix wrong handling of
11489         server_data_slot_unref() in the error case.
11490
11491         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11492         "(condition) != 0" to _dbus_real_assert so that
11493         "_dbus_assert (pointer)" doesn't cause a warning
11494
11495         * bus/main.c (main): accept --print-address option to print out
11496         the message bus address
11497
11498         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11499
11500         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11501         "tmpdir" option to unix: address on client side
11502
11503         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11504         to unix: address
11505
11506         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11507         we can use to create sockets in the test suite.
11508
11509         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11510         cleanly. To be used for testing.
11511
11512         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11513
11514         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11515
11516         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11517         handle trying to call this when there's no servers active
11518
11519 2003-04-05  Havoc Pennington  <hp@pobox.com>
11520
11521         * NEWS: update
11522
11523         * configure.in: 0.8
11524
11525 2003-04-05  Havoc Pennington  <hp@pobox.com>
11526
11527         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11528         crash on startup. Need to get "try starting the daemon"
11529         in the test suite I guess. ;-)
11530
11531         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11532         tracked the number of open connections; it's better done in
11533         application-specific code as you want it to span all servers etc.
11534
11535 2003-04-05  Havoc Pennington  <hp@pobox.com>
11536
11537         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11538         patch from Colin Walters
11539
11540 2003-04-05  Havoc Pennington  <hp@pobox.com>
11541
11542         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11543         reality; in fact multiple mechanisms are allowed.
11544
11545         * dbus/dbus-internals.c (_dbus_real_assert)
11546         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11547         _dbus_assert_not_reached() into functions, so that they don't show
11548         up in basic block counts for test coverage, and don't use up as
11549         much disk space. Does mean slower execution speed though, so
11550         assumes --disable-asserts is the normal production case.
11551
11552 2003-04-05  Havoc Pennington  <hp@pobox.com>
11553
11554         * test/Makefile.am (dist-hook): also dist *.in files
11555
11556         * NEWS: update
11557
11558         * configure.in: 0.7
11559
11560 2003-04-05  Havoc Pennington  <hp@pobox.com>
11561
11562         * dbus/dbus-string.c: docs warning
11563
11564         * dbus/dbus-spawn.c: missing docs
11565
11566         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11567
11568 2003-04-05  Havoc Pennington  <hp@pobox.com>
11569
11570         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11571         magic from GLib
11572
11573         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11574         to -1 once we've reaped the babysitter
11575         (_dbus_babysitter_handle_watch): do as much work as we can, not
11576         just one go of it
11577
11578         * bus/activation.c: add code using DBusBabysitter so that we
11579         handle it when a service fails to start up properly.
11580         (bus_activation_service_created): don't remove the activation
11581         entries as we go, just let them get removed when we free the pending
11582         activation. Unref reply messages after sending them.
11583
11584 2003-04-05  Havoc Pennington  <hp@pobox.com>
11585
11586         * test/decode-gcov.c (main): print per-directory stats in the report
11587
11588         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11589
11590 2003-04-05  Havoc Pennington  <hp@pobox.com>
11591
11592         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11593
11594         * test/decode-gcov.c: hack up a little program to suck data
11595         out of gcov files. Yes this is sort of silly.
11596
11597         * configure.in: define something in config.h and do an
11598         AM_CONDITIONAL when gcov is enabled
11599
11600 2003-04-04  Havoc Pennington  <hp@redhat.com>
11601
11602         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11603         return a "babysitter" object that is used to monitor the status of
11604         the spawned process and reap it when required.
11605
11606         * test/test-segfault.c, test/test-exit.c,
11607         test/test-sleep-forever.c: binaries that do various lame things,
11608         used in the test suite.
11609
11610         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11611
11612 2003-04-03  Havoc Pennington  <hp@pobox.com>
11613
11614         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11615         in preparation for modifying it, dbus-sysdeps is getting
11616         a bit unmanageable.
11617
11618 2003-04-03  Havoc Pennington  <hp@redhat.com>
11619
11620         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11621         have multiple ones
11622
11623         * bus/*.[hc]: adapt to mainloop change
11624
11625 2003-04-03  Havoc Pennington  <hp@redhat.com>
11626
11627         * bus/activation.c (load_directory): fix up memleaks
11628         (bus_activation_entry_free): free the entry
11629
11630         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11631         we get one from the message bus; fix memleaks.
11632
11633         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11634
11635 2003-04-03  Havoc Pennington  <hp@pobox.com>
11636
11637         * bus/config-parser.c (bus_config_parser_unref): free
11638         list of mechanisms, bug discovered by test suite enhancements
11639         (putting system.conf and session.conf into suite)
11640
11641         * test/Makefile.am, test/test-service.c: add placeholder for a
11642         test service that we'll activate as part of test suite. Doesn't
11643         do anything yet.
11644
11645         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11646         setting NULL value, and use system malloc not dbus_malloc()
11647         when we have unavoidable memleakage.
11648
11649         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11650         didn't work, and support DBUS_BUS_ACTIVATION.
11651
11652         * bus/activation.c (child_setup): pass our well-known bus type to
11653         the child
11654
11655         * bus/config-parser.c: support <type> to specify well-known type
11656
11657         * doc/dbus-specification.sgml: document the env variables to
11658         locate well-known buses and find service activator
11659
11660 2003-04-02  Havoc Pennington  <hp@redhat.com>
11661
11662         * test/Makefile.am (all-local): add a rule to copy tests to
11663         builddir, so we can have generated tests. Use this to remove the
11664         silly hack for testing system.conf and session.conf. Will use this
11665         shortly to generate .service files pointing to test binaries.
11666
11667 2003-04-02  Havoc Pennington  <hp@redhat.com>
11668
11669         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11670         current alloc and needed new length, not max of the doubled
11671         allocation and needed new length. Also, when building tests,
11672         don't do the double-allocation stuff, just realloc every time.
11673
11674 2003-04-02  Havoc Pennington  <hp@redhat.com>
11675
11676         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11677         in error messages
11678         (_dbus_string_get_dirname): new
11679         (_dbus_sysdeps_test): new
11680         (_dbus_directory_open): include dirnames in error messages
11681
11682         * bus/config-parser.c: interpret <include> and <includedir> and
11683         <servicedir> relative to config file location if the given
11684         filename is not absolute.
11685
11686         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11687
11688 2003-04-02  Havoc Pennington  <hp@redhat.com>
11689
11690         * bus/connection.c (bus_transaction_send_error_reply): set sender
11691         service for the error, and unref the reply on success
11692
11693         * bus/activation.c: convert to use BusTransaction so OOM can be
11694         handled correctly
11695         (bus_activation_service_created): set sender of the message
11696
11697 2003-04-01  Havoc Pennington  <hp@redhat.com>
11698
11699         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11700         <includedir> (at least mostly)
11701
11702         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11703         first, then the user ID
11704
11705 2003-04-01  Havoc Pennington  <hp@pobox.com>
11706
11707         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11708         function
11709
11710         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11711
11712         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11713
11714         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11715         socket 0777, and unlink any existing socket.
11716
11717         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11718         the configuration file so specifies; set up auth mechanism
11719         restrictions
11720
11721         * bus/config-parser.c (bus_config_parser_content): add support
11722         for <fork> option and fill in code for <auth>
11723
11724         * bus/system.conf.in: add <fork/> to default configuration,
11725         and limit auth mechanisms to EXTERNAL
11726
11727         * doc/config-file.txt (Elements): add <fork>
11728
11729         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11730         (_dbus_change_identity): new function
11731
11732 2003-03-31  Havoc Pennington  <hp@redhat.com>
11733
11734         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11735         (_dbus_listen_unix_socket): fix off-by-one error in null
11736         termination spotted by Nalin
11737
11738 2003-03-31  Havoc Pennington  <hp@redhat.com>
11739
11740         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11741         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11742         having a real home directory available.
11743
11744 2003-03-31  Havoc Pennington  <hp@redhat.com>
11745
11746         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11747
11748         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11749
11750         * configure.in: add support for specifying a style of init script
11751         to install
11752
11753 2003-03-31  Havoc Pennington  <hp@redhat.com>
11754
11755         Fix some annoying DBusString API and fix all affected code.
11756
11757         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11758         max_length argument
11759         (_dbus_string_get_data): change to return string instead of using
11760         an out param
11761         (_dbus_string_get_const_data): ditto
11762         (_dbus_string_get_data_len): ditto
11763         (_dbus_string_get_const_data_len): ditto
11764
11765 2003-03-31  Havoc Pennington  <hp@redhat.com>
11766
11767         * bus/main.c (main): fix up the command line arguments to be nicer
11768
11769 2003-03-31  Havoc Pennington  <hp@redhat.com>
11770
11771         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11772         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11773         final location that lands in the config file
11774
11775         * bus/config-loader-expat.c (bus_config_load): fix type of
11776         XML_Parser variable
11777
11778         * doc/TODO: remove TODO item for dbus_bus_get()
11779
11780         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11781
11782 2003-03-31  Havoc Pennington  <hp@pobox.com>
11783
11784         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11785         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11786         argument since they are always client side
11787
11788         * dbus/dbus-server.c (dbus_server_get_address): new function
11789
11790         * bus/main.c (main): take the configuration file as an argument.
11791
11792         * test/data/valid-config-files/debug-allow-all.conf: new file to
11793         use with dispatch.c tests for example
11794
11795         * bus/test-main.c (main): require test data dir
11796
11797         * bus/bus.c (bus_context_new): change this to take a
11798         configuration file name as argument
11799
11800         * doc/config-file.txt (Elements): add <servicedir>
11801
11802         * bus/system.conf, bus/session.conf: new files
11803
11804         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11805         well-known socket if none set
11806
11807         * configure.in: create system.conf and session.conf
11808
11809 2003-03-30  Havoc Pennington  <hp@pobox.com>
11810
11811         * bus/config-parser.c: hacking
11812
11813         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11814         to shut down, since it could cause weirdness with the DBusList
11815         lock
11816
11817         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11818         link-oriented stack routines
11819         (alloc_link): free the mempool if the first alloc from it fails
11820
11821         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11822
11823         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11824         from GLib
11825         (_dbus_string_skip_white): new
11826
11827         * doc/config-file.txt (Elements): add <includedir>
11828
11829 2003-03-28  Havoc Pennington  <hp@pobox.com>
11830
11831         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11832         (_dbus_string_copy_data): new functions
11833
11834 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11835
11836         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11837         * dbus/dbus-bus.h:
11838         Add dbus_bus_get.
11839
11840         * dbus/dbus-memory.c:
11841         Fix a doc comment.
11842
11843 2003-03-28  Havoc Pennington  <hp@pobox.com>
11844
11845         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11846         I think it may have just been superstition. Not sure.
11847
11848         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11849         failures that were not being handled.
11850
11851         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11852
11853         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11854         row that will fail on out-of-memory.
11855
11856         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11857         function for testing out-of-memory handling.
11858
11859         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11860         allocation functions, they do map exactly to the expat ones.
11861
11862 2003-03-27  Havoc Pennington  <hp@redhat.com>
11863
11864         * bus/config-loader-libxml.c (bus_config_load): add another error
11865         check
11866
11867 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11868
11869         * doc/TODO:
11870         Add note about automatic service activation.
11871
11872         * doc/dbus-specification.sgml:
11873         Rename the specification and clarify a few things.
11874
11875 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11876
11877         * Doxyfile.in:
11878         * dbus/dbus-address.c:
11879         * dbus/dbus-dict.c:
11880         * dbus/dbus-marshal.c:
11881         * dbus/dbus-server-debug-pipe.c:
11882         * dbus/dbus-transport-unix.c:
11883         Fix documentation warnings.
11884
11885 2003-03-26  Havoc Pennington  <hp@pobox.com>
11886
11887         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11888         after every test so it's quick and easy to see which leaked, and
11889         so we test multiple dbus_shutdown() calls
11890
11891         * configure.in: change configure.in XML stuff to also support
11892         expat
11893
11894         * config-loader-libxml.c: some hacking
11895
11896         * config-loader-expat.c: some hacking
11897
11898         * config-parser.c: some hacking, plus tests
11899
11900 2003-03-25  Havoc Pennington  <hp@redhat.com>
11901
11902         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11903
11904         * configure.in: add --with-xml option to specify XML library,
11905         right now only libxml is supported.
11906
11907         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11908         nonworking code between home and work, still just stubs
11909
11910 2003-03-24  Havoc Pennington  <hp@redhat.com>
11911
11912         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11913         file
11914
11915         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11916         NULL argument for "message" if the error is a well-known one,
11917         fill in a generic message in this case.
11918
11919         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11920         favor of DBusError
11921
11922         * bus/test.c (bus_test_flush_bus): add
11923
11924         * bus/policy.c (bus_policy_test): test code stub
11925
11926 2003-03-24  Havoc Pennington  <hp@pobox.com>
11927
11928         * bus/connection.c (bus_connections_setup_connection): set up
11929         the "can this user connect" function, but it always returns
11930         TRUE until we have a config file parser so we can have a config
11931         file that allows connections.
11932
11933 2003-03-23  Havoc Pennington  <hp@pobox.com>
11934
11935         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11936         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11937         the mutex, so we can check for proper memory management
11938         and OOM handling.
11939
11940         * dbus/dbus-dataslot.c: remove the mutex from
11941         DBusDataSlotAllocator and lock it manually when using it,
11942         to simplify fitting it into the global slots framework.
11943
11944         * dbus/dbus-threads.c (init_static_locks): rework how we're
11945         handling global locks so they are easily shut down.
11946
11947         * bus/policy.c (bus_policy_append_rule): fix
11948
11949         * bus/test-main.c (main): check for memleaks
11950
11951         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11952         test suite check for memleaks
11953
11954         * dbus/dbus-memory.c: add support in test mode for tracking
11955         number of outstanding blocks
11956
11957 2003-03-23  Havoc Pennington  <hp@pobox.com>
11958
11959         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11960         policies code
11961
11962         * dbus/dbus-hash.h: add ULONG hash keys
11963
11964         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11965         (_dbus_get_group_id): new function
11966
11967 2003-03-20  Havoc Pennington  <hp@redhat.com>
11968
11969         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11970         new function
11971         (dbus_connection_get_unix_user): new function
11972
11973 2003-03-20  Havoc Pennington  <hp@pobox.com>
11974
11975         * bus/connection.c (bus_connection_send_oom_error): assert that
11976         message has a sender
11977         (connection_execute_transaction): ditto
11978         (bus_connection_preallocate_oom_error): fix to set the sender, and
11979         set recipient to the destination service, not the bus driver
11980
11981         * bus/policy.c: hacking
11982
11983         * dbus/dbus-message.c (dbus_message_service_is): new function
11984         (dbus_message_sender_is): new
11985
11986 2003-03-19  Havoc Pennington  <hp@redhat.com>
11987
11988         * bus/policy.c: start sketching code for policy restrictions on
11989         what connections can do.
11990
11991 2003-03-18  Havoc Pennington  <hp@redhat.com>
11992
11993         * doc/TODO: some notes on high-level todo items. Little nitpick
11994         stuff is all in @todo, so no need to add it here.
11995
11996         * doc/config-file.txt: some notes on how config file might look
11997
11998 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
11999
12000         * configure.in: 0.6
12001
12002         * NEWS: Update.
12003
12004 2003-03-17  Havoc Pennington  <hp@redhat.com>
12005
12006         * dbus/dbus-internals.h: add gcc attributes so that
12007         our printf-style functions warn on bad arguments to
12008         format
12009
12010         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12011         format bug
12012
12013         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12014         printf format bug
12015
12016 2003-03-17  Havoc Pennington  <hp@redhat.com>
12017
12018         * bus/test-main.c (main): make it print something as it runs
12019         so make check doesn't look stuck
12020
12021         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12022         from CVS, now obsolete
12023
12024 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12025
12026         * bus/dispatch.c: (bus_dispatch):
12027         Refetch the service name since it may have been reallocated
12028         when dbus_message_set_sender was called.
12029
12030         * dbus/dbus-sysdeps.c: (_dbus_accept):
12031         Add address and address length variables and use them to stop
12032         valgrind from complaining.
12033
12034 2003-03-17  Havoc Pennington  <hp@pobox.com>
12035
12036         All tests pass, no memleaks, no valgrind complaints.
12037
12038         * bus/test.c: refcount handler_slot
12039
12040         * bus/connection.c (bus_connections_new): refcount
12041         connection_data_slot
12042
12043         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12044         bytes so that auth scripts pass.
12045
12046         * bus/dispatch.c: init message_handler_slot so it gets allocated
12047         properly
12048
12049         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12050
12051         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12052         dealloc server_pipe_hash when no longer used for benefit of
12053         leak checking
12054
12055         * dbus/dbus-auth.c (process_command): memleak fix
12056
12057         * bus/dispatch.c (check_hello_message): memleak fix
12058
12059 2003-03-16  Havoc Pennington  <hp@pobox.com>
12060
12061         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12062
12063 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12064
12065         * bus/activation.c (bus_activation_activate_service): Append
12066         the pending activation entry to the list of pending activations.
12067
12068 2003-03-16  Havoc Pennington  <hp@pobox.com>
12069
12070         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12071         connections
12072
12073         * dbus/dbus-address.c (create_entry): fix OOM handling when
12074         failing to alloc entry->method
12075
12076 2003-03-16  Havoc Pennington  <hp@pobox.com>
12077
12078         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12079         the watch
12080
12081         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12082         add some missing dbus_set_result
12083
12084         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12085         alloc the DBusMessageHandler
12086
12087         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12088         the transport here, since we call this from the finalizer; it
12089         resulted in a double-finalize.
12090
12091         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12092         where we tried to use transport->connection that was NULL,
12093         happened when transport was disconnected early on due to OOM
12094
12095         * bus/*.c: adapt to handle OOM for watches/timeouts
12096
12097         * dbus/dbus-transport-unix.c: port to handle OOM during
12098         watch handling
12099
12100         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12101         reference to unused bytes instead of a copy
12102
12103         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12104         out of memory
12105
12106         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12107         FALSE on OOM
12108
12109         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12110         of memory
12111
12112 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12113
12114         * doc/dbus-specification.sgml:
12115         Document reply message for ActivateService.
12116
12117 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12118
12119         * bus/activation.c: (bus_pending_activation_entry_free),
12120         (bus_pending_activation_free), (bus_activation_new),
12121         (bus_activation_unref), (bus_activation_service_created),
12122         (bus_activation_activate_service):
12123         * bus/activation.h:
12124         * bus/bus.c: (bus_context_new):
12125         * bus/desktop-file.c: (new_section):
12126         * bus/driver.c: (bus_driver_send_service_deleted),
12127         (bus_driver_handle_activate_service):
12128         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12129         * bus/services.h:
12130         * dbus/dbus-connection.c:
12131         (dbus_connection_send_with_reply_and_block):
12132         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12133         * dbus/dbus-protocol.h:
12134         Make activation work better. Now pending activations will be queued
12135         and the daemon won't try to activate services that are already registered.
12136
12137 2003-03-16  Havoc Pennington  <hp@pobox.com>
12138
12139         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12140         connection data
12141
12142         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12143         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12144
12145 2003-03-16  Havoc Pennington  <hp@pobox.com>
12146
12147         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12148         this. always run the test suite before commit...
12149
12150         * bus/*: adapt to DBusConnection API changes
12151
12152         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12153         requires renaming stuff to avoid dbus_connection_dispatch name
12154         conflict.
12155
12156         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12157         function
12158
12159         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12160         separate from _dbus_message_loader_return_buffer()
12161
12162         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12163         this, because it's now always broken to use; the number of
12164         messages in queue vs. the number still buffered by the message
12165         loader is undefined/meaningless. Should use
12166         dbus_connection_get_dispatch_state().
12167         (dbus_connection_dispatch): rename from
12168         dbus_connection_dispatch_message
12169
12170 2003-03-16  Havoc Pennington  <hp@pobox.com>
12171
12172         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12173         implementation
12174
12175 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12176
12177         * dbus/dbus-connection.c:
12178         (dbus_connection_send_with_reply_and_block):
12179         Decrease connection->n_incoming when removing an entry
12180         from the list.
12181         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12182         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12183         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12184         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12185         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12186         (dbus_dict_get_byte_array):
12187         Handle NULL arrays and strings. Also add support for byte arrays.
12188
12189         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12190         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12191         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12192         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12193         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12194         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12195         * dbus/dbus-marshal.h:
12196         Add support for marshalling and demarshalling empty arrays and strings.
12197
12198         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12199         (dbus_message_append_string_array),
12200         (dbus_message_iter_get_boolean),
12201         (dbus_message_iter_get_boolean_array),
12202         (dbus_message_iter_get_int32_array),
12203         (dbus_message_iter_get_uint32_array),
12204         (dbus_message_iter_get_double_array),
12205         (dbus_message_iter_get_byte_array),
12206         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12207         (check_message_handling):
12208         Add support for getting empty arrays and dicts.
12209
12210         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12211         Don't do any validation at all for now, that's better than just checking
12212         for ASCII.
12213
12214         * test/data/valid-messages/emptiness.message:
12215         New test message with lots of empty arrays.
12216
12217 2003-03-16  Havoc Pennington  <hp@pobox.com>
12218
12219         * dbus/dbus-connection.c
12220         (_dbus_connection_queue_received_message_link): new function that
12221         can't fail due to OOM
12222
12223         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12224         new function pops a message together with a list link
12225         containing it.
12226
12227         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12228         message queuing functions to avoid needing to alloc memory
12229
12230 2003-03-16  Havoc Pennington  <hp@pobox.com>
12231
12232         Oops - test code was only testing failure of around 30 of the
12233         mallocs in the test path, but it turns out there are 500+
12234         mallocs. I believe this was due to misguided linking setup such
12235         that there was one copy of dbus_malloc etc. in the daemon and one
12236         in the shared lib, and only daemon mallocs were tested. In any
12237         case, the test case now tests all 500+ mallocs, and doesn't pass
12238         yet, though there are lots of fixes in this patch.
12239
12240         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12241         this so that it doesn't need to allocate memory, since it
12242         has no way of indicating failure due to OOM (and would be
12243         annoying if it did).
12244
12245         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12246
12247         * bus/Makefile.am: rearrange to create two self-contained
12248         libraries, to avoid having libraries with overlapping symbols.
12249         that was resulting in weirdness, e.g. I'm pretty sure there
12250         were two copies of global static variables.
12251
12252         * dbus/dbus-internals.c: move the malloc debug stuff to
12253         dbus-memory.c
12254
12255         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12256         empty.
12257
12258         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12259
12260         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12261         on failure.
12262
12263         * bus/dispatch.c (bus_dispatch_add_connection): free
12264         message_handler_slot when no longer using it, so
12265         memory leak checkers are happy for the test suite.
12266
12267         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12268
12269         * bus/bus.c (new_connection_callback): disconnect in here if
12270         bus_connections_setup_connection fails.
12271
12272         * bus/connection.c (bus_connections_unref): fix to free the
12273         connections
12274         (bus_connections_setup_connection): if this fails, don't
12275         disconnect the connection, just be sure there are no side
12276         effects.
12277
12278         * dbus/dbus-string.c (undo_alignment): unbreak this
12279
12280         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12281         leaking
12282         (_dbus_auth_new): fix the order in which we free strings
12283         on OOM failure
12284
12285         * bus/connection.c (bus_connection_disconnected): fix to
12286         not send ServiceDeleted multiple times in case of memory
12287         allocation failure
12288
12289         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12290         get the base service name
12291         (dbus_bus_register_client): don't return base service name,
12292         instead store it on the DBusConnection and have an accessor
12293         function for it.
12294         (dbus_bus_register_client): rename dbus_bus_register()
12295
12296         * bus/dispatch.c (check_hello_message): verify that other
12297         connections on the bus also got the correct results, not
12298         just the one sending hello
12299
12300 2003-03-15  Havoc Pennington  <hp@pobox.com>
12301
12302         Make it pass the Hello handling test including all OOM codepaths.
12303         Now to do other messages...
12304
12305         * bus/services.c (bus_service_remove_owner): fix crash when
12306         removing owner from an empty list of owners
12307         (bus_registry_ensure): don't leave service in the list of
12308         a connection's owned services if we fail to put the service
12309         in the hash table.
12310
12311         * bus/connection.c (bus_connection_preallocate_oom_error): set
12312         error flag on the OOM error.
12313
12314         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12315         handle _dbus_transport_set_connection failure
12316
12317         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12318         to create watches up front and simply enable/disable them as
12319         needed.
12320         (unix_connection_set): this can now fail on OOM
12321
12322         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12323         of enabling/disabling a watch or timeout.
12324
12325         * bus/loop.c (bus_loop_iterate): don't touch disabled
12326         watches/timeouts
12327
12328         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12329
12330 2003-03-15  Havoc Pennington  <hp@pobox.com>
12331
12332         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12333         write useful test code, after all that futzing around ;-)
12334
12335         Test does not yet pass because we can't handle OOM in
12336         _dbus_transport_messages_pending (basically,
12337         dbus_connection_preallocate_send() does not prealloc the write
12338         watch). To fix this, I think we need to add new stuff to
12339         set_watch_functions, namely a SetEnabled function so we can alloc
12340         the watch earlier, then enable it later.
12341
12342         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12343         dbus-memory.c to the convenience lib
12344
12345         * bus/test.c: rename some static functions to keep them clearly
12346         distinct from stuff in connection.c. Handle client disconnection.
12347
12348 2003-03-14  Havoc Pennington  <hp@pobox.com>
12349
12350         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12351         transport, tests more of the real codepath. Set up clients
12352         with bus_setup_debug_client.
12353
12354         * bus/test.c (bus_setup_debug_client): function to set up debug
12355         "clients" on the main loop
12356
12357         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12358         support
12359
12360         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12361         server type
12362
12363         * dbus/dbus-server-debug.c: support a debug server based on pipes
12364
12365         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12366         (_dbus_close): new function
12367
12368         * configure.in: check for socketpair
12369
12370 2003-03-14  Havoc Pennington  <hp@redhat.com>
12371
12372         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12373         cheesy hack
12374
12375         * dbus/dbus-transport-debug.c: rework this a good bit to be
12376         less complicated. hopefully still works.
12377
12378         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12379         manually
12380
12381         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12382         after running it
12383
12384         * dbus/dbus-message.c (dbus_message_copy): rename from
12385         dbus_message_new_from_message, fix it up to copy
12386         all the message fields, add test case
12387
12388         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12389         not quite passing yet
12390
12391 2003-03-14  Havoc Pennington  <hp@pobox.com>
12392
12393         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12394         until no work remains" in test code. (the large diff here
12395         is just code movement, no actual changes)
12396
12397         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12398         1, no point waiting around for test code.
12399         (_dbus_server_debug_accept_transport): unref the timeout
12400         after adding it (right?)
12401
12402         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12403
12404 2003-03-13  Havoc Pennington  <hp@redhat.com>
12405
12406         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12407         out of memory
12408
12409         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12410         of memory
12411
12412         * dbus/dbus-connection.h: Make AddWatchFunction and
12413         AddTimeoutFunction return a bool so they can fail on out-of-memory
12414
12415         * bus/bus.c (bus_context_new): set up timeout handlers
12416
12417         * bus/connection.c (bus_connections_setup_connection): set up
12418         timeout handlers
12419
12420         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12421         can fail
12422
12423         * bus/bus.c (bus_context_new): adapt to changes
12424
12425         * bus/connection.c: adapt to changes
12426
12427         * test/watch.c: adapt to DBusWatch changes
12428
12429         * bus/dispatch.c (bus_dispatch_test): started adding this but
12430         didn't finish
12431
12432 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12433
12434         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12435
12436 2003-03-13  Havoc Pennington  <hp@pobox.com>
12437
12438         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12439         set up a test framework as for the library
12440
12441 2003-03-12  Havoc Pennington  <hp@pobox.com>
12442
12443         Throughout: purge global variables, introduce BusActivation,
12444         BusConnections, BusRegistry, etc. objects instead.
12445
12446         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12447         message bus object
12448
12449         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12450         going to redo this a bit differently I think
12451
12452 2003-03-12  Havoc Pennington  <hp@redhat.com>
12453
12454         Mega-patch that gets the message bus daemon initially handling
12455         out-of-memory. Work still needed. Also lots of random
12456         moving stuff to DBusError instead of ResultCode.
12457
12458         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12459
12460         * dbus/dbus-connection.c
12461         (dbus_connection_send_with_reply_and_block): use DBusError
12462
12463         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12464         DBusResultCode
12465
12466         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12467         code here, as the only failure possible is OOM.
12468
12469         * bus/connection.c (bus_connection_disconnect):
12470         rename bus_connection_disconnected as it's a notification only
12471
12472         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12473         "name" on get_args failure, should be done by get_args;
12474         don't disconnect client for bad args, just return an error.
12475         (bus_driver_handle_service_exists): ditto
12476
12477         * bus/services.c (bus_services_list): NULL-terminate returned array
12478
12479         * bus/driver.c (bus_driver_send_service_lost)
12480         (bus_driver_send_service_acquired): send messages from driver to a
12481         specific client to the client's unique name, not to the broadcast
12482         service.
12483
12484         * dbus/dbus-message.c (decode_header_data): reject messages that
12485         contain no name field
12486         (_dbus_message_get_client_serial): rename to
12487         dbus_message_get_serial and make public
12488         (_dbus_message_set_serial): rename from set_client_serial
12489         (_dbus_message_set_reply_serial): make public
12490         (_dbus_message_get_reply_serial): make public
12491
12492         * bus/connection.c (bus_connection_foreach): allow stopping
12493         iteration by returning FALSE from foreach function.
12494
12495         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12496         (dbus_connection_free_preallocated_send)
12497         (dbus_connection_preallocate_send): new API for sending a message
12498         without possibility of malloc failure.
12499         (dbus_connection_send_message): rename to just
12500         dbus_connection_send (and same for whole function family)
12501
12502         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12503
12504         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12505
12506         * bus/activation.c: handle/return errors
12507
12508         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12509
12510         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12511         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12512         (_dbus_result_from_errno): move to this file
12513
12514 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12515
12516         * dbus/dbus-marshal.c:
12517         (_dbus_marshal_set_string):
12518         Take a length argument so we can marshal the correct string
12519         length.
12520
12521         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12522         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12523         (_dbus_marshal_test):
12524         * dbus/dbus-marshal.h:
12525         Add support for marshalling and demarshalling dicts.
12526
12527         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12528         Add support for TYPE DICT.
12529
12530         * dbus/dbus-message.c: (set_string_field):
12531         Adjust header padding.
12532
12533         (dbus_message_append_args_valist), (dbus_message_append_dict),
12534         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12535         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12536         (check_message_handling), (check_have_valid_message):
12537         * dbus/dbus-message.h:
12538         Add functions for setting and getting dicts.
12539
12540         * dbus/dbus-protocol.h:
12541         Add DBUS_TYPE_DICT.
12542
12543         * dbus/dbus.h:
12544         Add dbus-dict.h
12545
12546         * doc/dbus-specification.sgml:
12547         Add information about how dicts are marshalled.
12548
12549         * test/data/invalid-messages/dict-with-nil-value.message:
12550         * test/data/invalid-messages/too-short-dict.message:
12551         * test/data/valid-messages/dict-simple.message:
12552         * test/data/valid-messages/dict.message:
12553         Add sample messages containing dicts.
12554
12555 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12556
12557         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12558
12559 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12560
12561         * dbus/Makefile.am:
12562         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12563         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12564         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12565         (dbus_dict_set_double), (dbus_dict_set_string),
12566         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12567         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12568         (dbus_dict_set_string_array), (_dbus_dict_test):
12569         * dbus/dbus-dict.h:
12570         Fix according to comments from Havoc.
12571
12572 2003-03-06  Michael Meeks  <michael@server.home>
12573
12574         * configure.in: if we don't have kde-config, disable have_qt.
12575
12576 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12577
12578         * dbus/Makefile.am:
12579         Add dbus-dict.[ch]
12580
12581         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12582         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12583         (dbus_dict_remove), (dbus_dict_get_value_type),
12584         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12585         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12586         (dbus_dict_put_double), (dbus_dict_put_string),
12587         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12588         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12589         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12590         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12591         (dbus_dict_get_double), (dbus_dict_get_string),
12592         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12593         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12594         (dbus_dict_get_string_array), (_dbus_dict_test):
12595         * dbus/dbus-dict.h:
12596         Add DBusDict implementation
12597
12598         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12599         * dbus/dbus-test.h:
12600         Add _dbus_dict_test
12601
12602 2003-03-04  Havoc Pennington  <hp@pobox.com>
12603
12604         * test/data/auth/*: adapt to changes
12605
12606         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12607         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12608         userid
12609
12610         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12611         more stuff from being in a context name, to make the protocol
12612         simpler to deal with
12613
12614         * dbus/dbus-errors.c (dbus_error_has_name): new function
12615         (dbus_error_is_set): new function
12616
12617         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12618         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12619
12620         * dbus/dbus-connection.c (dbus_connection_flush): also read
12621         messages during a flush operation
12622
12623         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12624
12625 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12626
12627         * configure.in: Check for gethostbyname on Solaris.
12628
12629         * dbus/dbus-transport.c: (_dbus_transport_open):
12630         Remove duplicate "tcp" entry.
12631
12632         * doc/dbus-specification.sgml:
12633         Clarify some things.
12634
12635 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12636
12637         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12638         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12639         (_dbus_keyring_test):
12640         * dbus/dbus-md5.c: (_dbus_md5_compute):
12641         * dbus/dbus-sha.c: (_dbus_sha_compute):
12642         Plug memory leaks.
12643
12644 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12645
12646         * README: Add some things.
12647
12648 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12649
12650         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12651         after case DBUS_TYPE_BOOELAN.
12652
12653 2003-03-02  Havoc Pennington  <hp@pobox.com>
12654
12655         * test/break-loader.c (randomly_set_extreme_ints): add test that
12656         sets really huge and small integers
12657
12658         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12659         that length of boolean array fits in the string, and that
12660         string has room for boolean value in single-bool case.
12661
12662         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12663         optional value to "ALIGN" command which is what to fill the
12664         alignment with.
12665
12666         * test/data/valid-messages/no-padding.message: add regression
12667         test for the message padding problem
12668
12669 2003-03-02  Havoc Pennington  <hp@pobox.com>
12670
12671         * dbus/dbus-message.c (decode_header_data): fix to always init
12672         message_padding, from Benjamin Dauvergne
12673
12674 2003-03-02  Havoc Pennington  <hp@pobox.com>
12675
12676         * configure.in: 0.5
12677
12678         * NEWS: Update.
12679
12680 2003-03-01  Joe Shaw  <joe@assbarn.com>
12681
12682         * configure.in: Check for "struct cmsgcred" and try to access its
12683         members for BSD-like unices.
12684
12685         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12686         _dbus_read_credentials_unix_socket().
12687         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12688         read() for reading the credential byte off the unix socket.  Use
12689         struct cmsgcred on systems that support it.
12690
12691 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12692
12693         * glib/Makefile.am:
12694         * configure.in:
12695         Make gthreads-2.0 dependency optional. Don't build thread test if
12696         its not found.
12697
12698 2003-02-27  Havoc Pennington  <hp@pobox.com>
12699
12700         * dbus/dbus-connection.c
12701         (dbus_connection_send_message_with_reply_and_block): fix doh!
12702         doh! doh! bug that resulted in never removing a reply from the
12703         queue, no wonder we called get_reply_serial so much ;-)
12704
12705         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12706         and client serial instead of demarshaling them every time
12707
12708 2003-02-27  Havoc Pennington  <hp@pobox.com>
12709
12710         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12711         more inlined, using dbus-string-private.h, speeds things up
12712         substantially
12713
12714         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12715         when freeing the string
12716         (_dbus_string_steal_data): fix for align offset
12717         (undo_alignment): new function
12718
12719 2003-02-26  Havoc Pennington  <hp@redhat.com>
12720
12721         All kinds of audit fixes from Owen, plus initial attempt to
12722         handle unaligned memory returned from malloc.
12723
12724         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12725         leave room for align_offset and nul byte
12726         (fixup_alignment): function to track an align_offset and
12727         ensure real->str is aligned
12728         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12729         to allow a nul byte plus align offset
12730         (_dbus_string_lock): fix overflow issue
12731         (_dbus_string_init_const_len): add assertions on sanity of len,
12732         assign allocated to be ALLOCATION_PADDING larger than len
12733         (set_length): fixup the overflow handling
12734         (_dbus_string_get_data_len): fix overflow in assertion
12735         (open_gap): detect overflow in size of gap to be opened
12736         (_dbus_string_lengthen): add overflow check
12737         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12738         (_dbus_string_append): add overflow check
12739         (_dbus_string_append_unichar): overflow
12740         (_dbus_string_delete): fix overflow in assertion
12741         (_dbus_string_copy_len): overflow in assertion
12742         (_dbus_string_replace_len): overflows in assertions
12743         (_dbus_string_find): change to implement in terms of
12744         _dbus_string_find_to
12745         (_dbus_string_find_to): assorted fixage
12746         (_dbus_string_equal_c_str): assert c_str != NULL,
12747         fix logic so the function works
12748         (_dbus_string_ends_with_c_str): fix overflow thingy
12749         (_dbus_string_base64_encode): overflow fix
12750         (_dbus_string_validate_ascii): overflow
12751         (_dbus_string_validate_nul): overflow
12752
12753 2003-02-26  Havoc Pennington  <hp@redhat.com>
12754
12755         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12756
12757 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12758
12759         * configure.in:
12760         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12761
12762         * dbus/dbus-connection.c:
12763         * dbus/dbus-connection.h:
12764         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12765         Add dbus_connection_set_wakeup_main_function and use it when queueing
12766         incoming and outgoing messages.
12767
12768
12769         * dbus/dbus-dataslot.c:
12770         Threadsafe usage of DBusDataSlotAllocator
12771
12772         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12773         dbus_new can fail.
12774
12775         * dbus/dbus-server-unix.c:
12776         Add todo comment
12777
12778         * glib/dbus-gmain.c:
12779         Implement the new wakeup functions for glib.
12780
12781         * glib/Makefile.am:
12782         * glib/test-thread-client.c:
12783         * glib/test-thread-server.c:
12784         * glib/test-thread.h:
12785         Initial cut at some thread test code. Not really done yet.
12786
12787 2003-02-26  Havoc Pennington  <hp@pobox.com>
12788
12789         * dbus/dbus-connection.c
12790         (dbus_connection_send_message_with_reply_and_block): fix crash
12791         where we ref'd the outgoing message instead of the returned reply
12792
12793         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12794         at the end of this function, so if we didn't need to read for
12795         authentication, we reinstall it for receiving messages
12796
12797         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12798         a NULL sender for peer-to-peer case
12799
12800         * dbus/dbus-transport-unix.c (check_read_watch): handle
12801         !authenticated case correctly
12802
12803         * glib/dbus-gmain.c: add support for DBusServer
12804
12805         * dbus/dbus-server.c: add data slot support
12806
12807         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12808         return values and handle errors
12809
12810         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12811         DBusConnection
12812
12813         * Doxyfile.in (INPUT): add glib subdir
12814
12815         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12816         setup_with_g_main instead of hookup_with_g_main; write docs
12817
12818 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12819
12820         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12821         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12822         * dbus/dbus-message.c: (dbus_message_append_boolean),
12823         (dbus_message_append_boolean_array),
12824         (dbus_message_get_args_valist), (_dbus_message_test):
12825         * dbus/dbus-message.h:
12826         * doc/dbus-specification.sgml:
12827         Various fixes as pointed out by Havoc.
12828
12829         * test/data/invalid-messages/bad-boolean-array.message:
12830         * test/data/invalid-messages/bad-boolean.message:
12831         Add invalid boolean value test cases.
12832
12833 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12834
12835         * dbus/dbus-internals.c: (_dbus_type_to_string):
12836         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12837         (_dbus_marshal_validate_arg):
12838         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12839         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12840         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12841         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12842         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12843         (dbus_message_iter_get_double),
12844         (dbus_message_iter_get_boolean_array), (message_iter_test):
12845         * dbus/dbus-message.h:
12846         * dbus/dbus-protocol.h:
12847         * doc/dbus-specification.sgml:
12848         * test/data/valid-messages/lots-of-arguments.message:
12849         Add support for boolean and boolean array types.
12850
12851 2003-02-23  Havoc Pennington  <hp@pobox.com>
12852
12853         * dbus/dbus-keyring.c: finish most of this implementation and
12854         simple unit test
12855
12856         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12857         these barf if the error isn't cleared to NULL
12858
12859         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12860         (_dbus_create_directory): new function
12861
12862         * dbus/dbus-errors.c (dbus_set_error): fix warning
12863
12864         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12865         (_dbus_string_hex_decode): new function
12866         (test_hex_roundtrip): test code
12867
12868         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12869
12870         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12871
12872         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12873         the save-to-temp/rename trick to atomically write the new file
12874         (_dbus_string_parse_uint): new function
12875
12876 2003-02-22  Havoc Pennington  <hp@pobox.com>
12877
12878         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12879
12880 2003-02-22  Havoc Pennington  <hp@pobox.com>
12881
12882         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12883         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12884
12885         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12886
12887         * dbus/test/data/sha-1: add US government test suite for SHA-1
12888
12889 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12890
12891         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12892         Make string arrays NULL-terminated.
12893
12894         * dbus/dbus-memory.c: (dbus_free_string_array):
12895         * dbus/dbus-memory.h:
12896         New function for freeing NULL-terminated string arrays.
12897
12898         * dbus/dbus-message-builder.c: (append_quoted_string),
12899         (_dbus_message_data_load):
12900         Add support for array types.
12901
12902         * dbus/dbus-message.c: (check_message_handling):
12903         Add more types as test cases.
12904
12905         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12906         (_dbus_string_parse_double):
12907         Add the start offset to the end offset.
12908
12909         * test/data/valid-messages/lots-of-arguments.message:
12910         New test message with lots of arguments.
12911
12912 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12913
12914         * dbus/dbus-message.c: (dbus_message_append_nil),
12915         (dbus_message_append_int32), (dbus_message_append_uint32),
12916         (dbus_message_append_double), (dbus_message_append_string),
12917         (dbus_message_append_int32_array),
12918         (dbus_message_append_uint32_array),
12919         (dbus_message_append_double_array),
12920         (dbus_message_append_byte_array),
12921         (dbus_message_append_string_array):
12922         Fix all out-of-memory handling in these functions.
12923
12924 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12925
12926         * dbus/dbus-message.c: (dbus_message_append_nil):
12927         Fix a silly.
12928
12929 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12930
12931         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12932         (dbus_message_append_nil), (dbus_message_append_int32_array),
12933         (dbus_message_append_uint32_array),
12934         (dbus_message_append_double_array),
12935         (dbus_message_append_byte_array),
12936         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12937         (dbus_message_iter_get_int32_array),
12938         (dbus_message_iter_get_uint32_array),
12939         (dbus_message_iter_get_double_array),
12940         (dbus_message_iter_get_byte_array),
12941         (dbus_message_iter_get_string_array):
12942
12943         * dbus/dbus-message.h:
12944         Add functions for appending and getting arrays.
12945
12946 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12947
12948         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12949         element size at least 8 bytes, fixes mempool tests on
12950         64-bit machines.
12951
12952 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12953
12954         * dbus/dbus-transport-unix.c (unix_do_iteration):
12955         Unlock the connection mutex during a blocking select call.
12956         Add todo about how we need a way to wake up the select.
12957
12958         * dbus/dbus-connection-internal.h:
12959         * dbus/dbus-connection.c:
12960         Add _dbus_connection_lock and _dbus_connection_unlock.
12961
12962 2003-02-19  Havoc Pennington  <hp@pobox.com>
12963
12964         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12965         Doxyfile.in, not Doxyfile
12966
12967         * dbus/dbus-keyring.c: do some hacking on this
12968
12969         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12970
12971         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12972         dbus_error_init
12973         (dbus_set_error): remove dbus_error_init, check for message ==
12974         NULL *before* we sprintf into it, and add @todo about including
12975         system headers in this file
12976
12977         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
12978
12979         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
12980
12981         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
12982         get various bits of user information based on either username
12983         or user ID
12984         (_dbus_homedir_from_username): new function
12985
12986 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
12987
12988         * configure.in:
12989         Add check for nonposix getpwnam_r
12990
12991         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
12992         Align the pool element size to a sizeof (void *) boundary.
12993
12994         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
12995         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
12996         General Solaris fixes.
12997
12998         * test/data/valid-messages/simplest-manual.message:
12999         Explicitly state that we want little-endian packing.
13000
13001 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13002
13003         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13004
13005         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13006         Added to create a transport connecting using a tcp/ip socket.
13007
13008         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13009         to a tcp socket at given host and port.
13010         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13011         hostname and port.
13012
13013         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13014
13015         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13016         Added to create a server listening on a TCP/IP socket.
13017
13018 2003-02-19  Havoc Pennington  <hp@pobox.com>
13019
13020         Throughout: mop up all the Doxygen warnings and undocumented
13021         stuff.
13022
13023         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13024         to search any paths.
13025
13026         * dbus/dbus-threads.c: move global mutex initializers to
13027         dbus-internals.h, multiple prototypes was confusing doxygen
13028         besides being kind of ugly
13029
13030         * Doxyfile (PREDEFINED): have Doxygen define
13031         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13032         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13033         (do not abuse the feature! it's for stuff like the autogenerated
13034         macros in dbus-md5.c, not just for things you don't feel like
13035         documenting...)
13036
13037 2003-02-18  Havoc Pennington  <hp@pobox.com>
13038
13039         * dbus/dbus-string.c (_dbus_string_zero): new function
13040
13041         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13042         wrap it in some dbus-friendly API
13043
13044         * dbus/dbus-types.h: add 16-bit types
13045
13046 2003-02-18  Joe Shaw  <joe@assbarn.com>
13047
13048         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13049         credentials from our currently running process.
13050         (get_word): Fix a buglet where we were copying the entire length
13051         instead of relative to our position.
13052
13053         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13054         keys on the stack... it's 640k of data.
13055
13056         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13057         read the credentials byte off the socket, even if we don't have
13058         SO_PEERCRED.
13059         (_dbus_poll): Implement poll() using select() for systems which
13060         don't have it.
13061
13062         * glib/test-dbus-glib.c (main): Print out an error if no
13063         parameters are given.
13064
13065         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13066         can fallback to a secondary auth mechanism if the first fails.
13067
13068 2003-02-18  Havoc Pennington  <hp@pobox.com>
13069
13070         * AUTHORS: add Alex
13071
13072 2003-02-17  Havoc Pennington  <hp@pobox.com>
13073
13074         * doc/dbus-specification.sgml: lots of cosmetic
13075         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13076         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13077         s/server/bus/ (except in authentication section). Add a section
13078         "Message Bus Message Routing"
13079
13080 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13081
13082         Release 0.4
13083
13084         * NEWS: Update
13085
13086 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13087
13088         * doc/dbus-specification.sgml:
13089         Specification updates.
13090
13091 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13092
13093         * bus/activation.c: (bus_activation_init), (child_setup),
13094         (bus_activation_activate_service):
13095         * bus/activation.h:
13096         * bus/main.c: (main):
13097         Set DBUS_ADDRESS environment variable.
13098
13099         * dbus/dbus-errors.c: (dbus_set_error):
13100         Don't use va_copy since that's a C99 feature.
13101
13102         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13103         (_dbus_spawn_async):
13104         * dbus/dbus-sysdeps.h:
13105         Add child_setup_func to _dbus_spawn_async.
13106
13107         * doc/dbus-specification.sgml:
13108         Update specification.
13109
13110         * test/spawn-test.c: (setup_func), (main):
13111         Fix test.
13112
13113 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13114
13115         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13116         Added todo.
13117
13118 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13119
13120         * doc/.cvsignore:
13121         * doc/Makefile.am:
13122         * doc/dbus-test-plan.sgml:
13123         Add test plan document.
13124
13125         * test/Makefile.am:
13126         Fix distcheck.
13127
13128 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13129
13130         * dbus/dbus-message.c: (decode_header_data),
13131         (_dbus_message_loader_return_buffer):
13132         Set the header padding amount when loading a message.
13133
13134 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13135
13136         * bus/dispatch.c: (send_one_message):
13137         Only send broadcast messages to registered connections.
13138
13139         * dbus/dbus-message.c: (dbus_message_name_is):
13140         * dbus/dbus-message.h:
13141         New convenience function.
13142
13143         * dbus/dbus-transport-debug.c: (do_reading):
13144         Only dispatch one message per run.
13145
13146         * test/Makefile.am:
13147         * test/bus-test.c: (new_connection_callback), (die),
13148         (test_hello_client1_handler), (test_hello_client2_handler),
13149         (test_hello_replies), (main):
13150
13151         * test/bus-test-loop.[ch]:
13152         Add these.
13153
13154 2003-02-16  Havoc Pennington  <hp@pobox.com>
13155
13156         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13157         backward conditional
13158
13159 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13160
13161         * dbus/dbus-connection.c:
13162         Implement sent_message_with_reply. (with_reply_and block is still
13163         busted).
13164         Made dispatch_message not lose message if OOM.
13165
13166         * dbus/dbus-errors.h:
13167         Add NoReply error (for reply timeouts).
13168
13169 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13170
13171         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13172         Actually free keys and values when destroying hashtable.
13173
13174 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13175
13176         * dbus/dbus-auth.c: (client_try_next_mechanism):
13177         Plug a leak.
13178
13179         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13180         Return TRUE if there's no thread implementation around.
13181
13182         * glib/dbus-gmain.c: (free_source),
13183         (dbus_connection_hookup_with_g_main):
13184         Make sure to remove the GSource when the connection is finalized.
13185
13186 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13187
13188         * bus/dispatch.c: (bus_dispatch_message_handler):
13189         * dbus/dbus-errors.h:
13190         Return an error if someone tries to send a message to a service
13191         that doesn't exist.
13192
13193 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13194
13195         * bus/activation.c: (load_directory), (bus_activation_init),
13196         (bus_activation_activate_service):
13197         * bus/activation.h:
13198         * bus/driver.c:
13199         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13200         More work on the activation handling.
13201
13202         * dbus/dbus-errors.h:
13203         Add some error messages
13204
13205         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13206         * dbus/dbus-message.h:
13207         New function that creates an error message.
13208
13209         * dbus/dbus-protocol.h:
13210         Add ACTIVATE_SERVER message.
13211
13212         * dbus/dbus-server-unix.c: (unix_handle_watch),
13213         (_dbus_server_new_for_domain_socket):
13214         Call _dbus_fd_set_close_on_exec.
13215
13216         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13217         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13218         (_dbus_fd_set_close_on_exec):
13219         * dbus/dbus-sysdeps.h:
13220         Add _dbus_fd_set_close_on exec function. Also add function that checks
13221         that all open fds are set to close-on-exec and warns otherwise.
13222
13223         * dbus/dbus-transport-unix.c:
13224         (_dbus_transport_new_for_domain_socket):
13225         Call _dbus_fd_set_close_on_exec.
13226
13227 2003-02-16  Havoc Pennington  <hp@pobox.com>
13228
13229         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13230         allow people to avoid setting SIGPIPE to SIG_IGN
13231         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13232         we've been asked not to
13233
13234 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13235
13236         * dbus/dbus-list.c: (_dbus_list_append_link),
13237         (_dbus_list_prepend_link):
13238         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13239         (dbus_realloc):
13240         Warning fixes.
13241
13242 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13243
13244         * bus/Makefile.am:
13245         * bus/activation.c: (bus_activation_entry_free),
13246         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13247         * bus/activation.h:
13248         * bus/main.c: (main):
13249         Add simple activation support, doesn't work yet though.
13250
13251 2003-02-15   Zack Rusin  <zack@kde.org>
13252
13253         * qt/dbus-qthread.cpp:  small casting fix
13254
13255 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13256
13257         * dbus/dbus-errors.c: (dbus_set_error):
13258         * dbus/dbus-errors.h:
13259         Add a few errors and make dbus_set_error void.
13260
13261         * dbus/dbus-sysdeps.c:
13262         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13263         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13264         * dbus/dbus-sysdeps.h:
13265         Add _dbus_spawn_async.
13266
13267         * test/spawn-test.c: (main):
13268         Test for _dbus_spawn_async.
13269
13270 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13271
13272         * dbus/dbus-internals.h:
13273         Fix build without tests.
13274
13275         * dbus/dbus-list.c: (alloc_link):
13276         Fix a segfault when a malloc fails.
13277
13278         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13279         (dbus_malloc0), (dbus_realloc):
13280         Add support for malloc debugging.
13281
13282 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13283
13284         * dbus/dbus-threads.c:
13285         * dbus/dbus-threads.h:
13286         Add condvars. Remove static mutext from API.
13287         Implement static mutexes by initializing them from threads_init.
13288
13289         * glib/dbus-gthread.c:
13290         * qt/dbus-qthread.cpp:
13291         Update with the thread api changes.
13292
13293
13294         * dbus/dbus-list.c:
13295         * dbus/dbus-list.h:
13296         Turn StaticMutex into normal mutex + init function.
13297         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13298         _dbus_list_append_link, _dbus_list_prepend_link
13299
13300
13301         * dbus/dbus-sysdeps.c:
13302         * dbus/dbus-sysdeps.h:
13303         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13304         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13305
13306         * dbus/dbus-protocol.h:
13307         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13308
13309         * dbus/dbus-message.c:
13310         Make ref/unref atomic.
13311         Fix some docs.
13312
13313         * dbus/dbus-connection-internal.h:
13314         * dbus/dbus-connection.c:
13315         * dbus/dbus-connection.h:
13316         Make threadsafe.
13317         Change _peek to _borrow,_return & _steal_borrowed.
13318         Change disconnect callback to event.
13319         Make dbus_connection_dispatch_messages reentrant.
13320
13321         * dbus/dbus-transport.c:
13322         Don't ref the connection on calls to the transport
13323         implementation.
13324
13325         * dbus/dbus-message-handler.c:
13326         Make threadsafe.
13327
13328         * glib/dbus-gmain.c:
13329         Don't use peek_message anymore
13330
13331         * test/Makefile.am:
13332         * test/debug-thread.c:
13333         * test/debug-thread.h:
13334         Simple thread implementation that asserts() on deadlocks in
13335         single-threaded code.
13336
13337         * test/bus-test.c:
13338         (main) Call debug_threads_init.
13339
13340         * test/watch.c:
13341         Use disconnect message instead of disconnect callback.
13342
13343         * bus/connection.c:
13344         * bus/connection.h:
13345         Don't call dbus_connection_set_disconnect_function. Instead export
13346         bus_connection_disconnect.
13347
13348         * bus/dispatch.c:
13349         Call bus_connection_disconnect when we get a disconnected message.
13350
13351 2003-02-15  Havoc Pennington  <hp@pobox.com>
13352
13353         * dbus/dbus-message.c (dbus_message_new): fool around with the
13354         docs
13355
13356 2003-02-14  Havoc Pennington  <hp@pobox.com>
13357
13358         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13359
13360         * dbus/dbus-memory.c: fail if the debug functions indicate we
13361         should
13362
13363         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13364         (_dbus_decrement_fail_alloc_counter): debug functions to
13365         simulate memory allocation failures
13366
13367 2003-02-14  Havoc Pennington  <hp@pobox.com>
13368
13369         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13370         to DBusError
13371
13372 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13373
13374         * bus/driver.c: (bus_driver_handle_hello):
13375         * bus/driver.h:
13376         * bus/services.c: (bus_service_lookup):
13377         Reorder message sending so we get a more sane order.
13378
13379         * test/bus-test.c: (message_handler):
13380         Fix tyop.
13381
13382 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13383
13384         * bus/driver.c: (bus_driver_send_service_deleted),
13385         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13386         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13387         (bus_driver_send_welcome_message),
13388         (bus_driver_handle_list_services),
13389         (bus_driver_handle_acquire_service),
13390         (bus_driver_handle_service_exists):
13391         * dbus/dbus-bus.c: (dbus_bus_register_client),
13392         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13393         * dbus/dbus-errors.c: (dbus_result_to_string):
13394         * dbus/dbus-errors.h:
13395         * dbus/dbus-message.c: (dbus_message_append_args),
13396         (dbus_message_append_args_valist), (dbus_message_get_args),
13397         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13398         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13399         (dbus_message_iter_get_byte_array),
13400         (dbus_message_iter_get_string_array), (message_iter_test),
13401         (check_message_handling), (_dbus_message_test):
13402         * dbus/dbus-message.h:
13403         * test/bus-test.c: (main):
13404         Change fields to arguments in messages, so that they won't be
13405         confused with header fields.
13406
13407         * glib/test-dbus-glib.c: (main):
13408         Remove append_fields from hello message.
13409
13410 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13411
13412         * dbus/dbus-errors.c:
13413         * dbus/dbus-message.c:
13414         * dbus/dbus-string.c:
13415         Documentation fixes.
13416
13417 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13418
13419         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13420         (remove_timeout):
13421         Implement support for timeouts in dbus-glib.
13422
13423 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13424
13425         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13426         * dbus/dbus-message.c: (process_test_subdir):
13427         * test/break-loader.c: (find_breaks_based_on):
13428         Plug some memory leaks.
13429
13430 2003-02-13  Richard Hult  <rhult@codefactory.se>
13431
13432         * bus/main.c: Fix build.
13433
13434         * dbus/dbus-errors.h:
13435         * dbus/dbus-errors.c: Fix copyright for Anders.
13436
13437 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13438
13439         * bus/Makefile.am:
13440         Add utils.[ch]
13441
13442         * bus/connection.c: (bus_connection_foreach):
13443         Fix a warning.
13444
13445         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13446         (unescape_string), (new_section), (parse_section_start),
13447         (parse_key_value), (report_error), (bus_desktop_file_load),
13448         (bus_desktop_file_get_string):
13449         * bus/desktop-file.h:
13450         Use DBusError for error reporting.
13451
13452         * bus/dispatch.c: (send_one_message),
13453         (bus_dispatch_message_handler):
13454         * bus/driver.c: (bus_driver_send_service_deleted),
13455         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13456         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13457         (bus_driver_send_welcome_message),
13458         (bus_driver_handle_list_services),
13459         (bus_driver_handle_acquire_service),
13460         (bus_driver_handle_service_exists):
13461         * bus/loop.c: (bus_loop_run):
13462         * bus/main.c:
13463         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13464
13465         * bus/utils.c: (bus_wait_for_memory):
13466         * bus/utils.h:
13467         New files with general utility functions.
13468
13469         * dbus/dbus-internals.h:
13470         Remove _DBUS_HANDLE_OOM.
13471
13472 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13473
13474         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13475         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13476         * dbus/dbus-errors.h:
13477         Add DBusError structure.
13478
13479 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13480
13481         * test/data/valid-messages/standard-acquire-service.message:
13482         * test/data/valid-messages/standard-hello.message:
13483         * test/data/valid-messages/standard-list-services.message:
13484         * test/data/valid-messages/standard-service-exists.message:
13485         Add some standard messages.
13486
13487 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13488
13489         * bus/driver.c: (bus_driver_send_welcome_message),
13490         (bus_driver_handle_list_services),
13491         (bus_driver_handle_acquire_service),
13492         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13493         Update for API changes in libdbus.
13494
13495         * dbus/dbus-message.c: (dbus_message_new_reply):
13496         * dbus/dbus-message.h:
13497         Remove the name argument. The spec states that replies shouldn't
13498         have a name.
13499
13500 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13501
13502         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13503         (report_error), (bus_desktop_file_load), (lookup_section),
13504         (lookup_line), (bus_desktop_file_get_raw),
13505         (bus_desktop_file_get_string):
13506         * bus/desktop-file.h:
13507         Some fixes, and new functions for getting a key value from a section.
13508
13509 2003-02-13  Havoc Pennington  <hp@pobox.com>
13510
13511         * test/data/auth/fail-after-n-attempts.auth-script: new test
13512
13513         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13514         reject the client.
13515
13516 2003-02-13  Havoc Pennington  <hp@pobox.com>
13517
13518         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13519         dbus_credentials_match were backward
13520
13521         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13522         NO_CREDENTIALS and ROOT_CREDENTIALS
13523
13524         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13525         into here. Never process more commands after we've reached an
13526         end state; store further data as unused bytes.
13527
13528         * test/data/auth/*: add more auth tests
13529
13530         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13531         command to match exact string and EXPECT_UNUSED to match unused
13532         bytes
13533
13534         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13535
13536 2003-02-12  Havoc Pennington  <hp@pobox.com>
13537
13538         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13539         \r off of popped lines
13540
13541         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13542         scripts
13543
13544         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13545         SEND, append \r\n
13546
13547 2003-02-12  Havoc Pennington  <hp@pobox.com>
13548
13549         * dbus/Makefile.am: remove break-loader from the build, since it
13550         moved.
13551
13552         * configure.in: add --enable-gcov to turn on coverage profiling
13553         flags and disable optimization
13554
13555 2003-02-10  Havoc Pennington  <hp@pobox.com>
13556
13557         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13558         initial cut at test framework for DBusAuth from laptop.
13559         Doesn't quite work yet but it compiles and I need to get
13560         it off the 266mhz laptop. ;-)
13561
13562         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13563         fix a memleak in error case
13564
13565 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13566
13567         * bus/Makefile.am:
13568         * bus/desktop-file.c:
13569         * bus/desktop-file.h:
13570         Add a desktop file parser.
13571
13572 2003-02-11  Zack Rusin  <zack@kde.org>
13573
13574         * qt/message.[h|cpp]: sample implementation
13575         of the KDE wrapper for DBusMessage
13576
13577 2003-02-09  Zack Rusin  <zack@kde.org>
13578
13579         * test/bus-test.c: make_it_compile
13580         * doc/dbus-specification.sgml: minimal semantic fix
13581
13582 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13583
13584         Release 0.3
13585
13586         * NEWS: Update
13587
13588 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13589
13590         * dbus/Makefile.am:
13591         * dbus/dbus-break-loader.c:
13592         * test/Makefile.am:
13593         * test/break-loader.c:
13594         Move dbus-break-loader to test/ and rename it to break-loader.
13595
13596 2003-02-02  Havoc Pennington  <hp@pobox.com>
13597
13598         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13599         for code to manage cookies in your home directory
13600
13601         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13602
13603         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13604         to authenticate, then disconnect the client.
13605
13606 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13607
13608         * dbus/dbus-message.c (dbus_message_append_fields):
13609         Correct docs.
13610
13611 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13612
13613         * doc/dbus-specification.sgml:
13614         Update address format section.
13615
13616 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13617
13618         * test/Makefile.am:
13619         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13620         (message_handler), (new_connection_callback), (loop_quit),
13621         (loop_run), (main):
13622         Add bus test.
13623
13624 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13625
13626         * bus/driver.c: (bus_driver_handle_service_exists):
13627         Simplify the code a bit.
13628
13629         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13630         Fix a silly.
13631
13632 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13633
13634         * bus/Makefile.am:
13635         Add libdbus-daemon.la and link to it.
13636
13637 2003-02-01  James Willcox  <jwillcox@gnome.org>
13638
13639         * bus/driver.c: (bus_driver_handle_own_service):
13640         Actually include the service reply code in the message.
13641
13642 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13643
13644         * bus/driver.c: (bus_driver_handle_service_exists):
13645         Don't unref the incoming message.
13646
13647 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13648
13649         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13650
13651 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13652
13653         * dbus/dbus-server.c: (dbus_server_listen):
13654         * dbus/dbus-transport.c: (_dbus_transport_open):
13655         ifdef out the calls to the debug transport and server.
13656
13657 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13658
13659         * dbus/dbus-watch.c (dbus_watch_get_flags):
13660         Add note in the docs that ERROR or HANGUP won't be returned
13661         and are assumed always on.
13662
13663         * glib/dbus-gmain.c (add_watch):
13664         Always add IO_ERR | IO_HUP
13665
13666         * dbus/dbus-message.h:
13667         Add semicolon after dbus_message_iter_get_string_array().
13668         Makes qt code build again
13669
13670 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13671
13672         * bus/driver.c: (create_unique_client_name),
13673         (bus_driver_handle_hello):
13674         Don't take a name, just use a numeric id to identify
13675         each client.
13676
13677         * dbus/Makefile.am:
13678         * dbus/dbus-bus.c: (dbus_bus_register_client),
13679         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13680         * dbus/dbus-bus.h:
13681         Add new convenience functions for communicating with the bus.
13682
13683         * dbus/dbus-message.h:
13684
13685         * dbus/dbus-protocol.h:
13686         Fix a typo.
13687
13688 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13689
13690         * dbus/dbus-message.c (dbus_message_append_fields):
13691         Add some more doc comments.
13692
13693 2003-02-01  Havoc Pennington  <hp@pobox.com>
13694
13695         * dbus/dbus-break-loader.c (randomly_modify_length): change
13696         a 4-byte value in the message as if it were a length
13697
13698         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13699         execute bit on saved files
13700
13701 2003-02-01  Havoc Pennington  <hp@pobox.com>
13702
13703         * dbus/dbus-break-loader.c (main): new program to find messages
13704         that break the loader.
13705
13706         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13707         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13708
13709         * dbus/dbus-string.c (_dbus_string_set_byte): new
13710
13711 2003-01-31  Havoc Pennington  <hp@pobox.com>
13712
13713         * dbus/dbus-message.c: refactor the test code to be more general,
13714         in preparation for writing a "randomly permute test cases to
13715         try to break the loader" program.
13716
13717 2003-01-31  Havoc Pennington  <hp@pobox.com>
13718
13719         * doc/dbus-specification.sgml: work on the specification
13720
13721         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13722         the protocol version of the message.
13723
13724         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13725         no longer specifies that.
13726         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13727         1/2/3/4)
13728
13729         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13730         "break" for DBUS_TYPE_NIL, remove @todo
13731
13732 2003-01-31  Havoc Pennington  <hp@pobox.com>
13733
13734         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13735         just set_is_error/get_is_error as this is a commonly-used
13736         function, and write docs.
13737
13738 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13739
13740         * dbus/dbus-address.c: (dbus_address_entry_free):
13741         Free key and value lists.
13742
13743         * dbus/dbus-internals.c: (_dbus_type_to_string):
13744         Add the types we didn't have.
13745
13746         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13747         (_dbus_marshal_validate_arg):
13748         Add NIL types.
13749
13750         * dbus/dbus-message.c: (dbus_message_set_sender):
13751         Remove todo about being able to set sender to NULL.
13752
13753         (dbus_message_set_is_error_reply),
13754         (dbus_message_get_is_error_reply):
13755         * dbus/dbus-message.h:
13756         New functions.
13757
13758         * dbus/dbus-protocol.h:
13759         Add error reply flag.
13760
13761         * test/data/valid-messages/opposite-endian.message:
13762         Add NIL type to test.
13763
13764 2003-01-31  Havoc Pennington  <hp@pobox.com>
13765
13766         * doc/dbus-specification.sgml: fully specify the header.  Add
13767         flags and major protocol version, and change header/body len to
13768         unsigned.
13769
13770         * dbus/dbus-message-builder.c (append_saved_length): append length
13771         as uint32
13772
13773         * dbus/dbus-message.c (dbus_message_create_header): change header
13774         length and body length to unsigned. Add the new fields from the
13775         spec
13776         (_dbus_message_loader_return_buffer): unsigned header/body len
13777
13778 2003-01-30  Havoc Pennington  <hp@pobox.com>
13779
13780         * dbus/dbus-auth.c: rework to use only REJECTED, no
13781         MECHANISMS
13782
13783         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13784         use REJECTED, suggested by Mark McLoughlin
13785
13786 2003-01-30  Havoc Pennington  <hp@pobox.com>
13787
13788         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13789         a better way to report errors here. e.g.  "unix address lacks
13790         path" or something. also "no such file" when the path doesn't
13791         exist, etc.
13792
13793         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13794         leaking list nodes
13795         (dbus_parse_address): add @todo about documenting address format,
13796         and allowing , and ; to be escaped
13797
13798 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13799
13800         * dbus/Makefile.am:
13801         Add dbus-address.[ch]
13802
13803         * dbus/dbus-address.c: (dbus_address_entry_free),
13804         (dbus_address_entries_free), (create_entry),
13805         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13806         (dbus_parse_address), (_dbus_address_test):
13807         * dbus/dbus-address.h:
13808         New files for dealing with address parsing.
13809
13810         * dbus/dbus-connection.c:
13811         Document timeout functions.
13812
13813         * dbus/dbus-message.c:
13814         Document dbus_message_new_from_message.
13815
13816         * dbus/dbus-server-debug.c:
13817         Document.
13818
13819         * dbus/dbus-server.c: (dbus_server_listen):
13820         Parse address and use correct server implementation.
13821
13822         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13823         * dbus/dbus-string.h:
13824         New function with test.
13825
13826         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13827         * dbus/dbus-test.h:
13828         Add address tests.
13829
13830         * dbus/dbus-transport-debug.c:
13831         Document.
13832
13833         * dbus/dbus-transport.c: (_dbus_transport_open):
13834         Parse address and use correct transport implementation.
13835
13836 2003-01-30  Havoc Pennington  <hp@pobox.com>
13837
13838         * dbus/dbus-message.c: use message->byte_order instead of
13839         DBUS_COMPILER_BYTE_ORDER throughout.
13840         (dbus_message_create_header): pad header to align the
13841         start of the body of the message to 8-byte boundary
13842
13843         * dbus/dbus-marshal.h: make all the demarshalers take const
13844         DBusString arguments.
13845
13846         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13847         validate message args here, so we don't have to do slow validation
13848         later, and so we catch bad messages as they are incoming. Also add
13849         better checks on header_len and body_len. Also fill in
13850         message->byte_order
13851
13852         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13853         implemented properly)
13854         (_dbus_string_validate_nul): new function to check all-nul
13855
13856         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13857         get_arg_end_pos and remove all validation
13858         (_dbus_marshal_validate_arg): actually do validation here.
13859
13860 2003-01-29  Havoc Pennington  <hp@pobox.com>
13861
13862         * dbus/dbus-message.c (check_message_handling): fix assertion
13863         failure on set_client_serial
13864
13865 2003-01-28  Havoc Pennington  <hp@pobox.com>
13866
13867         * dbus/dbus-server-debug.c: Add doc section comments
13868
13869         * dbus/dbus-transport-debug.c: add doc section comments
13870
13871 2003-01-28  Havoc Pennington  <hp@redhat.com>
13872
13873         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13874         the reverse order from how I had it
13875         (_dbus_string_base64_encode): reverse encoding order. I was
13876         basically byteswapping everything during encoding.
13877
13878 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13879
13880         * dbus/dbus-connection-internal.h:
13881         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13882         (_dbus_connection_remove_timeout):
13883         Add functions for adding and removing timeouts.
13884
13885         * dbus/dbus-message.c: (dbus_message_new_from_message):
13886         Add new function that takes a message and creates an exact
13887         copy of it, but with the refcount set to 1.
13888         (check_message_handling):
13889         Fix build error.
13890
13891         * dbus/dbus-server-protected.h:
13892         * dbus/dbus-server.c: (_dbus_server_init_base),
13893         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13894         (dbus_server_set_timeout_functions):
13895         (_dbus_server_remove_timeout):
13896         New functions so that a server can add and remove timeouts.
13897
13898         (dbus_server_listen):
13899         Add commented out call to dbus_server_debug_new.
13900
13901         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13902         Actually set the handler, doh.
13903
13904         * dbus/dbus-transport.c: (_dbus_transport_open):
13905         Add commented out call to dbus_transport_debug_client_new.
13906
13907         * dbus/Makefile.am:
13908         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13909
13910 2003-01-28  Havoc Pennington  <hp@pobox.com>
13911
13912         * dbus/dbus-message.c (check_message_handling): function to check
13913         on the loaded message, iterates over it etc.
13914
13915 2003-01-28  Havoc Pennington  <hp@pobox.com>
13916
13917         * test/Makefile.am (dist-hook): fix make distdir
13918
13919         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13920
13921 2003-01-27  Havoc Pennington  <hp@pobox.com>
13922
13923         * dbus/dbus-mempool.c (time_for_size): replace printf with
13924         _dbus_verbose
13925
13926         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13927         empty lines; fix the SAVE_LENGTH stuff to be
13928         START_LENGTH/END_LENGTH so it actually works; couple other
13929         bugfixes
13930
13931         * test/Makefile.am (dist-hook): add dist-hook for .message files
13932
13933         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13934         can be constant or locked.
13935         (_dbus_string_free): allow freeing a const string as
13936         documented/intended
13937
13938         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13939
13940         * dbus/dbus-test-main.c (main): take an argument which is the
13941         directory containing test data
13942
13943         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13944         argument to this and load all the messages in test/data/
13945         checking that they can be loaded or not loaded as appropriate.
13946
13947 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13948
13949         * bus/dispatch.c: (bus_dispatch_message_handler):
13950         Dispatch messages sent to services.
13951
13952         * bus/driver.c: (bus_driver_send_service_deleted),
13953         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13954         (bus_driver_send_service_acquired):
13955         Add helper functions for sending service related messages.
13956
13957         (bus_driver_send_welcome_message):
13958         Send HELLO_REPLY instead of WELCOME.
13959
13960         (bus_driver_handle_list_services):
13961         Send LIST_SERVICES_REPLY instead of SERVICES.
13962
13963         (bus_driver_handle_own_service),
13964         (bus_driver_handle_service_exists):
13965         New message handlers.
13966
13967         (bus_driver_handle_message):
13968         Invoke new message handlers.
13969
13970         (bus_driver_remove_connection):
13971         Don't remove any services here since that's done automatically
13972         by bus_service_remove_owner now.
13973
13974         * bus/driver.h:
13975         New function signatures.
13976
13977         * bus/services.c: (bus_service_add_owner):
13978         Send ServiceAcquired message if we're the only primary owner.
13979
13980         (bus_service_remove_owner):
13981         Send ServiceAcquired/ServiceLost messages.
13982
13983         (bus_service_set_prohibit_replacement),
13984         (bus_service_get_prohibit_replacement):
13985         Functions for setting prohibit replacement.
13986
13987         (bus_service_has_owner):
13988         New function that checks if a connection is in the owner queue of
13989         a certain service.
13990
13991         * bus/services.h:
13992         Add new function signatures.
13993
13994         * dbus/dbus-list.c: (_dbus_list_test):
13995         Add tests for _dbus_list_remove_last and traversing the list backwards.
13996
13997         * dbus/dbus-list.h:
13998         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
13999         go any further, so return NULL then.
14000
14001         * dbus/dbus-protocol.h:
14002         Add new messages, service flags and service replies.
14003
14004 2003-01-26  Havoc Pennington  <hp@pobox.com>
14005
14006         * dbus/dbus-message-builder.c: implement, completely untested.
14007
14008         * test/data/*: add data to be used in testing.
14009         ".message" files are our simple loadable text format.
14010         ".message-raw" will be binary dumps of messages.
14011
14012         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14013
14014 2003-01-26  Havoc Pennington  <hp@pobox.com>
14015
14016         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14017
14018         * dbus/dbus-errors.c (dbus_result_to_string): add
14019         file errors
14020
14021         * dbus/dbus-message-builder.c: new file, will contain code to load
14022         up messages from files. Not implemented yet.
14023
14024 2003-01-26  Havoc Pennington  <hp@pobox.com>
14025
14026         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14027         the sender by setting to NULL
14028
14029 2003-01-26  Havoc Pennington  <hp@pobox.com>
14030
14031         The unit tests pass, but otherwise untested.  If it breaks, the
14032         tests should have been better. ;-)
14033
14034         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14035         the connection.
14036
14037         * dbus/dbus-message.c: redo everything so we maintain
14038         message->header as the only copy of the various fields.
14039         This avoids the possibility of out-of-memory in some cases,
14040         for example dbus_message_lock() can't run out of memory anymore,
14041         and avoids extra copying. Figured I may as well go ahead and do
14042         this since it was busted for dbus_message_lock to not return
14043         failure on OOM, and dbus_message_write_header was totally
14044         unchecked for OOM. Also fixed some random other bugs.
14045
14046         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14047         that strings are nul-terminated. Also, end_pos can be equal
14048         to string length just not greater than, I think.
14049         (_dbus_marshal_set_int32): new function
14050         (_dbus_marshal_set_uint32): new function
14051         (_dbus_marshal_set_string): new function
14052
14053         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14054         a warning, init timeout_list to NULL
14055         (dbus_connection_send_message): don't use uninitialized variable
14056         "serial"
14057
14058         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14059
14060 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14061
14062         * bus/driver.c: (bus_driver_handle_hello),
14063         (bus_driver_send_welcome_message):
14064         Plug leaks
14065
14066 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14067
14068         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14069         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14070         (dbus_connection_unref):
14071         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14072         * dbus/dbus-message.c: (dbus_message_unref),
14073         Plug memory leaks.
14074
14075         (dbus_message_get_fields):
14076         Remove debugging printout.
14077
14078         (_dbus_message_loader_return_buffer):
14079         Don't store the header string.
14080
14081         (_dbus_message_test):
14082         Plug leaks.
14083
14084 2003-01-26  Richard Hult  <rhult@codefactory.se>
14085
14086         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14087         the file descriptor list, since it can change under us.
14088
14089 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14090
14091         * glib/dbus-gmain.c: (dbus_connection_prepare),
14092         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14093         (remove_watch), (dbus_connection_hookup_with_g_main):
14094         Rewrite the glib handling to use its own GSource instead of a
14095         GIOChannel so we can catch messages put in the queue while waiting
14096         for a reply.
14097
14098 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14099
14100         * bus/Makefile.am:
14101         * bus/connection.c: (connection_disconnect_handler),
14102         (connection_watch_callback), (bus_connection_setup):
14103         * bus/dispatch.c: (send_one_message),
14104         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14105         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14106         * bus/dispatch.h:
14107         * bus/driver.c: (bus_driver_send_service_deleted),
14108         (bus_driver_send_service_created), (bus_driver_handle_hello),
14109         (bus_driver_send_welcome_message),
14110         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14111         (bus_driver_handle_message):
14112         * bus/driver.h:
14113         Refactor code, put the message dispatching in its own file. Use
14114         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14115         is disconnected.
14116
14117 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14118
14119         * dbus/dbus-internals.h:
14120         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14121
14122         * dbus/dbus-message.c: (dbus_message_get_sender):
14123         * dbus/dbus-message.h:
14124         Implement dbus_message_get_sender.
14125
14126         * dbus/dbus-protocol.h:
14127         Add message and service defines.
14128
14129 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14130
14131         * dbus/dbus-connection.c: (dbus_connection_send_message):
14132         * dbus/dbus-message-internal.h:
14133         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14134         (dbus_message_write_header):
14135         Remove _dbus_messag_unlock and don't set the client serial on a
14136         message if one already exists.
14137
14138 2003-01-24  Havoc Pennington  <hp@pobox.com>
14139
14140         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14141         list_pool
14142
14143         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14144         on OOM
14145
14146 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14147
14148         * dbus/dbus-list.c: (alloc_link), (free_link):
14149         Use a memory pool for the links.
14150
14151 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14152
14153         * bus/connection.c: (bus_connection_foreach):
14154         * bus/connection.h:
14155         Add new bus_connection_foreach function.
14156
14157         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14158         Add function that broadcasts a message to all clients.
14159
14160         (bus_driver_send_service_created), (bus_driver_handle_hello),
14161         (bus_driver_send_welcome_message),
14162         (bus_driver_handle_list_services), (bus_driver_message_handler):
14163         Implement functions that take care of listing services, and notifying
14164         clients when new services are created.
14165
14166         * bus/services.c: (bus_services_list):
14167         * bus/services.h:
14168         Add new function that returns an array of strings with the currently
14169         registered services.
14170
14171         * glib/dbus-glib.h:
14172         * glib/dbus-gmain.c:
14173         Update copyright year.
14174
14175 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14176
14177         * dbus/dbus-connection.c: (dbus_connection_send_message):
14178         Unlock the message in case it was sent earlier.
14179
14180         (dbus_connection_send_message_with_reply_and_block):
14181         Remove the reply message from the list.
14182
14183         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14184         Set array_len and new_pos correctly.
14185
14186         (_dbus_marshal_test):
14187         Remove debug output.
14188
14189         * dbus/dbus-message-internal.h:
14190         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14191         New function that returns the reply serial.
14192
14193         (_dbus_message_unlock):
14194         New function that unlocks a message and resets its header.
14195
14196         (dbus_message_append_string_array),
14197         (dbus_message_get_fields_valist),
14198         (dbus_message_iter_get_field_type),
14199         (dbus_message_iter_get_string_array),
14200         (dbus_message_get_fields),
14201         (dbus_message_append_fields_valist):
14202         Handle string arrays.
14203
14204         (dbus_message_set_sender):
14205         Make this function public since the bus daemon needs it.
14206
14207         (decode_header_data):
14208         Set the reply serial to -1 initially.
14209
14210         * dbus/dbus-message.h:
14211         Add dbus_message_set_sender.
14212
14213 2003-01-24  Havoc Pennington  <hp@pobox.com>
14214
14215         * doc/dbus-specification.sgml: add some stuff
14216
14217 2003-01-22  Havoc Pennington  <hp@pobox.com>
14218
14219         * doc/dbus-specification.sgml: Start to document the protocol.
14220
14221 2003-01-22  Havoc Pennington  <hp@pobox.com>
14222
14223         * dbus/dbus-connection.c
14224         (dbus_connection_send_message_with_reply_and_block): add some @todo
14225
14226         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14227
14228 2003-01-21  Havoc Pennington  <hp@pobox.com>
14229
14230         (patch untested because can't compile)
14231
14232         * bus/driver.c (create_unique_client_name): make this function
14233         never recycle client names. Also, caller should initialize
14234         the DBusString.
14235
14236         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14237
14238 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14239
14240         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14241         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14242         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14243         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14244         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14245         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14246         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14247         * dbus/dbus-marshal.h:
14248         * dbus/dbus-protocol.h:
14249         Add support for marshalling and demarshalling integer, double
14250         and string arrays.
14251
14252 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14253
14254         * bus/Makefile.am:
14255         Add driver.[ch]
14256
14257         * bus/connection.c: (connection_disconnect_handler):
14258         Remove the connection from the bus driver's list.
14259
14260         (connection_watch_callback): Dispatch messages.
14261
14262         (free_connection_data): Free connection name.
14263
14264         (bus_connection_setup): Add connection to the bus driver's list.
14265         (bus_connection_remove_owned_service):
14266         (bus_connection_set_name), (bus_connection_get_name):
14267         Add functions for setting and getting the connection's name.
14268
14269         * bus/connection.h:
14270         Add function headers.
14271
14272         * bus/driver.c: (create_unique_client_name),
14273         (bus_driver_handle_hello_message),
14274         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14275         (bus_driver_add_connection), (bus_driver_remove_connection):
14276         * bus/driver.h:
14277         * bus/main.c:
14278         * bus/services.c: (bus_service_free):
14279         * bus/services.h:
14280         New file that handles communication and registreation with the bus
14281         itself.
14282
14283 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14284
14285         * dbus/dbus-connection.c: (dbus_connection_send_message):
14286         Add a new client_serial parameter.
14287
14288         (dbus_connection_send_message_with_reply):
14289         Remove a @todo since we've implemented the blocking function.
14290
14291         (dbus_connection_send_message_with_reply_and_block):
14292         New function that sends a message and waits for a reply and
14293         then returns the reply.
14294
14295         * dbus/dbus-connection.h:
14296         Add new functions.
14297
14298         * dbus/dbus-errors.c: (dbus_result_to_string):
14299         * dbus/dbus-errors.h:
14300         Add new DBUS_RESULT.
14301
14302         * dbus/dbus-message-internal.h:
14303         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14304         (_dbus_message_set_sender), (dbus_message_write_header),
14305         (dbus_message_new_reply), (decode_header_data),
14306         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14307         * dbus/dbus-message.h:
14308         Add new functions that set the reply serial and sender.
14309         Also marshal and demarshal them correctly and add test.
14310
14311         * dbus/dbus-protocol.h:
14312         Add new DBUS_MESSAGE_TYPE_SENDER.
14313
14314         * glib/dbus-glib.h:
14315         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14316         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14317         (dbus_connection_hookup_with_g_main):
14318         * glib/test-dbus-glib.c: (main):
14319         Rewrite to use GIOChannel and remove the GSource crack.
14320
14321         * test/echo-client.c: (main):
14322         * test/watch.c: (check_messages):
14323         Update for changed APIs
14324
14325 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14326
14327         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14328
14329         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14330         Create a DBusTimeoutList.
14331         (dbus_connection_set_timeout_functions): Add new function to
14332         set timeout callbacks
14333
14334         * dbus/dbus-connection.h: Add public DBusTimeout API.
14335
14336         * dbus/dbus-message.c: (dbus_message_get_service):
14337         * dbus/dbus-message.h:  New function.
14338
14339         * dbus/dbus-server.c: Fix small doc typo.
14340
14341         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14342
14343 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14344
14345         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14346         of the string, just as long as specified.
14347
14348 2003-01-19  Havoc Pennington  <hp@pobox.com>
14349
14350         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14351         new function
14352
14353         * dbus/dbus-server.c (dbus_server_set_max_connections)
14354         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14355         keep track of current number of connections, and add API for
14356         setting a max (but haven't implemented enforcing the max yet)
14357
14358 2003-01-18  Havoc Pennington  <hp@pobox.com>
14359
14360         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14361         reading/writing if read_watch != NULL or write_watch != NULL.
14362
14363         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14364         the message loader code to actually load message->header and
14365         message->body into the newly-created message.
14366
14367         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14368         in OOM case
14369
14370         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14371         (dbus_connection_get_max_message_size)
14372         (dbus_connection_set_max_live_messages_size)
14373         (dbus_connection_get_max_live_messages_size): implement some
14374         resource limitation functions
14375
14376         * dbus/dbus-resources.c: new file implementing some of the
14377         resource limits stuff
14378
14379         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14380         missing docs, add @todo to handle OOM etc.
14381
14382         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14383         docs
14384
14385 2003-01-18  Havoc Pennington  <hp@pobox.com>
14386
14387         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14388         connection if it hasn't been already.
14389
14390         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14391         replace with DisconnectFunction.
14392
14393 2003-01-18  Havoc Pennington  <hp@pobox.com>
14394
14395         Building --disable-verbose-mode --disable-asserts --disable-tests
14396         cuts the library from 112K to 45K or so
14397
14398         * configure.in: check for varargs macro support,
14399         add --enable-verbose-mode, --enable-asserts.
14400
14401         * dbus/dbus-internals.h (_dbus_assert): support
14402         DBUS_DISABLE_ASSERT
14403         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14404
14405 2003-01-18  Havoc Pennington  <hp@pobox.com>
14406
14407         * dbus/dbus-test.c: include config.h so that tests actually run
14408
14409         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14410         so the failure mode when that assumption fails will be plenty
14411         obvious.
14412
14413 2003-01-18  Havoc Pennington  <hp@pobox.com>
14414
14415         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14416
14417         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14418         the distribution
14419
14420         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14421         since we don't want to use those in make check
14422
14423 2003-01-15  Havoc Pennington  <hp@redhat.com>
14424
14425         Release 0.2
14426
14427         * NEWS: update
14428
14429 2003-01-15  Havoc Pennington  <hp@redhat.com>
14430
14431         * test/Makefile.am: fix so that test source code ends up in the
14432         distribution on make distcheck
14433
14434 2003-01-15  Havoc Pennington  <hp@redhat.com>
14435
14436         Release 0.1.
14437
14438         * NEWS: update
14439
14440 2003-01-15  Havoc Pennington  <hp@redhat.com>
14441
14442         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14443         fix build when --disable-tests
14444
14445         * Makefile.am (EXTRA_DIST): put HACKING in here
14446
14447         * HACKING: document procedure for making a tarball release.
14448
14449 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14450
14451         * bus/connection.c: (connection_error_handler),
14452         (bus_connection_setup):
14453         * bus/main.c: (main):
14454         Make sure that the DBusConnectionData struct is NULLed
14455         out to prevent a segfault.
14456
14457         * dbus/dbus-errors.c: (dbus_result_to_string):
14458         * dbus/dbus-errors.h:
14459         * dbus/dbus-message.c: (dbus_message_get_fields),
14460         (dbus_message_get_fields_valist), (_dbus_message_test):
14461         * dbus/dbus-message.h:
14462         Make dbus_message_get_fields return a result code so we can
14463         track invalid fields as well as oom.
14464
14465 2003-01-11  Havoc Pennington  <hp@pobox.com>
14466
14467         * configure.in: change --enable-test/--enable-ansi action-if-given
14468         to enable_foo=$enableval instead of enable_foo=yes
14469
14470 2003-01-08  Havoc Pennington  <hp@pobox.com>
14471
14472         * dbus/dbus-string.c (_dbus_string_align_length): new function
14473
14474         * dbus/dbus-test-main.c: move main() for test app here
14475         * dbus/dbus-test.c
14476         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14477         symbol to run tests, because dbus-test isn't in the main
14478         library
14479
14480         Code review nitpicks.
14481
14482         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14483         for people with narrow emacs ;-). Assert client_serial was filled
14484         in. Assert message->name != NULL.
14485         (dbus_message_append_fields): have "first_field_type" arg separate
14486         from va list, needed for C++ binding that also uses varargs IIRC
14487         and helps with type safety
14488         (dbus_message_new): add @todo about using DBusString to store
14489         service/name internally
14490         (dbus_message_new): don't leak ->service and ->name on OOM later
14491         in the function
14492         (dbus_message_unref): free the service name
14493         (dbus_message_get_fields): same change to varargs
14494         i.e. first_field_type
14495         (_dbus_message_loader_return_buffer): assert that the message data
14496         is aligned (if not it's a bug in our code). Put in verbose griping
14497         about why we set corrupted = TRUE.
14498         (decode_header_data): add FIXME that char* is evil.  Was going to
14499         add FIXME about evil locale-specific string.h strncmp, but just
14500         switched to wacky string-as-uint32 optimization. Move check for
14501         "no room for field name" above get_const_data_len() to avoid
14502         assertion failure in get_const_data_len if we have trailing 2
14503         bytes or the like. Check for service and name fields being
14504         provided twice. Don't leak service/name on error. Require field
14505         names to be aligned to 4 bytes.
14506
14507         * dbus/dbus-marshal.c: move byte swap stuff to header
14508         (_dbus_pack_int32): uscore-prefix
14509         (_dbus_unpack_int32): uscore-prefix
14510         (_dbus_unpack_uint32): export
14511         (_dbus_demarshal_string): add @todo complaining about use of
14512         memcpy()
14513         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14514         handling allowing corrupt data to go unchecked
14515
14516 2003-01-08  Havoc Pennington  <hp@redhat.com>
14517
14518         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14519         to the select() as needed for authentication. (should be using
14520         _dbus_poll() not select, but for another day)
14521
14522         * dbus/dbus.h: include dbus/dbus-protocol.h
14523
14524 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14525
14526         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14527         dbus-connection.h
14528
14529 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14530
14531         * dbus/dbus-internals.c: (_dbus_type_to_string):
14532         New function that returns a string describing a type.
14533
14534         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14535         * dbus/dbus-marshal.h:
14536         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14537         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14538         (dbus_message_iter_get_byte_array):
14539         * dbus/dbus-message.h:
14540         Add new convenience functions for appending and getting message fields.
14541         Also add demarshalling routines for byte arrays.
14542
14543 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14544
14545         * dbus/dbus-connection-internal.h:
14546         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14547         (_dbus_connection_get_next_client_serial),
14548         (dbus_connection_send_message):
14549         * dbus/dbus-internals.h:
14550         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14551         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14552         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14553         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14554         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14555         (_dbus_verbose_bytes), (_dbus_marshal_test):
14556         * dbus/dbus-marshal.h:
14557         * dbus/dbus-message-internal.h:
14558         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14559         (dbus_message_write_header), (_dbus_message_lock),
14560         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14561         (dbus_message_get_name), (dbus_message_append_int32),
14562         (dbus_message_append_uint32), (dbus_message_append_double),
14563         (dbus_message_append_string), (dbus_message_append_byte_array),
14564         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14565         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14566         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14567         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14568         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14569         (decode_header_data), (_dbus_message_loader_return_buffer),
14570         (message_iter_test), (_dbus_message_test):
14571         * dbus/dbus-message.h:
14572         * dbus/dbus-protocol.h:
14573         * dbus/dbus-test.c: (main):
14574         * dbus/dbus-test.h:
14575         * glib/test-dbus-glib.c: (message_handler), (main):
14576         * test/echo-client.c: (main):
14577         * test/watch.c: (check_messages):
14578         Make messages sendable and receivable for real.
14579
14580 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14581
14582         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14583         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14584         * dbus/dbus-message.c: (dbus_message_append_int32),
14585         (dbus_message_append_uint32), (dbus_message_append_double),
14586         (dbus_message_append_string), (dbus_message_append_byte_array):
14587         Handle OOM restoration.
14588
14589 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14590
14591         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14592         (_dbus_demarshal_string), (_dbus_marshal_test):
14593         * dbus/dbus-marshal.h:
14594         * dbus/dbus-message.c: (dbus_message_get_name),
14595         Document these functions.
14596
14597         (dbus_message_append_int32), (dbus_message_append_uint32),
14598         (dbus_message_append_double), (dbus_message_append_string),
14599         (dbus_message_append_byte_array):
14600         * dbus/dbus-message.h:
14601         Add functions for adding message fields of different types.
14602
14603         * dbus/dbus-protocol.h:
14604         Add the different types.
14605
14606 2003-01-05  Havoc Pennington  <hp@pobox.com>
14607
14608         * bus/connection.c: implement routines for handling connections,
14609         first thing is keeping a list of owned services on each connection
14610         and setting up watches etc.
14611
14612         * bus/services.c: implement a mapping from service names to lists
14613         of connections
14614
14615         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14616
14617         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14618         to use static mutexes for global data
14619
14620         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14621         collection of functions to set/get application-specific data
14622         on the DBusConnection.
14623
14624 2003-01-04  Havoc Pennington  <hp@pobox.com>
14625
14626         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14627         (_dbus_poll): new function
14628
14629         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14630         copied from GLib
14631
14632         * bus/loop.c: initial code for the daemon main loop
14633
14634 2003-01-04  Havoc Pennington  <hp@pobox.com>
14635
14636         * test/watch.c (error_handler): make it safe if the error handler
14637         is called multiple times (if we s/error handler/disconnect
14638         handler/ we should just guarantee it's called only once)
14639
14640         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14641         error handler on disconnect (it's quite possible we should
14642         just change the error handler to a "disconnect handler," I'm
14643         not sure we have any other meaningful errors)
14644
14645         * configure.in: check for getpwnam_r
14646
14647         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14648         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14649         mechanism as in SASL spec, using socket credentials
14650
14651         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14652         (_dbus_send_credentials_unix_socket): new function
14653
14654         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14655         dbus_accept()
14656         (_dbus_write): only check errno if <0 returned
14657         (_dbus_write_two): ditto
14658
14659 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14660
14661         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14662         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14663         (_dbus_marshal_test):
14664         * dbus/dbus-marshal.h:
14665         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14666         to _dbus_marshal_utf8_string. Also fix some tests.
14667
14668 2002-12-28  Harri Porten  <porten@kde.org>
14669
14670         * configure.in: added check for C++ compiler and a very cheesy
14671         check for the Qt integration
14672
14673         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14674
14675         * qt/Makefile.am: added
14676
14677         * qt/.cvsignore: added
14678
14679         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14680         latter, added #ifdef QT_THREAD_SUPPORT guard.
14681
14682         * dbus/Makefile.am: added missing headers for make dist
14683
14684 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14685
14686         * dbus/Makefile.am: fixup export-symbols-regex.
14687
14688 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14689
14690         * acinclude.m4: Add this file and put the
14691         PKG_CHECK_MODULE macro in it.
14692
14693 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14694
14695         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14696         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14697         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14698         (_dbus_marshal_test):
14699         Make the demarshalling routines align the pos argument.
14700         Add string marshalling tests and fix the obvious bugs
14701         discovered.
14702
14703 2002-12-26  Havoc Pennington  <hp@pobox.com>
14704
14705         * dbus/dbus-auth.c: fixes fixes fixes
14706
14707         * dbus/dbus-transport-unix.c: wire up support for
14708         encoding/decoding data on the wire
14709
14710         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14711         (_dbus_auth_decode_data): append to target string
14712         instead of nuking it.
14713
14714 2002-12-26  Havoc Pennington  <hp@pobox.com>
14715
14716         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14717         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14718         doh
14719
14720         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14721         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14722         now). Main point is because I wanted unpack_uint32 to implement
14723         _dbus_verbose_bytes
14724         (_dbus_verbose_bytes): new function
14725
14726         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14727
14728         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14729         mechanism to handle a corrupt message stream
14730         (_dbus_message_loader_new): fix preallocation to only prealloc,
14731         not prelengthen
14732
14733         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14734         (_dbus_string_test): enhance tests for copy/move and fix the
14735         functions
14736
14737         * dbus/dbus-transport-unix.c: Hold references in more places to
14738         avoid reentrancy problems
14739
14740         * dbus/dbus-transport.c: ditto
14741
14742         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14743         leak reference count in no-message case
14744
14745         * test/watch.c (do_mainloop): handle adding/removing watches
14746         during iteration over the watches. Also, ref the connection/server
14747         stored on a watch, so we don't try to mangle a destroyed one.
14748
14749         * dbus/dbus-transport-unix.c (do_authentication): perform
14750         authentication
14751
14752         * dbus/dbus-auth.c (get_state): add a state
14753         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14754         (_dbus_auth_get_unused_bytes): append the unused bytes
14755         to the passed in string, rather than prepend
14756
14757         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14758         the auth conversation DBusAuth
14759
14760         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14761         (_dbus_transport_new_for_domain_socket): when creating a
14762         transport, pass in whether it's a client-side or server-side
14763         transport so we know which DBusAuth to create
14764
14765 2002-12-03  Havoc Pennington  <hp@pobox.com>
14766
14767         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14768         _after_ finalizing the derived members
14769         (unix_connection_set): unref watch if we fail to add it
14770
14771         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14772         transport first, so that the connection owned by the
14773         transport will be valid as the transport finalizes.
14774
14775         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14776         if necessary, and remove watches from the connection.
14777
14778         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14779
14780 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14781
14782         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14783         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14784         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14785         (_dbus_marshal_test):
14786         * dbus/dbus-marshal.h:
14787         Add string marshal functions and have the demarshal functions
14788         return the new position.
14789
14790 2002-12-25  Havoc Pennington  <hp@pobox.com>
14791
14792         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14793         it is a simple protocol that just maps directly to SASL.
14794
14795         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14796         initial implementation, not actually used yet.
14797
14798         * dbus/dbus-string.c (_dbus_string_find): new function
14799         (_dbus_string_equal): new function
14800         (_dbus_string_base64_encode): new function
14801         (_dbus_string_base64_decode): new function
14802
14803 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14804
14805         * dbus/Makefile.am:
14806         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14807         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14808         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14809         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14810         * dbus/dbus-marshal.h:
14811         * dbus/dbus-protocol.h:
14812         * dbus/dbus-test.c: (main):
14813         * dbus/dbus-test.h:
14814         Add un-optimized marshalling/demarshalling routines.
14815
14816 2002-12-25  Harri Porten  <porten@kde.org>
14817
14818         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14819
14820 2002-12-24  Zack Rusin  <zack@kde.org>
14821
14822         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14823         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14824         main loop stuff
14825
14826 2002-12-24  Havoc Pennington  <hp@pobox.com>
14827
14828         * glib/dbus-gthread.c: fix include
14829
14830         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14831         I think glib API needs to change, though, as you don't
14832         want to use DBusMessageFunction, you want to use the
14833         DBusMessageHandler object. Probably
14834         dbus_connection_open_with_g_main_loop()
14835         and dbus_connection_setup_g_main_loop() or something like that
14836         (but think of better names...) that just create a connection
14837         that has watch/timeout functions etc. already set up.
14838
14839         * dbus/dbus-connection.c
14840         (dbus_connection_send_message_with_reply): new function just to
14841         show how the message handler helps us deal with replies.
14842
14843         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14844
14845         * dbus/dbus-string.c (_dbus_string_test): free a string that
14846         wasn't
14847
14848         * dbus/dbus-hash.c: use memory pools for the hash entries
14849         (rebuild_table): be more paranoid about overflow, and
14850         shrink table when we can
14851         (_dbus_hash_test): reduce number of sprintfs and write
14852         valid C89. Add tests for case where we grow and then
14853         shrink the hash table.
14854
14855         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14856
14857         * dbus/dbus-connection.c (dbus_connection_register_handler)
14858         (dbus_connection_unregister_handler): new functions
14859
14860         * dbus/dbus-message.c (dbus_message_get_name): new
14861
14862         * dbus/dbus-list.c: fix docs typo
14863
14864         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14865         an object representing a handler for messages.
14866
14867 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14868
14869         * glib/dbus-glib.h:
14870         * glib/dbus-gthread.c: (dbus_gthread_init):
14871         Don't use the gdbus prefix for public functions.
14872
14873 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14874
14875         * Makefile.am:
14876         * configure.in:
14877         Add GLib checks and fixup .pc files
14878
14879         * glib/Makefile.am:
14880         * glib/dbus-glib.h:
14881         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14882         (gdbus_connection_check), (gdbus_connection_dispatch),
14883         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14884         (dbus_connection_gsource_new):
14885         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14886         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14887         * glib/test-dbus-glib.c: (message_handler), (main):
14888         Add GLib support.
14889
14890 2002-12-15  Harri Porten  <porten@kde.org>
14891
14892         * autogen.sh: check for libtoolize before attempting to use it
14893
14894         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14895         struct.
14896
14897         * .cvsignore: ignore more stamp files
14898
14899         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14900
14901         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14902         without make install.
14903
14904 2002-12-15  Havoc Pennington  <hp@pobox.com>
14905
14906         * dbus/dbus-threads.c: add thread stubs that a higher library
14907         layer can fill in. e.g. the GLib wrapper might fill them in with
14908         GThread stuff. We still need to use this thread API to
14909         thread-safe-ize the library.
14910
14911 2002-12-12  Havoc Pennington  <hp@pobox.com>
14912
14913         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14914         below new interfaces and include fewer system headers.
14915
14916         * dbus/dbus-sysdeps.c (_dbus_read): new function
14917         (_dbus_write): new function
14918         (_dbus_write_two): new function
14919         (_dbus_connect_unix_socket): new function
14920         (_dbus_listen_unix_socket): new function
14921
14922         * dbus/dbus-message-internal.h: change interfaces to use
14923         DBusString
14924
14925 2002-12-11  Havoc Pennington  <hp@pobox.com>
14926
14927         * dbus/dbus-types.h: add dbus_unichar
14928
14929         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14930
14931         * dbus/dbus-connection.c (dbus_connection_send_message): return
14932         TRUE on success
14933
14934         * dbus/dbus-transport.c: include dbus-watch.h
14935
14936         * dbus/dbus-connection.c: include dbus-message-internal.h
14937
14938         * HACKING: add file with coding guidelines stuff.
14939
14940         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14941         handling here, for security purposes (as in vsftpd). Not actually
14942         using this class yet.
14943
14944         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14945         system/libc usage here, as in vsftpd, for ease of auditing (and
14946         should also simplify portability). Haven't actually moved all the
14947         system/libc usage into here yet.
14948
14949 2002-11-25  Havoc Pennington  <hp@pobox.com>
14950
14951         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14952         always print the first verbose message.
14953
14954 2002-11-24  Havoc Pennington  <hp@pobox.com>
14955
14956         * test/echo-client.c, test/echo-server.c: cheesy test
14957         clients.
14958
14959         * configure.in (AC_CHECK_FUNCS): check for writev
14960
14961         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14962         function
14963
14964         * dbus/dbus-list.c (_dbus_list_foreach): new function
14965
14966         * dbus/dbus-internals.c (_dbus_verbose): new function
14967
14968         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14969         representing a server that listens for connections.
14970
14971         * dbus/.cvsignore: create
14972
14973         * dbus/dbus-errors.h, dbus/dbus-errors.c:
14974         public API for reporting errors
14975
14976         * dbus/dbus-connection.h, dbus/dbus-connection.c:
14977         public object representing a connection that
14978         sends/receives messages. (Same object used for
14979         both client and server.)
14980
14981         * dbus/dbus-transport.h, dbus/dbus-transport.c:
14982         Basic abstraction for different kinds of stream
14983         that we might read/write messages from.
14984
14985 2002-11-23  Havoc Pennington  <hp@pobox.com>
14986
14987         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
14988         _DBUS_INT_MAX
14989
14990         * dbus/dbus-test.c (main): add list test, and include
14991         dbus-test.h as intended
14992
14993         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
14994         (_dbus_hash_table_remove_int): return value indicates
14995         whether the entry existed to remove
14996
14997         * dbus/dbus-list.c: add linked list utility class,
14998         with docs and tests
14999
15000         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15001         array sometimes.
15002
15003 2002-11-23  Havoc Pennington  <hp@pobox.com>
15004
15005         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15006         DBUS_END_DECLS to nothing, that should fix this once and for all
15007
15008         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15009
15010         * dbus/dbus-message.c, dbus/dbus-hash.c:
15011         add some missing @brief
15012
15013 2002-11-23  Havoc Pennington  <hp@pobox.com>
15014
15015         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15016         to avoid confusing Doxygen
15017
15018         * dbus/dbus-hash.c: @} not }@
15019
15020         * dbus/dbus-message.c (struct DBusMessage): split out
15021         internals docs
15022
15023 2002-11-23  Havoc Pennington  <hp@pobox.com>
15024
15025         * configure.in: pile on more warning flags if using gcc
15026
15027         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15028         to document static functions
15029
15030         * configure.in: add summary to end of configure so it
15031         looks nice and attractive
15032
15033         * dbus/dbus-hash.c: finish implementation and write unit
15034         tests and docs
15035
15036         * configure.in: add --enable-tests to enable unit tests
15037
15038         * dbus/dbus-test.c: test program to run unit tests
15039         for all files in dbus/*, initially runs a test for
15040         dbus-hash.c
15041
15042         * dbus/dbus-internals.h: file to hold some internal utility stuff
15043
15044 2002-11-22  Havoc Pennington  <hp@redhat.com>
15045
15046         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15047         "ported" away from Tcl
15048
15049         * dbus/dbus-types.h: header for types such as dbus_bool_t
15050
15051 2002-11-22  Havoc Pennington  <hp@redhat.com>
15052
15053         * dbus/dbus.h: fixups for doc warnings
15054
15055         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15056         macros
15057         (QUIET): make it quiet so we can see warnings
15058
15059         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15060
15061 2002-11-22  Havoc Pennington  <hp@redhat.com>
15062
15063         * Makefile.am: include "Doxyfile" target in all-local
15064
15065         * configure.in: generate the Doxyfile
15066
15067         * Doxyfile.in: move Doxyfile here, so we can use
15068         configure to generate a Doxyfile with the right
15069         version number etc.
15070
15071 2002-11-22  Havoc Pennington  <hp@redhat.com>
15072
15073         * dbus/dbus-message.c: move inline docs into .c file
15074
15075         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15076         so all docs are under doc/
15077         (MAN_EXTENSION): generate man pages. Use extension
15078         ".3dbus" which matches ".3qt" on my system,
15079         I guess this is OK, I don't know really.
15080         (FILE_PATTERNS): look for .c files not .h, makes sense
15081         for plain C I think
15082
15083 2002-11-22  Havoc Pennington  <hp@pobox.com>
15084
15085         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15086         because any app can be a server, and any app can be a client,
15087         the bus is a special kind of server.
15088
15089 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15090
15091         * Doxyfile : adding. Still needs Makefile rules to be generated
15092         automatically (just run "doxygen" in the toplevel dir for now to
15093         generate docs)
15094
15095         * dbus/dbus-message.h : Adding sample docs (javadoc since
15096         resembles gtk-doc a little more)
15097
15098         * dbus/dbus.h : Adding sample docs
15099
15100 2002-11-21  Havoc Pennington  <hp@redhat.com>
15101
15102         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15103         so we can allow ourselves to include files directly,
15104         instead of having to use dbus.h
15105
15106         * dbus/dbus.h: fill in
15107
15108         * dbus/dbus-message.h: sketch out a sample header file.
15109         Include griping if you include it directly instead of
15110         via dbus.h
15111
15112         * dbus/dbus-macros.h: new file with macros for extern "C",
15113         TRUE/FALSE, NULL, etc.
15114
15115         * doc/file-boilerplate.c: put include guards in here
15116
15117 2002-11-21  Havoc Pennington  <hp@redhat.com>
15118
15119         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15120
15121         * COPYING: include the GPL as well, and license code
15122         under both AFL and GPL.
15123
15124 2002-11-21  Havoc Pennington  <hp@redhat.com>
15125
15126         * acconfig.h: get rid of this
15127
15128         * autogen.sh (run_configure): add --no-configure option
15129
15130         * configure.in: remove AC_ARG_PROGRAM to make
15131         autoconf complain less. add AC_PREREQ.
15132         add AC_DEFINE third arg.
15133
15134 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15135
15136         * doc/Makefile.am:
15137         Fix references so we can distcheck.
15138
15139 2002-11-21  Havoc Pennington  <hp@redhat.com>
15140
15141         * Initial module creation
15142