2006-11-14 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-11-14  Havoc Pennington  <hp@redhat.com>
2
3         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
4         UUID had the timestamp last, but the implementation had it first;
5         move it to last since I think it's a tiny bit nicer (easier to
6         compare at a glance, faster to sort, less code), and will not
7         cause any practical compatibility problems. Also, always convert
8         the timestamp to big endian.
9
10         * doc/dbus-specification.xml: Clean up the docs on the UUID.
11
12         * tools/dbus-uuidgen.1: more prominently say it is not suitable
13         as a replacement for regular uuidgen/RFC4122.
14
15 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
16
17         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
18         the correct value so we don't assert when initalizing recursive threads
19
20         * test/name-test/test-thread-init.c: call dbus_threads_init_default
21         instead of _dbus_threads_init_debug since it is more of a real world
22         test
23
24 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
25
26         * Released 1.0.0
27
28 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
29
30         * AUTHORS: added Peter and Tor of windows porting fame
31
32 2006-11-08  Havoc Pennington  <hp@redhat.com>
33
34         * doc/dbus-specification.xml: add a note about protocol stability
35
36         * doc/TODO: Remove "important for 1.0" section, replace with
37         "important for 1.2" section
38         
39 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
40
41         * README: remove some of the out of date flags
42
43         * doc/TODO: Remove todo items which are done
44
45 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
46
47         * tools/dbus-monitor.c: Handle sigint so we flush stdout
48         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
49
50 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
51
52         * tools/dbus-monitor.1: update the manpage for dbus-monitor
53         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
54
55 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
56
57         * AUTHORS: Update with all people listed in the ChangeLog
58
59 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
60
61         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
62         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
63
64 2006-11-07  Havoc Pennington  <hp@redhat.com>
65
66         * HACKING: Update release instructions to include stuff about
67         stable releases, branching, etc. May not be totally correct,
68         please fix if needed, but keep instructions up-to-date so we do
69         each stable release consistently in the future.
70
71 2006-11-07  Havoc Pennington  <hp@redhat.com>
72
73         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
74         documentation updates. Bump faq/spec versions (not to 1.0; I don't
75         think the spec will be "finished"/1.0 when we ship the 1.0 library).
76
77 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
78
79         * bus/bus.c: Missed patch - pass in the context to the directory watch
80
81 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
82
83         * Released D-Bus 1.0 RC 3(0.95)
84
85 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
86
87         * bus/activation.c (bus_activation_new): don't fail if we can not read
88         the directory as it may not exist
89
90 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
91
92         * bus/config-parser.c (service_dirs_find_dir): use 
93         _dbus_list_get_next_link so we don't get stuck in an infinite loop
94         (start_busconfig_child): move processing of standard_session_servicedirs
95         tags here because they have no content
96         (bus_config_parser_content): check we don't have content in 
97         standard_session_servicedirs tag
98
99 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
100
101         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
102         Packagers need to own this directory
103
104 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
105
106         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
107         <standard_session_servicedirs> tag with a <sevicedir> tag that
108         points to the test service directory
109
110 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
111
112         * configure.in: Add a check for DIR *dirp->dd_fd
113
114         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
115         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
116         of both Solaris and Irix
117
118 2006-11-01  Havoc Pennington  <hp@redhat.com>
119
120         * bus/dbus-daemon.1.in: document standard_session_servicedirs
121
122 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
123
124         * configure.in: expose DBUS_DATADIR
125         
126         * bus/config-parser.c: add the standard_session_servicedirs element
127         to the parser
128         (bus_config_parser_content): process the standard_session_servicedirs
129         element by getting the standard directories from sysdeps and merging
130         them into the service directory list
131         (test_default_session_servicedirs): make sure we get what we expect
132
133         * bus/session.conf.in: replace the servicedir tag with the 
134         standard_session_servicedirs tag
135
136         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
137         dbus-sysdeps.h to avoid circular header dependencies
138
139         * dbus/dbus-sysdeps.h: add the typedef of DBusList
140
141         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
142         which takes a string of directories delimited by colons, parses them 
143         out, appends a suffix and puts them in a list ignoring empty elements
144         (_dbus_get_standard_session_servicedirs): returns the standard 
145         directories for a session bus to look for service activation files
146         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
147         DBUS_DATADIR directories
148
149         * test/data/valid-config-files/many-rules.conf: add the 
150         standard_session_servicedirs tag to the valid config file tests
151
152 2006-10-30  Havoc Pennington  <hp@redhat.com>
153
154         * tools/dbus-launch.1, doc/TODO: capture intent to change the
155         command line options of dbus-launch a bit post 1.0
156
157 2006-10-27  Havoc Pennington  <hp@redhat.com>
158         
159         * dbus/dbus-connection.c (dbus_connection_open_private): document
160         how to choose shared vs. private connections
161
162 2006-10-27  Havoc Pennington  <hp@redhat.com>
163
164         * dbus/dbus-test.c: enclose more of the file in the
165         DBUS_BUILD_TESTS check.
166
167         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
168         DBUS_DISABLE_ASSERT case.
169
170         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
171         that it only works on the server side
172
173         * dbus/dbus-bus.c: add a global lock covering the BusData we
174         attach to each connection
175         (internal_bus_get): lock our access to the BusData
176         (dbus_bus_register): lock the entire registration process
177         with _DBUS_LOCK(bus_datas). If we get the lock and 
178         registration is already complete, silently return (vs. previous
179         behavior of aborting).
180         (dbus_bus_set_unique_name): lock the BusData
181         (dbus_bus_get_unique_name): lock the BusData
182
183 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
184
185         * bus/config-parser.c (service_dirs_find_dir, 
186         service_dirs_append_unique_or_free, 
187         service_dirs_append_link_unique_or_free): New static methods
188         for only appending unique service directory names into
189         the service directory list
190         (merge_included, bus_config_parser_content): Only add unique
191         service directory names into the list
192
193 2006-10-27  Havoc Pennington  <hp@redhat.com>
194
195         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
196         variables volatile, suggested by Thiago. Document struct fields.
197         (PTHREAD_CHECK): remove pthread error checking if assertions are
198         disabled, should reduce the no-assertions case to the bare
199         minimum code.
200
201 2006-10-26  Havoc Pennington  <hp@redhat.com>
202         
203         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
204         to be recursive
205         (_dbus_pthread_mutex_unlock): make it recursive
206         (_dbus_pthread_condvar_wait): save/restore the recursion count
207         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
208
209 2006-10-26  Havoc Pennington  <hp@redhat.com>
210
211         * doc/dbus-specification.xml: clarify the UUID text slightly
212
213         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
214         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
215         in preparation for being able to extend them for e.g. recursive
216         mutexes.
217
218 2006-10-26  Havoc Pennington  <hp@redhat.com>
219
220         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
221         condition variables relate to recursive mutexes.
222         
223         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
224         dbus/dbus-threads.c: Split the platforms-specific thread 
225         implementations into their own files.
226         
227         * dbus/dbus-sysdeps-pthread.c
228         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
229         was backward. Not that anything uses it.
230
231 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
232
233         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
234         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
235         needs to be cleaned up more.
236
237         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
238         up the CREDS issue.
239
240 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
241
242         * configure.in, dbus-1.pc.in: Check to see if thread methods 
243         are in glibc or libpthread and add -lpthread to the link stage 
244         if it is the latter
245
246 2006-10-26  Thiago Macieira  <thiago@kde.org>
247
248         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
249         bug 8780: the connection lock is only required while recording
250         the shared connection, so protect only that code
251         section. Don't require connection_lookup_shared to return a
252         locked connection.
253
254 2006-10-26  Thiago Macieira  <thiago@kde.org>
255
256         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
257         check if get_machine_uuid() returns NULL before proceeding any
258         further: we can't init the X atoms or create a session file
259         name if there is no machine ID.
260         This solves a crash reported by some users if
261         --exit-with-session was used without --autolaunch=<machine-id>
262
263 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
264
265         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
266         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
267
268         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
269         before we run dbus-launch
270
271         * configure.in: define TEST_BUS_BINARY to be the full path to 
272         dbus-daemon in the build root 
273
274 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
275
276         * dbus/Makefile.am:
277         * tools/Makefile.am:
278         * toos/dbus-uuidgen.1:
279                 Move the machine-id file to /var/lib/dbus 
280
281 2006-10-24  David Zeuthen  <davidz@redhat.com>
282
283         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
284         _dbus_assert (thread_init_generation != _dbus_current_generation)
285         not _dbus_assert (thread_init_generation == _dbus_current_generation)
286
287 2006-10-24  Thiago Macieira  <thiago@kde.org>
288
289         * dbus/dbus-sysdeps.h:
290         * dbus/dbus-sysdeps-unix.c: Add function
291         _dbus_make_file_world_readable that chmods a file to 0644.
292
293         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
294         Avoid writing to the static "argv" array, thereby avoiding a
295         COW on the child process.
296
297         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
298         call _dbus_make_file_world_readable on the created file.
299
300 2006-10-23  David Zeuthen  <davidz@redhat.com>
301
302         * dbus/dbus-memory.c: Use atomic variable to protect
303         n_blocks_outstanding otherwise OOM will be reported using SMP on
304         some arches
305         
306         * bus/dispatch.c: Add missing end of line characters
307
308         * bus/desktop-file.c (parse_section_start, parse_key_value) 
309         (bus_desktop_file_load): Propertly handle OOM
310
311         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
312         thread_init_generation equals _dbus_current_generation, not 0
313
314 2006-10-22  Havoc Pennington  <hp@redhat.com>
315
316         * dbus/dbus-connection-internal.h: move prototype of
317         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
318         it isn't in a public header and doesn't end up in the DBusBus
319         group in Doxygen
320
321 2006-10-21  Havoc Pennington  <hp@redhat.com>
322
323         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
324         the tarball if packagers want to run it
325
326         * cleanup-man-pages.sh: Add a script which munges all the internal
327         API man pages out of the Doxygen output. This reduces the size of
328         the installed man pages from 7 to 2 megs, and avoids
329         namespace-polluting pages. Right now (like Doxygen) this script
330         isn't in the build, it's something packagers can do manually.
331
332 2006-10-21  Havoc Pennington  <hp@redhat.com>
333
334         * dbus/dbus-connection.h: don't include the watch/timeout
335         functions in connection section
336
337 2006-10-21  Havoc Pennington  <hp@redhat.com>
338
339         * Documentation! Whee! Doxygen now 100% silent. If you make it
340         angry again, you will be punished.
341         
342 2006-10-21  Havoc Pennington  <hp@redhat.com>
343
344         * More documentation - all public API now documented according to
345         Doxygen
346
347 2006-10-21  Havoc Pennington  <hp@redhat.com>
348
349         * Document a bunch of undocumented stuff
350         
351 2006-10-21  Havoc Pennington  <hp@redhat.com>
352
353         * Clean up Doxygen group markers for public API so Doxygen finds
354         everything (not comprehensively fixed for private API).
355         Means all remaining Doxygen warnings are just about missing docs
356         and thus pretty simple to resolve.
357         
358 2006-10-21  Havoc Pennington  <hp@redhat.com>
359         
360         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
361
362         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
363         as DBUS_GNUC_DEPRECATED
364
365 2006-10-21  Havoc Pennington  <hp@redhat.com>
366
367         * Move all private API into the private Doxygen group sections of
368         the files, so they don't show up in the public API docs
369         
370 2006-10-21  Havoc Pennington  <hp@redhat.com>
371
372         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
373         dbus_message_iter_get_array_len().
374
375         * throughout: documentation improvements.
376
377 2006-10-20  Havoc Pennington  <hp@redhat.com>
378
379         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
380         matter, and the message-loader-breaker thing since nobody is going
381         to do it.  Add an item to 1.0 about supporting recursive locks
382         in dbus_threads_init_default() though, since it should be easy.
383
384         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
385         Fix this in the !dispatch case to avoid busy-looping after
386         disconnection
387
388         * More misc docs improvements
389
390 2006-10-19  Havoc Pennington  <hp@redhat.com>
391
392         * more Doxygen-related fixes (lots of moving things from the
393         public to internal section in dbus-connection.c)
394
395 2006-10-19  Havoc Pennington  <hp@redhat.com>
396
397         * Fix a pile of Doxygen warnings and missing docs
398
399 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
400
401         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
402         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
403         instead of a void *.  kqueue uses this to get the context's loop
404         while the other modules ignore the parameter.  This allows us to
405         avoid platform conditionals
406
407         * bus/bus.c (process_config_postinit): Pass in the context to the 
408         watch
409
410 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
411
412         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
413         when starting the system bus
414
415 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
416
417         * configure.in: More fixups for cross compile (Patch from 
418         Marco Pracucci <development at pracucci dot com>)
419
420 2006-10-17  Havoc Pennington  <hp@redhat.com>
421
422         * tools/dbus-send.c (main): don't close shared connection, fix
423         from Timo Hoenig
424
425 2006-10-17  Havoc Pennington  <hp@redhat.com>
426
427         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
428
429         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
430         since realistically it doesn't look like we'll be changing it
431         anymore.
432
433 2006-10-17  Havoc Pennington  <hp@redhat.com>
434
435         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
436         be used for return_if_fail type warnings; prefixes the pid, and
437         fatal by default.
438
439 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
440
441         * configure.in: Released 1.0 RC 2(0.94)
442         Add check for -fPIC and enable it if available
443
444 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
445
446         * doc/TODO: Remove the check TODO item
447
448 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
449
450         * dbus-transport-socket.c (exchange_credentials):
451         Print out more detailed errors if reading or sending
452         credentials fail (Patch from Julio M. Merino Vidal 
453         <jmmv at NetBSD dot org>)
454
455 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
456
457         * configure.in: when checking for posix getpwnam_r assume true
458         for cross compiles
459
460 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
461
462         * configure.in: Check for gethostbyname first before we check for it
463         in libnsl.  On gnu systems it is implemeneted 
464
465 2006-10-13  Havoc Pennington  <hp@redhat.com>
466
467         * dbus/dbus-connection.c
468         (dbus_connection_send_with_reply_and_block): fix to handle closed
469         connections, from Tambet Ingo bug #8631
470
471 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
472
473         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
474
475 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
476
477         * test/name-test/Makefile.am: don't link against both libdbus and
478         libdbus-convenience
479
480 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
481
482         * configure.in: check for dirfd even if it is a macro
483         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
484
485 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
486
487         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
488         avoid using dirfd on systems that don't have dirfd 
489         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
490
491 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
492
493         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
494         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
495
496         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
497         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
498         macro because _dbus_abort calls it
499
500         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
501         works
502
503 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
504
505         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
506         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
507
508 2006-10-02  Thiago Macieira  <thiago@kde.org>
509
510         * tools/dbus-launch.c (main): make it complain and abort
511         execution in case an unknown option is given. Also, process
512         the '--' argument as the end of arguments.
513
514 2006-10-01  Havoc Pennington  <hp@redhat.com>
515
516         * tools/dbus-launch.c (print_variables): if no syntax is given,
517         don't print something that's sort-of-half-sh-syntax, just print
518         a plain key-value pairs thing.
519
520         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
521         the local machine representation (but still have the hostname in
522         the display). Remove the hostname from the display if it is
523         localhost. Change session files to be named
524         ~/.dbus/session-bus/machine-display. Change X atoms to be
525         underscore-prefixed so nobody whines about ICCCM compliance.
526         Otherwise name them the same as the env variables.
527         Change session file format to include key-value pairs and an
528         explanatory comment. Keys are the same as the env variables.
529         (set_address_in_x11): X property format can't depend on
530         sizeof(pid_t) on a particular machine, fix to always be 32 bits
531
532         * tools/dbus-launch.c: make --autolaunch take a machine id
533         argument. If --autolaunch is used with a program to run, complain
534         for now (but add a FIXME). Also, don't look for existing bus if 
535         there's a program to run (but add a FIXME).
536
537         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
538         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
539         just to get this, and avoids duplicating uuid-reading code).
540
541         * tools/dbus-launch.1: clarify various things
542         
543 2006-10-01  Havoc Pennington  <hp@redhat.com>
544
545         * test/test-service.c (path_message_func): remove broken extra
546         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
547
548         * test/test-shell-service.c (path_message_func): same fix
549         
550         * dbus/dbus-connection.c
551         (_dbus_connection_get_dispatch_status_unlocked): break up the
552         function a little for clarity and fix the notification of
553         dbus-bus.c to not require dispatch to be complete
554
555         * dbus/dbus-connection.c (dbus_connection_unref): improve the
556         warning when you try to finalize an open connection.
557         
558 2006-10-01  Havoc Pennington  <hp@redhat.com>
559
560         * dbus/dbus-bus.c
561         (internal_bus_get): only weak ref the connection; this means 
562         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
563         called safely in any context
564         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
565         unref
566
567         * dbus/dbus-connection.c
568         (_dbus_connection_get_dispatch_status_unlocked): move
569         _dbus_bus_notify_shared_connection_disconnected_unlocked here
570         when queuing Disconnected instead of when the Disconnected message
571         arrives, so dbus_bus_get() won't return closed connections.
572         
573 2006-10-01  Havoc Pennington  <hp@redhat.com>
574
575         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
576         Add a hack to make DBusNewConnectionFunction work right.
577
578         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
579         the hack here. Also, fix the todo about refcount leak.
580         
581         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
582         and use the hack here
583         
584         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
585         "shareable" flag; this was completely broken, since it meant 
586         dbus_connection_open() returned a connection of unknown
587         shared-ness. Now, we always hold a ref on anything opened 
588         as shareable.
589
590         Move the call to notify dbus-bus.c into
591         connection_forget_shared_unlocked, so libdbus consistently forgets
592         all its knowledge of a connection at once. This exposed numerous
593         places where things were totally broken if we dropped a ref inside
594         get_dispatch_status_unlocked where
595         connection_forget_shared_unlocked was previously, so move
596         connection_forget_shared_unlocked into
597         _dbus_connection_update_dispatch_status_and_unlock. Also move the
598         exit_on_disconnect here.
599
600         (shared_connections_shutdown): this assumed weak refs to the
601         shared connections; since we have strong refs now, the assertion 
602         was failing and stuff was left in the hash. Fix it to close
603         still-open shared connections.
604         
605         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
606         debug pipe connections
607         
608         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
609         dbus-bus.c if the closed connection is in fact shared
610         (_dbus_connection_close_possibly_shared): rename from 
611         _dbus_connection_close_internal
612         (dbus_connection_close, dbus_connection_open,
613         dbus_connection_open_private): Improve docs to explain the deal
614         with when you should close or unref or both
615
616         * dbus/dbus-bus.c
617         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
618         from _dbus_bus_check_connection_and_unref_unlocked and modify to
619         loop over all connections
620
621         * test/test-utils.c (test_connection_shutdown): don't try to close
622         shared connections.
623
624         * test/name-test/test-threads-init.c (main): fix warnings in here
625
626         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
627         env variable to cause blocking waiting for gdb; drop
628         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
629         unconditionally.
630
631         * configure.in: add -export-dynamic to libtool flags if assertions enabled
632         so _dbus_print_backtrace works.
633
634         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
635         instead of _dbus_verbose to print the backtrace, and diagnose lack 
636         of -rdynamic/-export-dynamic
637         
638 2006-09-30  Havoc Pennington  <hp@redhat.com>
639
640         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
641         (internal_bus_get): fix screwy code formatting. whoever committed
642         that was not paying attention!
643
644 2006-09-30  Havoc Pennington  <hp@redhat.com>
645
646         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
647         reflect addition of interfaces.
648
649         * doc/dbus-specification.xml: describe a new
650         org.freedesktop.DBus.Peer.GetMachineId method
651
652         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
653         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
654         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
655         at end of skip_white
656         (_dbus_string_chop_white): new function
657
658         * bus/connection.c (bus_connections_setup_connection): call
659         dbus_connection_set_route_peer_messages.
660
661         * dbus/dbus-connection.c
662         (_dbus_connection_peer_filter_unlocked_no_update): modify to
663         support a GetMachineId method.
664
665         Also, support a new flag to let the bus pass peer methods through
666         to apps on the bus, which can be set with
667         dbus_connection_set_route_peer_messages.
668
669         Finally, handle and return an error for anything unknown on the
670         Peer interface, which will allow us to extend the Peer interface
671         in the future without fear that we're now intercepting something
672         apps were wanting to see.
673         
674         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
675         dbus/dbus-uuidgen.c
676
677         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
678         binary here, since most of the code is already in libdbus
679
680         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
681         uuid from the system config file
682
683         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
684         (_dbus_read_uuid_file_without_creating) 
685         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
686         uuid-related functions, partly factored out from dbus-server.c
687
688         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
689         DBUS_ERROR_FILE_EXISTS instead of EEXIST
690
691         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
692
693         * tools/dbus-cleanup-sockets.1: explain what the point of this
694         thing is a bit more
695
696         * autogen.sh (run_configure): add --config-cache to default
697         configure args
698
699         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
700         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
701
702         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
703         don't try to save address, fixes crash in make check
704         
705 2006-09-30  Thiago Macieira  <thiago@kde.org>
706
707         * configure.in: add DBUS_BINDIR as a #define to C source code.
708
709         * tools/dbus-launch.c
710         * tools/dbus-launch.h
711         * tools/dbus-launch-x11.c:
712         * tools/dbus-launch.1: Add the --autolaunch option to
713         dbus-launch, which makes it scan for an existing session
714         started with --autolaunch. With that option, it also creates
715         an X11 window and saves the bus address and PID to it.
716
717         * dbus/dbus-sysdeps.h:
718         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
719         a function that runs "dbus-launch --autolaunch" to retrieve
720         the running D-Bus session address (or start one if none was running)
721
722         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
723         address protocol, which tries to get the running session from
724         dbus-launch.
725
726         * dbus/dbus-bus.c:
727         * dbus/dbus-internals.h: Make "autolaunch:" be the default
728         D-Bus session bus address.
729
730         * dbus/dbus-connection.c: Fix horrible typo in error message.
731
732 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
733
734         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
735
736 2006-09-17  Havoc Pennington  <hp@redhat.com>
737
738         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
739         fix so that if unix_user_function is set on windows, we still
740         do the default check that the auth identity matches the bus identity
741
742 2006-09-16  Havoc Pennington  <hp@redhat.com>
743
744         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
745         to _dbus_transport_open_platform_specific,
746         _dbus_transport_open_socket,
747         and _dbus_transport_open_debug_pipe
748
749         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
750
751 2006-09-16  Havoc Pennington  <hp@redhat.com>
752
753         Attempt auditing public API to remove all cases where a Unix
754         function returns weird emulated goo to Windows. This probably 
755         breaks the bus daemon on Windows, to fix it again we may 
756         need to stop processing unix-specific config options on Windows,
757         and may need to add Windows-specific public API or config options.
758         
759         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
760         to reflect added interfaces; should not break soname.
761         
762         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
763         not invoke unix user function on Windows. Kind of a hacky fix, but 
764         we don't want a "unix uid" leaking out on Windows.
765
766         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
767         to get the socket fd on Windows or UNIX
768         (dbus_connection_get_unix_fd): make this always fail on Windows
769
770 2006-09-16  Havoc Pennington  <hp@redhat.com>
771
772         * dbus/dbus-server.c (dbus_server_listen): change how this works
773         to be able to delegate to a set of handlers that can succeed,
774         fail, or choose not to handle. Allows us to have 
775         dbus_server_listen_platform_specific.
776
777         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
778         factor out the tcp socket stuff to be used on windows, leaving
779         unix domain socket only in dbus-socket-unix.c
780
781         * dbus/dbus-transport-socket.c
782         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
783         stuff to be used on windows, leaving unix domain socket only 
784         in dbus-transport-unix.c
785
786         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
787         temporary hack to be sure this fails on windows
788         (dbus_connection_get_unix_process_id): ditto
789
790 2006-09-16  Havoc Pennington  <hp@redhat.com>
791
792         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
793         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
794         _dbus_open_socket so the domain/type/protocol from system headers
795         are not required. This is kind of pointless though unless we move
796         part of _dbus_connect_tcp_socket into sysdeps.c instead of
797         sysdeps-unix.c, which would mean adding a wrapper around
798         bind/listen/etc.
799         Also, add DBusError to the socket-opening functions so they 
800         don't require use of errno.
801
802 2006-09-16  Havoc Pennington  <hp@redhat.com>
803
804         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
805         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
806
807         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
808         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
809         functions specifically for sockets only, and move generic 
810         read/write/open/close into unix-specific code.
811
812 2006-09-14  Havoc Pennington  <hp@redhat.com>
813
814         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
815         complaint about accessing revents when poll returns 0, from Julian Seward.
816
817 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
818
819         * Released 1.0 RC 1 (0.93) 
820
821 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
822
823         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
824         use _dbus_close instead of close
825
826 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
827
828         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
829         credentials.  Fixes "external" authentication under e.g. NetBSD
830         which does not support any other socket credentials mechanism.
831         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
832
833 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
834
835         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
836         dbus_threads_init and be used by the dbus mutex functions to
837         avoid deadlocks.
838
839         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
840
841 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
842
843         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
844         use threadsafe readdir_r instead of readdir
845
846 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
847
848         * dbus-threads.c (dbus_threads_init_default): New method for
849         initializing the internal thread implementation (Patch from
850         Alexander Larsson <alexl at redhat dot com>)
851
852 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
853
854         * remove a bunch of todo items from the 1.0 list
855
856 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
857
858         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
859         key not found
860
861 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
862
863         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
864         complex debugging code
865
866         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
867         between the test suite ifdefs
868         (_dbus_verbose_bytes): return if verbosity is not enabled 
869
870 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
871
872         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
873         remove DBusMark
874
875 2006-09-10  Havoc Pennington  <hp@redhat.com>
876
877        patch mostly by Peter Kümmel, bug #8211
878         
879         * dbus/dbus-sysdeps-unix.c: new file, which splits out
880         unix-specific stuff in dbus-sysdeps.c
881
882         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
883         and move unix-specific stuff to dbus-sysdeps-unix.c
884
885         * configure.in: check HAVE_ERRNO_H
886         
887 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
888
889         * bus/test-main.c (main): Initialize threading during tests
890
891         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
892         Unlock connection on error
893         (generate_local_error_message): static method for generating
894         an error message when we don't have a message to reply to
895         (_dbus_connection_block_pending_call): Send a disconnect error
896         instead of just a timeout (NULL) when the bus gets disconnected
897         while blocking for a reply.
898         
899 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
900
901         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
902         filters (Patch from Kimmo Hämäläinen 
903         <kimmo dot hamalainen at nokia dot com>)
904
905 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
906
907         * dbus/dbus-connection-internal.h: Add prototype for 
908         _dbus_connection_test_get_locks to remove warning
909
910 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
911
912         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
913         close child_err_report_pipe[WRITE_END] on exec (Patch from 
914         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
915
916 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
917
918         * Clean up close calls to use _dbus_close (Patch from 
919         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
920
921 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
922
923         * doc/TODO:
924         - Remove pending call locking todo item
925         - dbus_connection_open now holds hard ref.  Remove todo item
926         - do proper locking on _dbus_bus_check_connection_and_unref
927           and handle DBUS_BUS_STARTER. Remove todo item
928         - Warn on closing of a shared connection.  Remove todo item
929
930         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
931         dbus/dbus-connection.c: Use the dbus_connection_close_internal
932         so we don't get the warning when closing shared connections
933
934         * test/test-service.c, test/test-shell-service.c: Applications
935         don't close shared connections themselves so we unref instead of
936         close
937
938         * test/test-utils.c (test_connection_shutdown): Close the connection
939
940         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
941         _dbus_bus_check_connection_and_unref_unlocked since we only call this
942         method on a locked connection.  
943         Make sure we call _dbus_connection_unref_unlocked instead of 
944         dbus_connection_unref also.
945         Handle DBUS_BUS_STARTER correctly
946
947         * dbus/dbus-connection.c (connection_record_shared_unlocked):
948         Mark as shared and hard ref the connection
949         (connection_forget_shared_unlocked): Remove the hard ref from the 
950         connection
951         (_dbus_connection_close_internal_and_unlock):  New internal function
952         which takes a locked connection and unlocks it after closing it
953         (_dbus_connection_close_internal): New internal function which acts
954         like the origonal dbus_connection_close method by grabbing a connection
955         lock and calling _dbus_connection_close_internal_and_unlock
956         (dbus_connection_close): Public close method, warns when the app
957         trys to close a shared connection
958
959 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
960
961         * bus/driver.c:
962         (bus_driver_generate_introspect_string): New method for populating
963         a DBusString with the introspect data
964         (bus_driver_handle_introspect): Move introspect generation code to 
965         bus_driver_generate_introspect_string
966
967         * bus/main.c:
968         (introspect): New function which prints out the intropect data and
969         exits
970         (main): Add a --introspect switch
971
972 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
973
974         * doc/TODO: Removed dtd publishing item.  
975         It seems the dtd has already been added at
976         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
977
978 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
979
980         * doc/TODO, various source files: Audited todo's and FIXME's and
981         prepended the ones we should be looking at with 1.0.  Those
982         prepended with 1.0? need clerification or might not be needed
983         for 1.0
984
985 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
986
987         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
988         NULL in the public API (Patch from Kimmo Hämäläinen 
989         <kimmo dot hamalainen at nokia dot com>)
990
991 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
992
993         * configure.in: Fix for OS-X compile time endian issues (patch from
994         Benjamin Reed <ranger at befunk dot com>)
995
996 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
997
998         * configure.in: Check for no-common compiler flag (OS-X fix from
999         Benjamin Reed <ranger at befunk dot com>)
1000
1001 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1002
1003         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1004         <fcrozat at mandriva dot com>)
1005
1006 2006-08-29  Havoc Pennington  <hp@redhat.com>
1007
1008         * test/test-service.c (path_message_func): fix lack of return value
1009
1010         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1011         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1012         any more sense than on anything else in this file.
1013         (_dbus_get_tmpdir): add const to return value, and keep the
1014         results of the various getenv around in a static variable.
1015
1016 2006-08-29  Havoc Pennington  <hp@redhat.com>
1017
1018         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1019         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1020
1021 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1022
1023         * test/Makefile.am: change find to use syntax that works with non
1024         gnu versions of find
1025
1026 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1027
1028         * dbus/dbus-transport.c: fix invalid deref when checking if
1029         a vtable method exists (Patch from Christian Ehrlicher 
1030         <ch dot ehrlicher at gmx dot de>)
1031
1032 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1033
1034         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1035         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1036         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1037         <bernard at brenda-arkle dot demon dot co dot uk>)
1038
1039 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1040
1041         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1042         default case
1043
1044 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1045
1046         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1047         it works on any system providing this interface, not only FreeBSD.
1048         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1049
1050 2006-08-20  Havoc Pennington  <hp@redhat.com>
1051
1052         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1053         the docs
1054
1055 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1056
1057         * Released 0.92 
1058
1059 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1060
1061         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1062         to reflect the init late change
1063
1064         * bus/bus.c (bus_context_new): Check user before we fork so we can
1065         print out an error message a user will be able to see
1066
1067 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1068
1069         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1070
1071         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1072         Add two more global locks for use on windows platforms.  These are
1073         unused on non-windows platforms but are not ifdefed out to avoid
1074         potential bugs (i.e. the few bytes lost does not warrent the extra
1075         maintanence and complexity that having seperate sets of locks would
1076         cause)
1077
1078 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1079
1080         * bus/services.c (bus_registry_acquire_service): Return an error
1081         when an application tries to register the org.freedesktop.DBus Bus Name
1082
1083         * bus/services.c (bus_registry_release_service): Return an error
1084         when an application tries to release the org.freedesktop.DBus Bus Name
1085
1086 2006-08-17  Alp Toker  <alp@atoker.com>
1087
1088         * doc/dbus-specification.xml: Fix some minor typos.
1089
1090 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1091
1092         * configure.in: use $with_init_scripts instead of $operating_system
1093         to determine where to store the pid since the init scripts manipulate 
1094         the pid file (patch from Marcelo Ricardo Leitner 
1095         <marcelo dot leitner at terra dot com dot br>.  
1096
1097 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1098
1099         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1100         static DBusList *uninitialized_condvar_list to support new late 
1101         initialization threading model.  In this model threads can be initialized
1102         even after the D-Bus API has been used but still needs to be initialized 
1103         before the second thread has been started.  Mutexes and condvar addresses
1104         are stored in the two static lists and are replaced with actuall locks
1105         when threads are initalized.
1106         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1107         the location into the static list
1108         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1109         from the static list and freeing the mutex
1110         (_dbus_condvar_new_at_location): New method for creating a conditional 
1111         variable and placing the location into the static list
1112         (_dbus_condvar_free_at_location): New method for removing a conditional
1113         variable location from the static list and freeing the conditional variable 
1114         (init_uninitialized_locks): Atomic method which goes through the static 
1115         lists of mutex and condvar location and updates them with actuall locks
1116         (init_global_locks): changed to init_locks
1117         
1118         * dbus/dbus-connection.c:
1119         (_dbus_connection_test_get_locks): New method for tests to check connections
1120         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1121         condvar API
1122         (dbus_connection_allocate_data_slot): Pass in the global lock address
1123         to _dbus_data_slot_allocator_alloc
1124
1125         * dbus/dbus-dataslot.c:
1126         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1127         instead of the mutex itself
1128
1129         * dbus/dbus-message.c:
1130         (dbus_message_allocate_data_slot): Pass in the global lock address
1131         to _dbus_data_slot_allocator_alloc
1132
1133         * dbus/dbus-pending-call.c:
1134         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1135         to _dbus_data_slot_allocator_alloc
1136
1137         * dbus/dbus-server.c:
1138         (_dbus_server_init_base): Use the new at_location mutex API
1139         (dbus_server_allocate_data_slot): Pass in the global lock address
1140         to _dbus_data_slot_allocator_alloc
1141
1142         * test/name-test/test-threads-init.c: New test case for late thread
1143         initialization
1144
1145 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1146
1147         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1148         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1149         causes compile problems when asserts are turned off
1150         Keeping _dbus_warn for printing out the message so even if
1151         asserts are turned off the user gets the messages that something is 
1152         wrong 
1153
1154 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1155
1156         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1157
1158         * bus/services.c (bus_service_list_queued_owners):
1159         Add a pointer cast to fix compiler warning
1160
1161         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1162         return a NULL instead of FALSE since the return type
1163         is not expecting a boolean
1164
1165         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1166         Remove unused variable
1167
1168         * dbus/dbus-marshal-recursive-util.c (node_new):
1169         return a NULL instead of FALSE since the return type
1170         is not expecting a boolean
1171
1172         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1173         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1174         because we are expecting a pointer not a boolean
1175
1176         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1177         add void as the parameter so some compilers
1178         don't complain
1179
1180         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1181           _dbus_transport_new_for_tcp_socket):
1182         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1183         because we are expecting a pointer not a boolean
1184
1185         * test/shell-test.c (test_command_line):
1186         cast the second argument to _dbus_list_append to avoid compiler
1187         warnings
1188
1189         * test/test-names.c (main): remove unused variable
1190
1191         * test/test-service.c (check_hello_from_self_reply):
1192         Initialize echo_message and echo_reply to NULL
1193         
1194         * test/test-shell-service.c (handle_echo):
1195         Remove unused variable and cast the third parameter passed to
1196         dbus_connection_get_object_path_data to avoid compiler warrnings
1197
1198         * test/name-test/test-names.c (clear_message_queue):
1199         Remove unused function
1200
1201         * test/name-test/test-pending-call-dispatch.c:
1202         Fix format string in printf
1203
1204
1205 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1206
1207         * dbus/dbus-bus.c:
1208         * test/name-test/test-names.c:
1209         Remove test method dbus_bus_connection_get_unique_name because 
1210         we already have public method dbus_bus_get_unique_name that 
1211         does the exact same thing
1212
1213 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1214
1215         * dbus/dbus-signature.c:
1216         fix typos in Julio's previous patch which cause make check to fail
1217
1218 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1219
1220         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1221         In any case it was wrong since this is a test checking to see if
1222         address parsing is correct.  There was no need to get the true
1223         tmp directory.  
1224
1225 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1226
1227         * dbus/dbus-macros.h: Revert the addition of stddef.h
1228         as we should not be adding it to library headers 
1229
1230 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1231
1232         * dbus/dbus-signature.c:
1233         Fix the unit tests so that they work if assertions are not enabled.
1234         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1235
1236 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1237
1238         * tools/run-with-tmp-session-bus.sh:
1239         * test/name-test/run-test.sh:
1240         Remove bashisms (patch from Julio M. Merino Vidal
1241         <jmmv at NetBSD dot org>)
1242
1243 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1244
1245         * configure.in: add a version (>= 2.6.0) check for libxml2
1246
1247 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1248
1249         * configure.in: make sure the compiler supports -Wfloat-equal
1250         
1251         * bus/dir-watch-dnotify.c: move functional code after 
1252         variable declerations (C99 fix)  (patches from Jens Granseuer
1253         <jensgr at gmx dot net>
1254
1255 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1256
1257         * dbus/dbus-macros.h:
1258         add #include <stddef.h> so that Sun compilers don't complain about
1259         the defining NULL
1260
1261 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1262
1263         * dbus/dbus-sysdeps.c:
1264         * dbus/dbus-address.c:
1265         * bus/activation.c:
1266         * test/shell-test.c:
1267         don't hardcode tmp directory (patch from Dave Meikle 
1268         <dmk at davemeikle dot co dot uk>)
1269
1270 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1271
1272         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1273         Change an assert to a detailed warning and abort.  
1274         When allocator->lock != mutex it indicates that the user has failed
1275         to initalize threads before using the D-Bus library.  This warning
1276         helps the user identify the issue and fix their app.
1277
1278 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1279
1280         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1281         with cleanups of bugs found from Coverity reports:
1282
1283         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1284         close the file on error to avoid a leak
1285
1286         * bus/expirelist.c (bus_expire_list_test):
1287         Check for NULL on dbus_new0
1288
1289         * bus/activation.c (update_directory):
1290         remove dead code
1291
1292         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1293         Fix some leaks
1294
1295         * bus/bus.c (process_config_every_time):
1296         Fixed a leak
1297
1298         * bus/desktop-file.c (parse_key_value):
1299         Fixed leak
1300
1301         * bus/selinux.c (bus_selinux_id_table_insert):
1302         Fixed leak
1303
1304 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1305
1306         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1307         remove dead code
1308
1309 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1310
1311         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1312         #!/bin/bash
1313
1314 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1315
1316         * Doxyfile.in: fix the INPUT line so we can generate docs 
1317         when sourcedir != builddir (patch from Cygwin Ports maintainer
1318         <yselkowitz at users dot sourceforge dot net>
1319
1320 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1321
1322         * dbus/dbus-sysdeps.h:
1323         * dbus/dbus-sysdeps.c: 
1324         * dbus/dbus-string.c: 
1325         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1326         GLib's function which does the same thing
1327
1328         * configure.in:
1329         * bus/Makefile.am:
1330         * bus/dir-watch-default.c:
1331         * bus/dir-watch-dnotify.c:
1332         * bus/dir-watch-kqueue.c:
1333         Add kqueue directory watching for freebsd and split the directory
1334         watching code into seperate files per method/arch
1335         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1336
1337 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1338
1339         * configure.in:
1340         * tools/Makefile.am:
1341         * tools/dbus-launch.c:
1342         * bus/Makefile.am:
1343         allow --with-dbus-daemondir switch to be used to make the
1344         daemon install to a seperate bindir like /usr/libexec
1345         (patch from Brian Cameron <brian dot cameron at sun dot com)
1346
1347 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1348
1349         * bus/Makefile.am (install-data-hook): removed the slash after 
1350         $(DESTDIR) so we don't get the double slash which does not work
1351         in windows (patch from Andras Porjesz 
1352         <andras dot porjesz at siemens dot com>)
1353
1354 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1355
1356         * dbus/dbus-sysdeps.h:
1357         * dbus/dbus-sysdeps.c: 
1358           add _dbus_printf_length (patch from Peter Kümmel 
1359           <syntheticpp at gmx dot net>)
1360
1361 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1362
1363         * dbus/dbus-internals.c: unistd.h is not used 
1364         (_dbus_verbose_real): only enable verbose printing 
1365         if DBUS_VERBOSE environment var is set to '1'
1366         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1367
1368 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1369
1370         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1371         so we still compile on older gcc (patch from Frederic Peters 
1372         <fpeters at 0d dot be>
1373
1374 2006-08-04  Havoc Pennington  <hp@redhat.com>
1375
1376         * configure.in: add -Wdeclaration-after-statement
1377
1378         * dbus/dbus-connection.c: change all the pending call stuff to
1379         reflect the fact that pending call operations use the connection
1380         lock
1381
1382         * dbus/dbus-pending-call.c: add locking here
1383
1384         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1385         field const consistent with how message field is done
1386
1387 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1388
1389         * s/D-BUS/D-Bus/g
1390
1391 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1392
1393         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1394         <in7y118 at public.uni-hamburg dot de> - fix invalid
1395         read/write reported by valgrind
1396
1397 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1398
1399         * Released 0.91
1400
1401 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1402
1403         * dbus/dbus-connection.c:
1404         (_dbus_connection_attach_pending_call_unlocked):
1405         (connection_timeout_and_complete_all_pending_calls_unlocked):
1406         Make sure we set timeout_added on pending calls to FALSE when
1407         we remove the timeout from the connection
1408
1409 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1410
1411         * Removed some extra bindings stuff lingering around (thanks timo)
1412         * dbus-pendingcall.c (_dbus_pending_call_new): 
1413         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1414         when we tried to take a lock on an already locked connection
1415
1416 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1417
1418         * Released 0.90
1419
1420 2006-07-17  Havoc Pennington  <hp@redhat.com>
1421
1422         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1423         ints, reported by Owen Taylor
1424
1425 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1426
1427         * doc/TODO:
1428         * dbus/dbus-bus.c:
1429         * dbus-errors.c:
1430         * dbus/dbus-marshal-validate.c:
1431           Removed TODO items which were fixed or are no longer relevent
1432
1433 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1436         Remove stray files from the stripped bindings
1437
1438 2006-07-16  Havoc Pennington  <hp@redhat.com>
1439
1440         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1441         Improve the error message on reply timeout
1442
1443 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1444
1445         * Remove all bindings
1446
1447 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1448
1449         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1450         and set pending_reply out arg to NULL is connection is disconnected
1451         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1452         static method for cleaning up pending calls on disconnect
1453         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1454         calls queued timeouts on disconnect 
1455
1456          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1457         Remove 
1458
1459 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1460
1461         * bus/activation.[ch] (bus_activation_list_services): new function to 
1462         get the list of services that can be activated
1463
1464         * bus/dispatch.c: test coverage for the new bus method
1465         ListActivatableNames
1466
1467         * bus/driver.c: new bus method ListActivatableNames to get the list of
1468         services that can be activated
1469
1470         * doc/dbus-specification.xml: ListActivatableNames method documentation
1471
1472 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1473         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1474         source files
1475
1476 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1477         * dbus/dbus-message-factory.c:
1478         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1479
1480 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1481         * dbus/dbus-connection-internal.h:
1482         * dbus/dbus-connection.c:
1483         * file dbus/dbus-pending-call.c:
1484         * dbus/dbus-pending-call.h:
1485         Make DBusPendingCall an opaque type even to D-Bus internals
1486
1487 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1488
1489         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1490         connection_close
1491
1492         * dbus/dbus-connection.c: include dbus-bus.h
1493         (_dbus_connection_read_write_dispatch): make static
1494
1495 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1496
1497         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1498         function
1499         (dbus_connection_dispatch): On disconnect unref any shared connections
1500
1501         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1502         for cleaning up shared connections on disconnect
1503         (internal_bus_get): get a hard refrence to shared connections when
1504         they are created
1505         
1506         * doc/TODO: Remove items which are no longer relevent or have been fixed
1507         Split 1.0 todo items with a 0.90 freeze todo list
1508  
1509 2006-06-14  Ross Burton  <ross@openedhand.com>
1510
1511         * glib/dbus-gobject.c:
1512         Free a leaking GArray (surely not!) in dbus_g_method_return.
1513
1514 2006-06-14  Ross Burton  <ross@openedhand.com>
1515
1516         * tools/Makefile.am:
1517         * tools/dbus-monitor.c:
1518         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1519         Habacker).
1520         
1521 2006-06-14  Ross Burton  <ross@openedhand.com>
1522
1523         * tools/dbus-print-message.c:
1524         Also print the object path when outputting signals or method calls.
1525
1526 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1527
1528         * qt/src/Makefile.am: install the qdbus.h header.
1529         This allows people to actually use the installed code.
1530
1531 2006-06-12  Ross Burton  <ross@openedhand.com>
1532
1533         * glib/dbus-gproxy.c:
1534         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1535
1536 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1537
1538         * Released 0.62
1539
1540 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1541
1542         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1543         break pedantic builds. Closes bug 6043 (patch approved by
1544         Havoc back in February).
1545
1546 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1547
1548         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1549         that took a QDBusMessage parameter.
1550         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1551         * qt/tools/dbus.cpp: Don't use automatic call because we might
1552         be calling an async method: request a reply.
1553
1554 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1555
1556         * test/qt/*: Update the testcases, including testing the new
1557         functionality of sending null QByteArray and QString over the
1558         bus. Add new headertest test and restore the old
1559         qdbusxmlparser test.
1560
1561 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1562
1563         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1564         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1565
1566         * qt/examples/Makefile.am:
1567         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1568         form.
1569
1570         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1571         QByteArray() (nulls) over the bus.
1572         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1573         the one that has the signature suffix stripped.
1574         * qt/src/qdbusreply.h: Make some methods const.
1575
1576 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1577
1578         Patch from Timo Hoenig <thoenig@suse.de>.
1579
1580         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1581         required during build to EXTRA_DIST.
1582         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1583         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1584         * configure.in: Fix "make dist", take care that the Makefile for
1585         qt/dbus is being generated.
1586
1587 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1588
1589         * bus/bus.c: Fix eavesdropping on method calls
1590
1591 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1592
1593         * configure.in:
1594         * dbus/dbus-userdb-util.c:
1595         Add Solaris console owner patch from Artem Kachitchkine
1596
1597 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1598
1599         * qt/Makfile.am:
1600         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1601         reorganisation. Thanks to Timo Hoenig for pointing this out.
1602
1603 2006-06-06  Robert McQueen  <robot101@debian.org>
1604
1605         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1606           call to dbus_g_type_get_struct.
1607
1608 2006-06-06  Robert McQueen  <robot101@debian.org>
1609
1610         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1611           pointers were put into a GPtrArray-based specialised collection, and
1612           then freed along with the array. GValues which you add into
1613           collections or maps which have the NOCOPY flag set are assumed to not
1614           belong to the caller, so rather than the existing pointer-stealing
1615           semantics, they are copied instead. Given that the main consumers of
1616           this abstraction are the bindings themselves, I don't think this is
1617           too bad, but others should watch their choice of take vs set_static.
1618
1619 2006-06-06  Robert McQueen  <robot101@debian.org>
1620
1621         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1622           of g_slist_prepend not being used. Fixed copying of slist-based
1623           specialised collections, then wrote a test case and found that it was
1624           all broken. Went on to fix iterating and appending too. Good thing
1625           nobody uses this code yet.
1626
1627 2006-06-06  Robert McQueen  <robot101@debian.org>
1628
1629         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1630           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1631           are discarded without unsetting, so it makes no difference whether
1632           we take or set_static). Remove cases for G_TYPE_POINTER because
1633           there really is nothing useful we can do with them in our
1634           specialised types - we *need* boxed copy/free functions at the very
1635           least.
1636
1637 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1638
1639         * qt/dbus: Add directory. I had forgotten to add this
1640         yesterday after the move...
1641
1642         * qt/examples/Makefile.am:
1643         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1644
1645         * qt/tools/Makefile.am:
1646         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1647         Added feature to get and set properties.
1648         Added validation of service, object path and interface names.
1649
1650         * qt/tools/dbusidl2cpp.cpp: Two new features:
1651         1) Allow specifying both the header and the source file names,
1652         by separating them with a colon.
1653         2) Don't write an interface output if the -p switch wasn't
1654         given, but the -a was.
1655
1656         * qt/src/*: Fix usage of Iterators and ConstIterators.
1657         Fix shadowing of variables by other variables (-Wshadow).
1658         Fix keyword-cleanliness in headers.
1659         Fix ASCII-cast (QLatin1String, QLatin1Char).
1660         Fix validation of member names.
1661         Add extra checking of introspection data during XML parsing.
1662         Various bug fixes.
1663
1664 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1665
1666         * dbus/Makefile.am:
1667         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1668         qt/dbus/qdbus.h now.
1669
1670 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1671
1672         * configure.in: Make --disable-qt actually do
1673           something. Patch inspired by Zack Rusin.
1674
1675 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1676
1677         * qt/: Update to Subversion r548032.
1678         This includes a big reorganisation of the files inside the
1679         subdir.
1680
1681 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1682
1683         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1684         clear:  
1685         "Failed to connect to socket <host>:<port> <error>" instead of
1686         "Failed to connect to socket <host>: <error>:<port>"
1687
1688         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1689         for a tcp transport. 
1690
1691 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1692
1693         * qt/*: Update the QtDBus bindings up to revision 546310 in
1694         Subversion.
1695         This adds the dbuscpp2xml tool, that parses a C++ header and
1696         outputs a D-BUS Introspection XML.
1697
1698 2006-05-21  Havoc Pennington  <hp@redhat.com>
1699
1700         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1701         is not NULL when it shouldn't be. Also a couple of possible fixes
1702         for #4637 though I don't understand why the bug happens, to be
1703         honest... also the object constructor has an assert name != NULL
1704         and the name is only currently NULL for peer-to-peer proxies that 
1705         I don't think anyone uses? So it should be asserting.
1706         Anyway, for now at least see if we get an earlier assertion failure.
1707
1708         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1709         apparently broken code to be sure the tests fail and someone 
1710         will fix them...
1711
1712 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1713
1714         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1715         and arrays when they had a single element: has_next returns
1716         false, even before you read the element. So, instead, check
1717         the array length.
1718
1719 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1720
1721         * qt/qdbusmessage.cpp:
1722         * qt/qdbustypehelper_p.h:
1723         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1724         the list is a const-reference
1725
1726 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1727
1728         * Adding old doc patch that never got applied
1729         
1730         * dbus/bus.c (dbus_bus_add_match): Add documentation
1731
1732         * doc/dbus-specification.xml: Add documentation for the match rules
1733           and the AddMatch and RemoveMatch methods
1734
1735 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1736
1737         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1738         call (r535506)
1739
1740         * qt/dbusidl2cpp.cpp:
1741         * qt/qdbusabstractadaptor.cpp:
1742         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1743         sibling of the QDBusAbstractAdaptor objects instead of the
1744         parent. (r535848)
1745
1746         * qt/dbusidl2cpp.cpp:
1747         * qt/qdbusabstractinterface.cpp:
1748         * qt/qdbusabstractinterface.h:
1749         * qt/qdbusabstractinterface_p.h:
1750         * qt/qdbusinterface.cpp: Make properties in interfaces
1751         actually work. The code that was generated would not compile,
1752         due to moc calls to functions that did not exist. They now
1753         shall. (r536571)
1754
1755 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1756
1757         * Makefile.am:
1758         * configure.in:
1759         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1760         Thanks to Brad Hards for providing the patch
1761
1762 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1763
1764         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1765         call. (r535506)
1766
1767 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1768
1769         * qt/examples/dbus.cpp: Enhance error messages and use
1770         QDBusInterfacePtr.
1771
1772 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1773
1774         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1775         and disable the copy operators. (r533772, r534746)
1776
1777         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1778
1779         * qt/qdbusabstractinterface.cpp:
1780         * qt/qdbusabstractinterface.h: Change the default call mode to
1781         not use the event loop. Add convenience call() methods that
1782         take a CallMode parameter. (r534042)
1783
1784         * qt/qdbusconnection.h: Change the default call mode to not
1785         use the event loop. (r534042)
1786
1787         * qt/qdbusinterface.cpp:
1788         * qt/qdbusinterface.h: Add a method to tell us if the
1789         interface is valid (since we don't return a null pointer
1790         anymore) (r534099)
1791
1792         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1793         (r534101)
1794
1795         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1796         function in two so taht we get the chance to introspect
1797         without having a QDBusMessage (r534102)
1798
1799         * qt/qdbusbus.h:
1800         * qt/qdbusconnection.cpp:
1801         * qt/qdbusconnection_p.h:
1802         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1803         avoid a round-trip to the server when attempting to introspect
1804         one of our own objects. Also make sure the filter functions
1805         match the empty interface as well. (r534108)
1806         Don't keep the connection names. Instead, trust the unique
1807         connection name (r534111)
1808         Remove event loop usage (r534112)
1809
1810 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1811
1812         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1813         Brad Hards.
1814
1815 2006-04-28  Robert McQueen  <robot101@debian.org>
1816
1817         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1818         any order, making it easier for people who inherit from this
1819         object.
1820
1821 2006-04-28  Robert McQueen  <robot101@debian.org>
1822
1823         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1824         of memory from within pointer arrays and lists. Fixes bug #6300.
1825
1826 2006-04-28  Robert McQueen  <robot101@debian.org>
1827
1828         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1829         generating struct signatures. Fixes bug #6083.
1830
1831 2006-04-28  Robert McQueen  <robot101@debian.org>
1832
1833         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1834         to qdbusconnection_p.moc.
1835
1836 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1837
1838         * README, INSTALL: Doc fixes
1839         Patch from Brad Hards <bradh at frogmouth.net>
1840
1841 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1842
1843         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1844         the dynamic meta object. No need to guess which interface to
1845         call.
1846
1847 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1848
1849         * qt/qdbusconnection_p.h:
1850         * qt/qdbusmetaobject.cpp:
1851         * qt/qdbusmetaobject_p.h:
1852         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1853         for the dynamic meta object. No need to guess which
1854         interface to call.
1855         * qt/qdbusabstractinterface_p.h:
1856         * qt/qdbusconnection.cpp:
1857         * qt/qdbusintegrator.cpp:
1858         * qt/qdbusinterface.cpp:
1859         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1860         Add a QDBusRef that looks and behaves like DCOPRef.
1861
1862 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1863
1864         * dbus/dbus-connection.c: Interfaces are optional in method
1865         calls, so don't give up if the interface parameter is NULL.
1866         Patch reviewed by Havoc Pennington.
1867
1868 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1869
1870         * qt/qdbusreply.h: Add default constructor and operator=
1871           (r532625)
1872         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1873           in public headers (r532952)
1874         * qt/qdbusabstractinterface.cpp:
1875         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1876           make it the default (r532951)
1877
1878 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1879
1880         * dbus/dbus-connection.c: Fix asserts
1881         Patch from Tim Moloney <t.moloney at verizon.net>
1882
1883 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1884
1885         * mono/Connection.cs, mono/Message.cs: Check Target type
1886         Patch from Aaron Bockover (abockover at novell.com)
1887
1888 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1889
1890         * INSTALL: fine-tune the requirements for the Qt4 binding.
1891
1892 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1893
1894         * tools/dbus-print-message.c: Added support for printing of all 
1895           remaining data types. Fixed logic for indentation of compound
1896           data types.
1897         
1898 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1899
1900         * INSTALL: fill out content of file providing DBus specific
1901           build installations, followed by generic Auto* INSTALL file
1902           content
1903         
1904 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1905
1906         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1907           Patch by Stefan Eilers. (r529537)
1908
1909 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1910
1911         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1912           contents (r528208)
1913
1914 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1915
1916         * qt/Makefile.am: fix the dependency for
1917           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1918           not in qdbusconnection.cpp.
1919           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1920           spotting this.
1921
1922 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1923
1924         * qt/examples/listnames.cpp:
1925         * qt/examples/Makefile.am: Three ways to list the names on the
1926           bus.
1927
1928 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1929
1930         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1931           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1932
1933 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1934
1935         Merge from Subversion:
1936         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1937           something that exists (r526315)
1938         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1939           slots/signals (r526316)
1940         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1941           also return an unknown-method error if the parameters don't
1942           match for org.freedesktop.DBus.Properties. (r526842)
1943         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1944         * qt/qdbusintegrator.cpp: Restore the proper order of
1945           delivery: don't make method returns be delivered on priority
1946           (r528150)
1947
1948 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1949
1950         * configure.in qt/Makefile.am: add qt/examples
1951         * qt/examples: Add QtDBus example programs:
1952           - hello: Hello, World
1953           - ping: Simple method-calling program
1954           - pong: Simple object-exporting program (not using adaptors)
1955           - complexping: Interactive method-calling program 
1956                 (also gets and sets properties).
1957           - complexpong: Sample program exporting methods, signals and
1958                 properties, using adaptors.
1959           - dbus: Simple implementation of a generic method-calling
1960                 program, similar to 'dbus-send', but with semantics
1961                 similar to 'dcop'.
1962           - chat: Simplistic chat program, implemented using signals
1963                 and the system bus. Looks like IRC.
1964
1965 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1966
1967         * configure.in: Detect QtGui (necessary for one of the
1968           example programs). Note: this increases the minimum required
1969           version of Qt to 4.1.3.
1970
1971 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1972
1973         * test/qt/*: Sync with KDE Subversion revision 523647.
1974         Update the testcases to the new API. Remove testcases for
1975         classes that are no longer public or have been removed.
1976
1977 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1978
1979         * qt/*: 
1980         * dbus/qdbus.h: Sync with KDE Subversion revision
1981         523647. Hopefully, this will be the last of the
1982         source-incompatible changes. Documentation has been improved;
1983         support for QList<basic-types> has been added; QDBusObject is
1984         gone; QDBus(Abstract)Interface is now a QObject with
1985         auto-generated meta-object; QDBusIntrospection is marked
1986         private, since QMetaObject can be used now; lots of bugfixes.
1987
1988 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
1989
1990         Patch from Milosz Derezynski <internalerror at gmail.com>
1991         
1992         * configure.in:
1993         Output the service directory in the configure summary
1994
1995         * dbus-1.pc.in:
1996         Add session_bus_services_dir
1997
1998 2006-03-10  Ross Burton  <ross@openedhand.com>
1999
2000         * tools/dbus-print-message.c:
2001         Add support for object paths and signatures.
2002
2003 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2004
2005         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2006         config reload.
2007         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2008         information caches
2009         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2010         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2011         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2012         * dbus/dbus-userdb.h: Add function to flush all user/group information
2013         caches.
2014
2015 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2016
2017         * qt/dbusidl2cpp.cpp:
2018         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2019         for dcopidl2cpp, found in the KDE installations (or the more
2020         modern kalyptus): generate Qt4 C++ code for the input XML
2021         introspection. Currently no IDL parsing.
2022
2023 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2024
2025         * test/qt/*: Update the self-tests.
2026
2027 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2028
2029         * qt/*: 
2030         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2031         represents the first feature-complete version of the Qt4
2032         bindings since I took ove maintainership.
2033
2034 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2035
2036         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2037         dir. This is C++, so we can't use the DBus ones.
2038
2039 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2040
2041         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2042         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2043
2044 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2045
2046         * dbus/dbus-connection.c: 
2047         (_dbus_connection_block_pending_call):
2048         Check to see if our data has already been read off the connection
2049         by another blocking pending call before we block in poll.
2050         (check_for_reply_and_update_dispatch_unlocked):
2051         Code taken from _dbus_connection_block_pending_call - checks for
2052         an already read reply and updates the dispatch if there is one.
2053
2054         * test/name-test/test-pending-call-dispatch.c:
2055         New test for making sure we don't get stuck polling a 
2056         dbus connection which has no data on the socket when
2057         blocking out of order on two or more pending calls.
2058
2059 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2060
2061         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2062         make/automake don't detect that we're talking about the same
2063         .lo file if I specify the full path to the source files.
2064
2065 2006-02-26  Havoc Pennington  <hp@redhat.com>
2066
2067         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2068
2069         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2070         session bus variable is unset, suggest "man dbus-launch" and "man
2071         dbus-daemon" to figure out how to fix the problem
2072
2073 2006-02-25  Havoc Pennington  <hp@redhat.com>
2074
2075         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2076         should make this thing use the new glib options parser
2077
2078 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2079
2080         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2081         .lo files taking moc sources.
2082
2083 2006-02-25  Havoc Pennington  <hp@redhat.com>
2084
2085         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2086         and install it as a public header
2087
2088 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2089
2090         * Released 0.61
2091
2092 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2093         
2094         * proxies.py: Fix the callchain
2095
2096 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2097         
2098         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2099
2100         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2101         dbus/dbus-sysdeps.c
2102
2103         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2104         call _dbus_group_info_free_allocated which causes infinite loop,
2105         correctly call _dbus_group_info_free
2106
2107 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2108
2109         * qt/qdbusinterface_p.h:
2110         * qt/qdbusinterface.cpp: Use the standard
2111         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2112         calls instead of creating one for us.
2113
2114         * qt/qdbusconnection_p.h:
2115         * qt/qdbusintegrator.cpp: Remove debugging code.
2116
2117         * qt/qdbusintegrator.cpp:
2118         * qt/qdbusmessage.cpp:
2119         * qt/qdbusmessage_p.h:
2120         * qt/qdbusmessage.h: Change the behaviour of automatic
2121         reply-sending: now a reply is always sent, unless the caller
2122         didn't request one or if the user slot has already sent one.
2123
2124 2006-02-16  Robert McQueen  <robot101@debian.org>
2125
2126         * configure.in: Patch from Debian packages by Sjoerd Simons
2127         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2128         arguments so it's possible to build both bindings in the
2129         same tree.
2130
2131         * qt/Makefile.am: Fix truncated value so that make dist works.
2132
2133 2006-02-16  Robert McQueen  <robot101@debian.org>
2134
2135         * acinclude.m4, configure.in: Patch from Brad Hards
2136         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2137         improving quoting, re-ordering a few checks, and a few other
2138         aesthetic tidy-ups.
2139
2140 2006-02-16  Robert McQueen  <robot101@debian.org>
2141
2142         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2143         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2144         assertion that the next element to read from the iter is fixed in
2145         size. This is not the case when you are at the end of the iter,
2146         because the next element type is INVALID.
2147
2148         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2149         a bogus assert which means that you may not initialise a 0-length
2150         string unless you provide a non-NULL pointer. This prevented
2151         you from marshalling messages containing zero-length arrays in
2152         some cases.
2153
2154         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2155         from Rob to correct bogus asserts when trying to demarshal an
2156         array and get_fixed_array got you 0 elements. Append nothing to
2157         the GArray in this case.
2158
2159         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2160         an empty array via the glib bindings. Without all of the above
2161         patches, this new test fails.
2162
2163 2006-02-16  Robert McQueen  <robot101@debian.org>
2164
2165         * glib/dbus-gmain.c: Make the previous commit compile.
2166
2167         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2168         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2169         specify sender_keyword="foo", path_keyword="bar" when adding
2170         a signal listener, so that you can bind to signals generically
2171         but still do something useful in your callback.
2172
2173         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2174         chars so that they're not cast to chars and made negative. Thanks
2175         to Jakub Stachowski for reporting this and testing the fix.
2176
2177 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2178
2179         * dbus/dbus-glib.h:
2180         * glib/dbus-gmain.h:
2181         (dbus_g_connection_open): new method for openning
2182         a connection to an arbitrary address in the glib bindings
2183
2184         * ChangeLog: checkin last entry which doesn't seem to be commited
2185
2186 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2187
2188         * tools/dbus-launch.c: Fixed sh syntax output
2189
2190 2006-02-13  Robert McQueen  <robot101@debian.org>
2191
2192         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2193         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2194         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2195         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2196         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2197         missing piece of the glib bindings jigsaw puzzle. This modifies
2198         the existing specialised types to have N type parameters (rather
2199         than the current 1 or 2 for arrays and dictionaries respectively).
2200         You can then use this to get a glib type to represent any arbitrary
2201         D-Bus struct type using dbus_g_type_get_struct. The only
2202         implementation of these types is with GValueArrays as before,
2203         but it's now possible to store these in arrays, emit them in
2204         signals, etc.
2205
2206 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2207
2208         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2209         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2210         <thiago.macieira at trolltech.com>
2211
2212 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2213
2214         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2215         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2216
2217 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2218
2219         * bus/connection.c (bus_connections_expect_reply): Make
2220         pending reply limit not common to all connections (Bug #5416)
2221         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2222
2223 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2224
2225         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2226
2227 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2228
2229         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2230         patch from Doug Goldstein <cardoe at gentoo.org>
2231
2232 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2233
2234         * mono/Arguments.cs: Fix a magic number in the mono bindings
2235         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2236
2237 2006-01-27  Robert McQueen  <robot101@debian.org>
2238
2239         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2240         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2241         when generating the client-side methods, instead of overloading
2242         CSymbol which broke everything horribly. My apologies.
2243
2244 2006-01-27  Robert McQueen  <robot101@debian.org>
2245
2246         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2247         by me and Rob Taylor to add a simple_free function to D-Bus map
2248         and collection types, which allows those types which can be freed
2249         with a GDestroyNotify (such as GHashTables and GArrays, but not
2250         GPtrArrays) to be stored as the values in hashtables.
2251
2252         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2253         Patch by Rob Taylor to add nested dicts to the glib tests to check
2254         the above code works, and appears not to leak when called repeatedly.
2255
2256 2006-01-27  Robert McQueen  <robot101@debian.org>
2257
2258         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2259         to free a D-Bus allocated string with dbus_free () instead of
2260         g_free ().
2261
2262 2006-01-27  Iain Holmes  <iain@openedhand.com>
2263
2264         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2265         method from being called multiple times.
2266
2267 2006-01-19  Robert McQueen  <robot101@debian.org>
2268
2269         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2270         <rob.taylor@collabora.co.uk> to add support for generating bindings
2271         to arrays that are represented as GPtrArrays rather than GArrays (ie
2272         size-variable things, such as strings, objects, structs, etc).
2273
2274 2006-01-05  Robert McQueen  <robot101@debian.org>
2275
2276         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2277         <ricardo.kekki@movial.fi> to make it possible to inherit from
2278         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2279         a private part, and moving the setting of the DBusGProxyManager into a
2280         connection property, allowing proper GObject construction.
2281
2282 2006-01-05  Robert McQueen  <robot101@debian.org>
2283
2284         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2285         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2286         annotations when generating glib client bindings.
2287
2288 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2289
2290         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2291
2292         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2293
2294 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2295
2296         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2297
2298 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2299
2300         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2301
2302 2005-12-19  Ross Burton  <ross@openedhand.com>
2303
2304         * doc/dbus-tutorial.xml:
2305         Document the Glib client-side bindings, and list all possible annotations.
2306
2307 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2308
2309         * dbus/bus.c (dbus_bus_release_name): Add documentation
2310
2311 2005-12-06  Robert McQueen  <robot101@debian.org>
2312
2313         * python/service.py: s/sucessful/successful/ so we're allocating to
2314         and reading from the same variable. Oops.
2315
2316 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2317
2318         * Released 0.60
2319
2320 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2321
2322         * test/qt/Makefile.am: build from srcdir
2323
2324         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2325         Note - this code is wrong and needs to be fixed by the Qt binding
2326         developers.  The flags should be treated as bitfields and not enums.
2327
2328         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2329
2330 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2331
2332         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2333           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2334           in production code
2335
2336 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2337
2338         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2339         method for getting messages off the bus in the absence of a
2340         mainloop.  This method is much like 
2341         dbus_connection_read_write_dispatch except it does not dispatch
2342         the messages to a registered filter function.  Instead it
2343         allows a developer to process messages by directly popping
2344         them off the bus.
2345
2346 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2347
2348         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2349         the parser to continue instead of returning error
2350         (bus_desktop_file_load): Do not free parser data when
2351         parse_section_start or parse_key_value fails because it was 
2352         already freed by parser_free (patch from Carlos Garcia Campos  
2353         <carlosgc at gnome.org>)
2354
2355 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2356
2357         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2358         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2359         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2360         test/test-segfault.c, test/test-utils.c,
2361         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2362         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2363         Various cleanup of dead code and compiler warnings (patch from
2364         Kjartan Maraas <kmaraas at gnome.org>) 
2365
2366 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2367
2368         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2369         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2370
2371 2005-11-27  Robert McQueen  <robot101@debian.org>
2372
2373         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2374         part of the preceding one. Oops. Merge patch by Johan Hedberg
2375         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2376         on big-endian platforms.
2377
2378         * test/python/test-client.py: Add some 16-bit integers to the test
2379         values.
2380
2381 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2382
2383         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2384         method return message for property getters
2385
2386 2005-11-27  Robert McQueen  <robot101@debian.org>
2387
2388         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2389         with type v of an instance of dbus.Variant(foo, type='x') caused
2390         it to be boxed twice before sending over the bus.
2391
2392         * python/dbus_bindings.pyx, python/service.py,
2393         test/python/test-client.py: Update the constants for the new
2394         request_name flags, and update comments/test cases now that queueing
2395         is the default action.
2396
2397 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2398
2399         * configure.in:
2400         - Change version to 0.60 for impending release
2401         - upped the sonames because of ABI and API breakage
2402
2403 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2404
2405         * configure.in: Add test/name-test/Makefile to the generated
2406         Makefile list
2407
2408         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2409         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2410         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2411         not to queue an ower if it can't be the primary owner
2412
2413         * bus/bus.h: Add new internal BusOwner struct
2414
2415         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2416         to bus_registry_ensure and don't set the prohibit_replacement flag
2417         since they are now set per BusOwner and not per name.
2418         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2419         that returns the list of connections in a name's connection queue
2420         
2421         * bus/services.c (struct BusService): remove prohibit_replacement field
2422         (struct BusOwner): new struct for keeping track of queued connections
2423         and their associated flags for the queue
2424         (struct BusRegistry): add a BusOwner memory pool
2425         (bus_registry_new): initialize the BusOwner memory pool
2426         (bus_registry_unref): free the BusOwner memory pool
2427         (_bus_service_find_owner_link): new internal method for
2428         searching the queue for a specific connection
2429         (bus_owner_set_flags): new method for adding setting the flags on a
2430         bus owner
2431         (bus_owner_new): new method that creates a BusOwner object from the
2432         pool and sets its flags
2433         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2434         (bus_registry_ensure): Add the flags parameter
2435         (bus_registry_acquire_service): Switch from using raw connections to
2436         using the BusOwner struct
2437         Add new state machine for dealing with the new set of flags
2438         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2439         cancel_ownership, free_ownership_cancel_data, 
2440         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2441         restore_ownership, free_ownership_restore_data, 
2442         add_restore_ownership_to_transaction): Switch to using BusOwner 
2443         instead of raw connections
2444         (bus_service_add_owner): Add flags parameter
2445         Switch to using BusOwner instead of raw connections
2446         Add state machine for dealing with the new set of flags
2447         (bus_service_swap_owner): Swaps the first and second owners in the
2448         queue.  Used to make sure proper signals are sent when a service looses 
2449         or gains primary ownership.  We never insert an owner at the top of the
2450         queue.  Instead we insert it in the second position and then swap.
2451         (bus_service_remove_owner): Remove the owner from the queue sending
2452         out the NameLost and NameOwnerChanged signals if the we were the 
2453         primary owner
2454         (bus_service_get_primary_owners_connection): New method that extracts
2455         the connection from the primary owner
2456         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2457         connection
2458         (bus_service_get_allow_replacement): Changed from the old 
2459         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2460         primary owner and returns if it can be replaced or not
2461         (bus_service_set_prohibit_replacement): removed
2462         (bus_service_has_owner): returns TRUE if and owner with
2463         the specified connection exists in the queue
2464         
2465         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2466         method that only compiles if tests are enabled.  Allows us to get the 
2467         unique name of a connection so we can check it against the queue when
2468         doing regression tests
2469
2470         * bus/activation.c (bus_activation_send_pending_auto_activate),
2471         bus/dispatch.c (bus_dispatch),  
2472         bus/driver.c (bus_driver_handle_get_service_owner, 
2473         bus_driver_handle_get_connection_unix_user, 
2474         bus_driver_handle_get_connection_unix_process_id,
2475         bus_driver_handle_get_connection_selinux_security_context),
2476         bus/signals.c (connection_is_primary_owner): 
2477         use bus_service_get_primary_owners_connection instead of
2478         bus_service_get_primary_owner
2479
2480         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2481         _dbus_listen_unix_socket): Calculate the length of the socket
2482         path and use that instead of using a fixed length which was
2483         causing socket names to contain many trailing Nul bytes.
2484
2485         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2486         (dbus_g_method_get_sender): New method for extracting the sender 
2487         from a DBusGMethodInvocation
2488         (dbus_g_method_return_get_reply): changed name to 
2489         dbus_g_method_get_reply
2490         (dbus_g_method_return_send_reply): changed name to
2491         dbus_g_method_send reply
2492
2493         * doc/dbus-specification.xml: New docs that describe how the new
2494         queueing system works and talks about the changes to the how
2495         we specify socket names
2496
2497         * glib/examples/example-service.c, 
2498         glib/examples/example-signal-emitter.c,
2499         glib/examples/statemachine/statemachine-server.c:
2500         Changed the RequestName flags to the new system
2501
2502         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2503         regression test suite for testing various states of the new
2504         queueing system
2505         
2506 2005-11-15  Robert McQueen  <robot101@debian.org>
2507
2508         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2509         Taylor to add two methods, dbus_g_method_return_get_reply and
2510         dbus_g_method_return_send_reply, to allow you to get the reply
2511         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2512         and send it. The GLib bindings can't marshal a return value of
2513         something like a(s) if the array is empty - ultimately they should be
2514         made to heed the signature of the out arguments as the Python bindings
2515         now can, but this is a workable interim solution which might have
2516         other applications.
2517
2518 2005-11-15  Robert McQueen  <robot101@debian.org>
2519
2520         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2521         method to org.freedesktop.DBus to release a bus name or give up
2522         waiting in the queue for it.
2523
2524         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2525         dbus_bus_release_name method to send the ReleaseName method calls.
2526         Add constants for the return values to dbus/dbus-shared.h.
2527
2528         * doc/dbus-specification.xml: Document the new ReleaseName method
2529         in the specification.
2530
2531         * python/dbus_bindings.pyx: Add a low-level python binding for the
2532         release name method.
2533
2534         * python/exceptions.py, python/service.py: Make freeing BusName
2535         objects release the name. Add a NameExistsException, and fix a
2536         bug with creating UnknownMethodException.
2537
2538         * test/python/test-client.py: Add tests for freeing BusName
2539         objects causing names to be released.
2540
2541 2005-11-14  Robert McQueen  <robot101@debian.org>
2542
2543         * python/service.py: Include the traceback in the error reply when we
2544         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2545
2546 2005-11-14  David Zeuthen  <davidz@redhat.com>
2547
2548         Patch from Timo Hoenig <thoenig@suse.de>.
2549
2550         * bus/bus.c: I've recently investigated why the automatic reload
2551         of configuration files does not work as expected.
2552
2553         Currently, reloading configuration files does only work when
2554         running dbus-daemon with --nodaemon.  If we are running as daemon
2555         we're hitting a dnotify bug once we fork the process.
2556
2557         We're initializing the dnotify fds before calling fork().  Once
2558         the child process forked it does still have the fds (and they
2559         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2560         getting SIGIO as changes are made to the configuration files.
2561
2562         The attached patch moves the initialization of the dnotify fds to
2563         process_config_postinit().  This is safe for all current code
2564         paths and solves the dnotify disfunction.  If we're running
2565         dbus-daemon as daemon the fds for dnotify are now being
2566         initialized after fork() for the child process.
2567
2568         * configure.in: The current configure.in check for dnotify probes
2569         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2570         match for 'xlinux', too. Additionally I have adapted the configure
2571         option's style to match with the others.
2572
2573 2005-11-14  Robert McQueen  <robot101@debian.org>
2574
2575         * python/decorators.py, python/service.py: Add a new argument to the
2576         dbus.service.method decorator called sender_keyword, which if set,
2577         specifies the name of an argument which will be provided the bus
2578         name of the method caller.
2579
2580         * test/python/test-client.py, test/python/test-service.py: Add a
2581         method and test to check the sender_keyword functionality.
2582
2583 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2584
2585         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2586         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2587         Simons <sjoerd at luon.net>)
2588
2589         * AUTHORS: Add Robert McQueen for his work on the Python
2590         Bindings and other parts of D-Bus
2591
2592 2005-11-07  Robert McQueen  <robot101@debian.org>
2593
2594         * python/decorators.py: Change emit_signal function to use the
2595         signature annotation of the signal when marhsalling the arguments from
2596         the service. Fix a bug where the code checking signature length
2597         against argument length referenced the wrong variable.
2598
2599         * python/introspect_parser.py: Avoid adding the type signature of
2600         signal arguments to any methods which occur after them in the
2601         introspection data (!) by making the parser a little more careful
2602         about its current state.
2603
2604         * python/service.py: Remove debug prints from last commit (again :D).
2605
2606         * test/python/test-client.py, test/python/test-service.py: Add test
2607         signals with signature decorators to test the strict marshalling code
2608         gives errors at the right time. Could do with checking the signals
2609         actually get emitted too, given that the test does nothing with
2610         signals at the moment...
2611
2612 2005-11-07  Robert McQueen  <robot101@debian.org>
2613
2614         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2615         instances to stop madness of creating new instances representing
2616         the same bus connection all the time, rendering any tracking of
2617         match rules and bus names quite meaningless. Caught a bug where
2618         the private argument to SessionBus() and friends was being passed
2619         in as use_default_mainloop by mistake. Still some problems with
2620         multiple dbus_binding.Connection instances representing the same
2621         low-level connection (eg when you use both SessionBus() and
2622         StarterBus() in same process), but it's a lot better now than it
2623         was.
2624
2625         * python/dbus_bindings.pyx: Add constants with the return values
2626         for bus_request_name().
2627
2628         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2629         and retrieve the same instances for the same name, so deletion can be
2630         done with refcounting. Also now throws some kind of error if you
2631         don't actually get the name you requested, unlike previously...
2632
2633         * test/python/test-client.py: Add tests for instance caching of buses
2634         and bus name objects.
2635
2636 2005-11-04  Robert McQueen  <robot101@debian.org>
2637
2638         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2639         marshalling of boolean values. Add some booleans to the values in
2640         the test client.
2641
2642         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2643         argument to the dbus.service.method decorator, which allows you to
2644         name arguments to take two callback functions for replying with
2645         return values or an exception.
2646
2647         * test/python/test-client.py, test/python/test-service.py: Add test
2648         case using asynchronous method reply functions, both return values and
2649         errors, and from within both the function itself and from a mainloop
2650         callback.
2651
2652         * python/decorators.py, python/service.py: Perform checking that the
2653         number of method/signal arguments matches the number of types in the
2654         signature at class loading time, not when you first introspect the
2655         class.
2656
2657         * python/service.py: Remove debug print left by the last commit.
2658
2659 2005-11-03  Robert McQueen  <robot101@debian.org>
2660
2661         * python/service.py: Heavy refactoring of method invocation, with
2662         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2663         in favour of a new _message_cb that uses seperate functions for
2664         looking up the method to call, marshalling the return values, and
2665         sending exceptions as errors, and is easier to follow as a
2666         consequence.  Fixes some corner cases about returning things that
2667         don't match your declared out_signature, allows exceptions to define
2668         _dbus_error_name and have it be sent over the bus as the error name,
2669         and paves the way for cool stuff like heeding the message no reply
2670         flag, asynchronous method implementations, informing the method of the
2671         sender, and including backtraces in the error messages.
2672
2673         * test/python/test-client.py: Catch and print exceptions thrown in the
2674         async callback tests, rather than passing them to the low-level
2675         bindings to be ignored in a noisy and frustrating manner.
2676
2677 2005-11-03  Robert McQueen  <robot101@debian.org>
2678
2679         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2680         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2681         tweak others to be consistent.
2682
2683         * test/python/test-client.py: Tweak output of testInheritance.
2684
2685 2005-10-29  Robert McQueen  <robot101@debian.org>
2686
2687         * python/service.py: Major changes to allow multiple inheritance
2688         from classes that define D-Bus interfaces:
2689         
2690          1. Create a new Interface class which is the parent class of
2691             Object, and make the ObjectType metaclass into InterfaceType.
2692         
2693          2. Patch written with Rob Taylor to replace use of method_vtable
2694             with code that walks the class's __MRO__ (method resolution order)
2695             to behave like Python does when invoking methods and allow
2696             overriding as you'd expect. Code is quite tricky because
2697             we have to find two methods, the one to invoke which has the
2698             right name and isn't decorated with the /wrong/ interface,
2699             and the one to pick up the signatures from which is decorated
2700             with the right interface.
2701         
2702             The same caveats apply as to normal multiple inheritance -
2703             this has undefined behaviour if you try and inherit from two
2704             classes that define a method with the same name but are
2705             decorated with different interfaces. You should decorate
2706             your overriding method with the interface you want.
2707         
2708          3. Replace grungy introspection XML generation code in the metaclass
2709             with dictionaries that cope correctly with multiple inheritance
2710             and the overriding of methods. This also uses the signature
2711             decorations to provide correct introspection data, including
2712             the debut appearance of the types of your return values. :D
2713
2714         * test/python/test-client.py, test/python/test-service.py: Add a test
2715         case to try invoking an method that overrides one inherited from a
2716         D-Bus interface class.
2717
2718 2005-10-29  Robert McQueen  <robot101@debian.org>
2719
2720         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2721         Add checking for the end of struct character when marshalling a
2722         struct in MessageIter.append_strict.
2723
2724         * python/examples/example-service.py,
2725         python/examples/gconf-proxy-service.py,
2726         python/examples/gconf-proxy-service2.py: Update to use gobject
2727         mainloop directly rather than appearing to depend on gtk.
2728
2729         * python/test/test-client.py, python/test/test-server.py: Remove
2730         obsolete and broken test scripts for old bindings. We have up to date
2731         and working tests in test/python/.
2732
2733 2005-10-29  Robert McQueen  <robot101@debian.org>
2734
2735         * python/decorators.py: Add optional arguments to the method and
2736         signal decorators to allow you to specify the signature of arguments
2737         and return values. Preserve the doc strings of signal functions in the
2738         decorated version, for pydoc and friends.
2739
2740         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2741         parse_signature_block function with an iterable dbus.Signature()
2742         type. Fix a bug in MessageIter.append_strict where you could append
2743         anything by claiming it was a string.
2744
2745         * python/service.py: Use the out_signature decoration on methods to
2746         marshal return values, meaning you no longer require dbus.Array()
2747         or dbus.Dictionary() to indicate the type when returning empty
2748         arrays or dictionaries. Fix a bug where exceptions which are defined
2749         in __main__ are not turned into error replies.
2750
2751         * test/python/test-client.py, test/python/test-service.py: Add test
2752         for correct marshalling of return values according to out_signature.
2753         Fix a bug in the async call test where the error_handler is missing a
2754         self argument.
2755
2756 2005-10-29  Robert McQueen  <robot101@debian.org>
2757
2758         * glib/Makefile.am, glib/examples/Makefile.am,
2759         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2760         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2761
2762         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2763
2764         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2765         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2766         the command line.
2767
2768 2005-10-27  Ross Burton  <ross@openedhand.com>
2769
2770         * dbus/dbus-marshal-header.c:
2771         Remove dead code.
2772
2773         * glib/dbus-gobject.c:
2774         Stop compiler warning.
2775
2776 2005-10-25  Ross Burton  <ross@openedhand.com>
2777
2778         * dbus/dbus-auth.c:
2779         * dbus/dbus-server-unix.c:
2780         * dbus/dbus-transport-unix.c:
2781         * glib/dbus-gmain.c:
2782         * glib/dbus-gobject.c:
2783         Add some const keywords.
2784
2785 2005-10-25  Ross Burton  <ross@openedhand.com>
2786
2787         * doc/dbus-specification.xml:
2788         Document the NoReply annotation.
2789
2790         * glib/dbus-binding-tool-glib.h:
2791         * glib/dbus-binding-tool-glib.c:
2792         Respect the NoReply annotation.
2793
2794 2005-10-24  Robert McQueen <robot101@debian.org>
2795
2796         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2797         derive from unicode instead of str, and encode/decode UTF-8 when
2798         marshalling/unmarshalling bus messages
2799
2800         * python/introspect_parser.py: encode introspection data as UTF-8
2801         before passing the buffer into libxml2
2802
2803         * test/python/test-client.py: add unicode test strings
2804
2805         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2806         ignore generated python test files
2807
2808 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2809
2810         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2811         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2812         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2813
2814         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2815         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2816         when constructing struct signatures
2817
2818         * python/_dbus.py (Bus): handle private connections using the
2819         private keyword in the constructor. defaults to private=False
2820         (Bus::close): new method to close a connection to the bus
2821
2822         * python/dbus_bindings.pyx (Connection::close): renamed method
2823         was previously called disconnect
2824         (bus_get): now supports getting a private connection
2825
2826         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2827         keyword is set to True.  if it is, execute the method without waiting
2828         for a reply
2829         (ProxyObject::_introspect_execute_queue): new method for executing
2830         all the pending methods that were waiting for the introspect to
2831         finish.  this is called when introspect either succeeds or fails
2832         (ProxyObject::_introspect_error_handler): call queued methods
2833
2834 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2835
2836         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2837         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2838
2839         * python/service.py (Object::_message_cb): handle exceptions correctly
2840         by sending them over the wire to the calling app.  This makes sure
2841         the client returns immediately instead of waiting the 15 seconds to
2842         timeout.
2843
2844         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2845         Add a test to benchmark how long it takes to introspect a service and 
2846         call a method which returns a large element (pretty fast)
2847
2848         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2849         method which pushes a lot of data
2850
2851 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2852
2853         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2854         reclaim memory outside of the loop and use del istead of just setting
2855         the key to None
2856
2857 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2858
2859         * python/service.py (ObjectType::_reflect_on_signal): Always close
2860         signal tag even when there are no arguments
2861
2862 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2863
2864         * configure.in: Set mono, mono-docs and Qt3 to default
2865         to no instead of auto when building.  These bindings do not
2866         have full time maintainers and will not be supported for the
2867         1.0 release.
2868
2869 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2870
2871         patches from Michael Krivoruchko <misha at sun.com>: 
2872         
2873         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2874         _dbus_connection_message_sent, 
2875         _dbus_connection_send_preallocated_unlocked_no_update, 
2876         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2877         is NULL when calling _dbus_verbose
2878
2879         * configure.in: check for functions getpeerucred and getpeereid
2880
2881         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2882         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2883         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2884         Patch was only tested on Solaris 10 x86 so it might be issues
2885         with other platforms (i.e. BSDs and MacOSX)
2886         
2887
2888 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2889
2890         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2891         instead of marshal basic so we can handle recursive types in a variant
2892
2893         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2894         in variants
2895
2896         * test/glib/test-service-glib.c, test-service-glib.xml
2897         (my_object_echo_variant [EchoVariant], 
2898         my_object_process_variant_of_array_of_ints123
2899         [ProcessVariantOfArrayOfInts123]): 
2900         Add two test methods
2901
2902         * python/introspect_parser.py: New module for parsing introspect
2903         data.
2904
2905         * python/dbus_bindings.pyx:
2906         (various places): when throwing errors fix to use errormsg instead 
2907         of message local variable because Pyrex can get confused with other 
2908         message variables (initial patch by Robert McQueen 
2909         <robert.mcqueen at collabora.co.uk>)
2910         (MessageIter::parse_signature_block): new method for getting the next
2911         block in a signiture.
2912         (MessageIter::append_strict): new method for appending values strictly
2913         using the passed in signature instead of guessing at the type
2914         (MessageItter:: append_dict, append_struct, append_array): use 
2915         signatures to marshal children if the signature is available
2916         
2917         * python/exceptions.py (IntrospectionParserException): new exception
2918
2919         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2920         introspected signatures if available, else we fall back to the
2921         old way of doing things.
2922         (ProxyObject::_introspect_reply_handler ): parse introspection data
2923         
2924         * python/service.py (ObjectType::_reflect_on_method): Properly
2925         terminate <method> if there are no args in the reflection data
2926
2927         * test/python/test-client.py: add tests for talking with the GLib
2928         test server.  This gives us better coverage for introspection since
2929         python to python will always generate arguments as variants.  It also
2930         allows us to test the robustness of the GLib bindings and interlanguage
2931         communications.
2932
2933         
2934 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2935
2936         * bus/driver.c (bus_driver_handle_introspect): Add signals
2937         to the introspect data. (patch from Daniel P. Berrange 
2938         <dan at berrange.com>)
2939
2940         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2941         
2942         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2943         _dbus_connection_run_builtin_filters): Changed these to
2944         be unlock_no_update functions and call 
2945         _dbus_connection_send_unlocked_no_update instead of
2946         dbus_connection_send to avoid locking errors.
2947         
2948         * doc/TODO: Removed the make Ping test TODO
2949         
2950 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2951
2952         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2953         We now copy the message from a DBusError and then free 
2954         the error object befor throwing the error
2955
2956         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2957         DBusBindingOutputMode enum which was causing a warning.
2958         #include <time.h> so using time_t is explicitly defined
2959
2960 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2961
2962         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2963         - dbus/dbus-bus.c
2964         (internal_bus_get): new method that take over the heavy lifting
2965         of dbus_bus_get and adds the ability to get a private connection
2966         to the bus
2967         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2968         interface as in previous versions
2969         (dbus_bus_get_private): new method that is a wrapper to 
2970         internal_bus_get to get a private connection to the bus
2971
2972         - dbus/dbus-bus.h
2973         (dbus_bus_get_private): add as a public libdbus interface
2974
2975         - dbus-1.pc.in: output system_bus_default_address and 
2976         sysconfdir variables so apps can use them when compiling
2977
2978 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2979         * dbus/qt: New Qt bindings
2980
2981 2005-09-12  Waldo Bastian  <bastian@kde.org>
2982
2983         * dbus/dbus-marshal-validate.c,
2984         doc/dbus-specification.xml, test/Makefile.am,
2985         test/test-names.c: allow hyphens in bus names.
2986
2987 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2988
2989         * test/data/auth/fallback.auth-script: we don't
2990         retry the EXTERNAL method when we know its going
2991         to fail anymore.
2992
2993 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
2994
2995         * dbus/dbus-connection-internal.h: rename
2996         (add|remove|toggle)_(watch|timeout) to unlocked()
2997         
2998         * dbus/dbus-connection.c: ditto.
2999         
3000         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3001         Update some callers for the renaming.
3002
3003 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3004
3005         * dbus/dbus-auth.c: (record_mechanisms): don't
3006         retry the first auth mechanism because we know
3007         we're just going to get rejected again.
3008         
3009         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3010         Fix thinko ... and what a nasty little bugger to
3011         track down you were ...
3012
3013         * dbus/dbus-connection.c:
3014         (_dbus_connection_add_watch),
3015         (_dbus_connection_remove_watch): add note about
3016         these needing the connection to be locked.
3017         (_dbus_connection_get_dispatch_status_unlocked):
3018         set status to DATA_REMAINS when we queue the
3019         disconnected message.
3020         
3021         * bus/dispatch.c:
3022         (bus_dispatch): fix warning.
3023         (check_existent_service_no_auto_start):
3024         Expect ChildSignaled error too.
3025         (check_existent_hello_from_self): fix another
3026         couple of warnings.
3027         
3028 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3029
3030         Patches from James Willcox <snorp@snorp.net>
3031
3032         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3033
3034         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3035         support array "out" parameters.
3036
3037         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3038         for 16-bit int support.
3039
3040 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3041
3042         * Released 0.50
3043
3044         * Patch from Steve Grubb:
3045         - bus/activation.c (bus_activation_service_reload_test): clean up
3046         some indentation
3047         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3048         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3049         buffer overflows in the test suite.  This is non critical because
3050         it can not be exploited and this code is only run when doing a 
3051         make check.
3052
3053         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3054         - configure.in: Don't check and link against kdecore, only qt headers
3055         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3056         - gcj/org/freedesktop/dbus/Makefile.am:
3057         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3058         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3059         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3060         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3061         - tools/Makefile.am: Add platform extentions to binaries 
3062         (i.e. .exe on windows)
3063
3064         * configure.in: 
3065         - Make it so if no suitable version of python is found we only 
3066         disable building python instead of exiting the configure script
3067         - Require version 2.4 of glib for glib bindings
3068         - Up version to 0.50
3069
3070         * python/__init__.py: Sync version with libdbus to (0,50,0)
3071         
3072 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3073
3074         * dbus/dbus-object-tree.c (find_subtree_recurse):
3075         a couple of optimizations (bug #710):
3076         - do a binary search in the tree
3077         - insert a new child at the right place directly, no need for
3078           qsort anymore
3079         - do the "double alloc" thing when allocating children
3080
3081 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3082
3083         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3084
3085         * python/dbus_bindings.pyx: Memory management foo
3086         (global): remove hacky _user_data_references global list
3087         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3088         tuples. Unref user_data
3089         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3090         (Connection::__del__): Remove and replace with __dealloc__ method
3091         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3092         to keep tuple from being deallocated instead of the global var hack
3093         (Connection::register_object_path): Stuff user_data into a tuple.
3094         Use Py_INCREF to keep tuple from being deallocated instead of the 
3095         global var hack
3096         (Connection::register_fallback): Stuff user_data into a tuple.
3097         Use Py_INCREF to keep tuple from being deallocated instead of the 
3098         global var hack
3099         (GIL_safe_pending_call_notification): Don't unref the message
3100         because it gets unreffed when going out of scope.  Py_XDECREF
3101         the user_data
3102         (PendingCall::__del__): Remove and replace with __dealloc__ method
3103         (PendingCall::set_notify): ref the pending call because we will
3104         need it to stick around for when the notify callback gets called
3105         (Message::__del__): Remove and replace with __dealloc__ method
3106
3107         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3108         gthreads_init to match up with the dbus call
3109
3110         * python/glib.py (init_threads): Changed to threads_init to match
3111         up with gobject.threads_init().  init_threads is kept for backwards
3112         compat but will most likely be deprecated in the future
3113
3114         * test/python/test-client.py: 
3115         - revamp to use Python's unittest functionality
3116         - add async call tests
3117         - setup threads in glib and dbus so we make sure locks are working
3118         
3119 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3120
3121         * python/dbus_bindings.pyx 
3122         (_pending_call_notification, cunregister_function_handler, 
3123         cmessage_function_handler): All callback functions have been rearranged 
3124         to workaround a bug in Pyrex when working with the GIL which is Python's 
3125         global lock when dealing with threads.  They have been split into
3126         a wrapper function (which assumes the name of the old function) and
3127         a _GIL_safe_<function name> function which contains the functionality
3128         of the old function.  This ensures that Pyrex does not write code
3129         the lock is released.
3130         
3131
3132 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3133
3134         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3135         GIL global lock when calling back into Python
3136
3137 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3138
3139         * Release 0.36.2
3140
3141         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3142
3143         * bus/policy.c (bus_policy_allow_user): change default "user is
3144         allowed" to be "user has same uid as the bus itself"; any
3145         allow/deny rules will override.
3146
3147         * bus/session.conf.in: don't allow all users, since now by default
3148         the user that ran the bus can connect.
3149
3150 2005-08-26  Colin Walters  <walters@verbum.org>
3151
3152         * tools/dbus-print-message.c (print_message): Flush stdout
3153         after printing a message, so that redirecting to a file, then
3154         hitting Ctrl-C works.
3155
3156 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3157
3158         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3159         (EmptyMessage): new class that subclasses Message.  This is a workaround
3160         to a Pyrex bug that fails to call __del__ when the Message object goes out
3161         of scope.  For some reason subclassing Message fixes this bug
3162         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3163         - s/Message(_create=0)/EmptyMessage everywhere else
3164         
3165         * test/python/test-{server|client}.py: add the python/.libs directory
3166         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3167         get picked up from the system
3168
3169 2005-08-25  Colin Walters  <walters@verbum.org>
3170
3171         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3172         to Ryan Lortie for the suggestion.
3173
3174 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3175
3176         * test/python: Add python regression test
3177
3178         * configure.in: Add test/python/Makefile
3179
3180         * test/Makefile.am: Add the python directory to SUBDIRS
3181
3182 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3183
3184         * Release 0.36.1
3185
3186         * python/_dbus.py: 
3187         (Interface::connect_to_signal): propigate keywords for match on args
3188         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3189
3190         * python/proxies.py (ProxyObject::connect_to_signal):
3191         propigate keywords for match on args
3192
3193         * Makefile.am: point everything to pyexecdir since python borks
3194         on multilib
3195
3196 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3197
3198         * Release 0.36
3199
3200 2005-08-23  Colin Walters  <walters@verbum.org>
3201
3202         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3203
3204 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3205
3206         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3207         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3208         of defining DBusConnection ourselves.
3209
3210 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3211
3212         * python/dbus.pth: New path file to fix up problems when installing
3213         c libraries to lib64 and python files to lib.
3214
3215         * python/Makefile.am: install dbus.pth in the correct spot
3216
3217 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3218         * ChangeLog: clean up my last entry a bit
3219
3220         * doc/introspect.xsl: New stylesheet for converting introspection data
3221         into browser renderable xhtml. Contributed by Lennart Poettering.
3222
3223         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3224         Poettering.
3225
3226         * doc/dbus-tutorial.xml: 
3227         - Add Colin Walter to the Authors section for authoring the GLib
3228         section
3229         - Add descriptions of the new signature and type functionality
3230         in the Python complex type mapping section
3231         - Add a sidenote on the new args matching functionality in 
3232         the Python bindings
3233         - Fixed up some of the examples to use the gobject.MainLoop
3234         instead of gtk.main
3235         
3236         * python/_dbus.py:
3237         (Bus::_create_args_dict): New. Converts a hash of arg matches
3238         to a more useable format
3239         (Bus::add_signal_receiver): add a **keywords parameter for catching
3240         arg match parameters
3241         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3242         arg match parameters
3243         
3244         * python/matchrules.py:
3245         (MatchTree::exec_matches): Check for arg matches
3246         (SignalMatchRule::add_args_match): New method
3247         (SignalMatchRule::execute): Added args_list parameter as an optimization
3248         so we don't have to marshal the args more than once
3249         (SignalMatchRule::match_args_from_list): New method that checks to see
3250         if the rule's arg matches match an argument list.  Only arguments
3251         set in the rule are checked.
3252         (SignalMatchRule::match_args_from_rule): New method that checks to see
3253         if the rule's arg matches match another rule's.  All args have to match
3254         in order for this method to return true.  If either rule has more args
3255         then it is not a match.
3256         (SignalMatchRule::is_match): Add args match
3257         (SignalMatchRule::repr): Add args to the final output if they exist
3258
3259 2005-08-17  Ross Burton  <ross@burtonini.com>
3260
3261         * glib/dbus-gproxy.c:
3262         (dbus_g_proxy_call_no_reply): unref the message once sent.
3263         (dbus_g_proxy_call): protect against NULL proxy.
3264
3265 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3266
3267         * python/__init__.py: Version updated (0, 43, 0)
3268         
3269         * python/dbus_bindings.pyx: 
3270         - Fixed type objects to have self passed into __init__
3271         - Added the Variant type
3272         - Add the ability to specify types or signatures for Array, Variant 
3273         and Dictionary
3274         (Connection::send_with_reply_handlers): return a PendingCall object
3275         (_pending_call_notification): handle the case when an error is returned 
3276         without an error message in the body
3277         (MessageIter::get_boolean): return True or False instead of an integer
3278         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3279         and add checks for objects with embeded signatures or types (Array, 
3280         Variant and Dictionary)
3281         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3282         (MessageIter::append_dict): handle embeded types or signatures
3283         (MessageIter::append_array): handle embeded types or signatures
3284         (MessageIter::append_variant): new method
3285         
3286         * python/proxies.py:
3287         (DeferedMethod): New. Dummy executable object used when queuing calls 
3288         blocking on introspection data
3289         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3290         or shorter timeouts for method calls
3291         (ProxyObject): Add first pass at an introspection state machine
3292         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3293         introspection. 
3294         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3295         the usual mechanisms for sending messages.  This is to avoid a deadlock
3296         where the Intospect call would be queued waiting for the Introspect 
3297         call to finish ;-)
3298         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3299         when introspection returns with no error
3300         (ProxyObject::_introspect_error_handler): New.  This method is called 
3301         when introspection encounters an error
3302         (ProxyObject::__getattr__): Code to handle different introspection 
3303         states.  Queue async calls or block blocking calls if we are 
3304         introspecting.  Pass through as normal if we are not or are done with 
3305         introspecting.
3306         
3307         * python/service.py: Import signal and method from decorators.py
3308
3309         * python/types.py: Add Variant type
3310
3311 2005-08-16  Colin Walters  <walters@verbum.org>
3312
3313         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3314         DBusError message is NULL.
3315
3316 2005-08-09  Havoc Pennington  <hp@redhat.com>
3317
3318         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3319         malloc'd copy of the name parameter
3320
3321 2005-08-09  Havoc Pennington  <hp@redhat.com>
3322
3323         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3324         warning if the reply serial is set to 0
3325
3326 2005-08-04  Colin Walters  <walters@verbum.org>
3327
3328         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3329         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3330         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3331         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3332         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3333         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3334         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3335         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3336         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3337         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3338         
3339         Prefix name with _ to ensure they're not exported.  All callers
3340         updated.
3341
3342         * glib/dbus-gvalue.c (typecode_to_gtype)
3343         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3344         (signature_iter_to_g_type_dict)
3345         (signature_iter_to_g_type_array)
3346         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3347         (dbus_gtypes_from_arg_signature):
3348         Move to dbus-gsignature.c.
3349
3350         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3351         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3352         (dbus_binding_tool_output_glib_client): Ditto.
3353
3354         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3355         and dbus-gsignature.h
3356
3357         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3358         unused variable.
3359
3360 2005-08-03  Colin Walters  <walters@verbum.org>
3361
3362         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3363         catch any incompatible changes accidentally made.
3364
3365 2005-08-03  Havoc Pennington  <hp@redhat.com>
3366
3367         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3368         typo, from Julien Puydt
3369
3370         * bus/connection.c (bus_connection_disconnected): we were always
3371         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3372
3373 2005-08-01  Colin Walters  <walters@verbum.org>
3374
3375         Patch from Joe Markus Clarke:   
3376         
3377         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3378         use-after-free.
3379
3380 2005-08-01  Colin Walters  <walters@verbum.org>
3381         
3382         Patch from Joe Markus Clarke:   
3383         
3384         * tools/dbus-send.c (main): 
3385         
3386         Don't use C99 style initializers (bug #3933).
3387         
3388 2005-08-01  Colin Walters  <walters@verbum.org>
3389
3390         Patch from Joe Markus Clarke:   
3391
3392         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3393         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3394         * glib/dbus-gobject.c (write_interface):
3395
3396         Don't use C99 style initializers (bug #3933).
3397
3398 2005-07-31  Havoc Pennington  <hp@redhat.com>
3399
3400         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3401         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3402
3403 2005-07-30  Havoc Pennington  <hp@redhat.com>
3404
3405         * fix a bunch of Doxygen warnings and mistakes
3406
3407 2005-07-30  Havoc Pennington  <hp@redhat.com>
3408
3409         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3410         DBUS_BUILD_TESTS since it's now used in production code
3411
3412 2005-07-29  Havoc Pennington  <hp@redhat.com>
3413
3414         * test/glib/test-profile.c (write_junk): initialize the junk
3415         buffer so valgrind doesn't have a breakdown
3416
3417 2005-07-29  Havoc Pennington  <hp@redhat.com>
3418
3419         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3420         (match_rule_matches): remove unused arg
3421         (test_matching): add tests for match_rule_matches()
3422
3423         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3424         do arg0='foo' arg5='bar' in the match rules
3425         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3426
3427         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3428
3429 2005-07-29  Ross Burton  <ross@openedhand.com>
3430
3431         * dbus/dbus-connection.c:
3432         Don't create a DBusCondVar which is never used.
3433
3434 2005-07-27  Ross Burton  <ross@openedhand.com>
3435
3436         * dbus/dbus-message.c:
3437         Reduce the size of the maximum cached message to 10K.
3438
3439 2005-07-25  Ross Burton  <ross@openedhand.com>
3440
3441         * glib/dbus-gproxy.c:
3442         Remove matches when all proxies are unregistered.
3443
3444 2005-07-24  Colin Walters  <walters@verbum.org>
3445
3446         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3447         typedata; recursive arrays won't have it.
3448
3449         * test/glib/test-dbus-glib.c:
3450         * test/glib/test-service-glib.c:
3451         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3452         
3453 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3454
3455         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3456         proxies.py, service.py: Cleanup of code after running it through the
3457         pyflakes code checker mostly dealing with undefined names.  
3458         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3459
3460 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3461
3462         * NEWS: Update to 0.35.2
3463
3464 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3465
3466         * python/_dbus.py: Remove import of the dbus.services
3467         module as it no longer exists (patch from Dimitur Kirov)
3468
3469         * python/service.py (Object::__init__): Fixed typo
3470         s/name/bus_name (patch from Dimitur Kirov)
3471
3472         * python/examples/example-signal-emitter.py: import dbus.glib
3473         to get the main loop and use glib mainloop instead of gtk so
3474         X doesn't have to be running.
3475
3476         * python/examples/example-signal-recipient.py: import dbus.glib
3477         to get the main loop and use glib mainloop instead of gtk so
3478         X doesn't have to be running. Import the decorators module
3479         directly.
3480
3481         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3482         didn't pick up on but are needed to build
3483
3484         * configure.in: upped version to 0.35.2
3485
3486         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3487         added Colin Walters' SELinux API rename patch from head 
3488         s/unix sercurity context/selinux security context/
3489
3490 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3491
3492         * python/Makefile.am: dbus_binding.pxd.in should be included 
3493         in EXTRA_DIST not dbus_binding.pxd
3494         fix up $(srcdir) hopefully for the last time
3495
3496         * NEWS: Update to 0.35.1
3497
3498 2005-07-16  Colin Walters  <walters@verbum.org>
3499
3500         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3501         from bus_driver_handle_get_connection_unix_security_context.  Update for
3502         error usage.
3503         (message_handlers): Update for renames.
3504
3505         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3506         _dbus_string_init failure correctly.
3507         (bus_selinux_append_context): Convert SID to context.  Append it
3508         as a byte array.
3509         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3510         hasn't been called.
3511
3512         * bus/selinux.h: Update prototype.
3513
3514         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3515         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3516
3517 2005-07-15  Colin Walters  <walters@verbum.org>
3518
3519         * doc/TODO: Add note about convenience wrappers.
3520
3521 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3522
3523         * NEWS: Update to 0.35
3524
3525 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3526
3527         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3528         so distcheck doesn't fail
3529
3530         * glib/examples/Makefile.am: Add example-service.xml and 
3531         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3532
3533         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3534         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3535
3536         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3537         compiler looks in the right places during distcheck
3538
3539 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3540
3541         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3542         to fail
3543
3544 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3545
3546         * python/examples/example-service.py,
3547         python/examples/example-signal-emitter.py: Fixed up examples
3548         for API changes
3549
3550 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3551
3552         * python/__init__.py: Upped to version (0,42,0) because of
3553         the API change
3554
3555 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3556
3557         * ChangeLog: fix date in last entry
3558
3559         * configure.in, bus/system.conf.in: add the ability to configure 
3560         the system bus user at compiletime with the --with-dbus-user flag
3561         (patch from Kristof Vansant)
3562
3563 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3564
3565         * bus/dispatch.c, test/test-service.c: Add testcase
3566         for sending messages to oneself (TODO item).
3567
3568         * python/service.py (class Object): Swap ordering of bus_name 
3569         and object_path parameters to better support inheritance.
3570
3571         * doc/dbus-tutorial.xml: change Python docs to reflect change
3572         in parameter ordering and fix the inheritance section.
3573
3574         * doc/TODO: remove sending message to oneself TODO item
3575
3576 2005-07-15  Ross Burton  <ross@openedhand.com>
3577
3578         * glib/dbus-gproxy.c:
3579         Fix a leak when calling methods via the proxy.
3580
3581 2005-07-15  Colin Walters  <walters@verbum.org>
3582
3583         * bus/selinux.c (bus_selinux_append_context): Wrap in
3584         HAVE_SELINUX.
3585
3586 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3587
3588         * python/_dbus.py (Bus::remove_signal_receiver):
3589         don't add a callback to the match if none has been passed in
3590         
3591         * python/matchrules.py (SignalMatchTree::remove): if the rule
3592         being matched does not have a callback treat it as a wildcard
3593         fix matching logic
3594
3595         * doc/dbus-tutorial.xml: Add Python tutorial
3596
3597 2005-07-14  Colin Walters  <walters@verbum.org>
3598
3599         * bus/driver.c
3600         (bus_driver_handle_get_connection_unix_security_context): New function.
3601         (message_handlers): Add.
3602
3603         * bus/selinux.c (bus_selinux_append_context): New function; appends
3604         security context to message.
3605
3606         * bus/selinux.h: Prototype.
3607
3608         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3609
3610 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3611
3612         * bus/activation.c: clean up all tabs to be 8 spaces 
3613         (bus_activation_activate_service): make sure we clean up
3614         if activation fails
3615
3616         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3617         (check_shell_fail_service_auto_start): New function
3618         tests to make sure we get fail properly when trying to auto start a service
3619         with a faulty command line
3620         (check_shell_service_success_auto_start): New function tests to make sure
3621         auto started services get the arguments on the command line
3622
3623         * test/test-shell-service.c: Added service for testing auto-starting with 
3624         command line arguments
3625
3626         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3627         test/data/valid-service-files/debug-shell-echo-success.service.in:
3628         Added service files for testing auto-starting with command line arguments
3629
3630         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3631
3632 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3633
3634         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3635         
3636         * dbus/Makefile.am: added new files to build.
3637
3638         * bus/activation.c (bus_activation_activate_service): support
3639         activation commands with parameters.
3640
3641         * test/shell-test.c: added test program for the shell parsing
3642         code.
3643
3644 2005-07-13  David Zeuthen  <davidz@redhat.com>
3645
3646         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3647         64 bit signed and unsigned parameters
3648
3649 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3650
3651         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3652
3653         * python/service.py (class Name): renamed BusName to make it clearer
3654         what the object is for (a name on the bus)
3655
3656         * python/examples/example-service.py,
3657         python/examples/example-signal-emitter.py: change the Name object to
3658         BusName
3659
3660 2005-07-12  Colin Walters  <walters@verbum.org>
3661
3662         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3663
3664         * tools/dbus-launch.c: Include sys/select.h.
3665
3666 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3667         * python/dbus_bindings.pyx.in: removed
3668
3669         * python/dbus_bindings.pyx: Added.
3670         - Fixed some memleaks (patch from 
3671         Sean Meiners <sean.meiners@linspireinc.com>)
3672         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3673         own pxd file (Pyrex definition)
3674         - Broke out glib dependancies into its own pyx module
3675         
3676         * python/dbus_bindings.pdx: Added.
3677         - Defines C class Connection for exporting to other modules
3678
3679         * python/dbus_glib_bindings.pyx: Added.
3680         - New module to handle lowlevel dbus-glib mainloop integration
3681
3682         * python/glib.py: Added.
3683         - Registers the glib mainloop when you import this module
3684
3685         * python/services.py: Removed (renamed to service.py)
3686         
3687         * python/service.py: Added.
3688         - (class Server): renamed Name
3689
3690         * python/__init__.py: Bump ro version (0,41,0)
3691         -don't import the decorators or service module
3692         by default.  These now reside in the dbus.service namespace
3693
3694         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3695         setup function on creation 
3696
3697         * python/examples/example-service.py,
3698         python/examples/example-signal-emitter.py: update examples
3699
3700         * python/examples/gconf-proxy-service.py,
3701         python/examples/gconf-proxy-service2.py: TODO fix these up
3702
3703         * doc/TODO: Addition
3704         - Added a Python Bindings 1.0 section
3705         - added "Add match on args or match on details to match rules"
3706
3707
3708 2005-07-12  Colin Walters  <walters@verbum.org>
3709
3710         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3711         (statemachine-glue.h): 
3712         * glib/examples/Makefile.am (example-service-glue.h) 
3713         (example-signal-emitter-glue.h): 
3714         * glib/Makefile.am (dbus-glib-error-switch.h): 
3715         Add libtool --mode=execute so we use the built library instead
3716         of any installed one.
3717
3718 2005-07-11  Colin Walters  <walters@verbum.org>
3719
3720         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3721         (dbus_g_value_types_init): Remove assertion.
3722         (dbus_g_value_get_g_type, dbus_g_value_open)
3723         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3724         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3725         functions related to DBusGValue.  Now we marshal/demarshal
3726         structures as GValueArray.
3727         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3728         structures.
3729         (signature_iter_to_g_type_array): Don't call
3730         signature_iter_to_g_type_struct.
3731         (signature_iter_to_g_type_struct): Delete.
3732         (dbus_gvalue_to_signature): Delete.
3733         (dbus_gvalue_to_signature): New function with same name as other
3734         one; we can convert structures to signatures.
3735         (demarshal_valuearray): New function.
3736         (get_type_demarshaller): Use it.
3737         (demarshal_recurse): Delete.
3738         (marshal_proxy): New function.
3739         (marshal_map): Warn if we can't determine signature from type.
3740         (marshal_collection_ptrarray): Ditto.
3741         (marshal_collection_array): Ditto.
3742         (get_type_marshaller): Use marshal_valuearray.
3743         (marshal_recurse): Delete.
3744         (_dbus_gvalue_test): Add some tests.
3745
3746         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3747         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3748         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3749         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3750         (dbus_g_value_free): Remove prototypes.
3751
3752         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3753         G_TYPE_VALUE_ARRAY.
3754
3755         * glib/examples/example-service.c:
3756         * glib/examples/example-client.c: Implement GetTuple.
3757
3758         * test/glib/test-dbus-glib.c:
3759         * test/glib/test-service-glib.c:
3760         * test/glib/test-service-glib.xml: Add structure tests.
3761
3762 2005-07-10  Colin Walters  <walters@verbum.org>
3763
3764         * doc/TODO: Knock off some GLib items with this patch.
3765
3766         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3767         (_dbus_gvalue_signals_error): New functions.
3768
3769         * glib/dbus-gvalue-utils.h: Prototype them.
3770
3771         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3772         and change to not output const/retval flags for input args.  All
3773         callers updated.
3774         (invoke_object_method): Refactor to handle return values.  Add
3775         some more comments in various places.  Remove debug g_print.
3776
3777         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3778
3779         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3780         Handle G_TYPE_NONE.
3781         (compute_gsignature): New function; refactored from code from
3782         compute_marshaller and compute_marshaller_name.  Enhance to
3783         handle return values and async ops more cleanly.  Update for
3784         async ops returning NONE instead of BOOLEAN.
3785         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3786         and output appropriate string.
3787         (generate_glue): Handle return value annotation.  Also don't dump
3788         constness flag for input arguments.
3789
3790         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3791         files shared between installed library and utilities.
3792         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3793         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3794         binding tool can access gtype utility functions.
3795
3796         * test/glib/test-service-glib.c: 
3797         * test/glib/test-service-glib.xml: 
3798         * test/glib/test-dbus-glib.c: Add some tests for return values.
3799
3800 2005-07-09  Colin Walters  <walters@verbum.org>
3801
3802         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3803         argument if available, not method.
3804
3805         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3806         (invoke_object_method): First, remove some redundant
3807         GValues (object_value, error_value) in favor of working on
3808         array directly.  Second, rework constness to be less buggy.
3809         Now we iterate directly over the argument metadata instead
3810         of parallel iterating over output signature and metadata.
3811
3812         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3813
3814         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3815         annotation on input args.
3816         
3817 2005-07-09  Colin Walters  <walters@verbum.org>
3818
3819         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3820         Define.
3821
3822         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3823         annotation.
3824
3825         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3826         (method_dir_signature_from_object_info): Handle arg_iterate change.
3827         (write_interface): Ditto.
3828         (lookup_object_info): Don't barf if format_version is > 0.
3829         (invoke_object_method): Handle arg constness.
3830
3831         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3832         (arg_info_new): Create.
3833         (arg_info_unref): Destroy.
3834         (arg_info_get_annotations, arg_info_get_annotation) 
3835         (arg_info_add_annotation): New functions.
3836
3837         * glib/dbus-gidl.h: Prototype them.
3838
3839         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3840         args, disallow them in properties.
3841         (parse_annotation): Handle arg annotations.
3842
3843         * test/glib/test-service-glib.xml: 
3844         * test/glib/test-service-glib.c: Update to make some methods
3845         const.
3846
3847 2005-07-08  Colin Walters  <walters@verbum.org>
3848
3849         * test/glib/test-service-glib.xml: 
3850         * test/glib/test-service-glib.c:
3851         * test/glib/test-dbus-glib.c: Test a{sv}.
3852
3853         * glib/examples/statemachine/statemachine.c:
3854         * glib/examples/statemachine/statemachine-server.c:
3855         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3856         add progress bar, etc.
3857
3858         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3859         needed anymore due to generic array/map marshalling.
3860         (dbus_g_value_types_init): Don't register basic arrays or the
3861         string/string hash.
3862         (dbus_gtype_from_signature_iter): Don't try to recurse into
3863         variants.
3864         (dbus_gtype_to_signature): Check collection/map before type
3865         metadata.
3866         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3867         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3868         generic map creation/append functions instead of hash table
3869         specifically.
3870         (get_type_demarshaller): Handle maps.
3871         (demarshal_collection): Dispatch on collection type to either
3872         demarshal_collection_ptrarray or demarshal_collection_array.
3873         (get_type_marshaller): Handle maps.
3874         (marshal_collection): Dispatch collection type to either
3875         marshal_collection_ptrarray or marshal_collection_array.
3876         (_dbus_gvalue_test): New test.
3877
3878         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3879         (hash_free_from_gtype): Use it to free GValues.
3880         (hashtable_append): New function.
3881         (ptrarray_append): Fix prototype.
3882         (slist_append): Ditto.
3883         (_dbus_gvalue_utils_test): Extend tests.
3884
3885         * glib/dbus-gtype-specialized.c
3886         (dbus_g_type_specialized_init_append): Renamed from
3887         dbus_g_type_specialized_collection_init_append.  Remove const from
3888         value, since we steal it.
3889         (dbus_g_type_specialized_map_append): New function.
3890
3891         * glib/dbus-gtype-specialized.h: Update prototypes.
3892         Add DBusGTypeSpecializedMapAppendFunc.
3893
3894         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3895         _dbus_gvalue_test.
3896         
3897         * glib/dbus-gtest.h: Prototype it.
3898
3899 2005-07-08  Ross Burton  <ross@openedhand.com>
3900
3901         * dbus/dbus-glib.h:
3902         Add DBysGAsyncData for the async bindings.
3903
3904         * glib/dbus-binding-tool-glib.c:
3905         Re-enable the async bindings.
3906
3907         * test/glib/test-dbus-glib.c:
3908         Add a test for the generated async bindings.
3909
3910 2005-07-08  Colin Walters  <walters@verbum.org>
3911
3912         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3913         connection concept.
3914         
3915 2005-07-08  Colin Walters  <walters@verbum.org>
3916         
3917         * tools/Makefile.am: Kill of print-introspect in favor of using
3918         dbus-send --print-reply=literal.
3919
3920         * test/glib/test-service-glib.xml: 
3921         * test/glib/test-service-glib.c (my_object_get_objs): New test
3922         for "ao".
3923
3924         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3925         (main): Test GetObjs.
3926
3927         * glib/examples/statemachine/Makefile.am:
3928         * glib/examples/statemachine/sm-marshal.list:
3929         * glib/examples/statemachine/statemachine-client.c:
3930         * glib/examples/statemachine/statemachine-server.c:
3931         * glib/examples/statemachine/statemachine-server.xml:
3932         * glib/examples/statemachine/statemachine.c:
3933         * glib/examples/statemachine/statemachine.h:
3934         * glib/examples/statemachine/statemachine.xml:
3935
3936         New example.
3937
3938         * glib/examples/example-service.c (main): Move invocation
3939         of dbus_g_object_type_install_info earlier, to emphasize it
3940         should only be done once.
3941
3942         * glib/examples/example-signal-emitter.c (main): Ditto.
3943
3944         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3945
3946         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3947         (dbus_gvalue_marshal): Update prototypes.
3948
3949         * glib/dbus-gvalue.c: Update all marshalling functions to take
3950         const GValue instead of GValue.
3951         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3952         types.
3953         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3954         change.
3955         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3956         Return a newly-allocated string.
3957         (demarshal_proxy, demarshal_object_path, demarshal_object)
3958         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3959         we get the wrong types from message.
3960         (get_type_demarshaller): New function, extracted from
3961         dbus_gvalue_demarshal.
3962         (demarshal_collection): New function, demarshals generic
3963         collection.
3964         (dbus_gvalue_demarshal): Just invoke result of
3965         get_type_demarshaller.  Throw error if we don't have one.
3966         (marshal_garray_basic): Abort on OOM.
3967         (get_type_marshaller): New function, extracted from
3968         dbus_gvalue_marshal.
3969         (collection_marshal_iterator, marshal_collection): New functions;
3970         implements generic marshalling for an iteratable specialized
3971         collection.
3972         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3973
3974         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3975         G_TYPE_STRING.
3976         (ptrarray_value_from_gvalue): Ditto.
3977         (ptrarray_append, ptrarray_free): New functions.
3978         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3979         (slist_append, slist_end_append, slist_free): New functions.
3980         (dbus_g_type_specialized_builtins_init): Add append fuctions
3981         for GPtrArray and GSList.  Register GSList.
3982         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3983
3984         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3985         New.
3986         (dbus_g_type_specialized_collection_init_append)
3987         (dbus_g_type_specialized_collection_append)
3988         (dbus_g_type_specialized_collection_end_append): Prototype.
3989         (DBusGTypeSpecializedCollectionVtable): Add append_func and
3990         end_append_func.
3991
3992         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
3993         (dbus_g_type_specialized_collection_append) 
3994         (dbus_g_type_specialized_collection_end_append): New functions.
3995         (dbus_g_type_map_value_iterate): Take const GValue.
3996         (dbus_g_type_collection_value_iterate): Ditto.
3997
3998         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3999         _dbus_gvalue_utils_test.
4000         
4001         * glib/dbus-gtest.h: Prototype it.
4002
4003         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4004         using uninitialized owner_list.
4005         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4006         public API.
4007         (dbus_g_proxy_end_call_internal): Update to use error set
4008         from dbus_gvalue_demarshal instead of setting it here.
4009         (dbus_g_proxy_begin_call): Move return_if_fail here.
4010
4011         * glib/dbus-gobject.c (write_interface): Update for
4012         dbus_gtype_to_signature returning new string.
4013
4014         * configure.in: Add glib/examples/statemachine.
4015
4016 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4017
4018         * configure.in: Add a configure option, --with-console-auth-dir
4019         
4020         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4021         new setting.  Patch from Kay Sievers.
4022
4023 2005-07-06  Colin Walters  <walters@verbum.org>
4024
4025         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4026         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4027         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4028         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4029         Delete in favor of dbus_g_proxy_begin_call and
4030         dbus_g_proxy_cancel_call.
4031         (DBusGProxyCall, DBusGProxyCallNotify): New.
4032         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4033         data, and destroy function.  This replaces
4034         dbus_g_pending_call_set_notify.
4035         (dbus_g_proxy_cancel_call): Prototype.
4036         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4037
4038         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4039         pending_calls map.
4040         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4041         internal proxy for calls to the bus. Remove
4042         pending_nameowner_calls, now the internal proxy keeps track.
4043         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4044         pending_nameowner_calls.
4045         (got_name_owner_cb): Update prototype, and use
4046         dbus_g_proxy_end_call.
4047         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4048         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4049         favor of using internal proxy.
4050         (dbus_g_proxy_manager_unregister): Update to use
4051         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4052         (dbus_g_proxy_init): Initialize pending calls map.
4053         (dbus_g_proxy_constructor): New.
4054         (dbus_g_proxy_class_init): Add get/set property functions,
4055         constructor, and add NAME, PATH, and INTERFACE properties.
4056         (cancel_pending_call): New function.
4057         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4058         cancel them.
4059         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4060         (GPendingNotifyClosure): New structure.
4061         (d_pending_call_notify, d_pending_call_free): Moved here from
4062         dbus-glib.c.
4063         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4064         ordering.
4065         (manager_begin_bus_call): New internal function for talking to
4066         internal bus proxy.
4067         (dbus_g_proxy_new): Construct object using GObjet properties.
4068         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4069         Create closure of same, and insert call into map of pending calls.
4070         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4071         call.  Look up pending call in current set.  Remove it when we've
4072         completed.
4073         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4074         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4075         and destroy function directly.
4076         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4077         (dbus_g_proxy_call): Invoke with NULL callback.
4078         (dbus_g_proxy_cancel_call): New function, replaces
4079         dbus_g_pending_call_cancel.
4080
4081         * glib/dbus-gparser.c (validate_signature): Fix call to
4082         dbus_set_g_error.
4083
4084         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4085         New quark for attaching metadata to GType.
4086         (info_hash): Delete.
4087         (lookup_object_info): Look up using quark.
4088         (dbus_g_object_type_install_info): Check that a type is classed,
4089         not that it's an object.  Also just install type data using quark
4090         instead of using global hash.
4091
4092         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4093         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4094         (GPendingNotifyClosure): Delete.
4095         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4096         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4097
4098         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4099         client method generation until we can fix it...
4100         
4101         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4102         (load_from_service_thread_func): Ditto.
4103
4104         * tools/dbus-names-model.c (struct NamesModel): Hold
4105         DBusGProxyCall.
4106         (have_names_notify): Update prototype, use
4107         dbus_g_proxy_cancel_call.
4108         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4109
4110         * tools/dbus-monitor.c (filter_func): Update for print_message
4111         API change.
4112
4113         * test/glib/test-dbus-glib.c: Add more tests for async
4114         invocations.  Update many begin_call/end_call pairs to just use
4115         dbus_g_proxy_call.
4116
4117         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4118         allows us to dump print-introspect.c.
4119
4120         * tools/dbus-print-message.h (print_message): Add literal argument
4121         to print_message which is intended to allow printing arguments without
4122         metadata like "string=".
4123
4124         * tools/dbus-print-message.c (print_iter): Add literal argument.
4125         (print_message): Allow printing string messages literally.
4126
4127 2005-07-05  Colin Walters  <walters@verbum.org>
4128
4129         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4130         Remove value refcount leak, original patch from Jorn Baayen
4131         <jorn@openedhand.com>.  Also remove useless extra value in favor
4132         of prepending to value array directly.
4133
4134 2005-07-02  Colin Walters  <walters@verbum.org>
4135
4136         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4137
4138 2005-07-01  Colin Walters  <walters@verbum.org>
4139
4140         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4141         
4142         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4143         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4144         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4145         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4146
4147 2005-06-30  Colin Walters  <walters@verbum.org>
4148
4149         * test/glib/test-dbus-glib.c:
4150         * test/glib/test-service-glib.c:
4151         * test/glib/test-service-glib.xml: Update tests for new error
4152         setting bits, also add async tests (patch from Ross Burton).
4153
4154         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4155         DBUS_GLIB_THREADS_LIBS.
4156
4157         * glib/dbus-gproxy.c (get_name_owner)
4158         (dbus_g_pending_call_end_valist): Ditto.
4159
4160         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4161         domain (GQuark) to DBusGErrorInfo.  
4162         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4163         quark in error_metadata.  Take message interface as default
4164         error message interface.
4165         (gerror_to_dbus_error_message): Pass message interface.
4166         (dbus_set_g_error): Resurrected.
4167         (dbus_g_error_info_free): New function.
4168         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4169         of _peek to actually create the object class if it hasn't been
4170         created yet.
4171         (dbus_g_error_domain_register): New function.
4172
4173         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4174
4175         * glib/dbus-gparser.c (validate_signature): Ditto.
4176
4177         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4178         (dbus_g_error_domain_register): Prototype.
4179
4180         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4181         Update tests.
4182
4183 2005-06-29  Colin Walters  <walters@verbum.org>
4184
4185         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4186         DBUS_TYPE_G_OBJECT_PATH.
4187
4188         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4189         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4190         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4191         (dbus_g_object_path_get_g_type): New function.
4192         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4193         to DBUS_TYPE_G_OBJECT_PATH by default.
4194         (demarshal_proxy): Remove unused name variable.
4195         (demarshal_object_path, marshal_object_path): New functions.
4196         (demarshal_proxy_array, marshal_proxy_array): Delete.
4197         
4198         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4199         DBUS_TYPE_G_OBJECT_PATH to char *.
4200         (dbus_g_type_get_lookup_function): Map builtin
4201         DBUS_TYPE_G_OBJECT_PATH.
4202
4203         * test/glib/test-dbus-glib.c
4204         * test/glib/test-service-glib.c (my_object_objpath): 
4205         Adapt tests to new object path marshalling.
4206
4207 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4208
4209         * configure.in: force check for Python >= 2.4
4210
4211 2005-06-29  Colin Walters  <walters@verbum.org>
4212         
4213         Patch from Ross Burton <ross@openedhand.com>
4214         
4215         * glib/dbus-gobject.c (invoke_object_method): Unset object
4216         value in all cases, not only in async case.
4217
4218 2005-06-29  Colin Walters  <walters@verbum.org>
4219
4220         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4221         name_call for keeping track of any outgoing GetNameOwner call.
4222         Also add for_owner and associated.
4223         (struct _DBusGProxyManager): Add owner_names, which is hash table
4224         that maps a base name to a list of names it owns (that we're
4225         interested in).  Add pending_nameowner_calls which is a list of
4226         all outstanding GetNameOwner; avoids us having to iterate over
4227         every proxy.  Add unassociated_proxies which keeps track of name
4228         proxies with no associated name owner.
4229         (dbus_g_proxy_manager_unref): Destroy owner_names.
4230         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4231         name refcounts.
4232         (find_name_in_info, name_owner_foreach)
4233         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4234         (dbus_g_proxy_manager_monitor_name_owner)
4235         (dbus_g_proxy_manager_unmonitor_name_owner)
4236         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4237         New functions; they manipulate the owner_names mapping.
4238         (got_name_owner_cb): New function.
4239         (get_name_owner): New function, extracted from
4240         dbus_g_proxy_new_for_name_owner.
4241         (dbus_g_proxy_manager_register): For now we need to keep track of
4242         all NameOwnerChanged.  Also if the proxy is for a name, if we
4243         don't already know the name owner, queue a new GetNameOwner
4244         request and add it to our list of unassociated proxies.  Otherwise
4245         inc the refcount.
4246         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4247         cancel any pending GetNameOwner call, etc.
4248         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4249         the owner_names mapping to look up the current names for the
4250         signal source, and dispatch to any proxies for that name.
4251         (dbus_g_proxy_new): Initialize new members.
4252         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4253         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4254         (dbus_g_pending_call_end_valist): New function, extracted from
4255         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4256         but want to use the GLib infrastructure.  Also note how many
4257         arguments in reply were over.
4258         (dbus_g_pending_call_end): New function, just call
4259         dbus_g_pending_call_end_valist.
4260         (dbus_g_proxy_end_call_internal): Just call
4261         dbus_g_pending_call_end_valist.
4262
4263         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4264         of builtin marshaller for STRING_STRING_STRING.
4265
4266         * test/glib/test-dbus-glib.c: 
4267         * test/glib/test-service-glib.c:
4268         * test/glib/test-service-glib.xml:
4269         Extend tests to cover name proxies, destruction of owner proxies,
4270         etc.
4271         
4272         * glib/examples/example-signal-recipient.c
4273         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4274         
4275         * tools/dbus-send.c (main): Print D-BUS error name in addition
4276         to message.
4277
4278 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4279
4280         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4281         cmessage_function_handler): Patch from 
4282         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4283         by using the Py_GILState_Ensure/Release to synchronize with the
4284         python runtime.
4285         
4286 2005-06-28  Ray Strode  <rstrode@redhat.com>
4287
4288         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4289         babysitter helper process on last unref, bug #2813.
4290
4291 2005-06-27  Colin Walters  <walters@verbum.org>
4292
4293         * test/glib/test-dbus-glib.c: 
4294         * test/glib/test-service-glib.c:
4295         * test/glib/test-service-glib.xml:
4296         Test hash table signal emitting.
4297
4298         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4299         types to their fundamental basis types, since this is what
4300         marshallers operate on.  Also add an entry for VOID__BOXED.
4301         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4302
4303 2005-06-26  Havoc Pennington  <hp@redhat.com>
4304
4305         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4306         from Don Park
4307
4308 2005-06-26  Colin Walters  <walters@verbum.org>
4309
4310         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4311         (dbus_g_error_set): New public function from its ashes; used by
4312         both service-side method implementation and GLib bindings
4313         internals.
4314         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4315         (_dbus_glib_test): Add some tests.
4316
4317         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4318
4319         * test/glib/test-service-glib.c (my_object_throw_error): Use
4320         dbus_g_error_set.
4321
4322         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4323         errors thrown by dbus_g_error_set.
4324
4325         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4326
4327         * glib/dbus-gparser.c (validate_signature): Ditto.
4328
4329         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4330         (dbus_g_proxy_end_call_internal): Ditto.
4331
4332         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4333         converts DBUS_ERROR_x to DBUS_GERROR_x.
4334         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4335
4336         * doc/TODO: Remove error TODO.
4337
4338         * doc/dbus-tutorial.xml: Update with documentation about error
4339         handling.
4340
4341         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4342         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4343         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4344
4345 2005-06-22  Colin Walters  <walters@verbum.org>
4346         
4347         Patch from Ross Burton <ross@openedhand.com>
4348
4349         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4350
4351 2005-06-20  Colin Walters  <walters@verbum.org>
4352
4353         * configure.in: Add glib/examples.
4354
4355         * glib/Makefile.am: Add examples/
4356
4357         * glib/examples/.cvsignore
4358         * glib/examples/Makefile.am
4359         * glib/examples/example-client.c
4360         * glib/examples/example-service.c
4361         * glib/examples/example-service.xml
4362         * glib/examples/example-signal-emitter.c
4363         * glib/examples/example-signal-emitter.xml
4364         * glib/examples/example-signal-recipient.c:
4365         New files; GLib binding examples, ported from
4366         python/examples.
4367
4368 2005-06-20  Colin Walters  <walters@verbum.org>
4369
4370         * dbus/dbus-glib.h: 
4371         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4372         dbus_g_proxy_call.
4373
4374         * glib/dbus-binding-tool-glib.c: 
4375         * doc/dbus-tutorial.xml: 
4376         * test/glib/test-dbus-glib.c: Update for rename.
4377         
4378 2005-06-20  Colin Walters  <walters@verbum.org>
4379
4380         Patch suggested by Ross Burton <ross@openedhand.com>
4381
4382         * glib/dbus-gobject.c (export_signals): Free signal name.
4383         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4384         memory leak.  Add a bit of documentation.
4385         (dbus_g_method_return_error): Free context, and note we do
4386         so.
4387
4388 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4389
4390         * dbus/dbus-glib.h:
4391         * glib/dbus-gobject.c:
4392         * glib/dbus-gproxy.c:
4393         * glib/dbus-gvalue.c: Predeclare structs as 
4394         typedef struct _Something Something instead of 
4395         typedef struct Something Something, so we can 
4396         redeclare the prototypes. Other GNOME libraries 
4397         do this already.
4398
4399 2005-06-17  Colin Walters  <walters@verbum.org>
4400
4401         * tools/dbus-names-model.c (have_names_notify): Fix call
4402         to dbus_g_proxy_end_call.
4403         
4404 2005-06-17  Colin Walters  <walters@verbum.org>
4405
4406         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4407         spew warnings if we get malformed remote signals.
4408
4409         * glib/dbus-gobject.c (propsig_iterate): New function.
4410         (lookup_object_info): New function, extracted from
4411         lookup_object_and_method.
4412         (introspect_properties, introspect_signals): Delete; these
4413         are merged into write_interface.
4414         (write_interface): Write out signals and properties here;
4415         dump the org.gtk.object stuff and use the interface given
4416         in the introspection data blob.  Also fix up property XML.
4417         (lookup_values): New function.
4418         (introspect_interfaces): Gather a mapping from interface to a
4419         list of its methods, signals, and properties, then write out
4420         each interface.
4421         (lookup_object_and_method): Use lookup_object_info.
4422         (struct DBusGSignalClosure): Add interface.
4423         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4424         we can just use the constant data.
4425         (dbus_g_signal_closure_finalize): Don't free signal name.
4426         (signal_emitter_marshaller): Use interface from signal closure.
4427         (export_signals): Only export signals mentioned in introspection
4428         blob.
4429         (dbus_g_connection_register_g_object): Warn if we have no
4430         introspection data for an object.
4431         (funcsig_equal): Remove unused variable.
4432         (dbus_g_object_register_marshaller): Take varargs instead of
4433         list.
4434         (dbus_g_object_register_marshaller_array): New function,
4435         extracted from old dbus_g_object_register_marshaller.
4436
4437         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4438         signals and property data.
4439         (write_quoted_string): New function, extracted from generate_glue.
4440         (generate_glue): Write signals and properties to introspection
4441         blob.
4442
4443         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4444         exported_signals and exported_properties.
4445         (dbus_g_object_register_marshaller): Update prototype.
4446         (dbus_g_object_register_marshaller_array): Prototype.
4447         
4448         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4449
4450         * test/glib/test-service-glib.c: Add new test signals and method
4451         to emit them.
4452
4453         * test/glib/test-service-glib.xml: Add some test signals.
4454
4455         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4456         and my-object-marshal.h
4457         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4458         my-object-marshal.c.
4459         (my-object-marshal.c, my-object-marshal.h): Implement.
4460
4461         * test/glib/.cvsignore: Update.
4462
4463         * doc/TODO: Remove two GLib TODO items fixed by this
4464         patch.
4465
4466 2005-06-16  Colin Walters  <walters@verbum.org>
4467
4468         * doc/TODO: Update for GLib bindings.
4469         
4470 2005-06-16  Colin Walters  <walters@verbum.org>
4471
4472         * glib/dbus-binding-tool-glib.c:
4473         * glib/dbus-gobject.c:
4474         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4475         from Ross Burton, for his GLib bindings work.
4476
4477 2005-06-16  Colin Walters  <walters@verbum.org>
4478
4479         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4480         to iterate instead of walking to G_TYPE_INVALID.
4481
4482         Patch based on a patch from Ryan Gammon.
4483
4484 2005-06-16  Colin Walters  <walters@verbum.org>
4485
4486         * bus/bus.c (bus_context_new): Set parser to NULL
4487         after we unref it (Patch from Chris Boscolo, #2174).
4488         
4489 2005-06-16  Colin Walters  <walters@verbum.org>
4490
4491         * python/dbus_bindings.pyx.in: Import size_t,
4492         __int64_t, __uint64_t, and __signed.
4493
4494         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4495         Define cmsg struct, output it.
4496         (_dbus_read_credentials_unix_socket):
4497         Use cmsg struct.
4498         
4499         Patch from Joe Markus Clarke for FreeBSD support.
4500         
4501 2005-06-16  Colin Walters  <walters@verbum.org>
4502
4503         * tools/dbus-send.c (append_array): Use strtok.
4504         (append_dict): New function.
4505         (type_from_name): New function, extracted from main.
4506         (main): Handle sending dicts.
4507
4508         * tools/dbus-print-message.c (print_iter): Print dict
4509         entries.
4510         
4511 2005-06-16  Colin Walters  <walters@verbum.org>
4512
4513         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4514         values as the empty string (#2948).
4515         
4516 2005-06-16  Colin Walters  <walters@verbum.org>
4517
4518         * dbus/Makefile.am:
4519         * mono/doc/Makefile.am:
4520         * test/glib/Makefile.am:
4521
4522         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4523
4524 2005-06-16  Colin Walters  <walters@verbum.org>
4525
4526         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4527         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4528
4529         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4530         Increment pointer after swapping fixed array.  Add assertion
4531         for array length.
4532                 
4533 2005-06-15  Colin Walters  <walters@verbum.org>
4534
4535         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4536         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4537         
4538 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4539
4540         * NEWS: Update to 0.34
4541
4542 2005-06-15  David Zeuthen  <davidz@redhat.com>
4543
4544         * configure.in (LT_CURRENT): Revert back to 1 as the library
4545         hasn't changed and we've certainly not committed to protocol
4546         stability yet.  All this does is to break ABI. See commit note
4547         from hp@redhat.com 2005-05-05 for details.
4548         
4549 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4550
4551         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4552         (_dbus_connection_run_builtin_filters): New method
4553         (dbus_connection_dispatch): Run the builtin filters which in turn
4554         runs the peer filter which handles Ping messages.
4555
4556         * doc/TODO: 
4557          - Ping isn't handled: This patch fixes it
4558          
4559          - Add a test case for the Ping message: added TODO item
4560
4561 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4562
4563         * dbus/dbus-message.c:
4564         (dbus_message_has_path): New method
4565         (dbus_message_has_interface): New method
4566         (dbus_message_has_member): New method
4567
4568         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4569         New method
4570
4571         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4572         the keyring directory is private to the user
4573
4574         * doc/TODO:
4575          - The convenience functions in dbus-bus.h should perhaps have
4576          the signatures that they would have if they were autogenerated
4577          stubs. e.g. the acquire service function. We should also evaluate
4578          which of these functions to include, in light of the fact that
4579          GLib/Qt native stubs will probably also exist.: Punted
4580
4581          - add dbus_message_has_path(), maybe has_member/interface:
4582          fixed in this patch
4583
4584          - in dbus-keyring.c, enforce that the keyring dir is not
4585          world readable/writable: Fixed in this patch
4586
4587 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4588
4589         * dbus/dbus-marshal-validate.h: Added a new validation
4590         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4591         out of memory errors when validating signitures
4592
4593         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4594         in places where we previously used DBUS_VALID and a FALSE return 
4595         value to indicate OOM
4596         
4597         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4598         Use a stack to track the number of elements inside containers.  The 
4599         stack values are then used to validate that dict entries have only two
4600         elements within them.
4601         (validate_body_helper): check the reason for failure when validating
4602         varients
4603         
4604         * dbus/dbus-message.c (load_message): use 
4605         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4606         DBUS_VALID and a FALSE return value to indicate OOM
4607
4608         * doc/TODO: remove "- validate dict entry number of fields" as this
4609         patch fixes it
4610
4611 2005-06-14  David Zeuthen  <davidz@redhat.com>
4612
4613         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4614         watches (if applicable) and add new watches
4615
4616         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4617         (main): Setup SIGIO signal handler if using D_NOTIFY
4618
4619         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4620
4621         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4622         (merge_included): Also merge conf_dirs list
4623         (bus_config_parser_unref): Clear conf_dirs list
4624         (include_dir): Add directory to conf_dirs list
4625         (bus_config_parser_get_conf_dirs): New function
4626
4627         * bus/dir-watch.[ch]: New files
4628
4629         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4630
4631         * configure.in: Add checks for D_NOTIFY on Linux
4632
4633 2005-06-14  Colin Walters  <walters@verbum.org>
4634
4635         * glib/dbus-binding-tool-glib.c:
4636         * glib/dbus-gobject.c:
4637         * glib/dbus-gvalue.c: Fix indentation and brace style.
4638         
4639 2005-06-14  Ross Burton <ross@openedhand.com>.
4640
4641         * glib/dbus-glib.h: Make DBusGMethodInvocation
4642         a private structure.  Rearrange prototypes a bit.
4643         
4644         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4645         documentation for first_arg_type.
4646         
4647         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4648         here, add documentation.  Move dbus_g_method_return
4649         and dbus_g_method_return_error into public API
4650         section.
4651
4652 2005-06-14  Colin Walters  <walters@verbum.org>
4653
4654         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4655         Add missing return statements, noticed by Ross Burton.
4656         
4657 2005-06-13  Ross Burton <ross@openedhand.com>.
4658
4659         * glib/dbus-gobject.c: Handle errors on message
4660         demarshalling by sending error message back.
4661         * glib/dbus-gvalue.c: Initialize return variables.
4662
4663 2005-06-13  Colin Walters  <walters@verbum.org>
4664
4665         * glib/Makefile.am: Fix thinko in last patch.
4666
4667 2005-06-13  Colin Walters  <walters@verbum.org>
4668
4669         * glib/Makefile.am: Move dbus-gtype-specialized.c
4670         and dbus-gtype-specialized.h into a _HEADERS variable,
4671         install them.
4672
4673 2005-06-12  Colin Walters  <walters@verbum.org>
4674
4675         Async signals and various bugfixes and testing by
4676         Ross Burton <ross@openedhand.com>.
4677
4678         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4679         (dbus_gvalue_genmarshal_name_from_type)
4680         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4681         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4682         (dbus_g_value_types_init, dbus_gtype_from_signature)
4683         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4684         (dbus_gtypes_from_arg_signature): New function prototypes.
4685         (dbus_gvalue_demarshal): Take context and error arguments.
4686         (dbus_gvalue_demarshal_variant): New function.
4687         (dbus_gvalue_demarshal_message): New function.
4688         (dbus_gvalue_store): Delete.
4689
4690         * glib/dbus-gvalue.c:
4691
4692         File has been almost entirely rewritten; now we special-case
4693         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4694         hash tables correctly, etc.  Full support for recursive values
4695         is not yet complete.
4696
4697         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4698         argument of signal to G_TYPE_POINTER since we now pass a
4699         structure.
4700         (lookup_g_marshaller): Delete in favor of
4701         _dbus_gobject_lookup_marshaller.
4702         (marshal_dbus_message_to_g_marshaller): Use
4703         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4704         to handle remote signal callbacks.
4705         (dbus_g_proxy_new_from_proxy): New function; creates a new
4706         DBusGProxy by copying an existing one.
4707         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4708         (dbus_g_proxy_get_path): New functions.
4709         (dbus_g_proxy_marshal_args_to_message): New function;
4710         factored out of existing code.
4711         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4712         from a varargs array.
4713         (dbus_g_proxy_begin_call_internal): New function.
4714         (dbus_g_proxy_end_call_internal): New function.
4715         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4716         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4717         after collecting args into value array.
4718         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4719         invoke dbus_g_proxy_end_call_internal.
4720         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4721         end_call_internal.
4722         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4723         types.
4724         (array_free_all): New function.
4725         (dbus_g_proxy_add_signal): Take GTypes.
4726
4727         * glib/dbus-gobject.h:
4728         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4729         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4730         Prototype.
4731
4732         * glib/dbus-gobject.c: Add a global marshal_table hash which
4733         stores mappings from type signatures to marshallers.  Change lots
4734         of invocations of dbus_gtype_to_dbus_type to
4735         dbus_gtype_to_signature.
4736         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4737         (introspect_signals): Fix test for query.return_type.
4738         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4739         (invoke_object_method): Many changes.  Handle asynchronous
4740         invocations.  Convert arguments with
4741         dbus_gvalue_demarshal_message.  Handle errors.  Use
4742         DBusSignatureIter instead of strlen on args. Handle all arguments
4743         generically.  Special-case variants.
4744         (dbus_g_method_return, dbus_g_method_return_error): New function.
4745         (DBusGSignalClosure): New structure, closes over signal
4746         information.
4747         (dbus_g_signal_closure_new): New function.
4748         (dbus_g_signal_closure_finalize): New function.
4749         (signal_emitter_marshaller): New function; is special marshaller
4750         which emits signals on bus.
4751         (export_signals): New function; introspects object signals and
4752         connects to them.
4753         (dbus_g_object_type_install_info): Take GType instead of
4754         GObjectClass.
4755         (dbus_g_connection_register_g_object): Invoke export_signals.
4756         (dbus_g_connection_lookup_g_object): New function.
4757         (DBusGFuncSignature) New structure; used for mapping type
4758         signatures to marshallers.
4759         (funcsig_hash): New function; hashes DBusGFuncSignature.
4760         (funcsig_equal): New function; compares DBusGFuncSignature.
4761         (_dbus_gobject_lookup_marshaller): New function.
4762         (dbus_g_object_register_marshaller): New function; used to
4763         register a marshaller at runtime for a particular signature.
4764
4765         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4766
4767         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4768         which notes a server method implementation should be
4769         asynchronous.
4770
4771         * glib/dbus-binding-tool-glib.c
4772         (dbus_binding_tool_output_glib_server): Call
4773         dbus_g_value_types_init.
4774         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4775         variants specially.
4776         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4777         of a lookup function.
4778         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4779         (write_untyped_out_args): New method; write output arguments.
4780         (write_formal_declarations_for_direction): Function for
4781         writing prototypes.
4782         (write_formal_parameters_for_direction): Function for
4783         writing implementations.
4784         (write_typed_args_for_direction): Function for writing
4785         arguments prefixed with GTypes.
4786         (write_async_method_client): Write out async version
4787         of method.
4788
4789         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4790         (dbus_g_type_get_marshal_name): Move mapping from GType
4791         to marshal name into here.
4792         (dbus_g_type_get_c_name): Move into here.
4793         (compute_marshaller): Convert signature to type with
4794         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4795         (compute_marshaller_name): Ditto.
4796         (compute_marshaller): Handle async signal annotations.
4797         (gather_marshallers): Return if we don't have a known
4798         prefix.
4799         (generate_glue): Collect introspection blob here, and
4800         write all of the blob at the end.  This allows an object
4801         with multiple interfaces to work.
4802         Mark async methods in introspection blob.
4803
4804         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4805         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4806         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4807
4808         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4809         avoids people accidentally using DBUS_TYPE_* which should
4810         not be necessary anymore.
4811         Do include dbus-gtype-specialized.h, which are utilities
4812         for GLib container types.
4813         Add various #defines for types such as
4814         DBUS_TYPE_G_BOOLEAN_ARRAY.
4815         (DBusGValueIterator, DBusGValue): Define, not fully used
4816         yet.
4817         (dbus_g_value_get_g_type): Type for recursive value.
4818         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4819         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4820         (dbus_g_value_free): Prototypes.
4821         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4822         (dbus_g_proxy_set_interface): Prototype.
4823         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4824         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4825         types.
4826         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4827         Accessors.
4828         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4829         doing async invocations.
4830         (dbus_g_method_return, dbus_g_method_return_error):
4831         Prototypes.
4832         * doc/dbus-tutorial.xml: Update GLib section.
4833         
4834         * tools/dbus-viewer.c (load_child_nodes): Update
4835         for new invocation type of dbus_g_proxy_end_call.
4836         (load_from_service_thread_func): Ditto.
4837
4838         * tools/print-introspect.c (main): Ditto.
4839
4840         * tools/dbus-names-model.c (have_names_notify)
4841         (names_model_reload, names_model_set_connection)
4842         Use GTypes.
4843
4844         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4845         needed since Python bindings use GLib bindings.
4846
4847         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4848         Add --prefix argument.
4849
4850         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4851         unneeded --ignore-unsupported arg.
4852         
4853         * test/glib/test-service-glib.c: 
4854         * test/glib/test-service-glib.xml:
4855         * test/glib/test-dbus-glib.c: Add many more tests.
4856
4857 2005-06-06  David Zeuthen  <davidz@redhat.com>
4858
4859         * doc/TODO: Add item about need to remove deprecated functions.
4860
4861         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4862
4863         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4864         to repair the ABI which was broken with the last commit.
4865
4866 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4867
4868         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4869         (dbus_connection_disconnect): renamed to dbus_connection_close 
4870         for API symmetry with dbus_connection_open
4871         (_dbus_connection_open_internal): 
4872         s/dbus_connection_disconnect/dbus_connection_close
4873
4874         * dbus/dbus-bus.c (dbus_bus_get):
4875         s/dbus_connection_disconnect/dbus_connection_close
4876
4877         * bus/connection.c (bus_connections_unref, 
4878         bus_connections_setup_connection, bus_connections_expire_incomplete):
4879         s/dbus_connection_disconnect/dbus_connection_close
4880
4881         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4882         kill_client_connection_unchecked, check_hello_connection):
4883         s/dbus_connection_disconnect/dbus_connection_close
4884
4885         * bus/bus.c (new_connection_callback):
4886         s/dbus_connection_disconnect/dbus_connection_close
4887
4888         * tools/dbus-send.c (main):
4889         s/dbus_connection_disconnect/dbus_connection_close
4890
4891         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4892         s/dbus_connection_disconnect/dbus_connection_close
4893         
4894         * test/test-service.c (path_message_func, filter_func):
4895         s/dbus_connection_disconnect/dbus_connection_close
4896         
4897         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4898         
4899 2005-05-25  Colin Walters  <walters@verbum.org>
4900
4901         * dbus/dbus-protocol.h: Move various bus service #defines such
4902           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4903           dbus/dbus-shared.h.
4904         * dbus/dbus-shared.h: Various defines moved here.
4905         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4906
4907 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4908
4909         * python/__init__.py: Python bindings deserve a minor version
4910         update.  Upped to (0, 40, 2)
4911
4912 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4913
4914         * python/decorators.py: add explicitly_pass_message decorator
4915         for passing in the dbus message as keyword for edge case signal
4916         handling
4917
4918         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4919         to conform with what dbus expects for match rules
4920         (SignalMatchRule.execute): add the dbus message as a keyword
4921         if the signal handler has requested it
4922
4923         * python/examples/example/signal-recipient.py: added some more
4924         examples on how to hook up to signals
4925
4926 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4927
4928         * python/decorators.py: import dbus_bindings
4929
4930         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4931         SignalMatchNode): new classes that implement wildcard signal
4932         callback matching using a tree lookup. Heavily modified from a
4933         patch sent by Celso Pinto (fd.o bug #3241)
4934
4935         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4936         use new match classes to handle signals.
4937
4938 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4939         
4940         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4941
4942 2005-05-18  Havoc Pennington  <hp@redhat.com>
4943
4944         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4945         gettext. Not really worth requiring yet perhaps, but any
4946         production quality 1.0 would require it so we should go ahead and
4947         get things set up. We do have a couple token calls to
4948         bindtextdomain in the code already.
4949
4950 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4951
4952         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4953         when using recursive g_main_loops
4954
4955         * python/_dbus.py (class Bus): add the ProxyObjectClass
4956         alias for ProxyObject to make it easier for the Twisted 
4957         networking framework to integrate dbus.
4958
4959         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4960         alias for ProxyMethod to make it easier for the Twisted 
4961         networking framework to integrate dbus. 
4962
4963 2005-05-11  Ross Burton  <ross@openedhand.com>
4964
4965         * glib/dbus-glib-tool.c: Add --prefix argument.
4966         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4967         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4968         Add prefix argument.
4969         (generate_glue): Pass prefix argument down.
4970         (dbus_binding_tool_output_glib_server): Pass prefix to
4971         glib-genmarshal.
4972         
4973 2005-05-11  Colin Walters  <walters@verbum.org>
4974
4975         * tools/dbus-send.c (append_array): New function.
4976         (append_arg): Broken out from main.
4977         (main): Add cheesy hack to send arrays and variants.
4978         (usage): Update.
4979         * tools/dbus-print-message.c (print_iter): Broken out
4980         from main.
4981
4982 2005-05-11  Colin Walters  <walters@verbum.org>
4983
4984         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4985         New function, returns signature string for signature iter.
4986         * dbus/dbus-signature.h: Prototype it.
4987         * dbus/dbus-message.c (dbus_message_iter_get_signature):
4988         New function, returns signature string for message iter.
4989         (dbus_message_iter_get_array_len): New function, returns
4990         length of array.
4991         (dbus_message_iter_get_fixed_array): Fix assertion; this
4992         function should be used when the iter is pointing to the
4993         contents of an array
4994         * dbus/dbus-message.h: Prototypes.
4995         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
4996         New function; returns length of an array.
4997         * dbus/dbus-marshal-recursive.h: Prototype it.
4998         
4999 2005-05-11  Colin Walters  <walters@verbum.org>
5000
5001         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5002         compilation error.
5003         
5004 2005-05-08  Havoc Pennington  <hp@redhat.com>
5005
5006         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5007         daemon's pid, not the parent's pid, to the file descriptor.
5008         Reported by Taj Morton.
5009
5010 2005-05-05  Havoc Pennington  <hp@redhat.com>
5011
5012         * configure.in (LT_*): add notes on how the libtool versioning
5013         works to save thinking. Increment soname to indicate protocol
5014         breakage (though really the library interface hasn't changed I
5015         guess)
5016
5017         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5018         verify the GUID received from server matches what we were
5019         expecting, if we had an expectation
5020
5021         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5022         (_dbus_auth_get_guid_from_server): new function
5023         (send_begin): parse the OK args
5024
5025         * doc/dbus-specification.xml: add GUID to the auth protocol
5026
5027 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5028
5029         * Fix my name in previous changelog ;)
5030
5031         * python/proxies.py (ProxyObject.__getattr__): add further patch
5032         from Anthony Baxter to throw an AttributeError when python 
5033         __special__ functions are called instead of marshling them over 
5034         the bus (Bug#1685 comment 3).
5035
5036 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5037
5038         * python/Makefile.am: changed to use pyexecdir for the binding
5039         shared libraries (Bug#2494)
5040
5041         * python/exceptions.py: bring exceptions over from the bindings
5042         so they can be used in applications (Bug#2036)
5043         Make all exceptions derive from DBusException
5044
5045         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5046         of classes so that print obj doesn't throw an exception (Bug #1685)
5047
5048 2005-05-03  Ross Burton  <ross@openedhand.com>
5049
5050         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5051         Return if we get an error during registration.  Set up a
5052         weak reference on object to unregister if object is destroyed.
5053         (unregister_gobject): New function.
5054         
5055 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5056
5057         * python/dbus_bindings.pyx.in: 
5058         - added new type classes for hinting to the marashaler what type 
5059         to send over the wire
5060         - added int16 and uint16 marshalers
5061         - Fixed a bug in the type constants that caused int32 to go out
5062         as uint16 over the wire
5063         * python/dbus.py: split up into different files and renamed _dbus.py
5064         * python/__init__.py, python/_util.py, python/decorators.py, 
5065         python/exceptions.py, python/proxies.py, python/services.py,
5066         python/types.py: new files split off from dbus.py
5067         * python/Makefile.am: Add new files, remove dbus.py and 
5068         install all python files to <python module dir>/dbus
5069         * python/examples/*: Added #!/usr/bin/env python to the top of
5070         every example.  Patch provided by Tatavarty Kalyan
5071
5072 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5073
5074         * NEWS: Update to 0.33
5075
5076 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5077
5078         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5079         method for doing async calls
5080         (_pending_call_notification): New C function for handling pendning call
5081         callbacks
5082         (set_notify): New method for setting pending call notification
5083         
5084         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5085         Async capabilities added to remote method calls
5086         (Sender): class removed
5087         (RemoteService): class removed
5088         (ObjectTree): class removed for now
5089         (RemoteObject): Renamed to ProxyObject
5090         (RemoteMethod): Renamed to ProxyMethod
5091         (method): Decorator added for decorating python methods as dbus methods
5092         (signal): Decorator added for decorating python methods as signal emitters
5093         (ObjectType): Metaclass added for generating introspection data and the
5094         method callback vtable
5095         (Interface): Wrapper class added to wrap objects in a dbus interface
5096         (Object): Uses ObjectType as its metaclass and exports Introspect
5097         of the org.freedesktop.DBus.Introspectable interface
5098         (ValidationException, UnknownMethodException): new exceptions
5099
5100         * python/examples/*: Modified to fit with the new bindings
5101
5102 2005-04-23  Havoc Pennington  <hp@redhat.com>
5103
5104         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5105         reported by Tony Houghton
5106
5107         * test/test-service.c (main): test
5108         dbus_connection_get_object_path_data()
5109
5110         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5111         the exact_match
5112         (_dbus_object_tree_get_user_data_unlocked): new function used by
5113         dbus_connection_get_object_path_data()
5114         (do_register): add assertion test for get_user_data_unlocked
5115         (object_tree_test_iteration): more tests
5116
5117         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5118         new function from Dan Reed to let you get the user data from 
5119         dbus_connection_register_object_path()
5120
5121 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5122
5123         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5124         in numerous places that did not account for the NULL terminator
5125         (signature_from_seed): changed the manual string copy loop to 
5126         just use strcpy instead
5127         make check should now pass
5128
5129 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5130
5131         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5132         so that it allows messages that are not signals to pass in 
5133         NULL as the interface.
5134
5135 2005-04-18  David Zeuthen  <davidz@redhat.com>
5136
5137         * glib/dbus-gmain.c (io_handler_destroy_source): 
5138         (timeout_handler_destroy_source, connection_setup_free): 
5139         Also unref the source to avoid memory leaks.
5140
5141 2005-04-13  David Zeuthen  <davidz@redhat.com>
5142
5143         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5144         more reasonable, yet still totally arbitrary, value :-). 
5145
5146 2005-04-13  David Zeuthen  <davidz@redhat.com>
5147
5148         * doc/TODO: Added an "important for 1.0" item about selinux
5149         allow/deny messages
5150
5151 2005-04-13  David Zeuthen  <davidz@redhat.com>
5152
5153         * bus/selinux.c: Add c-file-style to top of file
5154         (log_audit_callback): Don't free the data here anymore
5155         (bus_selinux_check): Don't take spid and tpid since appending
5156         that to auxdata may OOM.
5157         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5158         to the caller if we are OOM by taking an error object.
5159         (bus_selinux_allows_send): -do-
5160
5161         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5162         and bus_selinux_allows_send
5163
5164         * bus/bus.c (bus_context_check_security_policy): Pass error and
5165         pass on OOM thrown by bus_selinux_allows_send()
5166
5167         * bus/services.c (bus_registry_acquire_service): Pass error and
5168         pass on OOM thrown by bus_selinux_allows_acquire_service()
5169
5170 2005-04-13  Havoc Pennington  <hp@redhat.com>
5171
5172         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5173         message at a time to avoid monopolizing the main loop, bug 
5174         #2953 from Benjamin Otte
5175
5176 2005-04-09  Havoc Pennington  <hp@redhat.com>
5177
5178         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5179         possible overlap, fix from Daniel Reed
5180         (fixup_alignment): fix signedness warnings
5181         (_dbus_string_append_unichar): ditto
5182
5183 2005-04-09  Havoc Pennington  <hp@redhat.com>
5184
5185         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5186
5187         * glib/dbus-glib-tool.c (main): fix warning
5188
5189         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5190
5191         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5192         add a new function that can be used in simple applications that
5193         don't have a main loop and are willing to block
5194
5195 2005-04-05  David Zeuthen  <davidz@redhat.com>
5196
5197         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5198
5199         * glib/dbus-gmain.c:
5200         (io_handler_destroy_source): Remove from list of IO handlers
5201         of the ConnectionSetup object
5202         (timeout_handler_destroy_source): -do- for timeout handlers
5203         (io_handler_source_finalized): Don't remove from list since
5204         we now do that in io_handler_destroy_source(). Renamed from
5205         io_handler_source_destroyed
5206         (timeout_handler_source_destroyed): -do- for timeout handlers
5207         (connection_setup_free): It is now safe to iterate over all
5208         IO and timeout handlers as the _destroy_source removes them
5209         from the list synchronously
5210
5211 2005-03-30  Havoc Pennington  <hp@redhat.com>
5212
5213         * configure.in: change check to gtk 2.4
5214
5215         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5216         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5217         to 2.4
5218
5219 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5220
5221         * News: Update 0.32
5222
5223         * HACKING: Fixed realease instructions.  configure.in should be updated to
5224           the next release by the person who made the last release.
5225
5226 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5227
5228         * python/lvalue_cast_post_process.py - removed.  Patch has been
5229           submitted to Pyrex maintainers that fixes gcc4.0 errors
5230
5231         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5232
5233 2005-03-24  Daniel Reed  <n@ml.org>
5234
5235         * tools/Makefile.am: Make print-introspect and
5236         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5237
5238 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5239
5240         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5241
5242         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5243           had in Red Hat packages for a while but for some reason never 
5244           got merged upstream
5245           (_dbus_is_a_number): New checks if a string
5246           can be converted to a number and does the conversion if it can
5247           (_dbus_user_database_lookup): Add check to see if the given username
5248           is a udi.  This allows udi's to be used instead of usernames in the
5249           config file.
5250           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5251           is a gdi.  This allows gdi's to be used instead of groupnames in the
5252           config file.
5253
5254 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5255
5256         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5257           code so that it compiles with gcc4.0
5258
5259         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5260           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5261           results back to dbus_binding.c
5262
5263 2005-03-20  Colin Walters  <walters@verbum.org>
5264
5265         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5266
5267         * configure.in: Require GTK+ 2.6.
5268         
5269 2005-03-20  Colin Walters  <walters@verbum.org>
5270
5271         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5272
5273 2005-03-17  Tom Parker  <palfrey@tevp.net>
5274
5275         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5276         print DBUS_UID_UNSET; instead print passed username.  Also
5277         be sure to actually use gid looked up in cache.
5278         
5279         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5280         for DBUS_GID_UNSET and groupname.
5281
5282 2005-03-17  Colin Walters  <walters@verbum.org>
5283
5284         * bus/print-introspect.c: Move to tools/.
5285         * bus/run-with-tmp-session-bus.sh: Ditto.
5286         
5287         * glib/Makefile.am (dbus-glib-bindings.h): Move
5288         generation to tools/Makefile.am.
5289
5290         * test/glib/run-test.sh: Update to handle move
5291         of run-with-tmp-session-bus.sh.
5292
5293         * test/glib/test-service-glib.c: Update to handle
5294         move of dbus-glib-bindings.h.
5295
5296         * tools/print-introspect.c: Moved here
5297         from bus/, and ported to GLib bindings.
5298
5299         * tools/run-with-tmp-session-bus.sh: Moved here
5300         from bus/.
5301
5302         * tools/Makefile.am: Generate dbus-glib-bindings.h
5303         and dbus-bus-introspect.xml here.
5304
5305         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5306         Update.
5307
5308 2005-03-17  Colin Walters  <walters@verbum.org>
5309
5310         * bus/driver.c (write_args_for_direction): Use
5311         _dbus_string_get_const_data to retrieve string;
5312         _dbus_string_get_const_data_len doesn't actually return
5313         a NULL-terminated substring.
5314
5315         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5316         (main): Change to use org_freedesktop_DBus_request_name
5317         instead of using g_proxy_begin_call/end_call.
5318
5319 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5320
5321         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5322         generating the finalizer.  Fixes from Ben Maurer.
5323
5324 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5325
5326         * mono/BusDriver.cs: Update method names: ListServices
5327         becomes ListNames; GetOwner becomes GetNameOwner.
5328
5329         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5330         onto the eval stack when removing the delegate.
5331
5332 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5333
5334         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5335         LT_CURRENT.  Set it to the autoconf variable.
5336                                                                                 
5337         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5338         classes that disconnects the signal handler delegate from the
5339         service object.  Fixes a big leak of proxy objects on the
5340         client side of things.  Patch from Ben Maurer
5341         <bmaurer@ximian.com>
5342
5343 2005-03-12  Colin Walters  <walters@verbum.org>
5344
5345         * bus/driver.c (write_args_for_direction): New function,
5346         parses a type signature into arguments and outputs to
5347         XML.
5348         (bus_driver_handle_introspect): Use it instead of
5349         hardcoding XML for certain signatures.
5350         
5351         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5352         dependency on dbus-daemon.
5353
5354         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5355         argument, pass it to dbus_binding_tool_output_glib_client.
5356
5357         * glib/dbus-binding-tool-glib.c
5358         (generate_client_glue): Protect against multiple inclusion.
5359         (dbus_binding_tool_output_glib_client): Add
5360         G_BEGIN_DECLS/G_END_DECLS.
5361
5362         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5363         Change to just take iface prefix directly.
5364         (write_formal_parameters): Clarify error message.
5365         (check_supported_parameters): New function; checks to see type
5366         signatures of method parameters are supported.
5367         (generate_client_glue): Handle ignore_unsupported flag.
5368         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5369         parameter.
5370
5371         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5372         --ignore-unsupported by default until glib bindings
5373         support arrays.
5374
5375 2005-03-11  Colin Walters  <walters@verbum.org>
5376
5377         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5378         install it.
5379
5380         * bus/print-introspect.c: New file; prints introspection
5381         data for a given name and object path.
5382
5383         * bus/run-with-tmp-session-bus.sh: New file, refactored
5384         from test/glib/run-test.sh.  Creates a temporary session
5385         bus and runs another program.
5386
5387         * test/glib/run-test.sh: Refactor to invoke
5388         run-with-tmp-session-bus.sh.
5389
5390         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5391         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5392         macros instead of hardcoding.
5393
5394         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5395
5396 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5397
5398         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5399         this unref; it doesn't match up evenly in some codepaths.
5400         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5401         this evenly matches with the ref near the top of this function.
5402
5403 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5404
5405         * dbus/dbus-object-tree.c
5406         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5407         and we try to unregister a path that's not registered, still go
5408         through the process of unlocking and don't just return.
5409
5410 2005-03-09  Colin Walters  <walters@verbum.org>
5411
5412         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5413         to this are generated for client-side wrappers.  Invokes a
5414         D-BUS method and returns reply values.  
5415
5416         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5417         function; writes signature string for argument direction.
5418         (write_args_for_direction): Change to pass input values directly
5419         instead of via address, and fix indentation.
5420         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5421         make generated wrappers inlineable.
5422
5423         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5424         note about using dbus_type_is_fixed.
5425
5426         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5427         dbus/dbus-signature.c as dbus_type_is_fixed.
5428
5429         All callers updated.
5430
5431         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5432         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5433
5434         * dbus/dbus-signature.h: Prototype.
5435
5436         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5437         error printf code.
5438
5439         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5440         appropriate instead of just freeing it.
5441         (main): Free returned strings using g_free.
5442
5443         * test/glib/Makefile.am (test-service-glib-glue.h)
5444         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5445
5446         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5447         simply maps a simple D-BUS type to GType.
5448         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5449         GType.
5450         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5451         initialize the value with it.
5452         (dbus_gvalue_binding_type_from_type): Unused, delete.
5453         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5454         various types instead of unmarshalling to value data directly.
5455         Remove can_convert boolean.
5456         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5457         returning directly instead of using can_convert boolean.
5458         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5459         Stores a GValue in a pointer to a value of its corresponding C
5460         type.
5461
5462         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5463         add dbus_gvalue_store.
5464
5465 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5466
5467         Fix a bunch of lifecycle and memory management problems
5468         in the mono bindings.
5469
5470         * mono/Arguments.cs (Arguments): Implement IDisposable
5471
5472         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5473         strictly a static class.
5474
5475         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5476         delegates into this file.
5477         (Connection): Implement IDisposable.
5478         (Dispose): Disconnect the connection and set the raw connection
5479         pointer to IntPtr.Zero.
5480         (~Connection): Call Dispose().
5481         (RegisterObjectPath): Added.  Manages the registration of object
5482         paths so we can cleanly disconnect them at dispose/finalize time.
5483         (UnregisterObjectPath): Ditto.
5484         (set_RawConnection): Unregister all of the object paths when
5485         changing the underlying DBusConnection.  Add them back onto the
5486         new connection, if any.
5487
5488         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5489         more unmanaged resources anymore, so it's not necessary.  Move all
5490         the DBusObjectPathVTable stuff out of here.
5491         (Handler): Save references to our delegates so that they don't get
5492         finalized.  Call Connection.RegisterObjectPath() instead of
5493         dbus_connection_register_object_path() directly.
5494         (Message_Called): Dispose the message after we're finished with
5495         it.
5496
5497         * mono/Message.cs (Message): Implement IDisposable.
5498         (Dispose): Dispose the Arguments, and set the RawMessage to
5499         IntPtr.Zero.
5500         (SendWithReplyAndBlock): We own the ref to the reply that comes
5501         back from dbus_connection_send_with_reply_and_block() so add a
5502         comment about that and unref it after we've constructed a managed
5503         MethodReturn class around it.  Fixes a big, big leak.
5504
5505         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5506         method.
5507         (BuildSignalHandler): After we've sent the Signal message, dispose
5508         of it.
5509         (BuildMethod): Dispose of the method call and reply messages after
5510         we've sent the message and extracted the data we want from the
5511         reply.
5512
5513         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5514         anymore.
5515         (Service_FilterCalled): Dispose of the message after we're
5516         finished with it.
5517
5518 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5519
5520         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5521         After we attach our pending call to the connection, unref
5522         it.  Fixes a leak.
5523  
5524         * mono/Connection.cs (set_RawConnection): Disconnect our
5525         filter and match callbacks from the old connection and
5526         reconnect them to the new connection, if any.
5527
5528         * mono/DBusType/Array.cs: "Code" is a static member, so
5529         don't use "this" to refer to it.  Fix for stricter checking
5530         in Mono 1.1.4.
5531  
5532         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5533         object path that we pass into unmanaged code.
5534  
5535         * mono/DBusType/String.cs (Append): Don't leak the string
5536         that we pass into unmanged code.
5537
5538 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5539         * NEWS: Update for 0.31
5540
5541         * configure.in: Release 0.31
5542         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5543
5544         * qt/Makefile.am: fixed build
5545
5546         * dbus/Makefile.am: soname bump for libdbus
5547
5548         * glib/Makefile.am: soname bump for libdbus-glib
5549
5550 2005-03-05  Havoc Pennington  <hp@redhat.com>
5551
5552         * dbus/dbus-sysdeps.c:
5553         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5554         value
5555         (_dbus_generate_random_bytes_buffer): fix return value
5556
5557         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5558         checks actually work, from Tom Parker <fdo@tevp.net>
5559
5560 2005-03-01  Colin Walters  <walters@verbum.org>
5561
5562         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5563         functions copied from dbus-glib-tool.c.
5564         (main): Convert lots of error code to use them.
5565         Also add some testing for introspection bits.
5566
5567 2005-03-01  Colin Walters  <walters@verbum.org>
5568         
5569         * doc/TODO: Remove introspection signature TODO.
5570
5571 2005-02-27  Colin Walters  <walters@verbum.org>
5572
5573         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5574         Change return value to const char * instead of int so we can do
5575         full signatures.
5576         (struct PropertyInfo, struct ArgInfo): Store char *.
5577         (property_info_new, arg_info_new): Update parameters, strdup.
5578         (property_info_unref, arg_info_unref): Free.
5579
5580         * glib/dbus-gidl.h: Update prototypes.
5581
5582         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5583         (validate_signature): New function, just validates signature and
5584         sets GError.
5585         (parse_property, parse_arg): Invoke validate_signature.  Store
5586         signature instead of just type code.
5587
5588         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5589         function to return a primary type for a signature, dropping
5590         information about types in container types.
5591         (dbus_gvalue_genmarshal_name_from_type)
5592         (dbus_gvalue_binding_type_from_type)
5593         (dbus_gvalue_ctype_from_type): Update to take full signature
5594          instead of type code.
5595         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5596
5597         * glib/dbus-gvalue.h: Update prototypes for above.
5598
5599         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5600         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5601         (introspect_properties, introspect_signals, write_interface):
5602         Update to handle signatures, and remove usage of
5603         _dbus_gutils_type_to_string.
5604         (handle_introspect): Print out type codes instead of e.g. "string"
5605         in hardcoded introspection XML; also use x_AS_STRING constants
5606         instead of hardcoding in string.
5607
5608         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5609         to string.  Remove usage of _dbus_gutils_type_to_string.
5610
5611         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5612
5613         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5614         deletion.
5615         
5616         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5617         (compute_marshaller_name, generate_glue): Handle signature change
5618         to string.
5619         (write_formal_parameters, write_args_for_direction): Ditto, and
5620         remove FIXME.
5621
5622         * tools/dbus-tree-view.c (type_to_string): Delete.
5623         (info_set_func_text): Update to print full signatures.
5624
5625         * test/glib/test-service-glib.xml: Change types to new
5626         introspection format.
5627
5628 2005-02-26  Havoc Pennington  <hp@redhat.com>
5629
5630         * doc/TODO: remove the "guid" item
5631
5632         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5633         (with_bus_thread_func): use open_private
5634
5635         * dbus/dbus-connection.c (dbus_connection_open_private): new
5636         function that works like the old dbus_connection_open()
5637         (dbus_connection_open): now returns an existing connection if
5638         possible
5639
5640         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5641         through the GUID to the transport
5642
5643         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5644         GUID in hex-encoded form.
5645
5646         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5647         pass GUID argument in to the transport
5648
5649         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5650         guid argument
5651
5652         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5653
5654         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5655
5656 2005-02-25  Havoc Pennington  <hp@redhat.com>
5657
5658         * doc/dbus-specification.xml: document the GUID thing
5659
5660         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5661         globally unique ID for the server, and put a "guid=hexencoded"
5662         field in the address
5663
5664         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5665
5666         * dbus/dbus-message.c: ditto
5667
5668         * dbus/dbus-dataslot.c: ditto
5669
5670         * dbus/dbus-list.c: ditto
5671
5672         * dbus/dbus-internals.h: wait, just include
5673         dbus-threads-internal.h here
5674         
5675         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5676         use in main library
5677
5678         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5679
5680 2005-02-24  Colin Walters  <walters@verbum.org>
5681
5682         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5683
5684 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5685
5686         * glib/Makefile.am: added dbus-gobject.h to sources list
5687         so distcheck doesn't fail
5688         
5689 2005-02-24  Havoc Pennington  <hp@redhat.com>
5690
5691         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5692         you must disconnect before unref, since locking and other things
5693         are screwed up otherwise. Fix assorted other locking stuff.
5694
5695         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5696         fix compilation
5697
5698         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5699         into a private header and don't export from the library
5700
5701         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5702
5703 2005-02-24  Colin Walters  <walters@verbum.org>
5704         
5705         * dbus/dbus-signature.c: New file; implements various functions
5706         related to type signatures.  Includes an interator for parsing,
5707         validation functions.
5708         (dbus_type_is_basic): Moved here from
5709         dbus-marshal-basic.c:_dbus_type_is_basic.
5710         (dbus_type_is_container): Moved here from
5711         dbus-marshal-basic.c:_dbus_type_is_container.
5712
5713         All callers of _dbus_type_is_container and _dbus_type_is_basic
5714         updated, and include dbus-signature.h.
5715
5716         * dbus/dbus-signature.h: New file; prototypes for the above.
5717
5718         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5719         dbus-signature.h.
5720
5721         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5722         function factored out of _dbus_first_type_in_signature.
5723         (_dbus_first_type_in_signature_c_str): New function; returns first
5724         type code for a type signature character.
5725
5726         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5727         handle function moves.
5728
5729         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5730
5731         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5732         function; skips to next complete type in type signature.
5733         Implemented using previous skip_one_complete_type.  Now
5734         skip_one_complete_type just delegates to
5735         _dbus_type_signature_next.
5736
5737         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5738         to dbus-signature.c
5739         (_dbus_type_is_container): Ditto.
5740
5741         * doc/dbus-specification.xml: Update introspection sample to
5742         use real type signatures.
5743
5744         * dbus/dbus-test.h: Prototype signature test.
5745
5746         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5747         signature tests.
5748
5749         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5750
5751 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5752
5753         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5754         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5755
5756 2005-02-21  Colin Walters  <walters@verbum.org>
5757
5758         * dbus/dbus-test-main.c (main): Take optional specific test
5759         argument.
5760
5761         * dbus/dbus-test.c (run_test): New function, runs a test function
5762         with no data directory.
5763         (run_data_test): Like above, but takes data directory.
5764         (dbus_internal_do_not_use_run_tests): Take
5765         specific test argument.  Replace lots of cut n' paste code
5766         with run_test and run_data_test.
5767
5768         * dbus/dbus-test.h: Update prototype for
5769         dbus_internal_do_not_use_run_tests.
5770
5771 2005-02-20  Havoc Pennington  <hp@redhat.com>
5772
5773         Fix bugs reported by Daniel P. Berrange
5774         
5775         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5776         (protected_change_watch): new function
5777         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5778         (_dbus_server_add_watch): change to work like the
5779         dbus-connection.c equivalents; like those, probably kind of
5780         busted, but should at least mostly work for now
5781         (dbus_server_disconnect): drop the lock if we were already
5782         disconnected, patch from Daniel P. Berrange
5783
5784         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5785         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5786         same stuff
5787
5788         * doc/TODO: todo about unscrewing this mess
5789
5790 2005-02-19  Colin Walters  <walters@verbum.org>
5791
5792         * glib/dbus-binding-tool-glib.c
5793         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5794
5795         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5796         as errno.h and sys/stat.h.
5797         (lose): New function, prints error with
5798         newline and exits.
5799         (lose_gerror): Similar, but takes GError for message.
5800         (main): Add --output argument to specify output file to write to,
5801         instead of always printing to stdout.  In this mode, determine
5802         timestamps on source files to see whether any are newer than the
5803         target file.  If not, exit.  Also convert a number of error
5804         messages to use lose (since it's shorter), and switch to using
5805         g_io_channel_shutdown.
5806
5807 2005-02-19  Havoc Pennington  <hp@redhat.com>
5808
5809         * glib/dbus-gobject.c
5810         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5811
5812         * glib/dbus-glib.c: fix doxygen warnings
5813
5814         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5815         is found on an <arg>
5816
5817 2005-02-17  Colin Walters  <walters@verbum.org>
5818
5819         * glib/dbus-gobject.h: Don't export
5820         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5821         
5822         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5823         (invoke_object_method): Handle it.
5824
5825         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5826         Handle rename.
5827         
5828 2005-02-17  Colin Walters  <walters@verbum.org>
5829
5830         * bus/.cvsignore, doc/.cvsignore
5831         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5832         Update.
5833
5834 2005-02-17  Colin Walters  <walters@verbum.org>
5835         
5836         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5837         Rename to DBUS_SERVICE_DBUS.
5838         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5839         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5840         Change the value from "org.freedesktop.Local"
5841         to "org.freedesktop.DBus.Local".
5842         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5843         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5844         DBUS_INTERFACE_INTROSPECTABLE.
5845         Change the value from "org.freedesktop.Introspectable"
5846         to "org.freedesktop.DBus.Introspectable".
5847         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5848         DBUS_INTERFACE_PROPERTIES.
5849         Change the value from "org.freedesktop.Properties"
5850         to "org.freedesktop.DBus.Properties".
5851         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5852         DBUS_INTERFACE_PEER.
5853         Change the value from "org.freedesktop.Peer"
5854         to "org.freedesktop.DBus.Peer".
5855         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5856         DBUS_INTERFACE_LOCAL.
5857         Change the value from "org.freedesktop.Local"
5858         to "org.freedesktop.DBus.Local".
5859
5860         All other users of those constants have been changed.
5861
5862         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5863
5864         * glib/dbus-gobject.c (handle_introspect): Use constants.
5865
5866         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5867
5868 2005-02-17  Colin Walters  <walters@verbum.org>
5869
5870         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5871         (parse_node, parse_interface, parse_method, parse_signal)
5872         (parse_property, parse_annotation): Lose if we're currently in an
5873         annotation.
5874         (parse_annotation): New function.
5875         (parser_start_element, parser_end_element): Handle annotation.
5876         (parse_method, parse_interface): Remove support for c_name attribute,
5877         switch to annotations.
5878
5879         * glib/dbus-gidl.h (interface_info_get_binding_names)
5880         (method_info_get_binding_names)
5881         (interface_info_get_binding_name, method_info_get_binding_name)
5882         (interface_info_set_binding_name, method_info_set_binding_name):
5883         Remove.
5884         (interface_info_get_annotations, method_info_get_annotations)
5885         (interface_info_get_annotation, method_info_get_annotation)
5886         (interface_info_add_annotation, method_info_add_annotation):
5887         Prototype.
5888
5889         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5890         for "bindings".
5891         (struct MethodInfo): Ditto.
5892         Straightfoward conversion of binding methods into annotation methods
5893         as prototyped.
5894
5895         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5896
5897         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5898
5899         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5900         Use new annotation API.
5901
5902         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5903         annotation element.
5904         
5905         * doc/dbus-specification.xml: Discuss introspection annotations,
5906         include list of well-known annotations.
5907
5908         * test/glib/test-service-glib.xml: Make validate against new DTD.
5909
5910 2005-02-17  Colin Walters  <walters@verbum.org>
5911
5912         This patch is based on initial work from
5913         Paul Kuliniewicz <kuliniew@purdue.edu>.
5914
5915         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5916         initialization of GValue from dbus type to here.
5917         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5918         for the "glib-genmarshal" program from a DBus type.
5919         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5920         into the C name for it we use in the glib bindings.
5921         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5922         glib C type (not GValue).
5923         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5924
5925         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5926         from dbus-gobject.c.
5927
5928         * glib/dbus-gutils.h: Prototype it.
5929
5930         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5931         (marshal_dbus_message_to_g_marshaller): Use new shared function
5932         dbus_glib_marshal_dbus_message_to_gvalue_array.
5933
5934         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5935         Will be changed once we have annotations.
5936
5937         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5938         GStaticRWLock.  Callers updated.
5939         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5940         (string_table_next): New function for iterating over zero-terminated
5941         string value array.
5942         (string_table_lookup): New function; retrieves specific entry in
5943         array.
5944         (get_method_data): New function; look up method data in object data chunk.
5945         (object_error_domain_prefix_from_object_info)
5946         (object_error_code_from_object_info): New functions, but not implemented yet.
5947         (method_interface_from_object_info): New function; retrieve interface name.
5948         (method_name_from_object_info): New function; retrieve method name.
5949         (method_arg_info_from_object_info): New function; retrieve argument data.
5950         (arg_iterate): New function; iterates over serialized argument data.
5951         (method_dir_signature_from_object_info): New function; returns a
5952         GString holding type signature for arguments for just one
5953         direction (input or output).
5954         (method_input_signature_from_object_info)
5955         (method_output_signature_from_object_info): New functions.
5956         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5957         converts dbus message arguments into a GValue array.  Used for both
5958         signal handling and method invocation.
5959         (struct DBusGlibWriteIterfaceData): New utility structure.
5960         (write_interface): New function; generate introspection XML for
5961         an interface.
5962         (introspect_interfaces): New function; gathers all interface->methods,
5963         generates introspection XML for them.
5964         (handle_introspect): Invoke introspect_interfaces.
5965         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5966         (lookup_object_and_method): New function; examines an incoming message
5967         and attempts to match it up (via interface, method name, and argument
5968         signature) with a known object and method.
5969         (gerror_domaincode_to_dbus_error_name): New function; converts a
5970         GError domain and code into a DBus error name.  Needs GError data
5971         added to object introspection to work well.
5972         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5973         GError.
5974         (invoke_object_method): New function to invoke an object method
5975         looked up via lookup_object_and_method.  Parses the incoming
5976         message, turns it into a GValue array, then invokes the marshaller
5977         specified in the DBusGMethodInfo.  Creates a new message with
5978         either return values or error message as appropriate.
5979         (gobject_message_function): Invoke lookup_object_and_method and
5980         invoke_object_method.
5981
5982         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5983         (enum DBusBindingOutputMode): New enum for binding output modes.
5984         (pretty_print): Print binding names.
5985         (dbus_binding_tool_error_quark): GError bits.
5986         (version): Fix typo.
5987         (main): Create GIOChannel for output.  Parse new --mode argument,
5988         possible values are "pretty-print", "glib-server", "glib-client".
5989         Use mode to invoke appropriate function.
5990         
5991         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
5992
5993         * glib/dbus-glib-tool.h: New header, just includes GError bits
5994         for now.
5995
5996         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
5997         maps binding style to name.
5998         (struct MethodInfo): Ditto.
5999         (get_hash_keys, get_hash_key): Utility function, returns keys for
6000         a GHashTable.
6001         (interface_info_new, method_info_new): Initialize bindings.
6002         (interface_info_unref, method_info_unref): Destroy bindings.
6003         (method_info_get_binding_names, method_info_get_binding_name)
6004         (interface_info_get_binding_names, interface_info_get_binding_name):
6005         Functions for retrieving binding names.
6006         (method_info_set_binding_name, interface_info_set_binding_name):
6007         Functions for setting binding names.
6008
6009         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6010         for glib binding generation.
6011
6012         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6013         and client-side glib glue generation.
6014
6015         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6016         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6017         dbus-glib-tool.h.
6018
6019         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6020         of using GClosureMarshal directly.
6021         (struct DBusGObjectInfo): Add n_infos member.
6022
6023         * test/glib/test-service-glib.xml: New file; contains introspection data
6024         for MyTestObject used in test-service-glib.c.
6025
6026         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6027         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6028         (my_object_uppercase, my_object_many_args): New test methods.
6029         (main): Use dbus_g_object_class_install_info to include generated object
6030         info.
6031
6032         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6033         as well as client-side bindings.
6034
6035         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6036         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6037         using both the dbus_gproxy stuff directly as well as the generated bindings.
6038
6039 2005-02-15  Havoc Pennington  <hp@redhat.com>
6040
6041         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6042         complete a pending call, don't run filters first.
6043
6044         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6045         dbus_pending_call_steal_reply
6046
6047         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6048         _dbus_connection_block_pending_call
6049         (dbus_pending_call_get_reply): change to steal_reply and return a
6050         ref
6051
6052         * dbus/dbus-connection.c
6053         (dbus_connection_send_with_reply_and_block): port to work in terms
6054         of DBusPendingCall
6055         (_dbus_connection_block_pending_call): replace block_for_reply
6056         with this
6057
6058 2005-02-14  Havoc Pennington  <hp@redhat.com>
6059
6060         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6061         properly handle looking up group information by name; fix 
6062         from j@bootlab.org
6063
6064 2005-02-13  Havoc Pennington  <hp@redhat.com>
6065
6066         * dbus/dbus-connection.c (dbus_connection_return_message) 
6067         (dbus_connection_borrow_message): hold dispatch lock while message
6068         is outstanding
6069         (_dbus_connection_block_for_reply): hold dispatch lock while we
6070         block for the reply, so nobody steals our reply
6071         (dbus_connection_pop_message): hold the dispatch lock while we
6072         pluck the message
6073
6074 2005-02-13  Havoc Pennington  <hp@redhat.com>
6075
6076         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6077         (_dbus_connection_release_dispatch)
6078         (_dbus_connection_acquire_io_path)
6079         (_dbus_connection_release_io_path): make the mutex and condvar
6080         control access to the "acquired" flag. Drop the connection lock
6081         while waiting on the condvar. Hopefully these are baby steps in
6082         roughly the right direction.
6083
6084 2005-02-13  Havoc Pennington  <hp@redhat.com>
6085
6086         * dbus/dbus-connection.c: use separate mutexes for the condition
6087         variables; this is some kind of baseline for sanity, but the
6088         condition variables still aren't used correctly afaict
6089
6090 2005-02-13  Havoc Pennington  <hp@redhat.com>
6091
6092         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6093         fix a double-unlock
6094
6095         * dbus/dbus-connection.c
6096         (_dbus_connection_detach_pending_call_unlocked): add this
6097
6098         Initial semi-correct pass through to fix thread locking; there are
6099         still some issues with the condition variable paths I'm pretty
6100         sure
6101         
6102         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6103         lock/unlock calls
6104
6105         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6106         rename to add _unlocked
6107         (struct DBusConnection): move "dispatch_acquired" and
6108         "io_path_acquired" to use only one bit each.
6109         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6110         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6111         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6112         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6113         (_dbus_connection_remove_timeout) 
6114         (_dbus_connection_toggle_timeout): drop lock when calling out to
6115         user functions; done in a hacky/bad way.
6116         (_dbus_connection_send_and_unlock): add a missing unlock
6117         (_dbus_connection_block_for_reply): add a missing unlock
6118
6119         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6120         drop lock in a hacky probably unsafe way to call out to user
6121         function
6122
6123 2005-02-12  Havoc Pennington  <hp@redhat.com>
6124
6125         * tools/dbus-tree-view.c (info_set_func_text): display more
6126         details on args
6127
6128         * bus/driver.c (bus_driver_handle_list_services): list the bus
6129         driver
6130
6131         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6132
6133         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6134         (method_info_get_n_args): new function
6135
6136 2005-02-12  Havoc Pennington  <hp@redhat.com>
6137
6138         * bus/driver.c (bus_driver_handle_introspect): add introspection
6139         for bus driver
6140
6141 2005-02-12  Havoc Pennington  <hp@redhat.com>
6142
6143         * bus/driver.c: put the signature of each bus driver method in the
6144         table of handlers and check it on incoming calls; this isn't
6145         really useful, but going to add introspect support in a minute.
6146
6147 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6148
6149         * mono/Connection.cs: The unpredictability of finalizers in mono
6150         prevents us from deterministically disconnecting the filters from
6151         the Service class's finalizer, so move tracking of filters and
6152         matches here.  Add API for that.
6153
6154         * mono/Service.cs: Remove the code, add code which calls the
6155         methods now on the Connection class.
6156
6157 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6158
6159         * python/dbus.py (class Sender): added to support dbus signals better
6160         (Bus::add_signal_receiver): added expand_args parameter which defaults
6161         to True.  When expand args is True the signal handler will pass the 
6162         message arguments as parameters to the signal handler.  If False
6163         revert to previous behavior where the signal handler must get the
6164         argument list from the message.  This is to help port applications
6165         like HAL that have a tendancy to send variable length argument lists.
6166         self._match_rule_to_receivers is now a dict of dicts.
6167         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6168         removing it from a list
6169         (Bus::_signal_func): change signal handlers so that interface,
6170         signal_name, service, path and message are packed into a Sender
6171         object and that is passed to the handler.  If expand_args is True
6172         extract the args list from the message and append it to the parameter
6173         list
6174         
6175         * python/dbus_bindings.pyx.in (class Signature): added to support 
6176         signiature types
6177         (MessageIter::__init__): changed iteration limit to match D-BUS
6178         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6179         STRUCT and VARIENT type support
6180         (MessageIter::python_value_to_dbus_sig): made recursive to support
6181         recursive types
6182         (MessageIter::append*): added Signature, dict, tuple 
6183         support
6184
6185         * python/examples/example-client.py: added examples of getting tuples
6186         and dicts
6187
6188         * python/examples/example-service.py: added examples of sending tuples
6189         and dicts
6190
6191         * python/examples/example-signal-recipient.py: Fixed to handle new
6192         signal callback format
6193
6194 2005-02-10  Havoc Pennington  <hp@redhat.com>
6195
6196         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6197         (call dbus_g_proxy_add_signal)
6198
6199         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6200         escape the hostname
6201         (_dbus_server_new_for_domain_socket): escape the path
6202
6203         * dbus/dbus-address.c (dbus_address_escape_value): new
6204         (dbus_address_unescape_value): new
6205         (dbus_parse_address): unescape values
6206
6207         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6208
6209         * doc/dbus-specification.xml: explain how to escape values in
6210         addresses
6211
6212 2005-02-10  Havoc Pennington  <hp@redhat.com>
6213
6214         * dbus/dbus-message-factory.c (generate_special): modify test to
6215         avoid using a non-basic dict key
6216
6217         * dbus/dbus-marshal-validate-util.c: add test for the below
6218
6219         * doc/dbus-specification.xml: require that dict keys are a basic
6220         type
6221
6222         * dbus/dbus-marshal-validate.c
6223         (_dbus_validate_signature_with_reason): require that dict key is a
6224         basic type
6225
6226 2005-02-10  Havoc Pennington  <hp@redhat.com>
6227
6228         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6229         change to be _and_unlock instead of _unlocked
6230
6231         * dbus/dbus-connection.c
6232         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6233         have no_update so we can find this bug quickly in future
6234
6235 2005-02-10  Havoc Pennington  <hp@redhat.com>
6236
6237         * dbus/dbus-message-util.c (verify_test_message): tests for string
6238         array
6239
6240         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6241         support for arrays of string/signature/path
6242
6243 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6244
6245         * dbus/dbus-connection.c
6246         (_dbus_connection_queue_received_message_link,
6247         _dbus_connection_message_sent): Add the path to
6248         the verbose output.
6249         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6250         _dbus_connection_send_preallocated_unlocked(), updated the
6251         dispatch status, and unlocks.  Fixes a bug where certain
6252         situations (like a broken pipe) could cause a Disconnect message
6253         to not be sent, tricking the bus into thinking a service was still
6254         there when the process had quit.
6255         (_dbus_connection_send_preallocated): Call
6256         _dbus_connection_send_preallocated_and_unlock().
6257         (_dbus_connection_send_and_unlock): Added.  Calls
6258         _dbus_connection_send_preallocated_and_unlock().
6259         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6260         (dbus_connection_send_with_reply): Update the dispatch status and
6261         unlock.
6262
6263         * mono/Service.cs (~Service): Added.  Removes the filter so that
6264         we don't get unmanaged code calling back into a GCed delegate.
6265         (RemoveFilter); Added.
6266
6267 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6268
6269         * dbus/dbus-message.c (dbus_message_iter_open_container):
6270         - Removed check for iterator type being an array because
6271         get_arg_type does not work with writer iterators
6272         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6273
6274 2005-02-07  Havoc Pennington  <hp@redhat.com>
6275
6276         * doc/dbus-specification.xml: some more language cleanups; add
6277         stuff about how to deal with invalid protocol and extension
6278         points; add _ to allowed chars in auth commands; add EXTENSION_
6279         auth command prefix
6280
6281 2005-02-06  Havoc Pennington  <hp@redhat.com>
6282
6283         * s/expected/required/ in a couple places for clarity
6284
6285 2005-02-07  Colin Walters  <walters@verbum.org>
6286
6287         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6288         sender or proposed_recipient.
6289
6290 2005-02-06  Havoc Pennington  <hp@redhat.com>
6291
6292         * dbus/dbus-message-factory.c (generate_special): more tests
6293
6294         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6295         array length that exceeds the maximum
6296
6297 2005-02-05  Havoc Pennington  <hp@redhat.com>
6298
6299         * dbus/dbus-message-factory.c (generate_special): more test cases,
6300         increasing coverage
6301
6302         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6303         reason why a signature was invalid
6304
6305         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6306         skip the length of the string before we look at it in validation
6307
6308         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6309         equal_substring
6310
6311         * dbus/dbus-message.c (_dbus_message_loader_new): default
6312         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6313
6314 2005-02-05  Havoc Pennington  <hp@redhat.com>
6315
6316         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6317         if the signature of a variant was empty
6318         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6319         struct with no element type)
6320
6321         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6322         mangled messages to break things
6323
6324 2005-02-04  Havoc Pennington  <hp@redhat.com>
6325
6326         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6327         g_quark_try_string() so it actually can return 0
6328         (dbus_g_proxy_connect_signal): ditto
6329
6330 2005-02-04  Havoc Pennington  <hp@redhat.com>
6331
6332         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6333         bogus warning
6334         (tristring_from_message): assert cleanly on null path/interface
6335         (should not be possible though I decided later)
6336         (dbus_g_proxy_dispose): move proxy manager unregistration here
6337         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6338         g_return_if_fail() checks
6339
6340 2005-02-04  Havoc Pennington  <hp@redhat.com>
6341
6342         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6343
6344         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6345         (with some minor changes)
6346
6347         * doc/dbus-specification.xml: add deprecated attribute to
6348         introspection format
6349
6350 2005-01-31  Havoc Pennington  <hp@redhat.com>
6351
6352         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6353         think it's sort of right
6354
6355 2005-01-30  Havoc Pennington  <hp@redhat.com>
6356
6357         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6358
6359 2005-01-30  Havoc Pennington  <hp@redhat.com>
6360
6361         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6362
6363         * autogen.sh: change to autotools 1.9
6364
6365         * glib/dbus-gproxy.c: completely change how signals work
6366         (dbus_g_proxy_add_signal): new function to specify signature of a
6367         signal
6368         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6369         and g_warning if the incoming message has the wrong signature.
6370
6371 2005-01-30  Havoc Pennington  <hp@redhat.com>
6372
6373         * tools/dbus-names-model.c (have_names_notify): fix this
6374
6375         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6376         up the string array handling a bit 
6377
6378 2005-01-30  Havoc Pennington  <hp@redhat.com>
6379
6380         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6381         (dbus_g_pending_call_cancel): new function
6382
6383         * dbus/dbus-glib.h: move GType decls for connection/message here;
6384         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6385         here, just kind of rationalizing how we handle all that
6386
6387         * tools/dbus-names-model.c: new file for a tree model listing the
6388         services on a bus
6389
6390         * tools/dbus-tree-view.c (model_new): use proper typing on the
6391         model rows
6392
6393 2005-01-30  Havoc Pennington  <hp@redhat.com>
6394
6395         * glib/dbus-gmain.c: add a custom GSource back that just checks
6396         whether the message queue has anything in it; otherwise, there are 
6397         cases where we won't see messages in the queue since there was no 
6398         IO visible to the glib main loop
6399
6400         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6401         increase default message timeout to 25 seconds
6402
6403 2005-01-30  Havoc Pennington  <hp@redhat.com>
6404
6405         * test/glib/test-profile.c (no_bus_stop_server): remove the
6406         warning about the g_warning that I just fixed
6407
6408         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6409         custom source, seems to be a lot easier to understand and work
6410         better.
6411
6412 2005-01-30  Havoc Pennington  <hp@redhat.com>
6413
6414         I think this main loop thing is conceptually broken, but here are 
6415         some band aids. I'll maybe rewrite it in a minute.
6416         
6417         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6418         custom GSource, so don't pass it in; confusing
6419         (gsource_server_finalize, gsource_connection_finalize): add
6420         finalize handlers that remove all the watches.  
6421
6422 2005-01-30  Havoc Pennington  <hp@redhat.com>
6423
6424         * glib/dbus-gobject.c (introspect_properties): fix the XML
6425         generated
6426
6427         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6428         which effectively detects the use of freed messages
6429
6430         * glib/dbus-gobject.c (handle_introspect): modify and return the
6431         reply message instead of the incoming message
6432
6433         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6434         gee, maybe it should SEND THE XML instead of just making a string
6435         and freeing it again ;-)
6436
6437         * tools/dbus-print-message.c (print_message): improve printing of
6438         messages
6439
6440         * configure.in: add debug-glib.service to the output
6441
6442 2005-01-30  Havoc Pennington  <hp@redhat.com>
6443
6444         dbus-viewer introspected and displayed the bus driver
6445         
6446         * dbus/dbus-object-tree.c 
6447         (object_tree_test_iteration): add tests for a handler registered on "/"
6448
6449         * dbus/dbus-object-tree.c
6450         (_dbus_decompose_path): fix to handle path "/" properly
6451         (run_decompose_tests): add tests for path decomposition
6452         
6453         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6454         properly
6455
6456         * glib/dbus-gobject.c (handle_introspect): fix quotes
6457
6458         * test/glib/run-test.sh: support launching the bus, then running
6459         dbus-viewer
6460
6461         * test/glib/test-service-glib.c (main): put in a trivial gobject
6462         subclass and register it on the connection
6463
6464         * bus/driver.c (bus_driver_handle_introspect): implement
6465         introspection of the bus driver service
6466
6467         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6468         identifiers, doctype decl
6469
6470         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6471         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6472         returning the service unchanged.
6473         (bus_driver_handle_message): remove old check for reply_serial in
6474         method calls, now the message type deals with that
6475         (bus_driver_handle_message): handle NULL interface
6476
6477         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6478
6479         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6480         -1 for len
6481
6482         * tools/dbus-viewer.c: add support for introspecting a service on
6483         a bus
6484
6485         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6486         (dbus_g_pending_call_unref): add
6487
6488 2005-01-29  Havoc Pennington  <hp@redhat.com>
6489
6490         * tools/dbus-tree-view.c: add support for displaying properties.
6491         (run dbus-viewer with an introspect xml file as arg, then resize
6492         the window so the tree elements show up, not sure what that is)
6493
6494         * glib/dbus-gobject.c (handle_introspect): return
6495         org.freedesktop.Properties and org.freedesktop.Introspectable
6496         interfaces when we are introspected.
6497
6498         * doc/dbus-specification.xml: allow empty interface name when 
6499         Get/Set a property
6500
6501 2005-01-29  Havoc Pennington  <hp@redhat.com>
6502
6503         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6504         though it uses glib, it could be extended for any binding in
6505         principle
6506
6507         * glib/dbus-gobject.c (gobject_message_function): change to the
6508         new way properties work
6509
6510         * dbus/dbus-protocol.h: add the new interfaces
6511
6512         * doc/dbus-specification.xml: document the introspection format,
6513         Introspectable interface, and add an org.freedesktop.Properties
6514         interface.
6515
6516         * glib/dbus-gparser.c: add support for a <property> element
6517
6518         * glib/dbus-gidl.c: add PropertyInfo
6519
6520         * glib/dbus-gobject.c (handle_introspect): put the outermost
6521         <node> outside the signal and property descriptions.
6522         (introspect_properties): export properties as <property> rather
6523         than as method calls
6524
6525 2005-01-28  Havoc Pennington  <hp@redhat.com>
6526
6527         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6528         related to authentication protocol
6529
6530 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6531
6532         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6533                 - BUS_ACTIVATION -> BUS_STARTER
6534                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6535                 - class MessageIter (__init__): Added recursion checking 
6536                 so we throw a nice error instead of just disconnecting from the
6537                 bus.
6538                 (get): Added arg_type parameter for recursion.
6539                 Removed the nil type
6540                 Added signiture type placeholder (not implemented)
6541                 Added struct type placeholder (not implemented)
6542                 Added varient type placeholder (not implemented)
6543                 Commented out dict type for now     
6544                 (get_element_type): renamed from get_array_type
6545                 (get_*): changed to use the dbus_message_iter_get_basic API
6546                 (get_*_array): removed in favor of recursive get_array method
6547                 (get_array): new recursive method which calls get to marshal
6548                 the elements of the array
6549                 (value_to_dbus_sig): New method returns the corrasponding
6550                 dbus signiture to a python value
6551                 (append): Comment out dict handling for now
6552                 Handle lists with the new recursive API
6553                 Comment out None handling for now
6554                 (append_nil): removed
6555                 (append_*): changed to use dbus_message_iter_append_basic API
6556                 (append_*_array): removed in favor of recursive append_array 
6557                 method
6558                 (__str__): Make it easier to print out recursive iterators
6559                 for debugging
6560                 - class Message (__str__): moved type inspection to the
6561                 MessageIter class' __str__ method
6562                 (get_iter): Added an append parameter wich defaults to False
6563                 If True use the new API's to create an append iterator
6564
6565         * python/dbus.py: Update to use new bindings API
6566                 - TYPE_ACTIVATION -> TYPE_STARTER
6567                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6568                 - class ActivationBus -> class StarterBus
6569                 - class RemoteObject (__call__): get an append iterator
6570                 - (_dispatch_dbus_method_call): get an append iterator
6571                 - class Object (emit_signal): get an append iterator
6572
6573         * python/examples/: Fixed up the examples to work with the new API
6574                 
6575 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6576
6577         * configure.in: Bump version up to 0.30.
6578
6579         * HACKING: Add a release item to bump the version number up after 
6580         a release.
6581
6582 2005-01-28  Havoc Pennington  <hp@redhat.com>
6583
6584         * doc/dbus-specification.xml: update to describe 16-bit types and
6585         dict entries
6586
6587         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6588         assertion
6589
6590         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6591         type
6592
6593         * dbus/dbus-marshal-recursive.c: implement
6594
6595 2005-01-27  Havoc Pennington  <hp@redhat.com>
6596
6597         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6598
6599         * configure.in: find the right type for 16 and 32 bit ints as well
6600         as 64
6601
6602         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6603         the 16-bit types so people don't have to stuff them in 32-bit or
6604         byte arrays.
6605
6606 2005-01-27  Havoc Pennington  <hp@redhat.com>
6607
6608         * dbus/dbus-message.c: byteswap the message if you init an
6609         iterator to read/write from it
6610         
6611         * dbus/dbus-marshal-byteswap.c: new file implementing 
6612         _dbus_marshal_byteswap()
6613
6614         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6615
6616 2005-01-26  Havoc Pennington  <hp@redhat.com>
6617         
6618         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6619         build, apparently - nobody noticed?)
6620         
6621 2005-01-26  Havoc Pennington  <hp@redhat.com>
6622
6623         * dbus/dbus-marshal-recursive.h: remove todo comment
6624
6625 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6626
6627         * Land the mono binding changes to conform to the new APIs.
6628
6629         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6630         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6631
6632         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6633         type code as a string.
6634         (InitAppending): Rename dbus_message_append_iter_init() to
6635         dbus_message_iter_init_append().
6636
6637         * mono/BusDriver.cs: Rename ServiceEventHandler to
6638         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6639         Rename ServiceOwnerChanged to NameOwnerChanged.
6640
6641         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6642         underlying C call.
6643
6644         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6645
6646         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6647         dbus_bus_acquire_service() to dbus_bus_request_name().
6648
6649         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6650         of Type.UnderlyingSystemType to get the correct element type for
6651         the array.
6652         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6653         dbus_message_get_{element|arg}_type() instead of
6654         dbus_message_iter_init_array_iterator().
6655         (Append): Replace dbus_message_iter_append_array() with
6656         dbus_message_iter_open_container() and
6657         dbus_message_iter_close_container().
6658
6659         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6660         types have been removed.
6661         
6662         * mono/DBusType/*.cs: Replace calls of
6663         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6664         but specify the type in the DllImport extern declaration.  Ditto
6665         for dbus_message_iter_append_[type]() ->
6666         dbus_message_iter_append_basic().
6667
6668         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6669         NameOwnerChangedHandler.
6670
6671 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6672
6673         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6674                 - get_base_service -> get_unique_name
6675                 - bus_get_base_service -> bus_get_unique_name
6676                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6677                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6678                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6679                 - bus_activate_service -> bus_start_service_by_name
6680                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6681                 - bus_acquire_service -> bus_request_name
6682                 - dbus_bus_acquire_service -> dbus_bus_request_name
6683                 - bus_service_exists -> bus_name_has_owner
6684                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6685
6686         * python/dbus.py: Rename of methods
6687                 - activate_service -> start_service_by_name
6688                 - bus_acquire_service -> bus_request_name
6689                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6690                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6691
6692         
6693 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6694
6695         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6696         signature for the method that can't be found.
6697
6698         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6699         the message has any arguments, we need to call
6700         _dbus_type_reader_get_current_type(), not
6701         _dbus_type_reader_has_next().
6702
6703 2005-01-24  Havoc Pennington  <hp@redhat.com>
6704
6705         * dbus/dbus-message-factory.c: more testing of message validation
6706
6707         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6708         header
6709
6710 2005-01-23  Havoc Pennington  <hp@redhat.com>
6711
6712         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6713         get this all working, not many tests in the framework yet though
6714
6715 2005-01-22  Havoc Pennington  <hp@redhat.com>
6716
6717         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6718         tutorial, based on work from David Wheeler.
6719
6720 2005-01-21  Havoc Pennington  <hp@redhat.com>
6721
6722         * dbus/dbus-bus.c: add more return_if_fail checks
6723
6724         * dbus/dbus-message.c (load_message): have the "no validation"
6725         mode (have to edit the code to toggle the mode for now though)
6726
6727         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6728         skips all validation; I want to use this at least for benchmark
6729         baseline, I'm not sure if it should be a publicly-available switch.
6730
6731 2005-01-21  Havoc Pennington  <hp@redhat.com>
6732
6733         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6734         toplevel doxygen group as the low-level API stuff
6735
6736         * dbus/dbus.h: note that libdbus is the low-level API
6737
6738 2005-01-20  Havoc Pennington  <hp@redhat.com>
6739
6740         * update-dbus-docs.sh: script to update docs on the web site, only
6741         works for me though. neener.
6742
6743 2005-01-20  Havoc Pennington  <hp@redhat.com>
6744
6745         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6746         code can reveal bugs in it
6747
6748 2005-01-20  Havoc Pennington  <hp@redhat.com>
6749
6750         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6751         select() version, patches from Tor Lillqvist
6752
6753 2005-01-20  Havoc Pennington  <hp@redhat.com>
6754
6755         * doc/dbus-tutorial.xml: replace > with &gt;
6756
6757         * bus/services.c (bus_registry_acquire_service): validate the name
6758         and return a better error if it's no good.
6759
6760         * doc/dbus-specification.xml: note NO_AUTO_START change
6761
6762         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6763         from AUTO_START, we're toggling the default
6764
6765         * bus/dispatch.c: adapt the tests to change of auto-start default
6766
6767 2005-01-18  Havoc Pennington  <hp@redhat.com>
6768
6769         * rename dbus-daemon-1 to dbus-daemon throughout
6770
6771 2005-01-18  Havoc Pennington  <hp@redhat.com>
6772
6773         * Throughout, grand renaming to strip out the use of "service",
6774         just say "name" instead (or "bus name" when ambiguous).  Did not
6775         change the internal code of the message bus itself, only the
6776         programmer-facing API and messages.
6777         
6778         * doc/dbus-specification.xml: further update the message bus section
6779         
6780         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6781         in error case
6782
6783 2005-01-17  Havoc Pennington  <hp@redhat.com>
6784
6785         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6786         ever
6787
6788         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6789         "invalid name character" not only non-ASCII
6790
6791         * doc/dbus-specification.xml: further update spec, message bus 
6792         parts are still out-of-date but the marshaling etc. stuff is now
6793         accurate-ish
6794
6795 2005-01-17  Havoc Pennington  <hp@redhat.com>
6796
6797         * doc/dbus-specification.xml: partially update spec
6798
6799 2005-01-17  Havoc Pennington  <hp@redhat.com>
6800
6801         * Throughout, align variant bodies according to the contained
6802         type, rather than always to 8. Should save a fair bit of space in
6803         message headers.
6804         
6805         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6806         fix handling of case where p == end
6807
6808         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6809
6810 2005-01-17  Havoc Pennington  <hp@redhat.com>
6811
6812         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6813
6814         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6815         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6816         are marshaling/unmarshaling a boolean.
6817
6818 2005-01-16  Havoc Pennington  <hp@redhat.com>
6819
6820         This is about it on what can be disabled/deleted from libdbus
6821         easily, back below 150K anyhow. Deeper cuts are more work than 
6822         just turning the code off as I've done here.
6823         
6824         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6825         signed int convenience funcs
6826
6827         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6828         verbose mode
6829
6830         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6831         things out of libdbus
6832
6833         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6834         
6835         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6836         tests-enabled-only, though it should probably be deleted)
6837
6838         * dbus/dbus-message-util.c: same stuff
6839
6840         * dbus/dbus-auth-util.c: same stuff
6841
6842 2005-01-16  Havoc Pennington  <hp@redhat.com>
6843
6844         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6845
6846         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6847         way for stripping down dbus-userdb.c stuff included in libdbus.
6848         Rename _dbus_parse_uid for consistency.
6849
6850 2005-01-16  Havoc Pennington  <hp@redhat.com>
6851
6852         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6853         name the assertion failed in
6854
6855         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6856         (_dbus_return_val_if_fail): assert that the name of the function
6857         containing the check doesn't start with '_', since we only want to 
6858         use checks on public functions
6859         
6860         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6861         checks to assertions
6862
6863         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6864         change checks to asserts for private function
6865
6866         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6867         to asserts for private function
6868
6869         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6870         broken assertion that was breaking make check
6871         (_dbus_type_reader_array_is_empty): remove this rather than fix
6872         it, was only used in assertions
6873
6874 2005-01-16  Havoc Pennington  <hp@redhat.com>
6875
6876         * test/unused-code-gc.py: hacky script to find code that's used
6877         only by the bus (not libdbus) or used only by tests or not used at
6878         all. It has some false alarms, but looks like we can clean up a
6879         lot of size from libdbus.
6880
6881         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6882         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6883         
6884 2005-01-16  Havoc Pennington  <hp@redhat.com>
6885
6886         * Add and fix docs according to Doxygen warnings throughout
6887         source.
6888         
6889         * dbus/dbus-marshal-recursive.c
6890         (_dbus_type_reader_array_is_empty): change this to just call
6891         array_reader_get_array_len() and make it static
6892
6893         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6894         from get_array_type
6895         (dbus_message_iter_init_append): rename from append_iter_init
6896
6897         * dbus/dbus-marshal-recursive.c
6898         (_dbus_type_reader_get_element_type): rename from
6899         _dbus_type_reader_get_array_type
6900
6901 2005-01-15  Havoc Pennington  <hp@redhat.com>
6902
6903         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6904
6905         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6906         when DBUS_DISABLE_ASSERT
6907         (_dbus_marshal_set_basic): be sure we align for the string length
6908
6909         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6910         this look faster
6911
6912         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6913         inline macro version
6914         (_dbus_string_set_byte): provide inline macro version
6915
6916 2005-01-15  Havoc Pennington  <hp@redhat.com>
6917
6918         * Land the new message args API and type system.
6919
6920         This patch is huge, but the public API change is not 
6921         really large. The set of D-BUS types has changed somewhat, 
6922         and the arg "getters" are more geared toward language bindings;
6923         they don't make a copy, etc.
6924
6925         There are also some known issues. See these emails for details
6926         on this huge patch:
6927         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6928         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6929         
6930         * dbus/dbus-marshal-*: all the new stuff
6931
6932         * dbus/dbus-message.c: basically rewritten
6933
6934         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6935         freed blocks to be all non-nul bytes so using freed memory is less
6936         likely to work right
6937
6938         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6939         DBUS_FAIL_MALLOC=N environment variable, so you can do
6940         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6941         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6942         thorough.
6943
6944         * qt/message.cpp: port to the new message args API
6945         (operator<<): use str.utf8() rather than str.unicode()
6946         (pretty sure this is right from the Qt docs?)
6947
6948         * glib/dbus-gvalue.c: port to the new message args API
6949
6950         * bus/dispatch.c, bus/driver.c: port to the new message args API
6951
6952         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6953         "locked" flag to TRUE and align_offset to 0; I guess we never
6954         looked at these anyhow, but seems cleaner.
6955
6956         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6957         move allocation padding macro to this header; use it to implement
6958         (_DBUS_STRING_STATIC): ability to declare a static string.
6959
6960         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6961         change to return TRUE if the interface is not set.
6962
6963         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6964         to dbus-marshal-validate.[hc]
6965
6966         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6967         dbus-internals.c
6968
6969         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6970         to dbus-marshal-*.[hc]
6971
6972         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6973         function here from dbus-marshal.c
6974
6975 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6976
6977         * NEWS: Update for 0.23.
6978
6979         * configure.in: Release 0.23.
6980
6981 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6982
6983         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6984         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6985         behind.
6986
6987         * mono/doc/Makefile.am: Need to uninstall the docs on "make
6988         uninstall"
6989
6990         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
6991         is an enum, get the enum's underlying type.  Another mono
6992         1.1.3 fix.
6993
6994 2005-01-11  Joe Shaw  <joeshaw@novell.com>
6995
6996         Patch from Sjoerd Simons <sjoerd@luon.net>
6997
6998         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
6999         DESTDIR.  It breaks stuff.
7000
7001 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7002
7003         Patch from Tambet Ingo <tambet@ximian.com>
7004
7005         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7006         calling type.GetElementType().  The code previously depended on
7007         broken Mono behavior, which was fixed in Mono 1.1.3.
7008
7009         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7010         Activator.CreateInstance() so that the class's constructor is
7011         called with the right parameters.
7012
7013 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7014
7015         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7016
7017         * dbus/dbus-connection.c
7018         (_dbus_connection_queue_received_message_link): Call
7019         _dbus_connection_remove_timeout() instead of the _locked()
7020         variant, since it's always called from
7021         _dbus_connection_handle_watch(), which handles the locking.
7022         Removed the _locked() variant since it's no longer used.
7023
7024 2005-01-03  Havoc Pennington  <hp@redhat.com>
7025
7026         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7027         return
7028         
7029 2004-12-26  Havoc Pennington  <hp@redhat.com>
7030
7031         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7032
7033 2005-01-03  Havoc Pennington  <hp@redhat.com>
7034
7035         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7036         floating point
7037
7038         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7039
7040 2005-01-02  Havoc Pennington  <hp@redhat.com>
7041
7042         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7043
7044 2005-01-01  Havoc Pennington  <hp@redhat.com>
7045
7046         * configure.in: add -Wfloat-equal
7047
7048 2005-01-01  Havoc Pennington  <hp@redhat.com>
7049
7050         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7051         for a variety of reasons '==' doesn't do this.
7052
7053 2004-12-31  Havoc Pennington  <hp@redhat.com>
7054
7055         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7056         I keep wishing I had
7057
7058 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7059
7060         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7061
7062 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7063
7064         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7065         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7066         dbus-protocol.h.  Because they are defines and not enums they are not
7067         autogenerated.
7068
7069 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7070
7071         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7072         dbus_bus_activate_service
7073
7074         * python/dbus.py (Bus.activate_service): activate a service on the
7075         bus.
7076
7077 2004-12-24  Havoc Pennington  <hp@redhat.com>
7078
7079         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7080         file format has also changed and I haven't adapted to that yet
7081         
7082         * Makefile.am: load .gcno files from latest gcc
7083
7084 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7085         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7086
7087         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7088         lowlevel binding
7089
7090         * python/dbus.py (get_unix_user): Added binding to 
7091         call dbus_bindings.bus_get_unix_user
7092
7093         * python/extract.py: Modified the proto_pat regex to
7094         handle unsigned long
7095
7096 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7097
7098         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7099         better POSIX compliance.
7100
7101 2004-12-19  Havoc Pennington  <hp@redhat.com>
7102
7103         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7104         (_dbus_string_insert_8_aligned): new functions
7105
7106         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7107
7108 2004-12-18  Havoc Pennington  <hp@redhat.com>
7109
7110         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7111         macro
7112
7113         * dbus/dbus-message.c: fix a comment, and add a still-unused
7114         not-implemented function
7115
7116         * dbus/dbus-marshal.h: fix comment
7117
7118         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7119
7120 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7121
7122         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7123         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7124         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7125         Type.UnderlyingSystemType to get the actual system type
7126         underneath.  This code previously depended on the broken Mono
7127         behavior, which was fixed in 1.1.3.
7128
7129 2004-11-27  Havoc Pennington  <hp@redhat.com>
7130
7131         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7132         are disabled
7133         (_dbus_string_get_const_data): inline when asserts are disabled
7134
7135         * dbus/dbus-message.c: record the _dbus_current_generation of
7136         creation so we can complain if dbus_shutdown() is used improperly.
7137         Do this only if checks are enabled.
7138
7139         * dbus/dbus-connection.c: ditto
7140         
7141 2004-11-26  Havoc Pennington  <hp@redhat.com>
7142
7143         * test/glib/test-profile.c: add with_bus mode to profile echoes
7144         that go through the bus.
7145
7146         * test/glib/run-test.sh: add ability to run test-profile
7147
7148         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7149         config file reload.
7150
7151 2004-11-26  Havoc Pennington  <hp@redhat.com>
7152
7153         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7154         thing was implemented
7155
7156 2004-11-26  Havoc Pennington  <hp@redhat.com>
7157
7158         * test/glib/test-profile.c: tweak a bit, add support for some
7159         made-up minimal malloc overhead with plain sockets, since in 
7160         real life some sort of buffers are unavoidable thus we could 
7161         count them in the theoretical best case
7162
7163 2004-11-26  Havoc Pennington  <hp@redhat.com>
7164
7165         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7166         where I was trying to cache one too many messages
7167
7168 2004-11-26  Havoc Pennington  <hp@redhat.com>
7169
7170         * dbus/dbus-message.c: reimplement message cache as an array which 
7171         makes the cache about twice as fast and saves maybe 1.5% overall
7172
7173 2004-11-26  Havoc Pennington  <hp@redhat.com>
7174
7175         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7176         message cache lock here
7177
7178 2004-11-26  Havoc Pennington  <hp@redhat.com>
7179
7180         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7181         the "char byte_order" next to each other to save 4 bytes
7182         (dbus_message_new_empty_header): reduce preallocation, since the
7183         message cache should achieve a similar effect
7184         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7185         message cache that keeps a few DBusMessage around in a pool,
7186         another 8% speedup or so.
7187
7188         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7189
7190 2004-11-25  Havoc Pennington  <hp@redhat.com>
7191
7192         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7193         to write, without reading or blocking, try it before the poll()
7194         and skip the poll() if nothing remains to write. This is about a
7195         3% speedup in the echo client/server
7196
7197 2004-11-25  Havoc Pennington  <hp@redhat.com>
7198
7199         The primary change here is to always write() once before adding
7200         the write watch, which gives us about a 10% performance increase.
7201         
7202         * dbus/dbus-transport-unix.c: a number of modifications to cope
7203         with removing messages_pending
7204         (check_write_watch): properly handle
7205         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7206         messages_pending stuff
7207         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7208         AUTHENTICATED cases
7209         (unix_handle_watch): after writing, see if the write watch can be
7210         removed
7211         (unix_do_iteration): assert that write_watch/read_watch are
7212         non-NULL rather than testing that they aren't, since they 
7213         aren't allowed to be NULL. check_write_watch() at the end so 
7214         we add the watch if we did not finish writing (e.g. got EAGAIN)
7215
7216         * dbus/dbus-transport-protected.h: remove messages_pending call,
7217         since it resulted in too much inefficient watch adding/removing; 
7218         instead we now require that the transport user does an iteration 
7219         after queueing outgoing messages, and after trying the first
7220         write() we add a write watch if we got EAGAIN or exceeded our 
7221         max bytes to write per iteration setting
7222
7223         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7224         function
7225
7226         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7227         freed and then accessed, valgrind flagged this bug, fix it
7228
7229         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7230         as the last valid field plus 1, where really it is equal to the
7231         last valid field. Corrects some message corruption issues.
7232
7233         * dbus/dbus-mainloop.c: verbosity changes
7234
7235         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7236         instead of aborting in one of the test codepaths
7237
7238         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7239         caused not printing the pid ever again if a verbose was missing
7240         the newline at the end
7241         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7242
7243         * dbus/dbus-connection.c: verbosity changes; 
7244         (dbus_connection_has_messages_to_send): new function
7245         (_dbus_connection_message_sent): no longer call transport->messages_pending
7246         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7247         try to write() immediately, so we can avoid the write watch. This
7248         is the core purpose of this patchset
7249         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7250         dump the outgoing message queue, so nobody will get confused
7251         trying to send them or thinking stuff is pending to be sent
7252
7253         * bus/test.c: verbosity changes
7254
7255         * bus/driver.c: verbosity/assertion changes
7256
7257         * bus/dispatch.c: a bunch of little tweaks to get it working again
7258         because this patchset changes when/where you need to block.
7259
7260 2004-11-23  Havoc Pennington  <hp@redhat.com>
7261
7262         * test/glib/test-profile.c: modify to accept a plain_sockets
7263         argument in which case it will bench plain sockets instead of
7264         libdbus, for comparison purposes.
7265
7266 2004-11-22  Havoc Pennington  <hp@redhat.com>
7267
7268         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7269         threads for more time, so sysprof can get a grip on it.
7270
7271         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7272         pointless variable
7273
7274 2004-11-13  Havoc Pennington  <hp@redhat.com>
7275
7276         * test/glib/test-profile.c: fix this thing up a bit
7277
7278         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7279         preallocation sizes by a fair bit; not sure if this will be an
7280         overall performance win or not, but it does reduce reallocs.
7281
7282         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7283         the test hack that forced constant realloc if asserts are
7284         disabled, so we can profile sanely. Sprinkle in some
7285         _DBUS_UNLIKELY() which are probably pointless, but before I
7286         noticed the real performance problem I put them in.
7287         (_dbus_string_validate_utf8): micro-optimize this thing a little
7288         bit, though callgrind says it didn't help; then special-case
7289         ascii, which did help a lot; then be sure we detect nul bytes as
7290         invalid, which is a bugfix.
7291         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7292         superstition; use memset to nul the padding instead of a manual
7293         loop.
7294         (_dbus_string_get_length): inline this as a
7295         macro; it showed up in the profile because it's used for loop
7296         tests and so forth
7297
7298 2004-11-10  Colin Walters  <walters@verbum.org>
7299
7300         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7301         for extra paranoia.
7302
7303 2004-11-09  Colin Walters  <walters@verbum.org>
7304
7305         * dbus/dbus-string.c (_dbus_string_get_length): New
7306         function, writes DBusString to C buffer.
7307
7308         * dbus/dbus-string.h: Prototype it.
7309
7310         * dbus/dbus-message.c (dbus_message_type_to_string): New
7311         function, converts message type into C string.
7312
7313         * dbus/dbus-message.h: Prototype it.
7314
7315         * bus/selinux.c (bus_selinux_check): Take source pid,
7316         target pid, and audit data.  Pass audit data to
7317         avc_has_perm.
7318         (log_audit_callback): New function, appends extra
7319         audit information.
7320         (bus_selinux_allows_acquire_service): Also take
7321         service name, add it to audit data.
7322         (bus_selinux_allows_send): Also take message
7323         type, interface, method member, error name,
7324         and destination, and add them to audit data.
7325         (log_cb): Initialize func_audit.
7326         
7327         * bus/selinux.h (bus_selinux_allows_acquire_service)
7328         (bus_selinux_allows_send): Update prototypes 
7329
7330         * bus/services.c (bus_registry_acquire_service): Pass
7331         service name to bus_selinux_allows_acquire_service.
7332
7333         * bus/bus.c (bus_context_check_security_policy): Pass
7334         additional audit data.  Move assignment of dest
7335         to its own line.
7336
7337 2004-11-07  Colin Walters  <walters@verbum.org>
7338
7339         * dbus/dbus-transport-unix.c (do_authentication): Always
7340         initialize auth_completed.
7341         
7342 2004-11-07  Colin Walters  <walters@verbum.org>
7343
7344         * bus/bus.c (load_config): Break into three
7345         separate functions: process_config_first_time_only,
7346         process_config_every_time, and process_config_postinit.
7347         (process_config_every_time): Move call of
7348         bus_registry_set_service_context_table into
7349         process_config_postinit.
7350         (process_config_postinit): New function, does
7351         any processing that needs to happen late
7352         in initialization (and also on reload).
7353         (bus_context_new): Instead of calling load_config,
7354         open config parser here and call process_config_first_time_only
7355         and process_config_every_time directly.  Later, after
7356         we have forked but before changing UID,
7357         invoke bus_selinux_full_init, and then call
7358         process_config_postinit.
7359         (bus_context_reload_config): As in bus_context_new,
7360         load parse file inside here, and call process_config_every_time
7361         and process_config_postinit.
7362
7363         * bus/services.h, bus/services.c
7364         (bus_registry_set_service_context_table): Rename
7365         from bus_registry_set_sid_table.  Take string hash from config
7366         parser, and convert them here into SIDs.
7367
7368         * bus/config-parser.c (struct BusConfigParser): Have
7369         config parser only store a mapping of service->context
7370         string.
7371         (merge_service_context_hash): New function.
7372         (merge_included): Merge context string hashes instead
7373         of using bus_selinux_id_table_union.
7374         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7375         simply create a new string hash.
7376         (bus_config_parser_unref): Unref it.
7377         (start_selinux_child): Simply insert strings into hash,
7378         don't call bus_selinux_id_table_copy_over.
7379
7380         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7381         (bus_selinux_id_table_copy_over): Delete.
7382
7383 2004-11-03  Colin Walters  <walters@verbum.org>
7384
7385         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7386         variables.
7387         
7388 2004-11-03  Colin Walters  <walters@verbum.org>
7389
7390         * bus/test-main.c (test_pre_hook): Fix test logic,
7391         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7392
7393 2004-11-02  Colin Walters  <walters@redhat.com>
7394
7395         * bus/selinux.c (bus_selinux_init): Split into two functions,
7396         bus_selinux_pre_init and bus_selinux_post_init.
7397         (bus_selinux_pre_init): Just determine whether SELinux is
7398         enabled.
7399         (bus_selinux_post_init): Do everything else.
7400
7401         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7402         config file, and bus_selinux_post_init after.  This ensures that
7403         we don't lose the policyreload notification thread that
7404         bus_selinux_init created before forking previously.
7405         
7406         * bus/test-main.c (test_pre_hook): Update for split.
7407
7408 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7409
7410         Patch from Johan Fischer <linux@fischaz.com>
7411         
7412         * mono/doc/Makefile.am (install-data-local): Added directory
7413         install for DESTDIR
7414
7415 2004-10-29  Colin Walters  <walters@redhat.com>
7416
7417         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7418         parameter for fd to write pid to.       
7419
7420         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7421         
7422         * bus/bus.c (bus_context_new): Pass print_pid_fd
7423         to _dbus_become_daemon (bug #1720)
7424
7425 2004-10-29  Colin Walters  <walters@redhat.com>
7426
7427         Patch from Ed Catmur <ed@catmur.co.uk>
7428
7429         * mono/doc/Makefile.am (install-data-local): Handle
7430         DESTDIR.
7431
7432 2004-10-29  Colin Walters  <walters@redhat.com>
7433
7434         * bus/.cvsignore, qt/.cvsignore: Update.
7435
7436 2004-10-29  Colin Walters  <walters@redhat.com>
7437
7438         Patch from Kristof Vansant <de_lupus@pandora.be>
7439
7440         * configure.in: Detect Slackware.
7441         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7442         * bus/rc.messagebus.in: New file.
7443
7444 2004-10-29  Colin Walters  <walters@redhat.com>
7445
7446         * tools/dbus-monitor.c (filter_func): Return
7447         DBUS_HANDLER_RESULT_HANDLED in filter function
7448         for now.  See:
7449         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7450
7451 2004-10-29  Colin Walters  <walters@redhat.com>
7452
7453         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7454
7455         * bus/services.c (bus_registry_acquire_service): 
7456         Correctly retrieve service name from DBusString
7457         for printing.
7458
7459 2004-10-29  Colin Walters  <walters@redhat.com>
7460
7461         * dbus/dbus-glib.h: Update documentation to not
7462         refer to internal APIs.
7463
7464 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7465
7466         * mono/Arguments.cs (GetDBusTypeConstructor):
7467         type.UnderlyingSystemType will return "System.Byte" if you do it
7468         on "byte[]", which is not what we want.  So check the type.IsArray
7469         property and use System.Array instead.
7470
7471 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7472
7473         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7474         the DBusUserInfo structure since this is passed into the function.
7475         This would cause a double free when the function that allocated
7476         the structure would try to free it when an error occured.
7477
7478         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7479         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7480         for service activation to avoid 32bit/64bit parallel install issues
7481
7482 2004-10-21  Colin Walters  <walters@verbum.org>
7483
7484         * AUTHORS: Fix my email address, the @gnu.org one
7485         has been bouncing for some time.  Also add J5.
7486         
7487 2004-10-21  Colin Walters  <walters@verbum.org>
7488
7489         * dbus/dbus-transport-unix.c (do_authentication): Return
7490         authentication status to callers.
7491         (unix_handle_watch): If we completed authentication this round,
7492         don't do another read.  Instead wait until the next iteration,
7493         after we've read any pending data in the auth buffer.
7494         (unix_do_iteration): Ditto.
7495         (unix_handle_watch): Updated for new do_authentication prototype.
7496
7497 2004-10-18  Colin Walters  <walters@verbum.org>
7498
7499         * bus/selinux.c (bus_selinux_enabled): Handle
7500         --disable-selinux case.
7501         
7502 2004-10-18  Colin Walters  <walters@verbum.org>
7503
7504         * bus/selinux.h: Add bus_selinux_enabled.
7505         
7506         * bus/selinux.c (bus_selinux_enabled): Implement it.
7507         
7508         * bus/config-parser.c (struct include): Add
7509         if_selinux_enabled member.
7510         (start_busconfig_child): Parse if_selinux_enabled
7511         attribute for include.
7512         (bus_config_parser_content): Handle it.
7513
7514         * bus/session.conf.in, bus/system.conf.in: Add
7515         inclusion of context mapping to default config files;
7516         conditional on SELinux being enabled.
7517         
7518         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7519         
7520         * test/data/invalid-config-files/badselinux-1.conf, 
7521         test/data/invalid-config-files/badselinux-2.conf:
7522         Test files for bad syntax.
7523         
7524 2004-10-17  Colin Walters  <walters@verbum.org>
7525
7526         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7527         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7528         format specifier mismatches.
7529
7530 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7531
7532         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7533         format string.
7534
7535         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7536         pointer (bug #1540, Leonardo Boiko).
7537
7538 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7539
7540         * mono/BusDriver.cs: Changed BusDriver struct to remove
7541         the ServiceCreated and ServiceDeleted events and replace them
7542         with the new ServiceOwnerChanged event.
7543
7544         * mono/example/BusListener.cs: Added a new example program,
7545         which listens for and reports any ServiceOwnerChanged events
7546         on the bus driver.
7547
7548         * mono/example/Makefile.am (DESTDIR): Build changes for the
7549         new BusListener.cs example.
7550
7551 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7552
7553         * bus/signals.c (bus_match_rule_parse): validate the components of
7554         match rules (bug #1439).
7555
7556         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7557
7558 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7559
7560         * doc/dbus-specification.xml: document ServiceOwnerChanged
7561         signal.
7562         
7563         * bus/driver.c, bus/driver.h, bus/services.c: Use
7564         ServiceOwnerChanged signal instead of ServiceCreated and
7565         ServiceDeleted.
7566         
7567         * bus/dispatch.c: update testcase for the new signal.
7568
7569 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7570
7571         Patch from Nat Friedman <nat@novell.com>
7572
7573         * mono/Makefile.am: A number of small build fixes to allow "make
7574         distcheck" to succeed.
7575
7576         * mono/example/Makefile.am: "make distcheck" fixes.
7577
7578         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7579         key in @srcdir@.
7580
7581         * test/Makefile.am: "make distcheck" fixes.
7582
7583 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7584
7585         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7586
7587         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7588
7589         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7590         messages after the first one (bug #1389).
7591         
7592         * bus/dispatch.c (check_double_hello_message): add a test case for
7593         the double hello message bug.
7594         (check_existent_service_activation): fix check of spawning error.
7595         
7596 2004-09-16  David Zeuthen  <david@fubar.dk>
7597
7598         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7599
7600 2004-09-12  David Zeuthen  <david@fubar.dk>
7601
7602         Patch from Kay Sievers <kay.sievers@vrfy.org>
7603
7604         * bus/bus.c (bus_context_new):
7605         * bus/bus.h:
7606         * bus/main.c (usage)
7607         (main):
7608         Add commandline option --nofork to override configuration file
7609         setting.
7610
7611 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7612
7613         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7614         compilers don't like it (bug #974).
7615
7616 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7617
7618         * qt/connection.*: Applied patch by Jérôme Lodewyck
7619         <lodewyck@clipper.ens.fr> to integrate an existing
7620         connection into the Qt eventloop
7621
7622 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7623
7624         * mono/BusDriver.cs: Added.  This is a class for interacting with
7625         the org.freedesktop.DBus service.
7626
7627         * mono/Message.cs: Added a mechanism to expose the message that is
7628         currently being dispatched via the static Message.Current
7629         property.  Added Message.Sender and Message.Destination
7630         properties.
7631
7632         * mono/Handler.cs: Expose the dispatched message via
7633         Message.Current when handling method calls.
7634
7635         * mono/Service.cs: Expose the dispatched message via
7636         Message.Current when handling signal emissions.
7637         
7638         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7639         Connection.BaseService property.
7640
7641 2004-08-28  Havoc Pennington  <hp@redhat.com>
7642
7643         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7644
7645         More fixes from Steve Grubb
7646         
7647         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7648         (_dbus_listen_tcp_socket): fix fd leak
7649
7650         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7651         EINTR to a bit lower in the code
7652
7653 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7654
7655         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7656         TRUE if we are inquiring about the existence of the built-in
7657         org.freedesktop.DBus service.
7658
7659 2004-08-25  John Palmieri  <johnp@redhat.com>
7660         * bus/config-parser.c:
7661         (struct PolicyType): Add POLICY_CONSOLE
7662         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7663         (start_busconfig_child): Sets up console element when
7664         <policy at_console=""> is encountered in a policy file
7665         (append_rule_from_element): Convert console elements to console
7666         rules.
7667
7668         * bus/policy.c: 
7669         (bus_policy_create_client_policy): Add console rules to the client
7670         policy based on if the client is at the console
7671         (bus_policy_append_console_rule): New function for adding a
7672         console rule to a policy
7673         (bus_policy_merge): Handle console rule merging
7674
7675         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7676         where we check for console user files
7677         
7678         * dbus/dbus-sysdeps.c:
7679         (_dbus_file_exists): New function which checks if the given
7680         file exists
7681         (_dbus_user_at_console): New function which does the system
7682         specific process of checking if the user is at the console
7683
7684         * dbus/dbus-userdb.c:
7685         (_dbus_is_console_user): New function converts a UID to user name
7686         and then calls the system specific _dbus_user_at_console to 
7687         see if the user is at the console and therefor a console user
7688
7689 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7690
7691         * bus/config-parser.c (set_limit):
7692         * bus/dbus-daemon-1.1.in:
7693         * test/data/valid-config-files/many-rules.conf: set the
7694         max_match_rules_per_connection limt from the config file. 
7695
7696         * doc/busconfig.dtd: update the DTD.
7697
7698         * bus/driver.c: remove some unused variables.
7699
7700 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7701
7702         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7703         it's been replaced by dbus_g_bus_get
7704
7705 2004-08-23  Colin Walters  <walters@redhat.com>
7706
7707         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7708
7709         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7710
7711         * bus/selinux.c: Create a thread for policy reload notification.
7712         (bus_selinux_get_policy_root): Implement.
7713
7714         * bus/config-parser.c (start_busconfig_child)
7715         (bus_config_parser_content): Support SELinux-root relative
7716         inclusion.
7717
7718         * configure.in <HAVE_SELINUX>: Add -lpthread.
7719         
7720         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7721         (test_post_hook): Move memory checking into here.
7722         (test_pre_hook, test_post_hook): Move SELinux checks in
7723         here, but conditional on a DBUS_TEST_SELINUX environment
7724         variable.  Unfortunately we can't run the SELinux checks
7725         as a normal user, since they won't have any permissions
7726         for /selinux.  So this will have to be tested manually
7727         for now, until we have virtualization for most of
7728         libselinux.
7729         
7730 2004-08-23  Havoc Pennington  <hp@redhat.com>
7731
7732         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7733         drop supplementary groups, suggested by Steve Grubb
7734
7735 2004-08-20  Colin Walters  <walters@redhat.com>
7736
7737         * bus/config-parser.c (start_busconfig_child): Remove some unused
7738         variables.
7739         
7740         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7741         warning.
7742
7743 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7744
7745         * configure.in: If --enable-mono is passed in, if we can't find
7746         mono error out.
7747
7748         * mono/Makefile.am: Use /gacutil to install assemblies into the
7749         GAC and not /root.
7750
7751 2004-08-12  Havoc Pennington  <hp@redhat.com>
7752
7753         * NEWS: update for 0.22
7754
7755         * configure.in: release 0.22
7756
7757 2004-08-11  Colin Walters  <walters@redhat.com>
7758
7759         * tools/dbus-send.c (main, usage): Add --reply-timeout
7760         argument.
7761
7762 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7763
7764         * bus/bus.c (process_config_first_time_only): get rid of an unused
7765         DBusError that was causing a memoy leak (bug #989).
7766
7767         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7768         fix compilation on Solaris/Forte C (bug #974)
7769
7770         * bus/main.c (main): plug two minuscule memleaks.
7771
7772 2004-08-10  Havoc Pennington  <hp@redhat.com>
7773
7774         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7775
7776 2004-08-09  Havoc Pennington  <hp@redhat.com>
7777
7778         * COPYING: switch to Academic Free License version 2.1 instead of
7779         2.0, to resolve complaints about patent termination clause.
7780
7781 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7782
7783         * README: added documentation for the --enable-python 
7784         configure switch.
7785
7786 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7787
7788         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7789         _unref in the SELinux support.
7790
7791         * doc/busconfig.dtd: update DTD for SELinux support.
7792
7793         * bus/config-loader-libxml.c: fix error handler and parser
7794         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7795
7796         * configure.in: remove the warning about libxml2.
7797
7798         * dbus/dbus-bus.c: silence doxygen warning.
7799
7800 2004-07-31  Colin Walters  <walters@redhat.com>
7801
7802         * configure.in: Move #error in SELinux check to its own line.
7803
7804 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7805
7806         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7807         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7808         dbus_error_set.
7809
7810         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7811         broken by the change in the _SET_OOM macros.
7812
7813 2004-07-31  Colin Walters  <walters@redhat.com>
7814
7815         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7816         BUS_SET_OOM.
7817
7818 2004-07-31  Colin Walters  <walters@redhat.com>
7819
7820         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7821         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7822         AC_MSG_CHECKING.
7823
7824 2004-07-24  Havoc Pennington  <hp@redhat.com>
7825
7826         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7827
7828         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7829         functionality
7830
7831         * configure.in: add --enable-selinux
7832         
7833         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7834
7835         * bus/main.c (main): initialize and shut down selinux
7836
7837         * bus/connection.c: store SELinux ID on each connection, to avoid 
7838         repeated getting of the string context and converting it into 
7839         an ID
7840
7841         * bus/bus.c (bus_context_get_policy): new accessor, though it
7842         isn't used
7843         (bus_context_check_security_policy): check whether the security
7844         context of sender connection can send to the security context of
7845         recipient connection
7846
7847         * bus/config-parser.c: add parsing for <selinux> and <associate>
7848         
7849         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7850         implement dbus_connection_get_unix_fd()
7851
7852         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7853         function, used by the selinux stuff
7854         
7855 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7856
7857         * bus/config-loader-libxml.c: complete the implementation of
7858         libxml backend for config file loader. Doesn't work with full OOM
7859         test yet. 
7860         
7861         * configure.in: change error when selecting libxml into a warning.
7862         
7863         * test/data/invalid-config-files: add two non-well-formed XML
7864         files. 
7865         
7866         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7867         
7868         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7869         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7870         be necessary to read all the buffer. (bug #894)
7871
7872         * bus/activation.c (bus_activation_activate_service): fix a
7873         potential assertion failure (bug #896). Small optimization in the
7874         case of auto-activation messages.
7875
7876         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7877         add test case for byte-through-vararg bug (#901). patch by Kimmo
7878         Hämäläinen. 
7879
7880 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7881
7882         * python/dbus.py:
7883         * python/dbus_bindings.pyx.in:
7884         Add dbus.init_gthreads (), allow emit_signal to pass
7885         arguments to the signal.
7886         
7887 2004-07-24  Havoc Pennington  <hp@redhat.com>
7888
7889         * AUTHORS: add some people, not really comprehensively, let me
7890         know if I missed you
7891
7892 2004-07-24  Havoc Pennington  <hp@redhat.com>
7893
7894         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7895         Owen
7896
7897         * test/Makefile.am (DIST_SUBDIRS): here also
7898
7899 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7900
7901         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7902         breaking build on Solaris, reported by Farhad Saberi on the ML.
7903
7904         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7905         va_arg invocation to account for integer promotion in the case of
7906         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7907
7908         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7909         _dbus_list_get_first_link, not _dbus_list_get_first.
7910
7911         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7912
7913         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7914         handler functions so that the asserts in _dbus_object_subtree_unref
7915         do not fail.
7916
7917         * dbus/dbus-transport-unix.c (do_reading):
7918         _dbus_transport_queue_messages return value is of type
7919         dbus_bool_t, not DBusDispatchStatus.
7920         
7921 2004-07-19  David Zeuthen  <david@fubar.dk>
7922
7923         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7924
7925         * bus/dispatch.c:
7926         (check_get_connection_unix_user): Debug says GetProperty; but the
7927         method is called GetConnectionUnixUser
7928         (check_get_connection_unix_process_id): New function
7929         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7930         also call check_get_connection_unix_process_id()
7931         
7932         * bus/driver.c:
7933         (bus_driver_handle_get_connection_unix_process_id): New function,
7934         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7935         interface
7936         
7937         * dbus/dbus-auth.c:
7938         (handle_server_data_external_mech): Set pid from the credentials
7939         obtained from the socket
7940         
7941         * dbus/dbus-connection.c:
7942         (dbus_connection_get_unix_process_id): New function
7943         
7944         * dbus/dbus-connection.h: 
7945         Add prototype for dbus_connection_get_unix_process_id
7946         
7947         * dbus/dbus-transport.c:
7948         (_dbus_transport_get_unix_process_id): New function
7949         
7950         * dbus/dbus-transport.h:
7951         Add prototype for _dbus_transport_get_unix_process_id
7952         
7953 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7954
7955         * dbus/dbus-message.c: Message counter fix, patch by Christian
7956         Hammond <chipx86@gnupdate.org>
7957
7958 2004-07-18  Seth Nickell  <seth@gnome.org>
7959
7960         * python/dbus.py:
7961         * python/dbus_bindings.pyx.in:
7962         * python/tests/test-client.py:
7963
7964         Add dbus.ByteArray and dbus_bindings.ByteArray
7965         types so that byte streams can be passed back.
7966
7967         Give jdahlin the heaps of credit that are so
7968         rightfully his.
7969         
7970 2004-07-12  Seth Nickell  <seth@gnome.org>
7971
7972         * python/dbus.py:
7973
7974         Add message argument to the default object_method_handler
7975         function.
7976         
7977         * python/dbus_bindings.pyx.in:
7978
7979         Automatically return NIL when passed an empty list
7980         (we can't pass back a list since lists are typed
7981         and we don't have any idea what type the the client
7982         intended the list to be... :-( )
7983         
7984 2004-07-10  Seth Nickell  <seth@gnome.org>
7985
7986         * python/examples/Makefile.am:
7987
7988         Fix distcheck breakage caused by new examples.
7989
7990 2004-07-10  Seth Nickell  <seth@gnome.org>
7991
7992         * python/dbus.py:
7993
7994         Add "message" argument to service-side dbus.Object
7995         methods. This will break existing services written
7996         using the python bindings, but will allow extraction
7997         of all the message information (e.g. who its from).
7998
7999         Add improved "object oriented" signal handling/emission.
8000         
8001         * python/examples/example-service.py:
8002
8003         Nix this example.
8004         
8005         * python/examples/example-signal-emitter.py:
8006         * python/examples/example-signal-recipient.py:
8007
8008         Two new examples that show how to emit and receive
8009         signals using the new APIs.
8010         
8011         * python/examples/example-signals.py:
8012         * python/examples/gconf-proxy-service.py:
8013         * python/examples/gconf-proxy-service2.py:
8014
8015         Add "message" argument to service methods.
8016
8017 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8018
8019         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8020         * dbus/bus.c (dbus_bus_get_unix_user)
8021         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8022         method of org.freedesktop.DBus interface.
8023
8024         * bus/dispatch.c: test case
8025
8026 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8027
8028         * python/Makefile.am: switched include directory from glib/ to dbus/
8029         since dbus-glib.h moved
8030  
8031 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8032
8033         * configure.in: prevent building the gcj stuff and libxml loader
8034         since they are broken.
8035
8036 2004-06-20  Havoc Pennington  <hp@redhat.com>
8037
8038         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8039         codes from the dbus error names
8040         
8041         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8042         as dbus/dbus-glib.h and that breakage is now visible due to 
8043         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8044         
8045         * glib/dbus-glib.h: s/gproxy/g_proxy/
8046
8047         * dbus/dbus-shared.h: new header to hold stuff shared with
8048         binding APIs
8049         
8050         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8051         than dbus-errors.h
8052
8053         * glib/dbus-glib.h (dbus_set_g_error): move to
8054         dbus-glib-lowlevel.h
8055
8056         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8057         of stuff to enable this
8058
8059         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8060
8061         * a bunch of other changes with the same basic "separate glib 
8062         bindings from dbus.h" theme
8063         
8064 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8065
8066         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8067
8068         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8069
8070 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8071
8072         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8073         the reply value of the ServiceExists message.
8074
8075 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8076
8077         * python/dbus_bindings.pyx.in: No longer need to parse path
8078         elements and pass them as arrays of strings.  The C API now
8079         accepts plain path strings.
8080         (_build_parsed_path): removed 
8081
8082 2004-06-07  Havoc Pennington  <hp@redhat.com>
8083
8084         * doc/TODO: remove auto-activation item since it's done; sort
8085         items by importance/milestone
8086
8087 2004-06-07  Havoc Pennington  <hp@redhat.com>
8088
8089         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8090         random signature when using REQUIRED_FIELDS (this hack won't work
8091         in the long term)
8092
8093         * dbus/dbus-message.c: change the signature to be a header field,
8094         instead of message->signature special-case string. Incremental
8095         step forward. Then we can fix up code to send the signature in the
8096         message, then fix up code to validate said signature, then fix up
8097         code to not put the typecodes inline, etc.
8098         (load_one_message): don't make up the signature after the fact
8099         (decode_header_data): require signature field for the known
8100         message types
8101
8102         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8103
8104         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8105
8106 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8107
8108         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8109
8110         * mono/Handler.cs: Updated to follow new path argument for
8111         (un-)registering objects.
8112
8113         * mono/example/Makefile.am:
8114         * mono/Makefile.am:
8115         * configure.in: Bumped required version for mono and use new -pkg
8116         syntax for deps
8117
8118 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8119
8120         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8121         registration functions take the path argument as char* instead of
8122         char**.
8123
8124         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8125         split off the path decompostion part of
8126         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8127         warnings. 
8128
8129         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8130         
8131 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8132  
8133         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8134         machine approach.  A state is implemented as a function that
8135         handles incoming events as specified for that state.
8136         
8137         * doc/dbus-specification.xml: Update auth protocol state machine
8138         specification to match implementation.  Remove some leftover
8139         base64 examples.
8140
8141 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8142
8143         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8144         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8145         quiet doxygen.
8146
8147         * Doxyfile.in: remove deprecated options.
8148
8149         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8150         glib/test-thread.h, glib/test-thread-client.c,
8151         glib/test-thread-server.c, glib/test-profile.c,
8152         glib/test-dbus-glib.c: remove these unused files.
8153
8154 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8155
8156         * dbus/dbus-object-tree.c
8157         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8158         non-fallback handlers (bug #684).
8159         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8160         (find_subtree_recurse): report wether the returned subtree is an
8161         exact match or a "fallback" match higher up in the tree.
8162         (object_tree_test_iteration): update test case.
8163
8164 2004-06-01  Seth Nickell  <seth@gnome.org>
8165
8166         * python/dbus_bindings.pyx.in:
8167         * python/tests/test-client.py:
8168
8169         Round off basic type support. Add dicts (yay!), and 
8170         remaining array types.
8171
8172         Make MessageIter more general so it works for dicts too.
8173
8174         Mark all loop variables as C integers.
8175         
8176 2004-05-31  Havoc Pennington  <hp@redhat.com>
8177
8178         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8179         "in" before "out"
8180
8181         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8182
8183         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8184         option that runs the tests, and start filling in some code
8185         including for starters just dumping the interfaces to stdout
8186
8187         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8188
8189         * test/data/valid-introspection-files/lots-of-types.xml: test of
8190         an example introspection file
8191
8192         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8193         "node" (I think...)
8194
8195 2004-05-31  Seth Nickell  <seth@gnome.org>
8196
8197         * python/dbus_bindings.pyx.in:
8198         * python/tests/test-client.py:
8199
8200         Test Suite: 1
8201         Python Bindings: 0
8202
8203         Fix string array memory trashing bug... oops...
8204
8205 2004-05-30  Seth Nickell  <seth@gnome.org>
8206
8207         * python/dbus.py:
8208
8209         Add a nicer-but-less-flexible alternate API for handling 
8210         calls to virtual objects in dbus.ObjectTree.
8211
8212         Screw up the argument order to the dbus.Object constructor
8213         for consistency with dbus.ObjectTree (and to make dbus_methods
8214         optional for future extension)
8215         
8216         * python/examples/Makefile.am:
8217         * python/examples/gconf-proxy-service.py:
8218         * python/examples/gconf-proxy-service2.py:
8219
8220         Alternate implementation of gconf-proxy-service using the
8221         nicer dbus.ObjectTree API.
8222         
8223         * python/examples/example-service.py:
8224         * python/tests/test-server.py
8225
8226         Reverse the argument order to deal with dbus.Object constructor
8227         changes.
8228         
8229 2004-05-30  Seth Nickell  <seth@gnome.org>
8230
8231         * python/examples/example-client.py:
8232         * python/examples/example-service.py:
8233
8234         Take it back. Lists seem to work but they're broken
8235         in the test suite. Make the base examples use
8236         lists (works fine).
8237
8238 2004-05-30  Seth Nickell  <seth@gnome.org>
8239
8240         * python/dbus_bindings.pyx.in:
8241         * python/tests/test-client.py:
8242
8243         Add some more tests and fix errors that crop up.
8244         Unfortunately, currently it seems like marshalling
8245         and unmarshalling of lists is completely broken :-(
8246
8247 2004-05-30  Seth Nickell  <seth@gnome.org>
8248
8249         * python/dbus_bindings.pyx.in:
8250
8251         Add support for ObjectPath type.
8252
8253         * python/dbus.py:
8254
8255         Refactor message handling code to a common function.
8256         
8257         * python/tests/test-client.py:
8258         * python/tests/test-server.py:
8259
8260         Add tests that check to make sure values of all types
8261         can be echoed from a service w/o mangling.
8262         
8263 2004-05-29  Seth Nickell  <seth@gnome.org>
8264
8265         * python/dbus.py:
8266
8267         Add ObjectTree class which allows implementation
8268         of trees of "virtual" objects. Basically the python
8269         wrapper for "register_fallback".
8270         
8271         * python/examples/Makefile.am
8272         * python/examples/gconf-proxy-client.py:
8273         * python/examples/gconf-proxy-service.py:
8274
8275         Implement a simple GConf proxy service that supports
8276         get/set on string and int GConf keys using the ObjectTree.
8277         
8278 2004-05-29  Seth Nickell  <seth@gnome.org>
8279
8280         * python/dbus.py:
8281         * python/examples/example-client.py:
8282         * python/examples/example-service.py:
8283         * python/examples/list-system-services.py:
8284
8285         Add SessionBus, SystemBus and ActivationBus classes
8286         so you don't need to know the special little BUS_TYPE
8287         flag.
8288         
8289 2004-05-29  Havoc Pennington  <hp@redhat.com>
8290
8291         * bus/config-parser.c (process_test_valid_subdir): temporarily
8292         stop testing config parser OOM handling, since expat has issues
8293         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8294
8295         * bus/dbus-daemon-1.1.in: change requested_reply to
8296         send_requested_reply/receive_requested_reply so we can send the
8297         replies, not just receive them.
8298
8299         * bus/config-parser.c: parse the new
8300         send_requested_reply/receive_requested_reply
8301
8302         * bus/policy.c (bus_client_policy_check_can_send): add
8303         requested_reply argument and use it
8304
8305         * bus/bus.c (bus_context_check_security_policy): pass through
8306         requested_reply status to message send check
8307
8308         * bus/system.conf.in: adapt to requested_reply change
8309         
8310 2004-05-28  Havoc Pennington  <hp@redhat.com>
8311
8312         * test/glib/test-service-glib.c (main): remove unused variable
8313
8314         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8315
8316         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8317         from the enum, no longer in use.
8318
8319         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8320         works right.
8321
8322         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8323         whether error_name passed in is a valid error name.
8324
8325 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8326
8327         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8328         OBJECT_PATH and OBJECT_PATH_ARRAY
8329
8330 2004-05-28  Seth Nickell  <seth@gnome.org>
8331
8332         * python/examples/Makefile.am:
8333
8334         Forget to add Makefile.am. Do not pass go.
8335
8336 2004-05-28  Michael Meeks  <michael@ximian.com>
8337
8338         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8339         fix no int64 case.
8340
8341         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8342
8343         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8344         (_dbus_message_iter_get_basic_type_array): impl.
8345         drastically simplify ~all relevant _get methods to use these.
8346         (_dbus_message_iter_append_basic_array),
8347         (dbus_message_iter_append_basic): impl
8348         drastically simplify ~all relevant _append methods to use these.
8349
8350         * dbus/dbus-message-builder.c (parse_basic_type) 
8351         (parse_basic_array, lookup_basic_type): impl.
8352         (_dbus_message_data_load): prune scads of duplicate /
8353         cut & paste coding.
8354
8355         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8356         (_dbus_demarshal_basic_type): implement,
8357         (demarshal_and_validate_len/arg): beef up debug.
8358         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8359
8360 2004-05-27  Seth Nickell  <seth@gnome.org>
8361
8362         * configure.in:
8363         * python/Makefile.am:
8364
8365         Include the example python apps in the tarball.
8366         
8367         * python/examples/list-system-services.py
8368
8369         Add a python new example that fetches the list of services
8370         from the system bus.
8371         
8372 2004-05-27  Seth Nickell  <seth@gnome.org>
8373
8374         * python/dbus.py:
8375         * python/dbus_bindings.pyx.in:
8376
8377         Fix failure to notify that a signal was not handled,
8378         resulted in hung functions.
8379         
8380 2004-05-25  Colin Walters  <walters@redhat.com>
8381
8382         * tools/dbus-monitor.c (main): Monitor all types of messages.
8383
8384 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8385
8386         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8387         which unregisters the object path and disposes the handler.
8388
8389 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8390  
8391         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8392          
8393         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8394         operands to && so we call dbus_message_iter_next () for the last
8395         argument also.
8396
8397 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8398
8399         * dbus/dbus-object-tree.c
8400         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8401         children even if the requested path isn't registered.
8402         (object_tree_test_iteration): test object_tree_list_registered.
8403
8404         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8405         it to 0.
8406         
8407 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8408
8409         * doc/TODO: Remove resolved items.
8410
8411         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8412         field.
8413         
8414         * bus/connection.c (bus_connections_expect_reply): Enforce the
8415         per-connection limit on pending replies.
8416         
8417         Patch from Jon Trowbridge <trow@ximian.com>:
8418  
8419         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8420         up a watch that triggers a config reload when one end of the pipe
8421         becomes readable.
8422         (signal_handler): Instead of doing the config reload in our SIGHUP
8423         handler, just write to the reload pipe and let the associated
8424         watch handle the reload when control returns to the main loop.
8425  
8426         * bus/driver.c (bus_driver_handle_reload_config): Added.
8427         Implements a ReloadConfig method for requesting a configuration
8428         file reload via the bus driver.
8429  
8430 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8431
8432         * HACKING: Updated release instructions concerning the wiki page.
8433
8434 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8435
8436         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8437         filter against auth->allowed_mechs; we only add allowed mechs in
8438         record_mechanisms().
8439  
8440         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8441         ALLOWED_MECHS to auth-script format so we can set the list of
8442         allowed mechanisms.
8443  
8444         * data/auth/client-out-of-mechanisms.auth-script: New test to
8445         check client disconnects when it is out of mechanisms to try.
8446  
8447         * dbus/dbus-auth.c (process_command): Remove check for lines
8448         longer that 1 MB; we only buffer up maximum 16 kB.
8449  
8450         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8451         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8452         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8453         assume there might be unused bytes.
8454  
8455         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8456         client-out-of-mechs, it is handled in process_reject(). Move check
8457         for max failures to send_rejected(), as it's a server-only thing.
8458
8459         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8460         send_auth(), send_data(), send_rejected(), send_error(),
8461         send_ok(), send_begin() and send_cancel().
8462
8463 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8464
8465         Remove base64 encoding, replace with hex encoding. Original patch
8466         from trow@ximian.com, added error handling.
8467
8468         * dbus/dbus-string.c (_dbus_string_base64_encode)
8469         (_dbus_string_base64_decode): Remove.
8470         (_dbus_string_hex_decode): Add end_return argument so we can
8471         distinguish between OOM and invalid hex encoding.
8472         (_dbus_string_test): Remove base64 tests and add test case for
8473         invalid hex.
8474
8475         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8476         Replace base64 with hex.
8477
8478         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8479         for invalid hex encoded data in auth protocol.
8480
8481 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8482
8483         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8484         leak.
8485
8486 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8487
8488         * mono/dbus-sharp.dll.config.in: Added for GAC
8489         * mono/dbus-sharp.snk: Added for GAC
8490         * mono/Assembly.cs.in: Added for GAC
8491         * mono/Makefile.am: Changes for GAC installation        
8492         * configure.in: Added refs for dbus-sharp.dll.config.in and
8493         Assembly.cs.in. More fixes for mono testing
8494         * mono/example/Makefile.am: Changed var to CSC
8495         * Makefile.am: Changed flag name to DBUS_USE_CSC
8496
8497 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8498
8499         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8500         * mono/doc/*: Added documentation framework
8501         * configure.in: Added monodoc check
8502         * README: Added description of mono configure flags
8503
8504 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8505
8506         * doc/dbus-specification.xml: Added a "Required" column to the 
8507         header fields table and changed the "zero or more" verbage in
8508         the above paragraph to read "The header must contain the required 
8509         named header fields and zero or more of the optional named header 
8510         fields".
8511         * test/data/invalid-messages/*.message: Added the required PATH 
8512         named header field to the tests so that they don't fail on 
8513         'Missing path field'
8514
8515 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8516
8517         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8518         the stack by implicitly defining variable and parameter types and
8519         removing the hack of defining C pointers as python objects and later
8520         casting them.
8521
8522 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8523
8524         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8525
8526 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8527
8528         * mono/DBusType/Dict.cs: Handle empty dicts
8529         * mono/DBusType/Array.cs: Handle empty arrays
8530         * mono/Arguments.cs: Handle empty arguments
8531
8532 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8533
8534         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8535         field
8536
8537 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8538
8539         * test/data/valid-messages/standard-*.message: Update message
8540         test scripts to new header field names.
8541
8542 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8543
8544         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8545         overflow to times_we_did_each_thing array which would chop off the
8546         first character of the failure_dir string. Increased the size of
8547         the array to 7 to reflect the number of random mutation functions
8548         we have.
8549
8550 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8551
8552         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8553         unix_server->watch here, it is unreffed in disconnect.
8554         (_dbus_server_new_for_tcp_socket): convert NULL host to
8555         "localhost" here so we don't append NULL to address.
8556         
8557         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8558         various addresses, including tcp with no explicit host.
8559
8560 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8561
8562         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8563         fix incorrect setting of .name_offset in the HeaderField (it was
8564         off by two bytes, positioned right after the name and typecode)
8565
8566         * bus/bus.c (bus_context_new, bus_context_unref): test before
8567         calling dbus_server_free_data_slot and _dbus_user_database_unref
8568         in case of an error.
8569
8570         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8571         by libdbus-gtool.
8572
8573 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8574
8575         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8576         _dbus_poll() instead of select().
8577
8578 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8579
8580         * bus/main.c (signal_handler): Reload the configuration files
8581         on SIGHUP.
8582         (main): Set up our SIGHUP handler.
8583
8584         * bus/bus.c (struct BusContext): Store the config file, user and
8585         fork flag in the BusContext.
8586         (process_config_first_time_only): Added.  Contains the code
8587         (previously in bus_context_new) for setting up the BusContext from
8588         the BusConfigParser that should only be run the first time the
8589         config files are read.
8590         (process_config_every_time): Added.  Contains the code (previously
8591         in bus_context_new) for setting up the BusContext from the
8592         BusConfigParser that should be run every time the config files are
8593         read.
8594         (load_config): Added.  Builds a BusConfigParser from the config
8595         files and passes the resulting structure off to
8596         process_config_first_time_only (assuming this is the first time)
8597         and process_config_every_time.
8598         (bus_context_new): All of the config-related code has been moved
8599         to process_config_first_time_only and process_config_every_time.
8600         Now this function just does the non-config-related initializations
8601         and calls load_config.
8602         (bus_context_reload_config): Added.
8603
8604 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8605
8606         * bus/driver.c (bus_driver_handle_get_service_owner):
8607         implement a GetServiceOwner method.
8608         * doc/dbus-specification.xml: document it.
8609         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8610         
8611         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8612         implement, using the bus GetServiceOwner method.
8613
8614         * test/glib/test-dbus-glib.c:
8615         use dbus_gproxy_new_for_service_owner so that we can receive the
8616         signal. 
8617
8618 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8619
8620         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8621         dbus/dbus-message.c, dbus/dbus-protocol.h
8622         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8623
8624         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8625         dbus/dbus-message.c, dbus/dbus-protocol.h
8626         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8627
8628         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8629         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8630         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8631
8632         * doc/dbus-specification.xml (Header Fields Table):
8633         s/SERVICE/DESTINATION
8634         s/SENDER_SERVICE/SENDER
8635
8636
8637 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8638
8639         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8640         a few seconds.
8641
8642 2004-04-13  Michael Meeks  <michael@ximian.com>
8643
8644         * glib/dbus-gobject.c (handle_introspect): split out
8645         (introspect_properties): this.
8646         (handle_introspect): implement this.
8647
8648         * test/glib/Makefile.am: use the absolute path so the bus
8649         daemon's chdir ("/") doesn't kill us dead.
8650
8651         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8652
8653 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8654
8655         * bus/config-parser.c (struct BusConfigParser): Added
8656         included_files field.
8657         (seen_include): Added.  Checks whether or not a file has already
8658         been included by any parent BusConfigParser.
8659         (bus_config_parser_new): Copy the parent's included_files.
8660         (include_file): Track which files have been included, and fail on
8661         circular inclusions.
8662         (process_test_valid_subdir): Changed printf to report if we are
8663         testing valid or invalid conf files.
8664         (all_are_equiv): Changed printf to be a bit clearer about
8665         what we are actually doing.
8666         (bus_config_parser_test): Test invalid configuration files.
8667
8668 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8669
8670         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8671         argument.  If non-null, the newly-constructed BusConfigParser will
8672         be initialized with the parent's BusLimits instead of the default
8673         values.
8674         (include_file): When including a config file, pass in
8675         the current parser as the parent and then copy the BusLimits
8676         from the included BusConfigParser pack to the current parser.
8677         (process_test_valid_subdir): Renamed from process_test_subdir.
8678         (process_test_equiv_subdir): Added.  Walks through a directory,
8679         descending into each subdirectory and loading the config files
8680         it finds there.  If any subdirectory contains two config files
8681         that don't produce identical BusConfigParser structs, fail.
8682         For now, the BusConfigParser's BusPolicies are not compared.
8683         (bus_config_parser_test): Call both process_test_valid_subdir and
8684         process_test_equiv_subdir.
8685
8686         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8687         argument and pass it along to the call to bus_config_parser_new.
8688         Also made a few small changes to allow this code to compile.
8689
8690         * bus/config-loader-expat.c (bus_config_load): Take a parent
8691         argument and pass it along to the call to bus_config_parser_new.
8692
8693         * bus/bus.c (bus_context_new): Load the config file
8694         with a NULL parent argument.
8695
8696 2004-03-29  Michael Meeks  <michael@ximian.com>
8697
8698         * glib/dbus-gobject.c (introspect_properties): split
8699         out, fix mangled 'while' flow control.
8700         (introspect_signals): implement.
8701         (handle_introspect): update.
8702
8703 2004-03-29  Michael Meeks  <michael@ximian.com>
8704
8705         * glib/dbus-gobject.c (set_object_property): split out / 
8706         re-work, use the property type, and not the message type(!)
8707         (get_object_property): ditto.
8708
8709         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8710         (dbus_gvalue_marshal): make this code re-usable, needed
8711         for signals too, also on both proxy and server side.
8712         Re-write for more efficiency / readability.
8713
8714 2004-03-29  Michael Meeks  <michael@ximian.com>
8715
8716         * dbus/dbus-message.c
8717         (dbus_message_new_error_printf): impl.
8718
8719         * dbus/dbus-connection.c
8720         (dbus_connection_unregister_object_path): fix warning.
8721
8722         * configure.in: fix no-mono-installed situation.
8723
8724 2004-03-27  Havoc Pennington  <hp@redhat.com>
8725
8726         Patch from Timo Teräs:
8727         
8728         * tools/dbus-send.c (main): if --print-reply, assume type is
8729         method call; support boolean type args
8730         
8731         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8732         bunch of memleak and logic bugs
8733         
8734 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8735
8736         * mono/Arguments.cs:
8737         * mono/Introspector.cs:
8738         * mono/Handler.cs:
8739         * mono/InterfaceProxy.cs:
8740         * mono/Message.cs
8741         * mono/ProxyBuilder.cs:
8742         * mono/Service.cs:
8743         Added InterfaceProxy class to avoid building proxies for every
8744         object.
8745
8746         * dbus-message.h:
8747         * dbus-message.c (dbus_message_append_args_valist)
8748         (dbus_message_iter_get_object_path)
8749         (dbus_message_iter_get_object_path_array)
8750         (dbus_message_iter_append_object_path)
8751         (dbus_message_iter_append_object_path_array):
8752         Added object_path iter functions to handle OBJECT_PATH arguments
8753         
8754 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8755
8756         First checkin of mono bindings.
8757         * configure.in:
8758         * Makefile.am:
8759         Build stuff for the bindings
8760         * dbus-sharp.pc.in: Added for pkgconfig
8761         
8762 2004-03-21  Havoc Pennington  <hp@redhat.com>
8763
8764         * test/test-service.c (main): remove debug spew
8765
8766 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8767
8768         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8769         arrays
8770
8771         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8772         (dbus_message_iter_init_array_iterator)
8773         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8774         indicate whether the iterator is empty
8775
8776         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8777         warnings
8778
8779 2004-03-19  Havoc Pennington  <hp@redhat.com>
8780
8781         * NEWS: 0.21 updates
8782
8783         * configure.in: 0.21
8784
8785         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8786         
8787         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8788         you don't need pyrex to make dist
8789
8790         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8791         sources; run moc
8792         
8793 2004-03-18  Richard Hult  <richard@imendio.com>
8794
8795         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8796         (dbus_message_set_auto_activation): Add doxygen docs.
8797
8798 2004-03-16  Richard Hult  <richard@imendio.com>
8799
8800         * bus/activation.c: (bus_activation_service_created),
8801         (bus_activation_send_pending_auto_activation_messages),
8802         (bus_activation_activate_service):
8803         * bus/activation.h:
8804         * bus/dispatch.c: (bus_dispatch),
8805         (check_nonexistent_service_auto_activation),
8806         (check_service_auto_activated),
8807         (check_segfault_service_auto_activation),
8808         (check_existent_service_auto_activation), (bus_dispatch_test):
8809         * bus/driver.c: (bus_driver_handle_activate_service):
8810         * bus/services.c: (bus_registry_acquire_service):
8811         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8812         (dbus_message_get_auto_activation):
8813         * dbus/dbus-message.h:
8814         * dbus/dbus-protocol.h: Implement auto-activation.
8815         
8816         * doc/dbus-specification.xml: Add auto-activation to the spec.
8817
8818 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8819
8820         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8821         fix a bug with CUSTOM types.
8822
8823         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8824         a unit test for this bug (used to fail).
8825
8826 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8827
8828         * bus/activation.c:
8829         (babysitter_watch_callback): notify all pending activations waiting for
8830           the same exec that the activation failed.
8831         (bus_activation_activate_service): shortcut the activation if we 
8832           already waiting for the same executable to start up.
8833
8834 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8835
8836         * bus/activation.c: 
8837         - Added service file reloading. 
8838           Each service files directory is kept in an hash table in 
8839           BusActivation and each BusActivationEntry knows what .service-file it
8840           was read from. So when you try to activate a service the bus will 
8841           check if it's been updated, removed or if new .service-files has 
8842           been installed.
8843         - Test code at the bottom for the service file reloading.
8844         * bus/test-main.c: (main):
8845         * bus/test.h:
8846         - added service reloading test.
8847         * dbus/dbus-sysdeps.c: 
8848         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8849
8850 2004-03-08  Michael Meeks  <michael@ximian.com>
8851
8852         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8853         bail immediately if disconnected, to avoid busy loop.
8854
8855         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8856         cleanup cut/paste/inefficiency.
8857
8858 2004-03-01  David Zeuthen  <david@fubar.dk>
8859
8860         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8861         bug where args were used twice. This bug resulted in a segfault
8862         on a Debian/PPC system when starting the messagebus daemon. Include
8863         dbus-sysdeps.h for DBUS_VA_COPY
8864
8865         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8866
8867         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8868         appropriate va_copy implementation. From GLib
8869         
8870 2004-02-24  Joe Shaw  <joe@ximian.com>
8871
8872         * bus/services.c (bus_registry_acquire_service): We need to pass
8873         in the service name to dbus_set_error() to prevent a crash.
8874
8875 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8876
8877         * AUTHORS: Reveal my True identity.
8878
8879 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8880
8881         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8882         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8883
8884 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8885
8886         * doc/TODO: Added not about better error check of configuration files.
8887
8888 2003-12-02  Richard Hult  <richard@imendio.com>
8889
8890         * Update AFL version to 2.0 throughout the source files to reflect
8891         the update that was done a while ago.
8892
8893 2003-12-02  Richard Hult  <richard@imendio.com>
8894
8895         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8896         wrote_dict_key to FALSE on the iter that the dict is appended to,
8897         just like when appending other types. Fixes a bug where a dict
8898         couldn't be put inside a dict.
8899         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8900         (message_iter_test, _dbus_message_test): Add test case for dict
8901         inside dict.
8902
8903 2003-12-01  David Zeuthen  <david@fubar.dk>
8904
8905         * python/dbus.py: Add the actual message when calling the reciever
8906         of a signal such that parameters can be inspected. Add the method
8907         remove_signal_receiver
8908         
8909 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8910
8911         * bus/*.[ch]:
8912         * dbus/*.[ch]:
8913         * glib/*.[ch]: Made ref functions return the pointer
8914
8915 2003-11-25  Zack Rusin  <zack@kde.org>
8916
8917         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8918
8919         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8920         wrappers,
8921
8922         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8923         the Integrator and to better fit with the server,
8924
8925 2003-11-24  Zack Rusin  <zack@kde.org>
8926
8927         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8928         the integrator handles it now
8929
8930         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8931         since QTimer wasn't really meant to be used the way DBusTimeout is
8932
8933 2003-11-24  Zack Rusin  <zack@kde.org>
8934
8935         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8936         Integrator class which integrates D-BUS with the Qt event loop,
8937
8938         * qt/connection.h, qt/connection.cpp: Move all the code which
8939         was dealing with D-BUS integration to the Integrator class,
8940         and start using Integrator,
8941
8942 2003-11-23  Zack Rusin  <zack@kde.org>
8943
8944         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8945         wrapper
8946
8947         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8948         switching namespaces to DBusQt, reworking the class,
8949
8950         * Makefile.cvs: switching dependencies so that it matches KDE 
8951         schematics,
8952         
8953         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8954         the library
8955
8956 2003-11-19  Havoc Pennington  <hp@redhat.com>
8957
8958         * NEWS: update
8959
8960         * configure.in: bump version to 0.20
8961
8962         * configure.in (have_qt): add yet another place to look for qt
8963         (someone hand trolltech a .pc file...)
8964
8965 2003-11-01  Havoc Pennington  <hp@redhat.com>
8966
8967         * doc/dbus-specification.xml: add state machine docs on the auth
8968         protocol; just a first draft, I'm sure it's wrong.      
8969
8970 2003-10-28  David Zeuthen  <david@fubar.dk>
8971
8972         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8973         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8974         
8975 2003-10-28  Havoc Pennington  <hp@redhat.com>
8976
8977         * dbus/dbus-message.c (get_next_field): delete unused function
8978
8979 2003-10-28  Havoc Pennington  <hp@redhat.com>
8980
8981         * bus/expirelist.c (do_expiration_with_current_time): detect
8982         failure of the expire_func due to OOM
8983
8984         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8985
8986         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8987         NoReply error that's now created by the bus when the service exits
8988
8989 2003-10-28  Havoc Pennington  <hp@redhat.com>
8990
8991         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
8992         tests for set_path, set_interface, set_member, etc.
8993
8994         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
8995
8996         * dbus/dbus-message.c (set_string_field): always just delete and
8997         re-append the field; accept NULL for deletion
8998         (re_align_fields_recurse): reimplement
8999         
9000 2003-10-26  Havoc Pennington  <hp@redhat.com>
9001
9002         * dbus/dbus-connection.c: fix docs to properly describe the
9003         disconnected message
9004         (_dbus_connection_notify_disconnected): remove this function; 
9005         we can't synchronously add the disconnected message, we have to 
9006         do it after we've queued any remaining real messages
9007         (_dbus_connection_get_dispatch_status_unlocked): queue the
9008         disconnect message only if the transport has finished queueing all
9009         its real messages and is disconnected.
9010         (dbus_connection_disconnect): update the dispatch status here
9011
9012 2003-10-22  Havoc Pennington  <hp@redhat.com>
9013
9014         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9015
9016         * bus/connection.c (bus_transaction_send_from_driver): set the
9017         destination to the connection's base service
9018
9019 2003-10-20  Havoc Pennington  <hp@redhat.com>
9020
9021         hmm, make check is currently not passing.
9022         
9023         * doc/dbus-specification.xml: add requirement that custom type
9024         names follow the same rules as interface names.
9025
9026         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9027         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9028         'map'
9029
9030         * doc/dbus-specification.xml: update type codes to match
9031         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9032         CUSTOM. Add type OBJECT_PATH to the spec.
9033
9034 2003-10-17  Havoc Pennington  <hp@redhat.com>
9035
9036         * bus/driver.c (create_unique_client_name): use "." as separator
9037         in base service names instead of '-'
9038
9039         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9040         byte at the end of the string
9041
9042         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9043         optimization macros since string validation seems to be a slow
9044         point.
9045         
9046         * doc/dbus-specification.xml: restrict valid
9047         service/interface/member/error names. Add test suite code for the
9048         name validation.
9049
9050         * dbus/dbus-string.c: limit service/interface/member/error names 
9051         to [0-9][A-Z][a-z]_
9052
9053         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9054         format arg to verbose spew
9055
9056         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9057         memory, return instead of g_error
9058
9059         * test/test-service.c (path_message_func): support emitting a
9060         signal on request
9061
9062         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9063         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9064         assuming the activation bus was the session bus so that services
9065         started manually will still register.
9066         (init_connections_unlocked): fix so that in OOM situation we get
9067         the same semantics when retrying the function
9068         
9069         * test/test-service.c (main): change to use path registration, to
9070         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9071         than DBUS_BUS_SESSION
9072
9073 2003-10-16  Havoc Pennington  <hp@redhat.com>
9074
9075         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9076
9077         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9078         coverage of the tests
9079         (coverage-report.txt): don't move the .da and .bbg files around
9080
9081 2003-10-16  Havoc Pennington  <hp@redhat.com>
9082
9083         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9084         to put there
9085
9086 2003-10-16  Havoc Pennington  <hp@redhat.com>
9087
9088         * bus/connection.c (bus_pending_reply_expired): either cancel or
9089         execute, not both
9090         (bus_connections_check_reply): use unlink, not remove_link, as we
9091         don't want to free the link; fixes double free mess
9092
9093         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9094         where no reply was received
9095
9096         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9097         fix a refcount leak
9098
9099         * bus/signals.c (match_rule_matches): add special cases for the
9100         bus driver, so you can match on sender/destination for it.
9101
9102         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9103         DBUS_PRINT_BACKTRACE is set
9104
9105         * dbus/dbus-internals.c: add pid to assertion failure messages
9106
9107         * dbus/dbus-connection.c: add message type code to the debug spew
9108
9109         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9110         sender=foo not service=foo
9111
9112         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9113         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9114         DBUS_ACTIVATION_ADDRESS instead
9115
9116         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9117         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9118
9119         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9120         context struct
9121
9122         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9123         (dbus_message_iter_get_object_path_array): new function (half
9124         finished, disabled for the moment)
9125         
9126         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9127         DBUS_MESSAGE_TYPE_ERROR
9128
9129         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9130         avoid redirecting stderr to /dev/null
9131         (babysit): close stdin if not doing the "exit_with_session" thing
9132
9133         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9134         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9135         stdout/stdin, so things don't get confused
9136         
9137         * bus/system.conf.in: fix to allow replies, I modified .conf
9138         instead of .conf.in again.
9139
9140 2003-10-14  David Zeuthen  <david@fubar.dk>
9141
9142         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9143         argtype to arg_type when raising unknown arg type exception.
9144         Changed type list to reflect the changes in dbus-protocol.h so 
9145         the bindings actually work.
9146
9147 2003-10-14  Havoc Pennington  <hp@redhat.com>
9148
9149         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9150         to have a bug keeping it from outputting the .da files sometimes
9151         (string_get_string): don't append garbage nul bytes to the string.
9152
9153 2003-10-15  Seth Nickell  <seth@gnome.org>
9154
9155         * python/Makefile.am:
9156
9157         Include dbus_h_wrapper.h in the dist tarball.
9158
9159 2003-10-14  Havoc Pennington  <hp@redhat.com>
9160
9161         * bus/bus.c (bus_context_check_security_policy): revamp this to
9162         work more sanely with new policy-based requested reply setup
9163
9164         * bus/connection.c (bus_transaction_send_from_driver): set bus
9165         driver messages as no reply
9166
9167         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9168         requested_reply attribute on allow/deny rules
9169
9170         * bus/system.conf: add <allow requested_reply="true"/>
9171
9172         * bus/driver.c (bus_driver_handle_message): fix check for replies
9173         sent to the bus driver, which was backward. How did this ever work
9174         at all though? I think I'm missing something.
9175
9176         * dbus/dbus-message.c (decode_header_data): require error and
9177         method return messages to have a reply serial field to be valid
9178         (_dbus_message_loader_queue_messages): break up this function;
9179         validate that reply serial and plain serial are nonzero; 
9180         clean up the OOM/error handling.
9181         (get_uint_field): don't return -1 from this
9182         (dbus_message_create_header): fix signed/unsigned bug
9183
9184         * bus/connection.c (bus_connections_expect_reply): save serial of
9185         the incoming message, not reply serial
9186
9187 2003-10-14  Havoc Pennington  <hp@redhat.com>
9188
9189         * bus/connection.c: implement pending reply tracking using
9190         BusExpireList
9191
9192         * bus/bus.c (bus_context_check_security_policy): verify that a
9193         reply is pending in order to allow a reply to be sent. Deny 
9194         messages of unknown type.
9195
9196         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9197
9198         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9199         (bus_context_get_reply_timeout): new
9200
9201 2003-10-13  Seth Nickell  <seth@gnome.org>
9202
9203         * python/Makefile.am:
9204
9205         Pass "make distcheck": remove a couple files from DIST_FILES
9206         that weren't included in the final version.
9207
9208 2003-10-12  Havoc Pennington  <hp@pobox.com>
9209
9210         Added test code that 1) starts an actual bus daemon and 2) uses
9211         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9212         more testing possible, but this is the basic framework.
9213         
9214         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9215         empty proxy lists from the proxy list hash
9216
9217         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9218         couple of return_if_fail checks
9219
9220         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9221         to allocate, so everything is cleared to NULL as it should be.
9222
9223         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9224         source as data to dbus_connection_set_timeout_functions() as the 
9225         timeout functions expected
9226
9227         * test/glib/run-test.sh: add a little script to start up a message
9228         bus and run tests using it
9229
9230         * tools/dbus-launch.1: updates
9231
9232         * tools/dbus-launch.c (main): add --config-file option
9233
9234         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9235         that could never be reached.
9236
9237         * dbus/dbus-message.c (dbus_message_new_method_return) 
9238         (dbus_message_new_error, dbus_message_new_signal): set the
9239         no-reply-expected flag on all these. Redundant, but may
9240         as well be consistent.
9241
9242 2003-10-11  Havoc Pennington  <hp@pobox.com>
9243
9244         * test/decode-gcov.c (function_solve_graph): make broken block
9245         graph a nonfatal error since it seems to be broken. Need to debug
9246         this.
9247
9248         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9249         can't just check type > INVALID < LAST anymore
9250
9251         * dbus/dbus-message.c (dbus_message_get_signature): new function
9252         (dbus_message_has_signature): new function
9253         (struct DBusMessage): add signature field (right now it isn't sent
9254         over the wire, just generated on the fly)
9255         (dbus_message_copy): copy the signature, and init strings to
9256         proper length to avoid some reallocs
9257         (dbus_message_iter_init_array_iterator): return void, since it
9258         can't fail
9259         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9260         (_dbus_message_loader_queue_messages): add silly temporary hack to
9261         fill in message->signature on load
9262
9263         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9264         characters, so they are relatively human-readable.
9265
9266 2003-10-11  Havoc Pennington  <hp@pobox.com>
9267
9268         * dbus/dbus-message.c (_dbus_message_test): add more test
9269         coverage, but #if 0 for now since they uncover a bug 
9270         not fixed yet; I think in re_align_field_recurse()
9271         (re_align_field_recurse): add FIXME about broken assertion
9272
9273         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9274
9275         * bus/connection.c: share a couple code bits with expirelist.c
9276
9277         * bus/expirelist.h, bus/expirelist.c: implement a generic
9278         expire-items-after-N-seconds facility, was going to share between
9279         expiring connections and replies, decided not to use for expiring
9280         connections for now.
9281
9282         * COPYING: include AFL 2.0 (still need to change all the file headers)
9283
9284 2003-10-09  Havoc Pennington  <hp@redhat.com>
9285
9286         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9287         gcc 3.3. Not that we do anything about it yet.
9288
9289         * bus/signals.c (bus_match_rule_parse): impose max length on the
9290         match rule text
9291
9292         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9293
9294 2003-10-09  Havoc Pennington  <hp@redhat.com>
9295
9296         Make matching rules theoretically work (add parser).
9297         
9298         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9299         the case where destination is explicitly specified as bus driver
9300         and someone else is eavesdropping.
9301         
9302         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9303         definition of eavesdropping and assertion
9304
9305         * tools/dbus-send.c (main): use dbus_message_type_from_string
9306
9307         * bus/signals.c (bus_match_rule_parse): implement
9308
9309         * dbus/dbus-message.c (dbus_message_type_from_string): new
9310
9311         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9312
9313 2003-10-02  Havoc Pennington  <hp@pobox.com>
9314
9315         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9316         dbus_gproxy_oneway_call
9317
9318         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9319         (dbus_server_setup_with_g_main): fix to allow calling them more
9320         than once on the same args
9321         (dbus_bus_get_with_g_main): new function
9322
9323 2003-10-02  Havoc Pennington  <hp@redhat.com>
9324
9325         * doc/dbus-tutorial.xml: write some stuff
9326
9327 2003-09-29  Havoc Pennington  <hp@pobox.com>
9328
9329         * configure.in: split checks for Doxygen from XML docs, check for
9330         xmlto
9331
9332         * doc/Makefile.am: XML-ify all the docs, and add a blank
9333         dbus-tutorial.xml
9334
9335 2003-09-29  Havoc Pennington  <hp@pobox.com>
9336
9337         * Merge dbus-object-names branch. To see the entire patch 
9338         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9339         it's huuuuge though.
9340         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9341         
9342 2003-09-28  Havoc Pennington  <hp@pobox.com>
9343
9344         * HACKING: update to reflect new server
9345
9346 2003-09-26  Seth Nickell  <seth@gnome.org>
9347
9348         * python/dbus.py:
9349         * python/examples/example-signals.py:
9350
9351         Start implementing some notions of signals. The API
9352         is really terrible, but they sort of work (with the
9353         exception of being able to filter by service, and to
9354         transmit signals *as* a particular service). Need to
9355         figure out how to make messages come from the service
9356         we registered :-(
9357         
9358         * python/dbus_bindings.pyx.in:
9359
9360         Removed duplicate message_handler callbacks.
9361         
9362 2003-09-25  Havoc Pennington  <hp@redhat.com>
9363
9364         * bus/session.conf.in: fix my mess
9365
9366 2003-09-25  Havoc Pennington  <hp@pobox.com>
9367
9368         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9369
9370 2003-09-25  Seth Nickell  <seth@gnome.org>
9371
9372         * python/examples/example-service.py:
9373
9374         Johan notices complete wrong code in example-service, but
9375         completely wrong in a way that works exactly the same (!).
9376         Johan is confused, how could this possibly work? Example
9377         code fails to serve purpose of making things clear.
9378         Seth fixes.
9379
9380 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9381
9382         * doc/dbus-specification.sgml: don't require header fields
9383         to be 4-byte aligned and specify that fields should be
9384         distinguished from padding by the fact that zero is not
9385         a valid field name.
9386         
9387         * doc/TODO: remove re-alignment item and add item to doc
9388         the OBJECT_PATH type.
9389         
9390         * dbus/dbus-message.c:
9391         (HeaderField): rename the original member to value_offset
9392         and introduce a name_offset member to keep track of where
9393         the field actually begins.
9394         (adjust_field_offsets): remove.
9395         (append_int_field), (append_uint_field),
9396         (append_string_field): don't align the start of the header
9397         field to a 4-byte boundary.
9398         (get_next_field): impl finding the next marhsalled field
9399         after a given field.
9400         (re_align_field_recurse): impl re-aligning a number of
9401         already marshalled fields.
9402         (delete_field): impl deleting a field of any type and
9403         re-aligning any following fields.
9404         (delete_int_or_uint_field), (delete_string_field): remove.
9405         (set_int_field), (set_uint_field): no need to re-check
9406         that we have the correct type for the field.
9407         (set_string_field): ditto and impl re-aligning any
9408         following fields.
9409         (decode_header_data): update to take into account that
9410         the fields aren't 4-byte aligned any more and the new
9411         way to distinguish padding from header fields. Also,
9412         don't exit when there is too much header padding.
9413         (process_test_subdir): print the directory.
9414         (_dbus_message_test): add test to make sure a following
9415         field is re-aligned correctly after field deletion.
9416         
9417         * dbus/dbus-string.[ch]:
9418         (_dbus_string_insert_bytes): rename from insert_byte and
9419         allow the insert of multiple bytes.
9420         (_dbus_string_test): test inserting multiple bytes.
9421
9422         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9423         warning note to docs about having to re-align any
9424         marshalled values following the string.
9425         
9426         * dbus/dbus-message-builder.c:
9427         (append_string_field), (_dbus_message_data_load):
9428         don't align the header field.
9429         
9430         * dbus/dbus-auth.c: (process_test_subdir): print the
9431         directory.
9432         
9433         * test/break-loader.c: (randomly_add_one_byte): upd. for
9434         insert_byte change.
9435         
9436         * test/data/invalid-messages/bad-header-field-alignment.message:
9437         new test case.
9438         
9439         * test/data/valid-messages/unknown-header-field.message: shove
9440         a dict in the unknown field.
9441
9442 2003-09-25  Seth Nickell  <seth@gnome.org>
9443
9444         * python/dbus.py:
9445         * python/dbus_bindings.pyx.in:
9446
9447         Handle return values.
9448         
9449         * python/examples/example-client.py:
9450         * python/examples/example-service.py:
9451
9452         Pass back return values from the service to the client.
9453         
9454 2003-09-24  Seth Nickell  <seth@gnome.org>
9455
9456         * python/dbus.py:
9457
9458         Connect Object methods (when you are sharing an object) up... pass
9459         in a list of methods to be shared. Sharing all the methods just
9460         worked out too weird. You can now create nice Services over the
9461         DBus in Python. :-)
9462         
9463         * python/dbus_bindings.pyx.in:
9464
9465         Keep references to user_data tuples passed into C functions so 
9466         Python doesn't garbage collect on us.
9467
9468         Implement MethodReturn and Error subclasses of Message for creating
9469         DBusMessage's of those types.
9470         
9471         * python/examples/example-client.py:
9472         * python/examples/example-service.py:
9473
9474         Simple example code showing both how create DBus services and objects,
9475         and how to use them.
9476
9477 2003-09-23  Havoc Pennington  <hp@pobox.com>
9478
9479         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9480
9481 2003-09-23  Havoc Pennington  <hp@redhat.com>
9482
9483         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9484         (dbus_gproxy_disconnect_signal): implement
9485         (dbus_gproxy_manager_remove_signal_match): implement
9486         (dbus_gproxy_manager_add_signal_match): implement
9487         (dbus_gproxy_oneway_call): implement
9488
9489 2003-09-23  Havoc Pennington  <hp@pobox.com>
9490
9491         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9492         subclass. This means dropping the transparent thread safety of the
9493         proxy; you now need a separate proxy per-thread, or your own
9494         locking on the proxy. Probably right anyway.
9495         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9496
9497 2003-09-22  Havoc Pennington  <hp@redhat.com>
9498
9499         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9500
9501 2003-09-21  Seth Nickell  <seth@gnome.org>
9502
9503         First checkin of the Python bindings.
9504         
9505         * python/.cvsignore:
9506         * python/Makefile.am:
9507         * python/dbus_bindings.pyx.in:
9508         * python/dbus_h_wrapper.h:
9509
9510         Pieces for Pyrex to operate on, building a dbus_bindings.so
9511         python module for low-level access to the DBus APIs.
9512         
9513         * python/dbus.py:
9514
9515         High-level Python module for accessing DBus objects.
9516
9517         * configure.in:
9518         * Makefile.am:
9519
9520         Build stuff for the python bindings.
9521
9522         * acinclude.m4:
9523
9524         Extra macro needed for finding the Python C header files.
9525
9526 2003-09-21  Havoc Pennington  <hp@pobox.com>
9527
9528         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9529         implementing the proxy manager, didn't get very far.
9530
9531         * dbus/dbus-bus.c (dbus_bus_add_match): new
9532         (dbus_bus_remove_match): new
9533
9534         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9535         path_name argument; adjust the other not-yet-implemented 
9536         gproxy constructors to be what I think they should be.
9537
9538 2003-09-21  Havoc Pennington  <hp@pobox.com>
9539
9540         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9541         by default for message bus connections.
9542
9543         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9544         exit_on_disconnect flag is set and we process the disconnected
9545         signal.
9546         (dbus_connection_set_exit_on_disconnect): new function
9547
9548 2003-09-21  Havoc Pennington  <hp@pobox.com>
9549
9550         Get matching rules mostly working in the bus; only actually
9551         parsing the rule text remains. However, the client side of
9552         "signal connections" hasn't been started, this patch is only the
9553         bus side.
9554         
9555         * dbus/dispatch.c: fix for the matching rules changes
9556         
9557         * bus/driver.c (bus_driver_handle_remove_match)
9558         (bus_driver_handle_add_match): send an ack reply from these
9559         method calls
9560
9561         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9562         arguments, reported by Seth Nickell
9563
9564         * bus/config-parser.c (append_rule_from_element): support
9565         eavesdrop=true|false attribute on policies so match rules 
9566         can be prevented from snooping on the system bus.
9567
9568         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9569         and "destination" in attribute names; fix some docs bugs; 
9570         add eavesdrop=true|false attribute
9571
9572         * bus/driver.c (bus_driver_handle_add_match)
9573         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9574         messages
9575
9576         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9577         rid of broadcast service concept, signals are just always broadcast
9578
9579         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9580         mostly implement matching rules stuff (currently only exposed as signal
9581         connections)
9582
9583 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9584
9585         * doc/dbus-specification.sgml: Change the header field name
9586         to be an enum and update the rest of the spec to reference
9587         the fields using the conventinal name.
9588
9589         * dbus/dbus-protocol.h: update to reflect the spec.
9590
9591         * doc/TODO: add item to remove the 4 byte alignment requirement.
9592         
9593         * dbus/dbus-message.c: Remove the code to generalise the
9594         header/body length and serial number header fields as named
9595         header fields so we can reference field names using the 
9596         protocol values.
9597         (append_int_field), (append_uint_field), (append_string_field):
9598         Append the field name as a byte rather than four chars.
9599         (delete_int_or_uint_field), (delete_string_field): reflect the
9600         fact that the field name and typecode now occupy 4 bytes instead
9601         of 8.
9602         (decode_string_field), (decode_header_data): update to reflect
9603         protocol changes and move the field specific encoding from
9604         decode_string_field() back into decode_header_data().
9605         
9606         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9607         Add utility to aid debugging.
9608         
9609         * dbus/dbus-message-builder.c:
9610         (append_string_field), (_dbus_message_data_load): Update to
9611         reflect protocol changes; Change the FIELD_NAME directive
9612         to HEADER_FIELD and allow it to take the field's conventional
9613         name rather than the actual value.
9614         
9615         * test/data/*/*.message: Update to use HEADER_FIELD instead
9616         of FIELD_NAME; Always align the header on an 8 byte boundary
9617         *before* updating the header length.
9618
9619 2003-09-15  Havoc Pennington  <hp@pobox.com>
9620
9621         * dbus/dbus-pending-call.c: add the get/set object data
9622         boilerplate as for DBusConnection, etc. Use generic object data
9623         for the notify callback.
9624
9625         * glib/dbus-gparser.c (parse_node): parse child nodes
9626
9627         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9628         
9629         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9630         contain functions shared between the convenience lib and the
9631         installed lib
9632
9633         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9634         -export-symbols-regex to the GLib library
9635
9636         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9637         fix the locking in here, and add a default handler for
9638         Introspect() that just returns sub-nodes.
9639
9640 2003-09-14  Havoc Pennington  <hp@pobox.com>
9641
9642         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9643         rather than gfoo consistent
9644
9645         * glib/dbus-gproxy.h: delete for now, move contents to
9646         dbus-glib.h, because the include files don't work right since we
9647         aren't in the dbus/ subdir.
9648         
9649         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9650         (dbus_gproxy_end_call): finish
9651         (dbus_gproxy_begin_call): finish
9652
9653         * glib/dbus-gmain.c (dbus_set_g_error): new
9654
9655         * glib/dbus-gobject.c (handle_introspect): include information
9656         about child nodes in the introspection
9657
9658         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9659         function to help in implementation of introspection
9660
9661         * dbus/dbus-object-tree.c
9662         (_dbus_object_tree_list_registered_and_unlock): new function
9663
9664 2003-09-12  Havoc Pennington  <hp@pobox.com>
9665
9666         * glib/dbus-gidl.h: add common base class for all the foo_info
9667         types
9668
9669         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9670         similar to kdcop
9671
9672         * test/Makefile.am: try test srcdir -ef . in addition to test
9673         srcdir = ., one of them should work (yeah lame)
9674         
9675         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9676         library
9677         
9678         * glib/dbus-gparser.h: make description_load routines return
9679         NodeInfo* not Parser*
9680
9681         * Makefile.am (SUBDIRS): build test dir after all library dirs
9682
9683         * configure.in: add GTK+ detection
9684
9685 2003-09-07  Havoc Pennington  <hp@pobox.com>
9686
9687         * Make Doxygen contented.
9688
9689 2003-09-07  Havoc Pennington  <hp@pobox.com>
9690
9691         * doc/dbus-specification.sgml: more updates
9692
9693 2003-09-06  Havoc Pennington  <hp@pobox.com>
9694
9695         * doc/dbus-specification.sgml: partial updates
9696
9697         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9698         zillionth time; hopefully I edited the right file this time.
9699
9700         * bus/config-parser.c (append_rule_from_element): support
9701         send_type, send_path, receive_type, receive_path
9702
9703         * bus/policy.c: add message type and path to the list of things
9704         that can be "firewalled"
9705
9706 2003-09-06  Havoc Pennington  <hp@pobox.com>
9707
9708         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9709         (dbus_connection_register_object_path): make this not handle
9710         messages to paths below the given path
9711
9712 2003-09-03  Havoc Pennington  <hp@pobox.com>
9713
9714         * test/glib/Makefile.am: add this with random glib-linked test
9715         programs
9716
9717         * glib/Makefile.am: remove the random test programs from here,
9718         leave only the unit tests
9719
9720         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9721         uscore/javacaps conversion, and fix     
9722         (get_object_property, set_object_property): change to .NET
9723         convention for mapping props to methods, set_FooBar/get_FooBar, 
9724         since one language has such a convention we may as well copy it. 
9725         Plus real methods in either getFooBar or get_foo_bar style won't 
9726         collide with this convention.
9727
9728 2003-09-01  Havoc Pennington  <hp@pobox.com>
9729
9730         * glib/dbus-gparser.c: implement
9731
9732         * glib/dbus-gobject.c: start implementing skeletons support
9733
9734         * configure.in: when disabling checks/assert, also define
9735         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9736
9737 2003-09-01  Havoc Pennington  <hp@pobox.com>
9738
9739         * glib/Makefile.am: rearrange a bunch of files and get "make
9740         check" framework set up
9741
9742 2003-08-31  Havoc Pennington  <hp@pobox.com>
9743
9744         * fix build with --disable-tests
9745
9746 2003-08-30  Havoc Pennington  <hp@pobox.com>
9747
9748         * dbus/dbus-connection.c: purge DBusMessageHandler
9749
9750         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9751         use callbacks everywhere
9752
9753 2003-08-30  Havoc Pennington  <hp@pobox.com>
9754
9755         * test/data/valid-config-files/system.d/test.conf: change to 
9756         root for the user so warnings don't get printed
9757
9758         * dbus/dbus-message.c: add dbus_message_get_path,
9759         dbus_message_set_path
9760         
9761         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9762         dispatching to a path
9763
9764         * dbus/dbus-string.c (_dbus_string_validate_path): add
9765
9766         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9767         (_dbus_marshal_object_path): implement
9768
9769         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9770         to contain the path to the target object
9771         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9772         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9773
9774 2003-08-30  Havoc Pennington  <hp@pobox.com>
9775
9776         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9777
9778 2003-08-29  Havoc Pennington  <hp@pobox.com>
9779
9780         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9781         registered
9782         (struct DBusObjectSubtree): shrink this
9783         a lot, since we may have a lot of them
9784         (_dbus_object_tree_free_all_unlocked): implement
9785         (_dbus_object_tree_dispatch_and_unlock): implement
9786
9787 2003-08-29  Havoc Pennington  <hp@pobox.com>
9788
9789         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9790
9791 2003-08-28  Havoc Pennington  <hp@pobox.com>
9792
9793         purge DBusObjectID
9794         
9795         * dbus/dbus-connection.c: port to no ObjectID, create a
9796         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9797
9798         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9799         everything except UnregisterFunction and MessageFunction
9800         
9801         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9802         add DBUS_TYPE_OBJECT_PATH
9803         
9804         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9805         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9806         path-based object IDs
9807
9808 2003-08-25  Havoc Pennington  <hp@pobox.com>
9809
9810         Just noticed that dbus_message_test is hosed, I wonder when I
9811         broke that. I thought make check was passing earlier...
9812         
9813         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9814         container tree, will replace most of dbus-object-registry
9815
9816         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9817         screwup
9818
9819 2003-08-19  Havoc Pennington  <hp@pobox.com>
9820
9821         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9822         (dbus_message_is_error): fix this function
9823
9824         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9825         match
9826
9827         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9828         reflect clarified man page
9829         (bus_client_policy_check_can_send): ditto
9830         
9831         * bus/session.conf.in: fixup
9832
9833         * bus/system.conf.in: fixup
9834
9835 2003-08-18  Havoc Pennington  <hp@redhat.com>
9836
9837         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9838
9839         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9840         dumb bug created earlier (wrong order of args to
9841         decode_header_data())
9842         
9843         * tools/dbus-send.c: port
9844
9845         * tools/dbus-print-message.c (print_message): port
9846
9847         * test/data/*messages: port all messages over
9848         
9849         * dbus/dbus-message-builder.c: support including 
9850         message type
9851         
9852         * bus/driver.c: port over
9853         
9854         * bus/dispatch.c: port over to new stuff
9855
9856         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9857         rename disconnect signal to "Disconnected"
9858
9859 2003-08-17  Havoc Pennington  <hp@pobox.com>
9860
9861         This doesn't compile yet, but syncing up so I can hack on it from
9862         work. What are branches for if not broken code? ;-)
9863         
9864         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9865         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9866         DBUS_HEADER_FIELD_ERROR_NAME
9867         
9868         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9869         for the interface+member pairs
9870         (string_hash): change to use g_str_hash algorithm
9871         (find_direct_function, find_string_function): refactor these to
9872         share most code.
9873         
9874         * dbus/dbus-message.c: port all of this over to support 
9875         interface/member fields instead of name field
9876
9877         * dbus/dbus-object-registry.c: port over
9878         
9879         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9880         from _dbus_string_validate_name
9881
9882         * bus/dbus-daemon-1.1: change file format for the 
9883         <deny>/<allow> stuff to match new message naming scheme
9884
9885         * bus/policy.c: port over
9886
9887         * bus/config-parser.c: parse new format
9888         
9889 2003-08-16  Havoc Pennington  <hp@pobox.com>
9890
9891         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9892         broken assertion
9893
9894         * glib/dbus-gproxy.c: some hacking
9895
9896 2003-08-15  Havoc Pennington  <hp@redhat.com>
9897
9898         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9899
9900         * dbus/dbus-connection.c
9901         (dbus_connection_send_with_reply_and_block): factor out internals;
9902         change to convert any error replies to DBusError instead of 
9903         returning them as a message
9904
9905 2003-08-15  Havoc Pennington  <hp@pobox.com>
9906
9907         * dbus/dbus-connection.c, 
9908         dbus/dbus-pending-call.c: Finish the pending call stuff
9909
9910 2003-08-14  Havoc Pennington  <hp@redhat.com>
9911
9912         * dbus/dbus-pending-call.c: start on new object that will replace
9913         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9914         replies
9915
9916         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9917         with remote interfaces
9918
9919         * dbus/dbus-gidl.c: do the boring boilerplate in here
9920         
9921 2003-08-12  Havoc Pennington  <hp@pobox.com>
9922
9923         * bus/dispatch.c (bus_dispatch): make this return proper 
9924         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9925
9926         * dbus/dbus-errors.c (dbus_set_error): use
9927         _dbus_string_append_printf_valist
9928
9929         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9930         (_dbus_string_append_printf): new
9931
9932         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9933         UNKNOWN_METHOD
9934
9935         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9936         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9937         message is unhandled.
9938
9939 2003-08-11  Havoc Pennington  <hp@pobox.com>
9940
9941         * bus/test.c (client_disconnect_handler): change to return
9942         HANDLED (would have been REMOVE_MESSAGE)
9943
9944         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9945         HANDLED/NOT_YET_HANDLED instead of
9946         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9947         should be used.
9948
9949 2003-08-10  Havoc Pennington  <hp@pobox.com>
9950
9951         * tools/dbus-send.c (main): add --type argument, for now
9952         supporting only method_call and signal types.
9953
9954         * tools/dbus-print-message.c: print message type
9955
9956         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9957         init connection->objects
9958
9959         * doc/dbus-specification.sgml: fix sgml
9960
9961         * bus/*.c: port over to object-instance API changes
9962
9963         * test/test-service.c: ditto
9964         
9965         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9966         name, we will have to fix up the rest of the code to also handle
9967         this
9968         (dbus_message_new): generic message-creation call
9969         (set_string_field): allow appending name field
9970
9971 2003-08-06  Havoc Pennington  <hp@pobox.com>
9972
9973         * dbus/dbus-object-registry.c: implement signal connection 
9974         and dispatch
9975
9976         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9977
9978         * dbus/dbus-internals.c (_dbus_memdup): new function
9979
9980 2003-08-02  Havoc Pennington  <hp@pobox.com>
9981
9982         * dbus/dbus-message.c (dbus_message_get_no_reply)
9983         (dbus_message_set_no_reply): add these and remove
9984         set_is_error/get_is_error
9985
9986         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9987         remove the ERROR flag, since there's now an ERROR type
9988
9989 2003-08-01  Havoc Pennington  <hp@pobox.com>
9990
9991         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
9992         implement
9993
9994         * dbus/dbus-message.c (dbus_message_get_type): new function
9995
9996         * doc/dbus-specification.sgml: add "type" byte to messages
9997
9998 2003-08-01  Havoc Pennington  <hp@pobox.com>
9999
10000         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10001         a message type enum to distinguish kinds of message
10002         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10003         that need not be replied to
10004
10005 2003-08-01  Havoc Pennington  <hp@pobox.com>
10006
10007         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10008         (unpack_8_octets): fix no-64-bit-int bug
10009
10010         * dbus/dbus-object-registry.c (validate_id): validate the 
10011         connection ID bits, not just the instance ID.
10012
10013         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10014         the connection-global 33 bits of the object ID
10015
10016         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10017         object ID in the new way
10018
10019         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10020         define server/client/instance bits.
10021
10022 2003-07-30  Havoc Pennington  <hp@pobox.com>
10023
10024         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10025         build
10026
10027 2003-07-13  Havoc Pennington  <hp@pobox.com>
10028
10029         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10030         fields to DBusObjectVTable and DBusObjectInfo
10031
10032 2003-07-12  Havoc Pennington  <hp@pobox.com>
10033
10034         * dbus/dbus-object-registry.c: implement unit test,
10035         fix bugs discovered in process
10036
10037         * dbus/dbus-connection.c: remove handler_table and
10038         register_handler(), add DBusObjectRegistry usage
10039
10040         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10041         (dbus_object_id_set_null): new functions
10042
10043 2003-07-08  Havoc Pennington  <hp@pobox.com>
10044
10045         * dbus/dbus-object.c: implement some of this
10046
10047         * dbus/dbus-object-registry.c
10048         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10049         param
10050         (_dbus_object_registry_new): handle OOM
10051
10052 2003-07-08  Havoc Pennington  <hp@pobox.com>
10053
10054         * dbus/dbus-object.h: sketch out an API for registering objects
10055         with a connection, that allows us to use as little as 24 bytes
10056         per object and lets application code represent an object in 
10057         any conceivable way.
10058
10059         * dbus/dbus-object-registry.c: implement the hard bits of the
10060         DBusConnection aspect of object API. Not yet wired up.
10061         
10062 2003-07-06  Havoc Pennington  <hp@pobox.com>
10063
10064         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10065         (_dbus_marshal_object_id): new
10066         (_dbus_demarshal_object_id): new
10067         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10068         consolidate identical switch cases. Don't conditionalize handling
10069         of DBUS_TYPE_UINT64, need to handle the type always.
10070         (_dbus_marshal_validate_arg): consolidate identical cases, and
10071         handle DBUS_TYPE_OBJECT_ID
10072
10073         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10074
10075         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10076
10077 2003-09-28  Havoc Pennington  <hp@pobox.com>
10078
10079         * real 0.13 release
10080
10081 2003-09-28  Havoc Pennington  <hp@pobox.com>
10082
10083         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10084         to work with Debian db2html
10085
10086 2003-09-28  Havoc Pennington  <hp@pobox.com>
10087
10088         * configure.in: 0.13
10089
10090         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10091         stylesheet-images for benefit of Debian
10092         
10093         Change back to using filesystem-linked sockets for the system
10094         bus, so only root can create the default system bus address.
10095         
10096         * bus/system.conf.in: change to use
10097         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10098
10099         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10100         from here.
10101
10102         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10103         here, and AC_DEFINE DBUS_SYSTEM_PATH
10104
10105 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10106
10107         * doc/TODO:
10108         * doc/busconfig.dtd:
10109         Add busconfig DTD.
10110         
10111 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10112
10113         * doc/dbus-specification.sgml:
10114         Add activation reply values.
10115         
10116 2003-08-05  Havoc Pennington  <hp@redhat.com>
10117
10118         * configure.in: 0.12
10119
10120 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10121
10122         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10123         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10124         (add_watch), (remove_watch), (create_source):
10125         Refcount fds, fixes some reentrancy issues.
10126         
10127 2003-07-30  Havoc Pennington  <hp@redhat.com>
10128
10129         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10130         bus address to be abstract if we have abstract sockets
10131
10132         * NEWS: update
10133
10134 2003-07-28  Havoc Pennington  <hp@redhat.com>
10135
10136         * bus/messagebus.in: fix to avoid processname/servicename 
10137         confusion, from Michael Kearey
10138         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10139         
10140 2003-07-23  Havoc Pennington  <hp@pobox.com>
10141
10142         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10143         fix from Andy Hanton to remove broken "+1"
10144
10145 2003-07-16  Havoc Pennington  <hp@pobox.com>
10146
10147         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10148         babysitter process, as suggested by Thomas Leonard, so 
10149         an "eval `dbus-launch --exit-with-session`" will actually 
10150         return
10151
10152 2003-07-16  Havoc Pennington  <hp@pobox.com>
10153
10154         * configure.in: print out EXPANDED_* variables in the summary at
10155         the end; clean up the code that computes EXPANDED_ variables and
10156         get the ones using exec_prefix right. Should make things work
10157         when you build without --prefix
10158
10159 2003-06-29  Havoc Pennington  <hp@pobox.com>
10160
10161         * mono/Test.cs (class Test): fire up a main loop and run it
10162
10163         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10164         done once, the app has to do it
10165
10166 2003-06-26  Havoc Pennington  <hp@pobox.com>
10167
10168         * mono/Connection.cs: set up connection with the glib main loop
10169
10170 2003-07-01  Havoc Pennington  <hp@redhat.com>
10171
10172         * doc/dbus-specification.sgml: clarify the format of a type code,
10173         change suggested by Jim Blandy
10174
10175 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10176
10177         * doc/Makefile.am:
10178         * tools/Makefile.am: Don't assume srcdir == builddir.
10179
10180         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10181         the allocated block.
10182         (_dbus_memory_test): New function.
10183         * dbus/dbus-test.h: Add _dbus_memory_test ().
10184         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10185
10186         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10187         of %c%c%c%c.
10188         (dbus_message_new): Remove obsolete @todo.
10189
10190         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10191         (_dbus_marshal_set_uint64): Fix comment.
10192
10193         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10194         hardcode FIELD_REPLY_SERIAL.
10195
10196         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10197         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10198
10199         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10200         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10201
10202 2003-06-24  Havoc Pennington  <hp@pobox.com>
10203
10204         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10205
10206 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10207
10208         * configure.in:
10209         * gcj/.cvsignore:
10210         * gcj/Hello.java:
10211         * gcj/Makefile.am:
10212         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10213         * gcj/org/.cvsignore:
10214         * gcj/org/Makefile.am:
10215         * gcj/org/freedesktop/.cvsignore:
10216         * gcj/org/freedesktop/Makefile.am:
10217         * gcj/org/freedesktop/dbus/.cvsignore:
10218         * gcj/org/freedesktop/dbus/Makefile.am:
10219         * gcj/org/freedesktop/dbus/Message.java: (Message),
10220         (Message.Message):
10221         * gcj/org/freedesktop/dbus/natMessage.cc:
10222         Fix the build system.
10223
10224 2003-06-22  Havoc Pennington  <hp@pobox.com>
10225
10226         * mono/Connection.cs: add more bindings
10227
10228         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10229         more than once.
10230
10231 2003-06-22  Havoc Pennington  <hp@pobox.com>
10232
10233         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10234         Start wrapping more stuff.
10235
10236 2003-06-22  Havoc Pennington  <hp@pobox.com>
10237
10238         * mono/Message.cs: implement Message.Wrap() that ensures we only
10239         have a single C# wrapper per DBusMessage, assuming it works which
10240         it probably doesn't.
10241
10242         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10243         (dbus_message_free_data_slot): new
10244         (dbus_message_set_data): new
10245         (dbus_message_get_data): new
10246
10247 2003-06-22  Havoc Pennington  <hp@pobox.com>
10248
10249         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10250         (_dbus_data_slot_allocator_alloc): rework these to keep a
10251         reference count on each slot and automatically manage a global
10252         slot ID variable passed in by address
10253
10254         * bus/bus.c: convert to new dataslot API
10255
10256         * dbus/dbus-bus.c: convert to new dataslot API
10257
10258         * dbus/dbus-connection.c: convert to new dataslot API
10259
10260         * dbus/dbus-server.c: convert to new dataslot API
10261
10262         * glib/dbus-gmain.c: ditto
10263
10264         * bus/test.c: ditto
10265
10266         * bus/connection.c: ditto
10267
10268 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10269
10270         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10271         after the gcj checks so that the correct configuration tags
10272         will be added to libtool.
10273
10274         * dbus-glib-1.pc.in: No need to specify any includes since
10275         dbus-1.pc.in has those.
10276
10277 2003-06-22  Havoc Pennington  <hp@pobox.com>
10278
10279         * mono/*, gcj/*, configure.in, Makefile.am:
10280         Check in makefiles and subdirs for mono and gcj bindings.
10281         Neither binding actually exists, just trying to get through
10282         all the build and other boring bits.
10283
10284 2003-06-21  Philip Blundell  <philb@gnu.org>
10285
10286         * tools/dbus-monitor.1: Updated.
10287
10288         * tools/dbus-send.1: Likewise.
10289
10290 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10291
10292         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10293         for hangup and error after checking read so we won't discard
10294         pending data if both hangup and read are set.
10295
10296 2003-06-19  Philip Blundell  <philb@gnu.org>
10297
10298         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10299
10300         * tools/dbus-send.c: Accept both --system and --session.
10301
10302         * tools/dbus-monitor.c: Same here.
10303
10304 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10305
10306         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10307         from C++ (Patch by Miloslav Trmac).
10308
10309 2003-06-15  Joe Shaw  <joe@assbarn.com>
10310
10311         * configure.in: Check for socklen_t.
10312
10313         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10314
10315         * test/test-segfault.c: Add #include <sys/time.h>
10316
10317         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10318         dbus-launch needs it.
10319
10320 2003-06-09  Havoc Pennington  <hp@redhat.com>
10321
10322         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10323         SUN_LEN, it breaks abstract socket usage
10324
10325         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10326         starts of lines.
10327
10328 2003-06-04  Havoc Pennington  <hp@pobox.com>
10329
10330         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10331         using unix:abstract=/foo, and when listening in a tmpdir
10332         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10333
10334         * dbus/dbus-transport.c (_dbus_transport_open): support
10335         unix:abstract=/foo
10336
10337         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10338         support abstract sockets
10339
10340         * dbus/dbus-transport-unix.c
10341         (_dbus_transport_new_for_domain_socket): support abstract sockets
10342
10343         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10344         toggle as an argument, implement abstract namespace support
10345         (_dbus_listen_unix_socket): ditto
10346
10347         * configure.in: add --enable-abstract-sockets and implement
10348         a configure check for autodetection of the right value.
10349
10350 2003-06-01  Havoc Pennington  <hp@pobox.com>
10351
10352         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10353         in /tmp (though on Linux this will end up being useless,
10354         when we add abstract namespace support)
10355
10356         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10357         subst'ing it
10358
10359 2003-05-28  Colin Walters  <walters@verbum.org>
10360
10361         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10362
10363 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10364
10365         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10366
10367 2003-05-17  Colin Walters  <walters@gnu.org>
10368
10369         * tools/dbus-send.c: Don't exit with an error code if --help was
10370         passed.  Default to using the session bus instead of the system
10371         one.
10372
10373         * tools/dbus-launch.c: Ditto.
10374
10375         * tools/dbus-monitor.c: Ditto.
10376
10377         * tools/dbus-send.1: Update with new arguments.
10378
10379         * tools/dbus-launch.c: Emit code to export variables.  New
10380         arguments -s and -c to specify shell syntax, and a bit of code to
10381         autodetect syntax.  Also, allow specifying a program to run.
10382
10383         * tools/dbus-launch.1: Update with new arguments.
10384
10385         * tools/dbus-send.1: Ditto.
10386
10387         * tools/dbus-monitor.1: Ditto.
10388
10389 2003-05-17  Havoc Pennington  <hp@pobox.com>
10390
10391         * bus/config-parser.c (merge_included): merge in policies from
10392         child configuration file.
10393
10394         * bus/policy.c (bus_policy_merge): function to merge two policies
10395         together
10396
10397 2003-05-16  Havoc Pennington  <hp@redhat.com>
10398
10399         * dbus/dbus-connection.c: disable verbose lock spew
10400
10401         * tools/dbus-send.c: add --print-reply command line option
10402
10403         * tools/dbus-print-message.h (print_message): new util function
10404         shared by dbus-send and dbus-monitor
10405
10406         * tools/dbus-monitor.c (handler_func): exit on disconnect
10407
10408         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10409         disconnected, don't try to use the read_watch
10410
10411         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10412         so we can find this bug more easily
10413
10414 2003-05-16  Havoc Pennington  <hp@redhat.com>
10415
10416         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10417         NULL as DBusHashTable is annoyingly likely to do.
10418
10419 2003-05-16  Colin Walters  <walters@verbum.org>
10420
10421         * tools/dbus-monitor.c: Add --session argument and usage()
10422         function.
10423
10424         * tools/dbus-monitor.1: Update with new --session arg.
10425
10426         * bus/Makefile.am (install-data-hook): Create
10427         $(libdir)/dbus-1.0/services so that the session bus is happy.
10428
10429 2003-05-15  Havoc Pennington  <hp@redhat.com>
10430
10431         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10432         on non-x86. ifdef's are evil.
10433
10434 2003-05-15  Havoc Pennington  <hp@redhat.com>
10435
10436         * configure.in: 0.11
10437
10438         * NEWS: update
10439
10440         * bus/Makefile.am (initddir): apparently we are supposed to put
10441         init scripts in /etc/rc.d/init.d not /etc/init.d
10442
10443         * bus/Makefile.am: remove the "you must --enable-tests to make
10444         check" as it broke distcheck
10445
10446         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10447
10448 2003-05-13  James Willcox  <jwillcox@gnome.org>
10449
10450         * configure.in:
10451         * bus/activation.c: (bus_activation_service_created),
10452         (bus_activation_activate_service):
10453         * bus/driver.c: (bus_driver_send_service_deleted),
10454         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10455         (bus_driver_send_service_acquired),
10456         (bus_driver_send_welcome_message),
10457         (bus_driver_handle_list_services):
10458         * bus/session.conf.in:
10459         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10460         (dbus_bus_service_exists), (dbus_bus_activate_service):
10461         * dbus/dbus-bus.h:
10462
10463         Add some convenience API which lets you activate a service, and did a
10464         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10465         and dbus_message_get_args()
10466
10467 2003-05-11  Havoc Pennington  <hp@pobox.com>
10468
10469         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10470         calling _dbus_marshal_validate_arg() for every byte in a byte
10471         array, etc.
10472
10473         * dbus/dbus-message-handler.c: use atomic reference counting to
10474         reduce number of locks slightly; the global lock in here sucks
10475
10476         * dbus/dbus-connection.c
10477         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10478         update_dispatch_status that can be called with lock held; then use
10479         in a couple places to reduce locking/unlocking
10480         (dbus_connection_send): hold the lock over the whole function
10481         instead of acquiring it twice.
10482
10483         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10484
10485         * bus/connection.c (bus_connections_setup_connection): fix access
10486         to already-freed memory.
10487
10488         * dbus/dbus-connection.c: keep a little cache of linked list
10489         nodes, to avoid using the global linked list alloc lock in the
10490         normal send-message case. Instead we just use the connection lock
10491         that we already have to take.
10492
10493         * dbus/dbus-list.c (_dbus_list_find_last): new function
10494
10495         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10496         change to use a struct for the atomic type; fix docs,
10497         they return value before increment, not after increment.
10498
10499         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10500         (_dbus_string_append_8_aligned): new functions to try to
10501         microoptimize this operation.
10502         (reallocate_for_length): break this out of set_length(), to
10503         improve profile info, and also so we can consider inlining the
10504         set_length() part.
10505
10506         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10507         strings with some preallocation, cuts down on our calls to realloc
10508         a fair bit. Though if we can get the "move entire string to empty
10509         string" optimization below to kick in here, it would be better.
10510
10511         * dbus/dbus-string.c (_dbus_string_move): just call
10512         _dbus_string_move_len
10513         (_dbus_string_move_len): add a special case for moving
10514         an entire string into an empty string; we can just
10515         swap the string data instead of doing any reallocs.
10516         (_dbus_string_init_preallocated): new function
10517
10518 2003-05-11  Havoc Pennington  <hp@pobox.com>
10519
10520         Write a "test-profile" that does echo client-server with threads;
10521         profile reveals lock contention, memcpy/realloc of buffers, and
10522         UTF-8 validation as hot spots. 20% of lock contention eliminated
10523         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10524         contention is global mempool locks for GList and DBusList.
10525
10526         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10527         x86 implementation
10528
10529         * dbus/dbus-connection.c (struct DBusConnection): use
10530         dbus_atomic_t for the reference count
10531
10532         * dbus/dbus-message.c (struct DBusMessage): declare
10533         dbus_atomic_t values as volatile
10534
10535         * configure.in: code to detect ability to use atomic integer
10536         operations in assembly, from GLib patch
10537
10538         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10539         time, tired of it being wrong in threads and forked processes
10540
10541         * glib/test-profile.c: a little program to bounce messages back
10542         and forth between threads and eat CPU
10543
10544         * dbus/dbus-connection.c: add debug spew macros for debugging
10545         thread locks; include config.h at top; fix deadlock in
10546         dbus_connection_flush()
10547
10548 2003-05-08  Havoc Pennington  <hp@pobox.com>
10549
10550         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10551         data from getting written, and there wasn't a good reason to
10552         use _exit really.
10553
10554         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10555         dbus_verbose lines in test coverage
10556         (main): add list of functions sorted by # of untested blocks
10557         to the coverage report
10558
10559         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10560
10561         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10562
10563         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10564         extend test coverage
10565
10566         * test/data/auth/cancel.auth-script: test canceling an
10567         authentication
10568
10569         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10570         aren't used. in CVS history if we end up needing them.
10571
10572 2003-05-04  Havoc Pennington  <hp@pobox.com>
10573
10574         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10575         unit test
10576
10577         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10578         function, which assumed length was in # of strings, not bytes
10579
10580         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10581         missing coverage
10582
10583         * dbus/dbus-connection.c
10584         (_dbus_connection_queue_received_message): disable function for
10585         now, we are only using it in test mode
10586
10587         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10588         remove a mistaken FIXME
10589
10590 2003-05-04  Havoc Pennington  <hp@pobox.com>
10591
10592         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10593         unlock mutex on successful return, patch from Anders Gustafsson
10594
10595 2003-05-04  Havoc Pennington  <hp@pobox.com>
10596
10597         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10598         Anders Gustafsson
10599
10600 2003-05-04  Havoc Pennington  <hp@pobox.com>
10601
10602         * tools/dbus-launch.c: implement
10603
10604         * bus/main.c (main), bus/bus.c (bus_context_new):
10605         implement --print-pid and --fork
10606
10607 2003-05-03  Havoc Pennington  <hp@redhat.com>
10608
10609         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10610         the address had no value, and add to test suite. Fix and
10611         regression test from Miloslav Trmac
10612
10613 2003-05-03  Havoc Pennington  <hp@pobox.com>
10614
10615         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10616         watch is invalid when handled
10617
10618         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10619         dbus-launch utility to launch the bus from a shell script.  Didn't
10620         actually implement dbus-launch yet, it's just a placeholder still.
10621
10622 2003-05-03  Havoc Pennington  <hp@pobox.com>
10623
10624         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10625         daemon; also documents daemon config file, so replaces
10626         doc/config-file.txt. Corrected some stuff from config-file.txt in
10627         the process of moving it.
10628
10629 2003-05-03  Havoc Pennington  <hp@pobox.com>
10630
10631         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10632         add some man pages
10633
10634 2003-05-03  Colin Walters  <walters@verbum.org>
10635
10636         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10637         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10638
10639         * Makefile.am: Update to use new .pc versioning scheme.
10640
10641 2003-05-02  Havoc Pennington  <hp@redhat.com>
10642
10643         * bus/system.conf.in: allow send/receive to/from message bus
10644         service
10645
10646 2003-04-30  Havoc Pennington  <hp@redhat.com>
10647
10648         * configure.in: print a note when building with unit tests and
10649         without assertions
10650
10651 2003-04-30  Havoc Pennington  <hp@redhat.com>
10652
10653         * Makefile.am: add a check-local that complains if you didn't
10654         configure with --enable-tests
10655
10656 2003-04-29  Havoc Pennington  <hp@redhat.com>
10657
10658         * glib/dbus-gmain.c: docs cleanups
10659
10660         * dbus/dbus-types.h: add docs on int64 types
10661
10662         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10663         public API docs section
10664
10665 2003-04-29  Havoc Pennington  <hp@redhat.com>
10666
10667         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10668         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10669         parallel install API version, not with the D-BUS package version.
10670
10671         * HACKING: move some of README over here
10672
10673         * README: updates, and document API/ABI policy
10674
10675         * configure.in: reindentation
10676
10677 2003-04-29  Havoc Pennington  <hp@redhat.com>
10678
10679         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10680         to use this library" to be sure people have the right
10681         expectations.
10682
10683 2003-04-28  Havoc Pennington  <hp@redhat.com>
10684
10685         * configure.in: add --enable-docs which by default is auto yes if
10686         doxygen and db2html found, no otherwise; but can be forced on/off
10687
10688         * doc/Makefile.am: conditionalize whether to build docs on
10689         --enable-docs
10690
10691 2003-04-28  Havoc Pennington  <hp@redhat.com>
10692
10693         * configure.in: 0.10
10694
10695         * NEWS: update
10696
10697         * bus/system.conf.in: add <includedir>system.d</includedir>
10698
10699         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10700         username was provided but not uid
10701
10702         * bus/config-parser.c (struct BusConfigParser): keep track of
10703         whether the parser is toplevel or was included; change some
10704         of the error handling if it's included.
10705
10706 2003-04-27  Havoc Pennington  <hp@pobox.com>
10707
10708         Unbreak my code...
10709
10710         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10711         report correct status if we finish processing authentication
10712         inside this function.
10713
10714         * bus/activation.c (try_send_activation_failure): use
10715         bus_transaction_send_error_reply
10716
10717         * bus/connection.c (bus_connection_get_groups): return an error
10718         explaining the problem
10719
10720         * bus/bus.c (bus_context_check_security_policy): implement
10721         restriction here that inactive connections can only send the
10722         hello message. Also, allow bus driver to send anything to
10723         any recipient.
10724
10725         * bus/connection.c (bus_connection_complete): create the
10726         BusClientPolicy here instead of on-demand.
10727         (bus_connection_get_policy): don't return an error
10728
10729         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10730         sender field in message being replied to
10731
10732         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10733         causing it to return FALSE always
10734
10735         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10736         we checked sender rather than destination
10737
10738 2003-04-25  Havoc Pennington  <hp@redhat.com>
10739
10740         test suite is slightly hosed at the moment, will fix soon
10741
10742         * bus/connection.c (bus_connections_expire_incomplete): fix to
10743         properly disable the timeout when required
10744         (bus_connection_set_name): check whether we can remove incomplete
10745         connections timeout after we complete each connection.
10746
10747         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10748         probably still broken.
10749
10750         * bus/services.c (bus_registry_acquire_service): implement max
10751         number of services owned, and honor allow/deny rules on which
10752         services a connection can own.
10753
10754         * bus/connection.c (bus_connection_get_policy): report errors here
10755
10756         * bus/activation.c: implement limit on number of pending
10757         activations
10758
10759 2003-04-25  Havoc Pennington  <hp@redhat.com>
10760
10761         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10762         where we used >= 0 instead of != DBUS_UID_UNSET.
10763
10764 2003-04-25  Havoc Pennington  <hp@redhat.com>
10765
10766         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10767         were toggled without add/remove, fix from Anders Gustafsson
10768
10769 2003-04-24  Havoc Pennington  <hp@redhat.com>
10770
10771         * test/data/valid-config-files/basic.conf: add <limit> tags to
10772         this test
10773
10774         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10775         <limit> tag in configuration file.
10776
10777 2003-04-24  Havoc Pennington  <hp@redhat.com>
10778
10779         * bus/dispatch.c: somehow missed some name_is
10780
10781         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10782         (_dbus_timeout_set_interval): new
10783
10784         * bus/connection.c (bus_connections_setup_connection): record time
10785         when each connection is first set up, and expire them after the
10786         auth timeout passes.
10787
10788 2003-04-24  Havoc Pennington  <hp@redhat.com>
10789
10790         * dbus/dbus-message.c (dbus_message_name_is): rename
10791         (dbus_message_service_is): rename
10792         (dbus_message_sender_is): rename
10793         (dbus_message_get_service): rename
10794
10795 2003-04-24  Havoc Pennington  <hp@redhat.com>
10796
10797         * configure.in: add --enable-checks
10798
10799         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10800
10801         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10802         to use thread locks.
10803         (_dbus_connection_handler_destroyed_locked): move some private
10804         functions into proper docs group
10805
10806         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10807         _dbus_return_val_if_fail
10808
10809         Throughout: use dbus_return_if_fail
10810
10811 2003-04-23  James Willcox  <jwillcox@gnome.org>
10812
10813         * glib/dbus-glib.h:
10814         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10815         (dbus_connection_setup_with_g_main),
10816         (dbus_server_setup_with_g_main):
10817         * glib/test-dbus-glib.c: (main):
10818         * glib/test-thread-client.c: (main):
10819         * glib/test-thread-server.c: (new_connection_callback), (main):
10820         * tools/dbus-monitor.c: (main):
10821
10822         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10823         and dbus_server_setup_with_g_main().
10824
10825 2003-04-20  Havoc Pennington  <hp@pobox.com>
10826
10827         * doc/dbus-specification.sgml: document the restrictions on
10828         message and service names
10829
10830 2003-04-22  Havoc Pennington  <hp@redhat.com>
10831
10832         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10833         support, and do some code cleanups to share more code and
10834         speed up array marshal/demarshal.
10835
10836         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10837
10838         * configure.in: generate dbus-arch-deps.h
10839
10840         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10841         64-bit typecodes
10842
10843 2003-04-22  Havoc Pennington  <hp@redhat.com>
10844
10845         * test/data/valid-messages/opposite-endian.message: fix test
10846         to use proper type for rply field
10847
10848         * test/data/invalid-messages: add tests for below validation
10849
10850         * dbus/dbus-message.c (decode_header_data): validate field types,
10851         and validate that named fields are valid names
10852         (decode_name_field): consider messages in the
10853         org.freedesktop.Local. namespace to be invalid.
10854
10855         * dbus/dbus-string.c (_dbus_string_validate_name): new
10856
10857 2003-04-19  Havoc Pennington  <hp@pobox.com>
10858
10859         * bus/driver.c (bus_driver_handle_hello): check limits and
10860         return an error if they are exceeded.
10861
10862         * bus/connection.c: maintain separate lists of active and inactive
10863         connections, and a count of each. Maintain count of completed
10864         connections per user. Implement code to check connection limits.
10865
10866         * dbus/dbus-list.c (_dbus_list_unlink): export
10867
10868         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10869         number of bytes in the message queue for a connection
10870
10871 2003-04-18  Havoc Pennington  <hp@pobox.com>
10872
10873         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10874
10875         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10876         memleaks
10877
10878         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10879         on realloc be sure to update the pointer in the keyring
10880
10881         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10882         offset to avoid writing to unallocated memory
10883
10884         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10885         try the next mechanism, so we properly handle OOM
10886
10887         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10888         on OOM.
10889         (_dbus_keyring_new): fix OOM bug
10890         (_dbus_keyring_new_homedir): always set error; impose a maximum
10891         number of keys we'll load from the file, mostly to speed up the
10892         test suite and make its OOM checks more useful, but also for
10893         general sanity.
10894
10895         * dbus/dbus-auth.c (process_error_server): reject authentication
10896         if we get an error from the client
10897         (process_cancel): on cancel, send REJECTED, per the spec
10898         (process_error_client): send CANCEL if we get an error from the
10899         server.
10900
10901 2003-04-18  Havoc Pennington  <hp@pobox.com>
10902
10903         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10904         debug spew
10905
10906         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10907         handling problem
10908
10909         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10910         about DBUS_TEST_HOMEDIR once
10911
10912         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10913         the environment
10914
10915         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10916         config file so we test the right thing
10917
10918         Throughout: assorted docs improvements
10919
10920 2003-04-18  Havoc Pennington  <hp@pobox.com>
10921
10922         * glib/dbus-gmain.c: adapt to watch changes
10923
10924         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10925
10926         * dbus/dbus-server.h: remove dbus_server_handle_watch
10927
10928         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10929
10930         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10931         like DBusTimeout, so we don't need dbus_connection_handle_watch
10932         etc.
10933
10934 2003-04-17  Havoc Pennington  <hp@redhat.com>
10935
10936         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10937         database usage so it all goes via the DBusUserDatabase cache.
10938
10939 2003-04-17  Havoc Pennington  <hp@redhat.com>
10940
10941         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10942         there was an OOM watch we skipped, we always return TRUE so we
10943         iterate again to have a look at it again. Fixes test suite hang.
10944         Code rearrangement also lets us lose some memset and only iterate
10945         over callbacks once.
10946
10947         * bus/driver.c (bus_driver_handle_message): sense of test for
10948         reply was backward
10949
10950 2003-04-16  Havoc Pennington  <hp@pobox.com>
10951
10952         * doc/dbus-specification.sgml: make spec say serials are unsigned
10953
10954         * dbus/dbus-message.h: change message serials to unsigned
10955
10956         * dbus/dbus-connection.c: adapt to message serials being unsigned
10957
10958 2003-04-15  Havoc Pennington  <hp@pobox.com>
10959
10960         * bus/bus.c: create and keep around a shared DBusUserDatabase
10961         object.
10962
10963         * bus/connection.c (bus_connection_get_groups): don't cache
10964         groups for user in the connection object, since user database
10965         object now does that.
10966
10967 2003-04-16  Havoc Pennington  <hp@redhat.com>
10968
10969         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10970         list of size counters
10971         (_dbus_message_loader_putback_message_link): put back a popped link
10972
10973         * dbus/dbus-connection.c
10974         (dbus_connection_set_max_live_messages_size): rename
10975         max_received_size
10976         (dbus_connection_get_outgoing_size): get size of outgoing
10977         queue
10978         (_dbus_connection_set_connection_counter): remove this cruft
10979
10980 2003-04-14  Havoc Pennington  <hp@redhat.com>
10981
10982         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10983         caching, but at some point we might want to be able to use a
10984         different database.
10985
10986         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10987         SHA1 conf file to test the sha1 auth mechanism, since the regular
10988         test always uses EXTERNAL when available.
10989
10990         * configure.in,
10991         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
10992         add conf file that requires use of sha1 auth
10993
10994 2003-04-13  Havoc Pennington  <hp@pobox.com>
10995
10996         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
10997         from Philip Blundell to send messages and monitor them.
10998
10999 2003-04-13  Havoc Pennington  <hp@pobox.com>
11000
11001         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11002         callbacks
11003
11004         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11005         users
11006
11007         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11008         fix to only recover unused bytes if we're already authenticated
11009         (_dbus_transport_get_is_authenticated): fix to still mark us
11010         authenticated if there are unused bytes.
11011
11012         * bus/dispatch.c: implement security policy checking
11013
11014         * bus/connection.c (bus_transaction_send_from_driver): new
11015
11016         * bus/bus.c (bus_context_check_security_policy): new
11017
11018         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11019         now we just set the DBusError and it gets converted to an error
11020         reply.
11021
11022         * bus/connection.c (allow_user_function): enable code using actual
11023         data from the config file
11024
11025         * bus/policy.c (list_allows_user): handle wildcard rules for
11026         user/group connection perms
11027
11028 2003-04-13  Havoc Pennington  <hp@pobox.com>
11029
11030         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11031
11032         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11033
11034         * bus/policy.c (bus_policy_append_mandatory_rule)
11035         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11036         (bus_policy_append_group_rule): new functions
11037
11038 2003-04-12  Havoc Pennington  <hp@pobox.com>
11039
11040         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11041
11042         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11043         the pid/gid/uid, just for paranoia.
11044
11045         * test/break-loader.c (randomly_do_n_things): find a byte
11046         containing a type code, and randomly change it to a different
11047         type code.
11048
11049 2003-04-12  Havoc Pennington  <hp@pobox.com>
11050
11051         * bus/policy.h: change BusPolicy to be the thing from the config
11052         file, and rename old BusPolicy to BusClientPolicy
11053
11054         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11055         match change in how policy works
11056
11057         * dbus/dbus-internals.h: mark assert_not_reached as
11058         __attribute((noreturn))__
11059
11060 2003-04-11  Havoc Pennington  <hp@redhat.com>
11061
11062         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11063         the broadcast service. Use boolean return for ServiceExists.
11064
11065 2003-04-11  Havoc Pennington  <hp@redhat.com>
11066
11067         * configure.in: add another directory to look for qt in.
11068
11069 2003-04-11  Havoc Pennington  <hp@redhat.com>
11070
11071         * AUTHORS: add Colin Walters
11072
11073 2003-04-11  Havoc Pennington  <hp@redhat.com>
11074
11075         * NEWS: update
11076
11077         * configure.in: 0.9
11078
11079 2003-04-11  Havoc Pennington  <hp@redhat.com>
11080
11081         * bus/messagebus.in: remove pid file when stopping the
11082         message bus, since the bus won't have privileges to remove it
11083         itself.
11084
11085 2003-04-11  Havoc Pennington  <hp@redhat.com>
11086
11087         * bus/bus.c (bus_context_new): move credentials change after
11088         creating pidfile
11089
11090 2003-04-11  Havoc Pennington  <hp@pobox.com>
11091
11092         * test/decode-gcov.c: add "below average functions" to the
11093         coverage report, and change how some of the code works.
11094
11095         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11096         not in the coverage stats.
11097
11098         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11099         couple places so running the test suite doesn't result in megaspam.
11100
11101 2003-04-11  Havoc Pennington  <hp@pobox.com>
11102
11103         * bus/dispatch.c (check_existent_service_activation): accept a no
11104         memory error in a place we didn't before
11105
11106         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11107         in case the first one failed," since the test suite is less
11108         broken now.
11109
11110 2003-04-10  Havoc Pennington  <hp@pobox.com>
11111
11112         * bus/dispatch.c (check_segfault_service_activation): add test
11113         for launching an executable that just crashes.
11114
11115         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11116         don't leave a million cores. We'll see how portable this is.
11117
11118 2003-04-10  Havoc Pennington  <hp@pobox.com>
11119
11120         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11121         the possible parent failures before we fork, so that we don't
11122         fail to create a babysitter after creating the child.
11123
11124         * bus/activation.c (bus_activation_activate_service): kill child
11125         if we don't successfully complete the activation.
11126
11127 2003-04-10  Havoc Pennington  <hp@redhat.com>
11128
11129         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11130         the connection if it's disconnected
11131
11132         * bus/activation.c (bus_activation_service_created): use new
11133         transaction features to roll back removal of pending activation if
11134         we don't successfully create the service after all. Don't remove
11135         pending activation if the function fails.
11136
11137         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11138         (_dbus_list_insert_after_link): new code to facilitate
11139         services.c fixes
11140
11141         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11142         new functionality, so we can preallocate the ability to insert
11143         into a hash table.
11144
11145         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11146         allowing us to put custom hooks in a transaction to be used for
11147         cancelling said transaction
11148
11149         * doc/dbus-specification.sgml: add some discussion of secondary
11150         service owners, and disallow zero-length service names
11151
11152         * bus/services.c (bus_registry_acquire_service): new function,
11153         splits out part of bus_driver_handle_acquire_service() and fixes
11154         a bug where we didn't remove the service doing the acquiring
11155         from the secondary queue if we failed to remove the current owner
11156         from the front of the queue.
11157
11158 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11159
11160         * doc/dbus-specification.sgml:
11161         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11162
11163 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11164
11165         * bus/.cvsignore:
11166         * glib/.cvsignore:
11167         * test/.cvsignore:
11168         Added files to cvsignore
11169
11170         * dbus/dbus-message.h:
11171         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11172         Make get_named() take two out argument and return a boolean.
11173         (dbus_message_iter_get_args_valist):
11174         Update usage of get_named().
11175         (dbus_message_iter_append_byte):
11176         Fix typo
11177         (dbus_message_iter_append_named)
11178         Fix typo
11179         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11180         More tests.
11181
11182 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11183
11184         * dbus/dbus-marshal.[ch]:
11185         Add array_type_pos argument to _dbus_marshal_validate_arg.
11186         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11187
11188         * dbus/dbus-message.[ch]:
11189         Multi-dimensional arrays have full type specification in the
11190         outermost array. Iter code re-arranged to handle this.
11191         Added some more iter tests.
11192
11193         * doc/dbus-specification.sgml:
11194         Add me to authors.
11195         Remove old FIXME.
11196         Update new array encoding description.
11197         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11198
11199         * test/data/invalid-messages/array-with-mixed-types.message:
11200         * test/data/valid-messages/array-of-array-of-uint32.message:
11201         Change to the new array format.
11202
11203         * test/data/invalid-messages/too-short-dict.message:
11204         Fix bug in test.
11205
11206         * test/data/valid-messages/recursive-types.message:
11207         Fix up and extend test.
11208
11209 2003-04-10  Havoc Pennington  <hp@pobox.com>
11210
11211         * bus/dispatch.c: lots of fixes
11212
11213         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11214         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11215         that was crack, broke the test service.
11216
11217         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11218         handling to avoid piling up errors if we get a failure on the
11219         first address.
11220
11221         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11222         pid in assertion failures.
11223
11224         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11225         to some fixed size of file descriptor array. Don't return TRUE
11226         anytime a timeout exists, that led to lots of busy loop silliness
11227         in the tests.
11228
11229 2003-04-09  Havoc Pennington  <hp@redhat.com>
11230
11231         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11232         I'd checked this in earlier but hadn't.
11233
11234 2003-04-09  Havoc Pennington  <hp@redhat.com>
11235
11236         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11237         the activation test (man this is getting old!)
11238
11239 2003-04-09  Havoc Pennington  <hp@redhat.com>
11240
11241         * test/test-utils.c: use dispatch status function to fix this up
11242
11243         * bus/connection.c (connection_watch_callback): don't dispatch
11244         from here
11245         (connection_timeout_callback): don't dispatch from here
11246         (bus_connections_setup_connection): set the dispatch status function
11247         (bus_connection_disconnected): unset it
11248
11249         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11250         used to add a connection to be dispatched
11251         (_dbus_loop_iterate): do the dispatching at the end of each
11252         iteration
11253
11254         * dbus/dbus-connection.c
11255         (dbus_connection_set_dispatch_status_function): new function
11256         allowing us to fix up main loop usage
11257         (_dbus_connection_last_unref): free all the various function
11258         user data
11259         (dbus_connection_dispatch): call the DispatchStatusFunction
11260         whenever this function returns
11261         (dbus_connection_handle_watch): call DispatchStatusFunction
11262         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11263         (reply_handler_timeout): call DispatchStatusFunction
11264         (dbus_connection_flush): call DispatchStatusFunction
11265
11266 2003-04-09  Havoc Pennington  <hp@redhat.com>
11267
11268         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11269         a memory leak
11270
11271         * bus/dispatch.c (check_service_activated): fix bug in test
11272
11273         * dbus/dbus-mainloop.c (check_timeout): fix this up
11274
11275         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11276         verbose output so we can sort out output from different processes,
11277         e.g. in the activation case.
11278
11279 2003-04-08  Colin Walters  <walters@gnu.org>
11280
11281         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11282         the pid file.
11283         (bus_context_new): Set it.
11284         (bus_context_unref): Use it to delete the pid file.
11285
11286 2003-04-08  Havoc Pennington  <hp@redhat.com>
11287
11288         * test/data/invalid-messages/array-with-mixed-types.message:
11289         regression test that fails for the moment
11290
11291         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11292         tests for convenience
11293
11294         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11295         array of nil, it broke things.
11296
11297         * test/data/invalid-messages/array-of-nil.message: regression test
11298
11299         * test/data/valid-messages/array-of-array-of-uint32.message:
11300         happened to write this so added it to suite
11301
11302 2003-04-08  Havoc Pennington  <hp@redhat.com>
11303
11304         * bus/driver.c (bus_driver_handle_acquire_service): init
11305         retval/reply before checking name
11306
11307         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11308         recursion depth argument
11309
11310         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11311         in the public struct for future extension
11312
11313         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11314         typo
11315
11316         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11317         message
11318
11319         * doc/dbus-specification.sgml: fix typo
11320
11321 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11322
11323         Implemented recursive types, named types and new-style iters
11324
11325         * bus/driver.c:
11326         * glib/test-thread-client.c: (thread_func):
11327         * glib/test-thread-server.c: (handle_test_message):
11328         * test/test-service.c: (handle_echo):
11329         Update to new api
11330
11331         * dbus/Makefile.am:
11332         * dbus/dbus-dict.c:
11333         * dbus/dbus-dict.h:
11334         * dbus/dbus.h
11335         Remove DBusDict
11336
11337         * dbus/dbus-internals.c: (_dbus_type_to_string):
11338         Update for new types.
11339
11340         * dbus/dbus-marshal.[ch]:
11341         Implement recursive types and the new marshalling format.
11342         Remove hardcoded dict marshalling.
11343         Marshal named types.
11344
11345         * dbus/dbus-message-builder.c:
11346         Add BYTE_ARRAY.
11347         Remove references to old types
11348
11349         * dbus/dbus-message.[ch]:
11350         New non-refcounted iter API that supports recursive iters.
11351         Use iters for appending, including support for recursive
11352         iters.
11353         Add byte and named type support.
11354         Update everything to new marshalling formats.
11355         Add tests for new API.
11356
11357         * dbus/dbus-protocol.h:
11358         Remove old array types.
11359         Add types: BYTE, ARRAY, DICT, NAMED
11360
11361         * dbus/dbus-string.c:
11362         * dbus/dbus-sysdeps.c:
11363         Make parse_double locale safe.
11364
11365         * dbus/dbus-test-main.c:
11366         Call setlocale.
11367
11368         * dbus/dbus-test.c:
11369         Kill dict test
11370
11371         * doc/dbus-specification.sgml:
11372         Update spec
11373
11374         * test/data/incomplete-messages/missing-body.message:
11375         * test/data/invalid-messages/bad-boolean.message:
11376         * test/data/invalid-messages/bad-boolean-array.message:
11377         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11378         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11379         * test/data/invalid-messages/too-short-dict.message:
11380         * test/data/valid-messages/dict-simple.message:
11381         * test/data/valid-messages/dict.message:
11382         * test/data/valid-messages/emptiness.message:
11383         * test/data/valid-messages/lots-of-arguments.message:
11384         * test/data/valid-messages/no-padding.message:
11385         * test/data/valid-messages/recursive-types.message:
11386         Add missing NAME fields
11387         Fix up dicts & arrays
11388
11389         * test/data/invalid-messages/dict-with-nil-value.message:
11390         Removed, this is not invalid anymore.
11391
11392         * test/data/valid-messages/recursive-types.message:
11393         Add new test for deeply recursive types.
11394
11395 2003-04-07  Havoc Pennington  <hp@pobox.com>
11396
11397         * bus/driver.c (bus_driver_handle_acquire_service): return an
11398         error if you try to acquire a service that starts with ':'
11399
11400 2003-04-07  Havoc Pennington  <hp@redhat.com>
11401
11402         * doc/dbus-specification.sgml: require that base service names
11403         start with ':' and that the base service is created/deleted
11404         as first and last things a connection does on the bus
11405
11406         * bus/dispatch.c (check_existent_service_activation): lots more
11407         work on the activation test; it doesn't fully pass yet...
11408
11409         * test/test-service.c (main): fix so we don't memleak the
11410         connection to the message bus
11411         (filter_func): accept a message asking us to exit
11412
11413 2003-04-06  Havoc Pennington  <hp@pobox.com>
11414
11415         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11416         from Colin Walters
11417
11418         * configure.in: fixes to Qt detection from Colin Walters
11419
11420         * doc/Makefile.am: Only remove generated docbook dirs if they
11421         exist, from Colin Walters
11422
11423         * dbus/dbus-bus.c: change how we set well-known connections to
11424         NULL, so that it works if a single connection is stored in
11425         two well-known array slots.
11426
11427         * test/Makefile.am: remove a lot of stuff that isn't immediately
11428         useful, it's in CVS history if we want it.
11429
11430         * test/test-service.c: use dbus-mainloop instead of that
11431         watch.[hc] crack
11432
11433 2003-04-06  Havoc Pennington  <hp@pobox.com>
11434
11435         * dbus/Makefile.am: split lists of sources into stuff that goes in
11436         the library, util functions that go in the lib and are also used
11437         elsewhere, and util functions that are used in tests/daemon but
11438         don't go in the lib.
11439
11440         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11441         here so it can be used in test binaries also
11442
11443 2003-04-06  Havoc Pennington  <hp@pobox.com>
11444
11445         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11446         here in the parent process, so we can return an error if it
11447         fails. Also, move some of the code into the child so the parent
11448         is less hosed if we fail midway through.
11449
11450         * bus/bus.c (bus_context_new): move pidfile detection further up
11451         in the function, before we start overwriting sockets and such.
11452
11453         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11454
11455         * configure.in: add --with-system-pid-file and --with-system-socket
11456
11457 2003-04-06  Colin Walters  <walters@verbum.org>
11458
11459         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11460
11461         * bus/system.conf.in: Declare a pidfile.
11462
11463         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11464         create one (if appropriate).
11465
11466         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11467         (struct BusConfigParser) [pidfile]: New.
11468         (element_type_to_name, merge_included, start_busconfig_child)
11469         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11470         (bus_config_parser_unref): Free it.
11471         (bus_config_parser_get_pidfile): New function.
11472
11473         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11474
11475         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11476
11477         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11478
11479         * dbus/dbus-sysdeps.h: Prototype it.
11480
11481 2003-04-06  Havoc Pennington  <hp@pobox.com>
11482
11483         * bus/bus.c (bus_context_new): print the address in here, rather
11484         than in main(), because we need to do it before forking the daemon
11485
11486         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11487         on the service nonexistent error
11488
11489         * bus/driver.c (bus_driver_handle_acquire_service): set the
11490         sender on the AcquireService reply
11491
11492         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11493         server also listen on a UNIX socket so services can connect to it.
11494
11495 2003-04-06  Havoc Pennington  <hp@pobox.com>
11496
11497         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11498         so it detects deadlocks and also we actually init threads when
11499         debugging.
11500
11501 2003-04-06  Havoc Pennington  <hp@pobox.com>
11502
11503         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11504         save the domain socket name, and unlink it when we disconnect the
11505         server. Means that at least when we exit normally, we won't leave
11506         a bunch of junk in /tmp
11507
11508         * dbus/dbus-transport-unix.c
11509         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11510         memory management). (I was making a real change here but then
11511         didn't)
11512
11513 2003-04-06  Havoc Pennington  <hp@pobox.com>
11514
11515         * bus/bus.c (bus_context_new): fix wrong handling of
11516         server_data_slot_unref() in the error case.
11517
11518         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11519         "(condition) != 0" to _dbus_real_assert so that
11520         "_dbus_assert (pointer)" doesn't cause a warning
11521
11522         * bus/main.c (main): accept --print-address option to print out
11523         the message bus address
11524
11525         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11526
11527         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11528         "tmpdir" option to unix: address on client side
11529
11530         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11531         to unix: address
11532
11533         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11534         we can use to create sockets in the test suite.
11535
11536         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11537         cleanly. To be used for testing.
11538
11539         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11540
11541         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11542
11543         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11544         handle trying to call this when there's no servers active
11545
11546 2003-04-05  Havoc Pennington  <hp@pobox.com>
11547
11548         * NEWS: update
11549
11550         * configure.in: 0.8
11551
11552 2003-04-05  Havoc Pennington  <hp@pobox.com>
11553
11554         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11555         crash on startup. Need to get "try starting the daemon"
11556         in the test suite I guess. ;-)
11557
11558         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11559         tracked the number of open connections; it's better done in
11560         application-specific code as you want it to span all servers etc.
11561
11562 2003-04-05  Havoc Pennington  <hp@pobox.com>
11563
11564         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11565         patch from Colin Walters
11566
11567 2003-04-05  Havoc Pennington  <hp@pobox.com>
11568
11569         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11570         reality; in fact multiple mechanisms are allowed.
11571
11572         * dbus/dbus-internals.c (_dbus_real_assert)
11573         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11574         _dbus_assert_not_reached() into functions, so that they don't show
11575         up in basic block counts for test coverage, and don't use up as
11576         much disk space. Does mean slower execution speed though, so
11577         assumes --disable-asserts is the normal production case.
11578
11579 2003-04-05  Havoc Pennington  <hp@pobox.com>
11580
11581         * test/Makefile.am (dist-hook): also dist *.in files
11582
11583         * NEWS: update
11584
11585         * configure.in: 0.7
11586
11587 2003-04-05  Havoc Pennington  <hp@pobox.com>
11588
11589         * dbus/dbus-string.c: docs warning
11590
11591         * dbus/dbus-spawn.c: missing docs
11592
11593         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11594
11595 2003-04-05  Havoc Pennington  <hp@pobox.com>
11596
11597         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11598         magic from GLib
11599
11600         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11601         to -1 once we've reaped the babysitter
11602         (_dbus_babysitter_handle_watch): do as much work as we can, not
11603         just one go of it
11604
11605         * bus/activation.c: add code using DBusBabysitter so that we
11606         handle it when a service fails to start up properly.
11607         (bus_activation_service_created): don't remove the activation
11608         entries as we go, just let them get removed when we free the pending
11609         activation. Unref reply messages after sending them.
11610
11611 2003-04-05  Havoc Pennington  <hp@pobox.com>
11612
11613         * test/decode-gcov.c (main): print per-directory stats in the report
11614
11615         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11616
11617 2003-04-05  Havoc Pennington  <hp@pobox.com>
11618
11619         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11620
11621         * test/decode-gcov.c: hack up a little program to suck data
11622         out of gcov files. Yes this is sort of silly.
11623
11624         * configure.in: define something in config.h and do an
11625         AM_CONDITIONAL when gcov is enabled
11626
11627 2003-04-04  Havoc Pennington  <hp@redhat.com>
11628
11629         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11630         return a "babysitter" object that is used to monitor the status of
11631         the spawned process and reap it when required.
11632
11633         * test/test-segfault.c, test/test-exit.c,
11634         test/test-sleep-forever.c: binaries that do various lame things,
11635         used in the test suite.
11636
11637         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11638
11639 2003-04-03  Havoc Pennington  <hp@pobox.com>
11640
11641         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11642         in preparation for modifying it, dbus-sysdeps is getting
11643         a bit unmanageable.
11644
11645 2003-04-03  Havoc Pennington  <hp@redhat.com>
11646
11647         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11648         have multiple ones
11649
11650         * bus/*.[hc]: adapt to mainloop change
11651
11652 2003-04-03  Havoc Pennington  <hp@redhat.com>
11653
11654         * bus/activation.c (load_directory): fix up memleaks
11655         (bus_activation_entry_free): free the entry
11656
11657         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11658         we get one from the message bus; fix memleaks.
11659
11660         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11661
11662 2003-04-03  Havoc Pennington  <hp@pobox.com>
11663
11664         * bus/config-parser.c (bus_config_parser_unref): free
11665         list of mechanisms, bug discovered by test suite enhancements
11666         (putting system.conf and session.conf into suite)
11667
11668         * test/Makefile.am, test/test-service.c: add placeholder for a
11669         test service that we'll activate as part of test suite. Doesn't
11670         do anything yet.
11671
11672         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11673         setting NULL value, and use system malloc not dbus_malloc()
11674         when we have unavoidable memleakage.
11675
11676         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11677         didn't work, and support DBUS_BUS_ACTIVATION.
11678
11679         * bus/activation.c (child_setup): pass our well-known bus type to
11680         the child
11681
11682         * bus/config-parser.c: support <type> to specify well-known type
11683
11684         * doc/dbus-specification.sgml: document the env variables to
11685         locate well-known buses and find service activator
11686
11687 2003-04-02  Havoc Pennington  <hp@redhat.com>
11688
11689         * test/Makefile.am (all-local): add a rule to copy tests to
11690         builddir, so we can have generated tests. Use this to remove the
11691         silly hack for testing system.conf and session.conf. Will use this
11692         shortly to generate .service files pointing to test binaries.
11693
11694 2003-04-02  Havoc Pennington  <hp@redhat.com>
11695
11696         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11697         current alloc and needed new length, not max of the doubled
11698         allocation and needed new length. Also, when building tests,
11699         don't do the double-allocation stuff, just realloc every time.
11700
11701 2003-04-02  Havoc Pennington  <hp@redhat.com>
11702
11703         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11704         in error messages
11705         (_dbus_string_get_dirname): new
11706         (_dbus_sysdeps_test): new
11707         (_dbus_directory_open): include dirnames in error messages
11708
11709         * bus/config-parser.c: interpret <include> and <includedir> and
11710         <servicedir> relative to config file location if the given
11711         filename is not absolute.
11712
11713         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11714
11715 2003-04-02  Havoc Pennington  <hp@redhat.com>
11716
11717         * bus/connection.c (bus_transaction_send_error_reply): set sender
11718         service for the error, and unref the reply on success
11719
11720         * bus/activation.c: convert to use BusTransaction so OOM can be
11721         handled correctly
11722         (bus_activation_service_created): set sender of the message
11723
11724 2003-04-01  Havoc Pennington  <hp@redhat.com>
11725
11726         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11727         <includedir> (at least mostly)
11728
11729         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11730         first, then the user ID
11731
11732 2003-04-01  Havoc Pennington  <hp@pobox.com>
11733
11734         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11735         function
11736
11737         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11738
11739         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11740
11741         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11742         socket 0777, and unlink any existing socket.
11743
11744         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11745         the configuration file so specifies; set up auth mechanism
11746         restrictions
11747
11748         * bus/config-parser.c (bus_config_parser_content): add support
11749         for <fork> option and fill in code for <auth>
11750
11751         * bus/system.conf.in: add <fork/> to default configuration,
11752         and limit auth mechanisms to EXTERNAL
11753
11754         * doc/config-file.txt (Elements): add <fork>
11755
11756         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11757         (_dbus_change_identity): new function
11758
11759 2003-03-31  Havoc Pennington  <hp@redhat.com>
11760
11761         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11762         (_dbus_listen_unix_socket): fix off-by-one error in null
11763         termination spotted by Nalin
11764
11765 2003-03-31  Havoc Pennington  <hp@redhat.com>
11766
11767         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11768         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11769         having a real home directory available.
11770
11771 2003-03-31  Havoc Pennington  <hp@redhat.com>
11772
11773         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11774
11775         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11776
11777         * configure.in: add support for specifying a style of init script
11778         to install
11779
11780 2003-03-31  Havoc Pennington  <hp@redhat.com>
11781
11782         Fix some annoying DBusString API and fix all affected code.
11783
11784         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11785         max_length argument
11786         (_dbus_string_get_data): change to return string instead of using
11787         an out param
11788         (_dbus_string_get_const_data): ditto
11789         (_dbus_string_get_data_len): ditto
11790         (_dbus_string_get_const_data_len): ditto
11791
11792 2003-03-31  Havoc Pennington  <hp@redhat.com>
11793
11794         * bus/main.c (main): fix up the command line arguments to be nicer
11795
11796 2003-03-31  Havoc Pennington  <hp@redhat.com>
11797
11798         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11799         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11800         final location that lands in the config file
11801
11802         * bus/config-loader-expat.c (bus_config_load): fix type of
11803         XML_Parser variable
11804
11805         * doc/TODO: remove TODO item for dbus_bus_get()
11806
11807         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11808
11809 2003-03-31  Havoc Pennington  <hp@pobox.com>
11810
11811         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11812         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11813         argument since they are always client side
11814
11815         * dbus/dbus-server.c (dbus_server_get_address): new function
11816
11817         * bus/main.c (main): take the configuration file as an argument.
11818
11819         * test/data/valid-config-files/debug-allow-all.conf: new file to
11820         use with dispatch.c tests for example
11821
11822         * bus/test-main.c (main): require test data dir
11823
11824         * bus/bus.c (bus_context_new): change this to take a
11825         configuration file name as argument
11826
11827         * doc/config-file.txt (Elements): add <servicedir>
11828
11829         * bus/system.conf, bus/session.conf: new files
11830
11831         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11832         well-known socket if none set
11833
11834         * configure.in: create system.conf and session.conf
11835
11836 2003-03-30  Havoc Pennington  <hp@pobox.com>
11837
11838         * bus/config-parser.c: hacking
11839
11840         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11841         to shut down, since it could cause weirdness with the DBusList
11842         lock
11843
11844         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11845         link-oriented stack routines
11846         (alloc_link): free the mempool if the first alloc from it fails
11847
11848         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11849
11850         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11851         from GLib
11852         (_dbus_string_skip_white): new
11853
11854         * doc/config-file.txt (Elements): add <includedir>
11855
11856 2003-03-28  Havoc Pennington  <hp@pobox.com>
11857
11858         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11859         (_dbus_string_copy_data): new functions
11860
11861 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11862
11863         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11864         * dbus/dbus-bus.h:
11865         Add dbus_bus_get.
11866
11867         * dbus/dbus-memory.c:
11868         Fix a doc comment.
11869
11870 2003-03-28  Havoc Pennington  <hp@pobox.com>
11871
11872         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11873         I think it may have just been superstition. Not sure.
11874
11875         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11876         failures that were not being handled.
11877
11878         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11879
11880         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11881         row that will fail on out-of-memory.
11882
11883         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11884         function for testing out-of-memory handling.
11885
11886         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11887         allocation functions, they do map exactly to the expat ones.
11888
11889 2003-03-27  Havoc Pennington  <hp@redhat.com>
11890
11891         * bus/config-loader-libxml.c (bus_config_load): add another error
11892         check
11893
11894 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11895
11896         * doc/TODO:
11897         Add note about automatic service activation.
11898
11899         * doc/dbus-specification.sgml:
11900         Rename the specification and clarify a few things.
11901
11902 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11903
11904         * Doxyfile.in:
11905         * dbus/dbus-address.c:
11906         * dbus/dbus-dict.c:
11907         * dbus/dbus-marshal.c:
11908         * dbus/dbus-server-debug-pipe.c:
11909         * dbus/dbus-transport-unix.c:
11910         Fix documentation warnings.
11911
11912 2003-03-26  Havoc Pennington  <hp@pobox.com>
11913
11914         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11915         after every test so it's quick and easy to see which leaked, and
11916         so we test multiple dbus_shutdown() calls
11917
11918         * configure.in: change configure.in XML stuff to also support
11919         expat
11920
11921         * config-loader-libxml.c: some hacking
11922
11923         * config-loader-expat.c: some hacking
11924
11925         * config-parser.c: some hacking, plus tests
11926
11927 2003-03-25  Havoc Pennington  <hp@redhat.com>
11928
11929         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11930
11931         * configure.in: add --with-xml option to specify XML library,
11932         right now only libxml is supported.
11933
11934         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11935         nonworking code between home and work, still just stubs
11936
11937 2003-03-24  Havoc Pennington  <hp@redhat.com>
11938
11939         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11940         file
11941
11942         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11943         NULL argument for "message" if the error is a well-known one,
11944         fill in a generic message in this case.
11945
11946         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11947         favor of DBusError
11948
11949         * bus/test.c (bus_test_flush_bus): add
11950
11951         * bus/policy.c (bus_policy_test): test code stub
11952
11953 2003-03-24  Havoc Pennington  <hp@pobox.com>
11954
11955         * bus/connection.c (bus_connections_setup_connection): set up
11956         the "can this user connect" function, but it always returns
11957         TRUE until we have a config file parser so we can have a config
11958         file that allows connections.
11959
11960 2003-03-23  Havoc Pennington  <hp@pobox.com>
11961
11962         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11963         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11964         the mutex, so we can check for proper memory management
11965         and OOM handling.
11966
11967         * dbus/dbus-dataslot.c: remove the mutex from
11968         DBusDataSlotAllocator and lock it manually when using it,
11969         to simplify fitting it into the global slots framework.
11970
11971         * dbus/dbus-threads.c (init_static_locks): rework how we're
11972         handling global locks so they are easily shut down.
11973
11974         * bus/policy.c (bus_policy_append_rule): fix
11975
11976         * bus/test-main.c (main): check for memleaks
11977
11978         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11979         test suite check for memleaks
11980
11981         * dbus/dbus-memory.c: add support in test mode for tracking
11982         number of outstanding blocks
11983
11984 2003-03-23  Havoc Pennington  <hp@pobox.com>
11985
11986         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11987         policies code
11988
11989         * dbus/dbus-hash.h: add ULONG hash keys
11990
11991         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
11992         (_dbus_get_group_id): new function
11993
11994 2003-03-20  Havoc Pennington  <hp@redhat.com>
11995
11996         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
11997         new function
11998         (dbus_connection_get_unix_user): new function
11999
12000 2003-03-20  Havoc Pennington  <hp@pobox.com>
12001
12002         * bus/connection.c (bus_connection_send_oom_error): assert that
12003         message has a sender
12004         (connection_execute_transaction): ditto
12005         (bus_connection_preallocate_oom_error): fix to set the sender, and
12006         set recipient to the destination service, not the bus driver
12007
12008         * bus/policy.c: hacking
12009
12010         * dbus/dbus-message.c (dbus_message_service_is): new function
12011         (dbus_message_sender_is): new
12012
12013 2003-03-19  Havoc Pennington  <hp@redhat.com>
12014
12015         * bus/policy.c: start sketching code for policy restrictions on
12016         what connections can do.
12017
12018 2003-03-18  Havoc Pennington  <hp@redhat.com>
12019
12020         * doc/TODO: some notes on high-level todo items. Little nitpick
12021         stuff is all in @todo, so no need to add it here.
12022
12023         * doc/config-file.txt: some notes on how config file might look
12024
12025 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12026
12027         * configure.in: 0.6
12028
12029         * NEWS: Update.
12030
12031 2003-03-17  Havoc Pennington  <hp@redhat.com>
12032
12033         * dbus/dbus-internals.h: add gcc attributes so that
12034         our printf-style functions warn on bad arguments to
12035         format
12036
12037         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12038         format bug
12039
12040         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12041         printf format bug
12042
12043 2003-03-17  Havoc Pennington  <hp@redhat.com>
12044
12045         * bus/test-main.c (main): make it print something as it runs
12046         so make check doesn't look stuck
12047
12048         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12049         from CVS, now obsolete
12050
12051 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12052
12053         * bus/dispatch.c: (bus_dispatch):
12054         Refetch the service name since it may have been reallocated
12055         when dbus_message_set_sender was called.
12056
12057         * dbus/dbus-sysdeps.c: (_dbus_accept):
12058         Add address and address length variables and use them to stop
12059         valgrind from complaining.
12060
12061 2003-03-17  Havoc Pennington  <hp@pobox.com>
12062
12063         All tests pass, no memleaks, no valgrind complaints.
12064
12065         * bus/test.c: refcount handler_slot
12066
12067         * bus/connection.c (bus_connections_new): refcount
12068         connection_data_slot
12069
12070         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12071         bytes so that auth scripts pass.
12072
12073         * bus/dispatch.c: init message_handler_slot so it gets allocated
12074         properly
12075
12076         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12077
12078         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12079         dealloc server_pipe_hash when no longer used for benefit of
12080         leak checking
12081
12082         * dbus/dbus-auth.c (process_command): memleak fix
12083
12084         * bus/dispatch.c (check_hello_message): memleak fix
12085
12086 2003-03-16  Havoc Pennington  <hp@pobox.com>
12087
12088         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12089
12090 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12091
12092         * bus/activation.c (bus_activation_activate_service): Append
12093         the pending activation entry to the list of pending activations.
12094
12095 2003-03-16  Havoc Pennington  <hp@pobox.com>
12096
12097         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12098         connections
12099
12100         * dbus/dbus-address.c (create_entry): fix OOM handling when
12101         failing to alloc entry->method
12102
12103 2003-03-16  Havoc Pennington  <hp@pobox.com>
12104
12105         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12106         the watch
12107
12108         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12109         add some missing dbus_set_result
12110
12111         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12112         alloc the DBusMessageHandler
12113
12114         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12115         the transport here, since we call this from the finalizer; it
12116         resulted in a double-finalize.
12117
12118         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12119         where we tried to use transport->connection that was NULL,
12120         happened when transport was disconnected early on due to OOM
12121
12122         * bus/*.c: adapt to handle OOM for watches/timeouts
12123
12124         * dbus/dbus-transport-unix.c: port to handle OOM during
12125         watch handling
12126
12127         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12128         reference to unused bytes instead of a copy
12129
12130         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12131         out of memory
12132
12133         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12134         FALSE on OOM
12135
12136         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12137         of memory
12138
12139 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12140
12141         * doc/dbus-specification.sgml:
12142         Document reply message for ActivateService.
12143
12144 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12145
12146         * bus/activation.c: (bus_pending_activation_entry_free),
12147         (bus_pending_activation_free), (bus_activation_new),
12148         (bus_activation_unref), (bus_activation_service_created),
12149         (bus_activation_activate_service):
12150         * bus/activation.h:
12151         * bus/bus.c: (bus_context_new):
12152         * bus/desktop-file.c: (new_section):
12153         * bus/driver.c: (bus_driver_send_service_deleted),
12154         (bus_driver_handle_activate_service):
12155         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12156         * bus/services.h:
12157         * dbus/dbus-connection.c:
12158         (dbus_connection_send_with_reply_and_block):
12159         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12160         * dbus/dbus-protocol.h:
12161         Make activation work better. Now pending activations will be queued
12162         and the daemon won't try to activate services that are already registered.
12163
12164 2003-03-16  Havoc Pennington  <hp@pobox.com>
12165
12166         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12167         connection data
12168
12169         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12170         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12171
12172 2003-03-16  Havoc Pennington  <hp@pobox.com>
12173
12174         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12175         this. always run the test suite before commit...
12176
12177         * bus/*: adapt to DBusConnection API changes
12178
12179         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12180         requires renaming stuff to avoid dbus_connection_dispatch name
12181         conflict.
12182
12183         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12184         function
12185
12186         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12187         separate from _dbus_message_loader_return_buffer()
12188
12189         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12190         this, because it's now always broken to use; the number of
12191         messages in queue vs. the number still buffered by the message
12192         loader is undefined/meaningless. Should use
12193         dbus_connection_get_dispatch_state().
12194         (dbus_connection_dispatch): rename from
12195         dbus_connection_dispatch_message
12196
12197 2003-03-16  Havoc Pennington  <hp@pobox.com>
12198
12199         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12200         implementation
12201
12202 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12203
12204         * dbus/dbus-connection.c:
12205         (dbus_connection_send_with_reply_and_block):
12206         Decrease connection->n_incoming when removing an entry
12207         from the list.
12208         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12209         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12210         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12211         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12212         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12213         (dbus_dict_get_byte_array):
12214         Handle NULL arrays and strings. Also add support for byte arrays.
12215
12216         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12217         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12218         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12219         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12220         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12221         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12222         * dbus/dbus-marshal.h:
12223         Add support for marshalling and demarshalling empty arrays and strings.
12224
12225         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12226         (dbus_message_append_string_array),
12227         (dbus_message_iter_get_boolean),
12228         (dbus_message_iter_get_boolean_array),
12229         (dbus_message_iter_get_int32_array),
12230         (dbus_message_iter_get_uint32_array),
12231         (dbus_message_iter_get_double_array),
12232         (dbus_message_iter_get_byte_array),
12233         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12234         (check_message_handling):
12235         Add support for getting empty arrays and dicts.
12236
12237         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12238         Don't do any validation at all for now, that's better than just checking
12239         for ASCII.
12240
12241         * test/data/valid-messages/emptiness.message:
12242         New test message with lots of empty arrays.
12243
12244 2003-03-16  Havoc Pennington  <hp@pobox.com>
12245
12246         * dbus/dbus-connection.c
12247         (_dbus_connection_queue_received_message_link): new function that
12248         can't fail due to OOM
12249
12250         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12251         new function pops a message together with a list link
12252         containing it.
12253
12254         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12255         message queuing functions to avoid needing to alloc memory
12256
12257 2003-03-16  Havoc Pennington  <hp@pobox.com>
12258
12259         Oops - test code was only testing failure of around 30 of the
12260         mallocs in the test path, but it turns out there are 500+
12261         mallocs. I believe this was due to misguided linking setup such
12262         that there was one copy of dbus_malloc etc. in the daemon and one
12263         in the shared lib, and only daemon mallocs were tested. In any
12264         case, the test case now tests all 500+ mallocs, and doesn't pass
12265         yet, though there are lots of fixes in this patch.
12266
12267         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12268         this so that it doesn't need to allocate memory, since it
12269         has no way of indicating failure due to OOM (and would be
12270         annoying if it did).
12271
12272         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12273
12274         * bus/Makefile.am: rearrange to create two self-contained
12275         libraries, to avoid having libraries with overlapping symbols.
12276         that was resulting in weirdness, e.g. I'm pretty sure there
12277         were two copies of global static variables.
12278
12279         * dbus/dbus-internals.c: move the malloc debug stuff to
12280         dbus-memory.c
12281
12282         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12283         empty.
12284
12285         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12286
12287         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12288         on failure.
12289
12290         * bus/dispatch.c (bus_dispatch_add_connection): free
12291         message_handler_slot when no longer using it, so
12292         memory leak checkers are happy for the test suite.
12293
12294         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12295
12296         * bus/bus.c (new_connection_callback): disconnect in here if
12297         bus_connections_setup_connection fails.
12298
12299         * bus/connection.c (bus_connections_unref): fix to free the
12300         connections
12301         (bus_connections_setup_connection): if this fails, don't
12302         disconnect the connection, just be sure there are no side
12303         effects.
12304
12305         * dbus/dbus-string.c (undo_alignment): unbreak this
12306
12307         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12308         leaking
12309         (_dbus_auth_new): fix the order in which we free strings
12310         on OOM failure
12311
12312         * bus/connection.c (bus_connection_disconnected): fix to
12313         not send ServiceDeleted multiple times in case of memory
12314         allocation failure
12315
12316         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12317         get the base service name
12318         (dbus_bus_register_client): don't return base service name,
12319         instead store it on the DBusConnection and have an accessor
12320         function for it.
12321         (dbus_bus_register_client): rename dbus_bus_register()
12322
12323         * bus/dispatch.c (check_hello_message): verify that other
12324         connections on the bus also got the correct results, not
12325         just the one sending hello
12326
12327 2003-03-15  Havoc Pennington  <hp@pobox.com>
12328
12329         Make it pass the Hello handling test including all OOM codepaths.
12330         Now to do other messages...
12331
12332         * bus/services.c (bus_service_remove_owner): fix crash when
12333         removing owner from an empty list of owners
12334         (bus_registry_ensure): don't leave service in the list of
12335         a connection's owned services if we fail to put the service
12336         in the hash table.
12337
12338         * bus/connection.c (bus_connection_preallocate_oom_error): set
12339         error flag on the OOM error.
12340
12341         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12342         handle _dbus_transport_set_connection failure
12343
12344         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12345         to create watches up front and simply enable/disable them as
12346         needed.
12347         (unix_connection_set): this can now fail on OOM
12348
12349         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12350         of enabling/disabling a watch or timeout.
12351
12352         * bus/loop.c (bus_loop_iterate): don't touch disabled
12353         watches/timeouts
12354
12355         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12356
12357 2003-03-15  Havoc Pennington  <hp@pobox.com>
12358
12359         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12360         write useful test code, after all that futzing around ;-)
12361
12362         Test does not yet pass because we can't handle OOM in
12363         _dbus_transport_messages_pending (basically,
12364         dbus_connection_preallocate_send() does not prealloc the write
12365         watch). To fix this, I think we need to add new stuff to
12366         set_watch_functions, namely a SetEnabled function so we can alloc
12367         the watch earlier, then enable it later.
12368
12369         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12370         dbus-memory.c to the convenience lib
12371
12372         * bus/test.c: rename some static functions to keep them clearly
12373         distinct from stuff in connection.c. Handle client disconnection.
12374
12375 2003-03-14  Havoc Pennington  <hp@pobox.com>
12376
12377         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12378         transport, tests more of the real codepath. Set up clients
12379         with bus_setup_debug_client.
12380
12381         * bus/test.c (bus_setup_debug_client): function to set up debug
12382         "clients" on the main loop
12383
12384         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12385         support
12386
12387         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12388         server type
12389
12390         * dbus/dbus-server-debug.c: support a debug server based on pipes
12391
12392         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12393         (_dbus_close): new function
12394
12395         * configure.in: check for socketpair
12396
12397 2003-03-14  Havoc Pennington  <hp@redhat.com>
12398
12399         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12400         cheesy hack
12401
12402         * dbus/dbus-transport-debug.c: rework this a good bit to be
12403         less complicated. hopefully still works.
12404
12405         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12406         manually
12407
12408         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12409         after running it
12410
12411         * dbus/dbus-message.c (dbus_message_copy): rename from
12412         dbus_message_new_from_message, fix it up to copy
12413         all the message fields, add test case
12414
12415         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12416         not quite passing yet
12417
12418 2003-03-14  Havoc Pennington  <hp@pobox.com>
12419
12420         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12421         until no work remains" in test code. (the large diff here
12422         is just code movement, no actual changes)
12423
12424         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12425         1, no point waiting around for test code.
12426         (_dbus_server_debug_accept_transport): unref the timeout
12427         after adding it (right?)
12428
12429         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12430
12431 2003-03-13  Havoc Pennington  <hp@redhat.com>
12432
12433         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12434         out of memory
12435
12436         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12437         of memory
12438
12439         * dbus/dbus-connection.h: Make AddWatchFunction and
12440         AddTimeoutFunction return a bool so they can fail on out-of-memory
12441
12442         * bus/bus.c (bus_context_new): set up timeout handlers
12443
12444         * bus/connection.c (bus_connections_setup_connection): set up
12445         timeout handlers
12446
12447         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12448         can fail
12449
12450         * bus/bus.c (bus_context_new): adapt to changes
12451
12452         * bus/connection.c: adapt to changes
12453
12454         * test/watch.c: adapt to DBusWatch changes
12455
12456         * bus/dispatch.c (bus_dispatch_test): started adding this but
12457         didn't finish
12458
12459 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12460
12461         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12462
12463 2003-03-13  Havoc Pennington  <hp@pobox.com>
12464
12465         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12466         set up a test framework as for the library
12467
12468 2003-03-12  Havoc Pennington  <hp@pobox.com>
12469
12470         Throughout: purge global variables, introduce BusActivation,
12471         BusConnections, BusRegistry, etc. objects instead.
12472
12473         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12474         message bus object
12475
12476         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12477         going to redo this a bit differently I think
12478
12479 2003-03-12  Havoc Pennington  <hp@redhat.com>
12480
12481         Mega-patch that gets the message bus daemon initially handling
12482         out-of-memory. Work still needed. Also lots of random
12483         moving stuff to DBusError instead of ResultCode.
12484
12485         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12486
12487         * dbus/dbus-connection.c
12488         (dbus_connection_send_with_reply_and_block): use DBusError
12489
12490         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12491         DBusResultCode
12492
12493         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12494         code here, as the only failure possible is OOM.
12495
12496         * bus/connection.c (bus_connection_disconnect):
12497         rename bus_connection_disconnected as it's a notification only
12498
12499         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12500         "name" on get_args failure, should be done by get_args;
12501         don't disconnect client for bad args, just return an error.
12502         (bus_driver_handle_service_exists): ditto
12503
12504         * bus/services.c (bus_services_list): NULL-terminate returned array
12505
12506         * bus/driver.c (bus_driver_send_service_lost)
12507         (bus_driver_send_service_acquired): send messages from driver to a
12508         specific client to the client's unique name, not to the broadcast
12509         service.
12510
12511         * dbus/dbus-message.c (decode_header_data): reject messages that
12512         contain no name field
12513         (_dbus_message_get_client_serial): rename to
12514         dbus_message_get_serial and make public
12515         (_dbus_message_set_serial): rename from set_client_serial
12516         (_dbus_message_set_reply_serial): make public
12517         (_dbus_message_get_reply_serial): make public
12518
12519         * bus/connection.c (bus_connection_foreach): allow stopping
12520         iteration by returning FALSE from foreach function.
12521
12522         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12523         (dbus_connection_free_preallocated_send)
12524         (dbus_connection_preallocate_send): new API for sending a message
12525         without possibility of malloc failure.
12526         (dbus_connection_send_message): rename to just
12527         dbus_connection_send (and same for whole function family)
12528
12529         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12530
12531         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12532
12533         * bus/activation.c: handle/return errors
12534
12535         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12536
12537         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12538         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12539         (_dbus_result_from_errno): move to this file
12540
12541 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12542
12543         * dbus/dbus-marshal.c:
12544         (_dbus_marshal_set_string):
12545         Take a length argument so we can marshal the correct string
12546         length.
12547
12548         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12549         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12550         (_dbus_marshal_test):
12551         * dbus/dbus-marshal.h:
12552         Add support for marshalling and demarshalling dicts.
12553
12554         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12555         Add support for TYPE DICT.
12556
12557         * dbus/dbus-message.c: (set_string_field):
12558         Adjust header padding.
12559
12560         (dbus_message_append_args_valist), (dbus_message_append_dict),
12561         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12562         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12563         (check_message_handling), (check_have_valid_message):
12564         * dbus/dbus-message.h:
12565         Add functions for setting and getting dicts.
12566
12567         * dbus/dbus-protocol.h:
12568         Add DBUS_TYPE_DICT.
12569
12570         * dbus/dbus.h:
12571         Add dbus-dict.h
12572
12573         * doc/dbus-specification.sgml:
12574         Add information about how dicts are marshalled.
12575
12576         * test/data/invalid-messages/dict-with-nil-value.message:
12577         * test/data/invalid-messages/too-short-dict.message:
12578         * test/data/valid-messages/dict-simple.message:
12579         * test/data/valid-messages/dict.message:
12580         Add sample messages containing dicts.
12581
12582 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12583
12584         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12585
12586 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12587
12588         * dbus/Makefile.am:
12589         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12590         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12591         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12592         (dbus_dict_set_double), (dbus_dict_set_string),
12593         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12594         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12595         (dbus_dict_set_string_array), (_dbus_dict_test):
12596         * dbus/dbus-dict.h:
12597         Fix according to comments from Havoc.
12598
12599 2003-03-06  Michael Meeks  <michael@server.home>
12600
12601         * configure.in: if we don't have kde-config, disable have_qt.
12602
12603 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12604
12605         * dbus/Makefile.am:
12606         Add dbus-dict.[ch]
12607
12608         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12609         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12610         (dbus_dict_remove), (dbus_dict_get_value_type),
12611         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12612         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12613         (dbus_dict_put_double), (dbus_dict_put_string),
12614         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12615         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12616         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12617         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12618         (dbus_dict_get_double), (dbus_dict_get_string),
12619         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12620         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12621         (dbus_dict_get_string_array), (_dbus_dict_test):
12622         * dbus/dbus-dict.h:
12623         Add DBusDict implementation
12624
12625         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12626         * dbus/dbus-test.h:
12627         Add _dbus_dict_test
12628
12629 2003-03-04  Havoc Pennington  <hp@pobox.com>
12630
12631         * test/data/auth/*: adapt to changes
12632
12633         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12634         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12635         userid
12636
12637         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12638         more stuff from being in a context name, to make the protocol
12639         simpler to deal with
12640
12641         * dbus/dbus-errors.c (dbus_error_has_name): new function
12642         (dbus_error_is_set): new function
12643
12644         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12645         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12646
12647         * dbus/dbus-connection.c (dbus_connection_flush): also read
12648         messages during a flush operation
12649
12650         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12651
12652 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12653
12654         * configure.in: Check for gethostbyname on Solaris.
12655
12656         * dbus/dbus-transport.c: (_dbus_transport_open):
12657         Remove duplicate "tcp" entry.
12658
12659         * doc/dbus-specification.sgml:
12660         Clarify some things.
12661
12662 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12663
12664         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12665         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12666         (_dbus_keyring_test):
12667         * dbus/dbus-md5.c: (_dbus_md5_compute):
12668         * dbus/dbus-sha.c: (_dbus_sha_compute):
12669         Plug memory leaks.
12670
12671 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12672
12673         * README: Add some things.
12674
12675 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12676
12677         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12678         after case DBUS_TYPE_BOOELAN.
12679
12680 2003-03-02  Havoc Pennington  <hp@pobox.com>
12681
12682         * test/break-loader.c (randomly_set_extreme_ints): add test that
12683         sets really huge and small integers
12684
12685         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12686         that length of boolean array fits in the string, and that
12687         string has room for boolean value in single-bool case.
12688
12689         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12690         optional value to "ALIGN" command which is what to fill the
12691         alignment with.
12692
12693         * test/data/valid-messages/no-padding.message: add regression
12694         test for the message padding problem
12695
12696 2003-03-02  Havoc Pennington  <hp@pobox.com>
12697
12698         * dbus/dbus-message.c (decode_header_data): fix to always init
12699         message_padding, from Benjamin Dauvergne
12700
12701 2003-03-02  Havoc Pennington  <hp@pobox.com>
12702
12703         * configure.in: 0.5
12704
12705         * NEWS: Update.
12706
12707 2003-03-01  Joe Shaw  <joe@assbarn.com>
12708
12709         * configure.in: Check for "struct cmsgcred" and try to access its
12710         members for BSD-like unices.
12711
12712         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12713         _dbus_read_credentials_unix_socket().
12714         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12715         read() for reading the credential byte off the unix socket.  Use
12716         struct cmsgcred on systems that support it.
12717
12718 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12719
12720         * glib/Makefile.am:
12721         * configure.in:
12722         Make gthreads-2.0 dependency optional. Don't build thread test if
12723         its not found.
12724
12725 2003-02-27  Havoc Pennington  <hp@pobox.com>
12726
12727         * dbus/dbus-connection.c
12728         (dbus_connection_send_message_with_reply_and_block): fix doh!
12729         doh! doh! bug that resulted in never removing a reply from the
12730         queue, no wonder we called get_reply_serial so much ;-)
12731
12732         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12733         and client serial instead of demarshaling them every time
12734
12735 2003-02-27  Havoc Pennington  <hp@pobox.com>
12736
12737         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12738         more inlined, using dbus-string-private.h, speeds things up
12739         substantially
12740
12741         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12742         when freeing the string
12743         (_dbus_string_steal_data): fix for align offset
12744         (undo_alignment): new function
12745
12746 2003-02-26  Havoc Pennington  <hp@redhat.com>
12747
12748         All kinds of audit fixes from Owen, plus initial attempt to
12749         handle unaligned memory returned from malloc.
12750
12751         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12752         leave room for align_offset and nul byte
12753         (fixup_alignment): function to track an align_offset and
12754         ensure real->str is aligned
12755         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12756         to allow a nul byte plus align offset
12757         (_dbus_string_lock): fix overflow issue
12758         (_dbus_string_init_const_len): add assertions on sanity of len,
12759         assign allocated to be ALLOCATION_PADDING larger than len
12760         (set_length): fixup the overflow handling
12761         (_dbus_string_get_data_len): fix overflow in assertion
12762         (open_gap): detect overflow in size of gap to be opened
12763         (_dbus_string_lengthen): add overflow check
12764         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12765         (_dbus_string_append): add overflow check
12766         (_dbus_string_append_unichar): overflow
12767         (_dbus_string_delete): fix overflow in assertion
12768         (_dbus_string_copy_len): overflow in assertion
12769         (_dbus_string_replace_len): overflows in assertions
12770         (_dbus_string_find): change to implement in terms of
12771         _dbus_string_find_to
12772         (_dbus_string_find_to): assorted fixage
12773         (_dbus_string_equal_c_str): assert c_str != NULL,
12774         fix logic so the function works
12775         (_dbus_string_ends_with_c_str): fix overflow thingy
12776         (_dbus_string_base64_encode): overflow fix
12777         (_dbus_string_validate_ascii): overflow
12778         (_dbus_string_validate_nul): overflow
12779
12780 2003-02-26  Havoc Pennington  <hp@redhat.com>
12781
12782         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12783
12784 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12785
12786         * configure.in:
12787         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12788
12789         * dbus/dbus-connection.c:
12790         * dbus/dbus-connection.h:
12791         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12792         Add dbus_connection_set_wakeup_main_function and use it when queueing
12793         incoming and outgoing messages.
12794
12795
12796         * dbus/dbus-dataslot.c:
12797         Threadsafe usage of DBusDataSlotAllocator
12798
12799         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12800         dbus_new can fail.
12801
12802         * dbus/dbus-server-unix.c:
12803         Add todo comment
12804
12805         * glib/dbus-gmain.c:
12806         Implement the new wakeup functions for glib.
12807
12808         * glib/Makefile.am:
12809         * glib/test-thread-client.c:
12810         * glib/test-thread-server.c:
12811         * glib/test-thread.h:
12812         Initial cut at some thread test code. Not really done yet.
12813
12814 2003-02-26  Havoc Pennington  <hp@pobox.com>
12815
12816         * dbus/dbus-connection.c
12817         (dbus_connection_send_message_with_reply_and_block): fix crash
12818         where we ref'd the outgoing message instead of the returned reply
12819
12820         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12821         at the end of this function, so if we didn't need to read for
12822         authentication, we reinstall it for receiving messages
12823
12824         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12825         a NULL sender for peer-to-peer case
12826
12827         * dbus/dbus-transport-unix.c (check_read_watch): handle
12828         !authenticated case correctly
12829
12830         * glib/dbus-gmain.c: add support for DBusServer
12831
12832         * dbus/dbus-server.c: add data slot support
12833
12834         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12835         return values and handle errors
12836
12837         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12838         DBusConnection
12839
12840         * Doxyfile.in (INPUT): add glib subdir
12841
12842         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12843         setup_with_g_main instead of hookup_with_g_main; write docs
12844
12845 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12846
12847         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12848         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12849         * dbus/dbus-message.c: (dbus_message_append_boolean),
12850         (dbus_message_append_boolean_array),
12851         (dbus_message_get_args_valist), (_dbus_message_test):
12852         * dbus/dbus-message.h:
12853         * doc/dbus-specification.sgml:
12854         Various fixes as pointed out by Havoc.
12855
12856         * test/data/invalid-messages/bad-boolean-array.message:
12857         * test/data/invalid-messages/bad-boolean.message:
12858         Add invalid boolean value test cases.
12859
12860 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12861
12862         * dbus/dbus-internals.c: (_dbus_type_to_string):
12863         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12864         (_dbus_marshal_validate_arg):
12865         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12866         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12867         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12868         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12869         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12870         (dbus_message_iter_get_double),
12871         (dbus_message_iter_get_boolean_array), (message_iter_test):
12872         * dbus/dbus-message.h:
12873         * dbus/dbus-protocol.h:
12874         * doc/dbus-specification.sgml:
12875         * test/data/valid-messages/lots-of-arguments.message:
12876         Add support for boolean and boolean array types.
12877
12878 2003-02-23  Havoc Pennington  <hp@pobox.com>
12879
12880         * dbus/dbus-keyring.c: finish most of this implementation and
12881         simple unit test
12882
12883         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12884         these barf if the error isn't cleared to NULL
12885
12886         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12887         (_dbus_create_directory): new function
12888
12889         * dbus/dbus-errors.c (dbus_set_error): fix warning
12890
12891         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12892         (_dbus_string_hex_decode): new function
12893         (test_hex_roundtrip): test code
12894
12895         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12896
12897         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12898
12899         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12900         the save-to-temp/rename trick to atomically write the new file
12901         (_dbus_string_parse_uint): new function
12902
12903 2003-02-22  Havoc Pennington  <hp@pobox.com>
12904
12905         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12906
12907 2003-02-22  Havoc Pennington  <hp@pobox.com>
12908
12909         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12910         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12911
12912         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12913
12914         * dbus/test/data/sha-1: add US government test suite for SHA-1
12915
12916 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12917
12918         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12919         Make string arrays NULL-terminated.
12920
12921         * dbus/dbus-memory.c: (dbus_free_string_array):
12922         * dbus/dbus-memory.h:
12923         New function for freeing NULL-terminated string arrays.
12924
12925         * dbus/dbus-message-builder.c: (append_quoted_string),
12926         (_dbus_message_data_load):
12927         Add support for array types.
12928
12929         * dbus/dbus-message.c: (check_message_handling):
12930         Add more types as test cases.
12931
12932         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12933         (_dbus_string_parse_double):
12934         Add the start offset to the end offset.
12935
12936         * test/data/valid-messages/lots-of-arguments.message:
12937         New test message with lots of arguments.
12938
12939 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12940
12941         * dbus/dbus-message.c: (dbus_message_append_nil),
12942         (dbus_message_append_int32), (dbus_message_append_uint32),
12943         (dbus_message_append_double), (dbus_message_append_string),
12944         (dbus_message_append_int32_array),
12945         (dbus_message_append_uint32_array),
12946         (dbus_message_append_double_array),
12947         (dbus_message_append_byte_array),
12948         (dbus_message_append_string_array):
12949         Fix all out-of-memory handling in these functions.
12950
12951 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12952
12953         * dbus/dbus-message.c: (dbus_message_append_nil):
12954         Fix a silly.
12955
12956 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12957
12958         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12959         (dbus_message_append_nil), (dbus_message_append_int32_array),
12960         (dbus_message_append_uint32_array),
12961         (dbus_message_append_double_array),
12962         (dbus_message_append_byte_array),
12963         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12964         (dbus_message_iter_get_int32_array),
12965         (dbus_message_iter_get_uint32_array),
12966         (dbus_message_iter_get_double_array),
12967         (dbus_message_iter_get_byte_array),
12968         (dbus_message_iter_get_string_array):
12969
12970         * dbus/dbus-message.h:
12971         Add functions for appending and getting arrays.
12972
12973 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12974
12975         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12976         element size at least 8 bytes, fixes mempool tests on
12977         64-bit machines.
12978
12979 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12980
12981         * dbus/dbus-transport-unix.c (unix_do_iteration):
12982         Unlock the connection mutex during a blocking select call.
12983         Add todo about how we need a way to wake up the select.
12984
12985         * dbus/dbus-connection-internal.h:
12986         * dbus/dbus-connection.c:
12987         Add _dbus_connection_lock and _dbus_connection_unlock.
12988
12989 2003-02-19  Havoc Pennington  <hp@pobox.com>
12990
12991         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
12992         Doxyfile.in, not Doxyfile
12993
12994         * dbus/dbus-keyring.c: do some hacking on this
12995
12996         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
12997
12998         * dbus/dbus-errors.c (dbus_set_error_const): do not call
12999         dbus_error_init
13000         (dbus_set_error): remove dbus_error_init, check for message ==
13001         NULL *before* we sprintf into it, and add @todo about including
13002         system headers in this file
13003
13004         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13005
13006         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13007
13008         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13009         get various bits of user information based on either username
13010         or user ID
13011         (_dbus_homedir_from_username): new function
13012
13013 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13014
13015         * configure.in:
13016         Add check for nonposix getpwnam_r
13017
13018         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13019         Align the pool element size to a sizeof (void *) boundary.
13020
13021         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13022         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13023         General Solaris fixes.
13024
13025         * test/data/valid-messages/simplest-manual.message:
13026         Explicitly state that we want little-endian packing.
13027
13028 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13029
13030         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13031
13032         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13033         Added to create a transport connecting using a tcp/ip socket.
13034
13035         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13036         to a tcp socket at given host and port.
13037         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13038         hostname and port.
13039
13040         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13041
13042         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13043         Added to create a server listening on a TCP/IP socket.
13044
13045 2003-02-19  Havoc Pennington  <hp@pobox.com>
13046
13047         Throughout: mop up all the Doxygen warnings and undocumented
13048         stuff.
13049
13050         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13051         to search any paths.
13052
13053         * dbus/dbus-threads.c: move global mutex initializers to
13054         dbus-internals.h, multiple prototypes was confusing doxygen
13055         besides being kind of ugly
13056
13057         * Doxyfile (PREDEFINED): have Doxygen define
13058         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13059         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13060         (do not abuse the feature! it's for stuff like the autogenerated
13061         macros in dbus-md5.c, not just for things you don't feel like
13062         documenting...)
13063
13064 2003-02-18  Havoc Pennington  <hp@pobox.com>
13065
13066         * dbus/dbus-string.c (_dbus_string_zero): new function
13067
13068         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13069         wrap it in some dbus-friendly API
13070
13071         * dbus/dbus-types.h: add 16-bit types
13072
13073 2003-02-18  Joe Shaw  <joe@assbarn.com>
13074
13075         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13076         credentials from our currently running process.
13077         (get_word): Fix a buglet where we were copying the entire length
13078         instead of relative to our position.
13079
13080         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13081         keys on the stack... it's 640k of data.
13082
13083         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13084         read the credentials byte off the socket, even if we don't have
13085         SO_PEERCRED.
13086         (_dbus_poll): Implement poll() using select() for systems which
13087         don't have it.
13088
13089         * glib/test-dbus-glib.c (main): Print out an error if no
13090         parameters are given.
13091
13092         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13093         can fallback to a secondary auth mechanism if the first fails.
13094
13095 2003-02-18  Havoc Pennington  <hp@pobox.com>
13096
13097         * AUTHORS: add Alex
13098
13099 2003-02-17  Havoc Pennington  <hp@pobox.com>
13100
13101         * doc/dbus-specification.sgml: lots of cosmetic
13102         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13103         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13104         s/server/bus/ (except in authentication section). Add a section
13105         "Message Bus Message Routing"
13106
13107 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13108
13109         Release 0.4
13110
13111         * NEWS: Update
13112
13113 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13114
13115         * doc/dbus-specification.sgml:
13116         Specification updates.
13117
13118 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13119
13120         * bus/activation.c: (bus_activation_init), (child_setup),
13121         (bus_activation_activate_service):
13122         * bus/activation.h:
13123         * bus/main.c: (main):
13124         Set DBUS_ADDRESS environment variable.
13125
13126         * dbus/dbus-errors.c: (dbus_set_error):
13127         Don't use va_copy since that's a C99 feature.
13128
13129         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13130         (_dbus_spawn_async):
13131         * dbus/dbus-sysdeps.h:
13132         Add child_setup_func to _dbus_spawn_async.
13133
13134         * doc/dbus-specification.sgml:
13135         Update specification.
13136
13137         * test/spawn-test.c: (setup_func), (main):
13138         Fix test.
13139
13140 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13141
13142         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13143         Added todo.
13144
13145 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13146
13147         * doc/.cvsignore:
13148         * doc/Makefile.am:
13149         * doc/dbus-test-plan.sgml:
13150         Add test plan document.
13151
13152         * test/Makefile.am:
13153         Fix distcheck.
13154
13155 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13156
13157         * dbus/dbus-message.c: (decode_header_data),
13158         (_dbus_message_loader_return_buffer):
13159         Set the header padding amount when loading a message.
13160
13161 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13162
13163         * bus/dispatch.c: (send_one_message):
13164         Only send broadcast messages to registered connections.
13165
13166         * dbus/dbus-message.c: (dbus_message_name_is):
13167         * dbus/dbus-message.h:
13168         New convenience function.
13169
13170         * dbus/dbus-transport-debug.c: (do_reading):
13171         Only dispatch one message per run.
13172
13173         * test/Makefile.am:
13174         * test/bus-test.c: (new_connection_callback), (die),
13175         (test_hello_client1_handler), (test_hello_client2_handler),
13176         (test_hello_replies), (main):
13177
13178         * test/bus-test-loop.[ch]:
13179         Add these.
13180
13181 2003-02-16  Havoc Pennington  <hp@pobox.com>
13182
13183         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13184         backward conditional
13185
13186 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13187
13188         * dbus/dbus-connection.c:
13189         Implement sent_message_with_reply. (with_reply_and block is still
13190         busted).
13191         Made dispatch_message not lose message if OOM.
13192
13193         * dbus/dbus-errors.h:
13194         Add NoReply error (for reply timeouts).
13195
13196 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13197
13198         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13199         Actually free keys and values when destroying hashtable.
13200
13201 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13202
13203         * dbus/dbus-auth.c: (client_try_next_mechanism):
13204         Plug a leak.
13205
13206         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13207         Return TRUE if there's no thread implementation around.
13208
13209         * glib/dbus-gmain.c: (free_source),
13210         (dbus_connection_hookup_with_g_main):
13211         Make sure to remove the GSource when the connection is finalized.
13212
13213 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13214
13215         * bus/dispatch.c: (bus_dispatch_message_handler):
13216         * dbus/dbus-errors.h:
13217         Return an error if someone tries to send a message to a service
13218         that doesn't exist.
13219
13220 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13221
13222         * bus/activation.c: (load_directory), (bus_activation_init),
13223         (bus_activation_activate_service):
13224         * bus/activation.h:
13225         * bus/driver.c:
13226         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13227         More work on the activation handling.
13228
13229         * dbus/dbus-errors.h:
13230         Add some error messages
13231
13232         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13233         * dbus/dbus-message.h:
13234         New function that creates an error message.
13235
13236         * dbus/dbus-protocol.h:
13237         Add ACTIVATE_SERVER message.
13238
13239         * dbus/dbus-server-unix.c: (unix_handle_watch),
13240         (_dbus_server_new_for_domain_socket):
13241         Call _dbus_fd_set_close_on_exec.
13242
13243         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13244         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13245         (_dbus_fd_set_close_on_exec):
13246         * dbus/dbus-sysdeps.h:
13247         Add _dbus_fd_set_close_on exec function. Also add function that checks
13248         that all open fds are set to close-on-exec and warns otherwise.
13249
13250         * dbus/dbus-transport-unix.c:
13251         (_dbus_transport_new_for_domain_socket):
13252         Call _dbus_fd_set_close_on_exec.
13253
13254 2003-02-16  Havoc Pennington  <hp@pobox.com>
13255
13256         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13257         allow people to avoid setting SIGPIPE to SIG_IGN
13258         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13259         we've been asked not to
13260
13261 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13262
13263         * dbus/dbus-list.c: (_dbus_list_append_link),
13264         (_dbus_list_prepend_link):
13265         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13266         (dbus_realloc):
13267         Warning fixes.
13268
13269 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13270
13271         * bus/Makefile.am:
13272         * bus/activation.c: (bus_activation_entry_free),
13273         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13274         * bus/activation.h:
13275         * bus/main.c: (main):
13276         Add simple activation support, doesn't work yet though.
13277
13278 2003-02-15   Zack Rusin  <zack@kde.org>
13279
13280         * qt/dbus-qthread.cpp:  small casting fix
13281
13282 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13283
13284         * dbus/dbus-errors.c: (dbus_set_error):
13285         * dbus/dbus-errors.h:
13286         Add a few errors and make dbus_set_error void.
13287
13288         * dbus/dbus-sysdeps.c:
13289         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13290         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13291         * dbus/dbus-sysdeps.h:
13292         Add _dbus_spawn_async.
13293
13294         * test/spawn-test.c: (main):
13295         Test for _dbus_spawn_async.
13296
13297 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13298
13299         * dbus/dbus-internals.h:
13300         Fix build without tests.
13301
13302         * dbus/dbus-list.c: (alloc_link):
13303         Fix a segfault when a malloc fails.
13304
13305         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13306         (dbus_malloc0), (dbus_realloc):
13307         Add support for malloc debugging.
13308
13309 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13310
13311         * dbus/dbus-threads.c:
13312         * dbus/dbus-threads.h:
13313         Add condvars. Remove static mutext from API.
13314         Implement static mutexes by initializing them from threads_init.
13315
13316         * glib/dbus-gthread.c:
13317         * qt/dbus-qthread.cpp:
13318         Update with the thread api changes.
13319
13320
13321         * dbus/dbus-list.c:
13322         * dbus/dbus-list.h:
13323         Turn StaticMutex into normal mutex + init function.
13324         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13325         _dbus_list_append_link, _dbus_list_prepend_link
13326
13327
13328         * dbus/dbus-sysdeps.c:
13329         * dbus/dbus-sysdeps.h:
13330         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13331         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13332
13333         * dbus/dbus-protocol.h:
13334         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13335
13336         * dbus/dbus-message.c:
13337         Make ref/unref atomic.
13338         Fix some docs.
13339
13340         * dbus/dbus-connection-internal.h:
13341         * dbus/dbus-connection.c:
13342         * dbus/dbus-connection.h:
13343         Make threadsafe.
13344         Change _peek to _borrow,_return & _steal_borrowed.
13345         Change disconnect callback to event.
13346         Make dbus_connection_dispatch_messages reentrant.
13347
13348         * dbus/dbus-transport.c:
13349         Don't ref the connection on calls to the transport
13350         implementation.
13351
13352         * dbus/dbus-message-handler.c:
13353         Make threadsafe.
13354
13355         * glib/dbus-gmain.c:
13356         Don't use peek_message anymore
13357
13358         * test/Makefile.am:
13359         * test/debug-thread.c:
13360         * test/debug-thread.h:
13361         Simple thread implementation that asserts() on deadlocks in
13362         single-threaded code.
13363
13364         * test/bus-test.c:
13365         (main) Call debug_threads_init.
13366
13367         * test/watch.c:
13368         Use disconnect message instead of disconnect callback.
13369
13370         * bus/connection.c:
13371         * bus/connection.h:
13372         Don't call dbus_connection_set_disconnect_function. Instead export
13373         bus_connection_disconnect.
13374
13375         * bus/dispatch.c:
13376         Call bus_connection_disconnect when we get a disconnected message.
13377
13378 2003-02-15  Havoc Pennington  <hp@pobox.com>
13379
13380         * dbus/dbus-message.c (dbus_message_new): fool around with the
13381         docs
13382
13383 2003-02-14  Havoc Pennington  <hp@pobox.com>
13384
13385         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13386
13387         * dbus/dbus-memory.c: fail if the debug functions indicate we
13388         should
13389
13390         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13391         (_dbus_decrement_fail_alloc_counter): debug functions to
13392         simulate memory allocation failures
13393
13394 2003-02-14  Havoc Pennington  <hp@pobox.com>
13395
13396         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13397         to DBusError
13398
13399 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13400
13401         * bus/driver.c: (bus_driver_handle_hello):
13402         * bus/driver.h:
13403         * bus/services.c: (bus_service_lookup):
13404         Reorder message sending so we get a more sane order.
13405
13406         * test/bus-test.c: (message_handler):
13407         Fix tyop.
13408
13409 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13410
13411         * bus/driver.c: (bus_driver_send_service_deleted),
13412         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13413         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13414         (bus_driver_send_welcome_message),
13415         (bus_driver_handle_list_services),
13416         (bus_driver_handle_acquire_service),
13417         (bus_driver_handle_service_exists):
13418         * dbus/dbus-bus.c: (dbus_bus_register_client),
13419         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13420         * dbus/dbus-errors.c: (dbus_result_to_string):
13421         * dbus/dbus-errors.h:
13422         * dbus/dbus-message.c: (dbus_message_append_args),
13423         (dbus_message_append_args_valist), (dbus_message_get_args),
13424         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13425         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13426         (dbus_message_iter_get_byte_array),
13427         (dbus_message_iter_get_string_array), (message_iter_test),
13428         (check_message_handling), (_dbus_message_test):
13429         * dbus/dbus-message.h:
13430         * test/bus-test.c: (main):
13431         Change fields to arguments in messages, so that they won't be
13432         confused with header fields.
13433
13434         * glib/test-dbus-glib.c: (main):
13435         Remove append_fields from hello message.
13436
13437 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13438
13439         * dbus/dbus-errors.c:
13440         * dbus/dbus-message.c:
13441         * dbus/dbus-string.c:
13442         Documentation fixes.
13443
13444 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13445
13446         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13447         (remove_timeout):
13448         Implement support for timeouts in dbus-glib.
13449
13450 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13451
13452         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13453         * dbus/dbus-message.c: (process_test_subdir):
13454         * test/break-loader.c: (find_breaks_based_on):
13455         Plug some memory leaks.
13456
13457 2003-02-13  Richard Hult  <rhult@codefactory.se>
13458
13459         * bus/main.c: Fix build.
13460
13461         * dbus/dbus-errors.h:
13462         * dbus/dbus-errors.c: Fix copyright for Anders.
13463
13464 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13465
13466         * bus/Makefile.am:
13467         Add utils.[ch]
13468
13469         * bus/connection.c: (bus_connection_foreach):
13470         Fix a warning.
13471
13472         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13473         (unescape_string), (new_section), (parse_section_start),
13474         (parse_key_value), (report_error), (bus_desktop_file_load),
13475         (bus_desktop_file_get_string):
13476         * bus/desktop-file.h:
13477         Use DBusError for error reporting.
13478
13479         * bus/dispatch.c: (send_one_message),
13480         (bus_dispatch_message_handler):
13481         * bus/driver.c: (bus_driver_send_service_deleted),
13482         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13483         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13484         (bus_driver_send_welcome_message),
13485         (bus_driver_handle_list_services),
13486         (bus_driver_handle_acquire_service),
13487         (bus_driver_handle_service_exists):
13488         * bus/loop.c: (bus_loop_run):
13489         * bus/main.c:
13490         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13491
13492         * bus/utils.c: (bus_wait_for_memory):
13493         * bus/utils.h:
13494         New files with general utility functions.
13495
13496         * dbus/dbus-internals.h:
13497         Remove _DBUS_HANDLE_OOM.
13498
13499 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13500
13501         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13502         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13503         * dbus/dbus-errors.h:
13504         Add DBusError structure.
13505
13506 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13507
13508         * test/data/valid-messages/standard-acquire-service.message:
13509         * test/data/valid-messages/standard-hello.message:
13510         * test/data/valid-messages/standard-list-services.message:
13511         * test/data/valid-messages/standard-service-exists.message:
13512         Add some standard messages.
13513
13514 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13515
13516         * bus/driver.c: (bus_driver_send_welcome_message),
13517         (bus_driver_handle_list_services),
13518         (bus_driver_handle_acquire_service),
13519         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13520         Update for API changes in libdbus.
13521
13522         * dbus/dbus-message.c: (dbus_message_new_reply):
13523         * dbus/dbus-message.h:
13524         Remove the name argument. The spec states that replies shouldn't
13525         have a name.
13526
13527 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13528
13529         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13530         (report_error), (bus_desktop_file_load), (lookup_section),
13531         (lookup_line), (bus_desktop_file_get_raw),
13532         (bus_desktop_file_get_string):
13533         * bus/desktop-file.h:
13534         Some fixes, and new functions for getting a key value from a section.
13535
13536 2003-02-13  Havoc Pennington  <hp@pobox.com>
13537
13538         * test/data/auth/fail-after-n-attempts.auth-script: new test
13539
13540         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13541         reject the client.
13542
13543 2003-02-13  Havoc Pennington  <hp@pobox.com>
13544
13545         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13546         dbus_credentials_match were backward
13547
13548         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13549         NO_CREDENTIALS and ROOT_CREDENTIALS
13550
13551         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13552         into here. Never process more commands after we've reached an
13553         end state; store further data as unused bytes.
13554
13555         * test/data/auth/*: add more auth tests
13556
13557         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13558         command to match exact string and EXPECT_UNUSED to match unused
13559         bytes
13560
13561         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13562
13563 2003-02-12  Havoc Pennington  <hp@pobox.com>
13564
13565         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13566         \r off of popped lines
13567
13568         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13569         scripts
13570
13571         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13572         SEND, append \r\n
13573
13574 2003-02-12  Havoc Pennington  <hp@pobox.com>
13575
13576         * dbus/Makefile.am: remove break-loader from the build, since it
13577         moved.
13578
13579         * configure.in: add --enable-gcov to turn on coverage profiling
13580         flags and disable optimization
13581
13582 2003-02-10  Havoc Pennington  <hp@pobox.com>
13583
13584         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13585         initial cut at test framework for DBusAuth from laptop.
13586         Doesn't quite work yet but it compiles and I need to get
13587         it off the 266mhz laptop. ;-)
13588
13589         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13590         fix a memleak in error case
13591
13592 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13593
13594         * bus/Makefile.am:
13595         * bus/desktop-file.c:
13596         * bus/desktop-file.h:
13597         Add a desktop file parser.
13598
13599 2003-02-11  Zack Rusin  <zack@kde.org>
13600
13601         * qt/message.[h|cpp]: sample implementation
13602         of the KDE wrapper for DBusMessage
13603
13604 2003-02-09  Zack Rusin  <zack@kde.org>
13605
13606         * test/bus-test.c: make_it_compile
13607         * doc/dbus-specification.sgml: minimal semantic fix
13608
13609 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13610
13611         Release 0.3
13612
13613         * NEWS: Update
13614
13615 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13616
13617         * dbus/Makefile.am:
13618         * dbus/dbus-break-loader.c:
13619         * test/Makefile.am:
13620         * test/break-loader.c:
13621         Move dbus-break-loader to test/ and rename it to break-loader.
13622
13623 2003-02-02  Havoc Pennington  <hp@pobox.com>
13624
13625         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13626         for code to manage cookies in your home directory
13627
13628         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13629
13630         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13631         to authenticate, then disconnect the client.
13632
13633 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13634
13635         * dbus/dbus-message.c (dbus_message_append_fields):
13636         Correct docs.
13637
13638 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13639
13640         * doc/dbus-specification.sgml:
13641         Update address format section.
13642
13643 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13644
13645         * test/Makefile.am:
13646         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13647         (message_handler), (new_connection_callback), (loop_quit),
13648         (loop_run), (main):
13649         Add bus test.
13650
13651 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13652
13653         * bus/driver.c: (bus_driver_handle_service_exists):
13654         Simplify the code a bit.
13655
13656         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13657         Fix a silly.
13658
13659 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13660
13661         * bus/Makefile.am:
13662         Add libdbus-daemon.la and link to it.
13663
13664 2003-02-01  James Willcox  <jwillcox@gnome.org>
13665
13666         * bus/driver.c: (bus_driver_handle_own_service):
13667         Actually include the service reply code in the message.
13668
13669 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13670
13671         * bus/driver.c: (bus_driver_handle_service_exists):
13672         Don't unref the incoming message.
13673
13674 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13675
13676         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13677
13678 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13679
13680         * dbus/dbus-server.c: (dbus_server_listen):
13681         * dbus/dbus-transport.c: (_dbus_transport_open):
13682         ifdef out the calls to the debug transport and server.
13683
13684 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13685
13686         * dbus/dbus-watch.c (dbus_watch_get_flags):
13687         Add note in the docs that ERROR or HANGUP won't be returned
13688         and are assumed always on.
13689
13690         * glib/dbus-gmain.c (add_watch):
13691         Always add IO_ERR | IO_HUP
13692
13693         * dbus/dbus-message.h:
13694         Add semicolon after dbus_message_iter_get_string_array().
13695         Makes qt code build again
13696
13697 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13698
13699         * bus/driver.c: (create_unique_client_name),
13700         (bus_driver_handle_hello):
13701         Don't take a name, just use a numeric id to identify
13702         each client.
13703
13704         * dbus/Makefile.am:
13705         * dbus/dbus-bus.c: (dbus_bus_register_client),
13706         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13707         * dbus/dbus-bus.h:
13708         Add new convenience functions for communicating with the bus.
13709
13710         * dbus/dbus-message.h:
13711
13712         * dbus/dbus-protocol.h:
13713         Fix a typo.
13714
13715 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13716
13717         * dbus/dbus-message.c (dbus_message_append_fields):
13718         Add some more doc comments.
13719
13720 2003-02-01  Havoc Pennington  <hp@pobox.com>
13721
13722         * dbus/dbus-break-loader.c (randomly_modify_length): change
13723         a 4-byte value in the message as if it were a length
13724
13725         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13726         execute bit on saved files
13727
13728 2003-02-01  Havoc Pennington  <hp@pobox.com>
13729
13730         * dbus/dbus-break-loader.c (main): new program to find messages
13731         that break the loader.
13732
13733         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13734         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13735
13736         * dbus/dbus-string.c (_dbus_string_set_byte): new
13737
13738 2003-01-31  Havoc Pennington  <hp@pobox.com>
13739
13740         * dbus/dbus-message.c: refactor the test code to be more general,
13741         in preparation for writing a "randomly permute test cases to
13742         try to break the loader" program.
13743
13744 2003-01-31  Havoc Pennington  <hp@pobox.com>
13745
13746         * doc/dbus-specification.sgml: work on the specification
13747
13748         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13749         the protocol version of the message.
13750
13751         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13752         no longer specifies that.
13753         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13754         1/2/3/4)
13755
13756         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13757         "break" for DBUS_TYPE_NIL, remove @todo
13758
13759 2003-01-31  Havoc Pennington  <hp@pobox.com>
13760
13761         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13762         just set_is_error/get_is_error as this is a commonly-used
13763         function, and write docs.
13764
13765 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13766
13767         * dbus/dbus-address.c: (dbus_address_entry_free):
13768         Free key and value lists.
13769
13770         * dbus/dbus-internals.c: (_dbus_type_to_string):
13771         Add the types we didn't have.
13772
13773         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13774         (_dbus_marshal_validate_arg):
13775         Add NIL types.
13776
13777         * dbus/dbus-message.c: (dbus_message_set_sender):
13778         Remove todo about being able to set sender to NULL.
13779
13780         (dbus_message_set_is_error_reply),
13781         (dbus_message_get_is_error_reply):
13782         * dbus/dbus-message.h:
13783         New functions.
13784
13785         * dbus/dbus-protocol.h:
13786         Add error reply flag.
13787
13788         * test/data/valid-messages/opposite-endian.message:
13789         Add NIL type to test.
13790
13791 2003-01-31  Havoc Pennington  <hp@pobox.com>
13792
13793         * doc/dbus-specification.sgml: fully specify the header.  Add
13794         flags and major protocol version, and change header/body len to
13795         unsigned.
13796
13797         * dbus/dbus-message-builder.c (append_saved_length): append length
13798         as uint32
13799
13800         * dbus/dbus-message.c (dbus_message_create_header): change header
13801         length and body length to unsigned. Add the new fields from the
13802         spec
13803         (_dbus_message_loader_return_buffer): unsigned header/body len
13804
13805 2003-01-30  Havoc Pennington  <hp@pobox.com>
13806
13807         * dbus/dbus-auth.c: rework to use only REJECTED, no
13808         MECHANISMS
13809
13810         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13811         use REJECTED, suggested by Mark McLoughlin
13812
13813 2003-01-30  Havoc Pennington  <hp@pobox.com>
13814
13815         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13816         a better way to report errors here. e.g.  "unix address lacks
13817         path" or something. also "no such file" when the path doesn't
13818         exist, etc.
13819
13820         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13821         leaking list nodes
13822         (dbus_parse_address): add @todo about documenting address format,
13823         and allowing , and ; to be escaped
13824
13825 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13826
13827         * dbus/Makefile.am:
13828         Add dbus-address.[ch]
13829
13830         * dbus/dbus-address.c: (dbus_address_entry_free),
13831         (dbus_address_entries_free), (create_entry),
13832         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13833         (dbus_parse_address), (_dbus_address_test):
13834         * dbus/dbus-address.h:
13835         New files for dealing with address parsing.
13836
13837         * dbus/dbus-connection.c:
13838         Document timeout functions.
13839
13840         * dbus/dbus-message.c:
13841         Document dbus_message_new_from_message.
13842
13843         * dbus/dbus-server-debug.c:
13844         Document.
13845
13846         * dbus/dbus-server.c: (dbus_server_listen):
13847         Parse address and use correct server implementation.
13848
13849         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13850         * dbus/dbus-string.h:
13851         New function with test.
13852
13853         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13854         * dbus/dbus-test.h:
13855         Add address tests.
13856
13857         * dbus/dbus-transport-debug.c:
13858         Document.
13859
13860         * dbus/dbus-transport.c: (_dbus_transport_open):
13861         Parse address and use correct transport implementation.
13862
13863 2003-01-30  Havoc Pennington  <hp@pobox.com>
13864
13865         * dbus/dbus-message.c: use message->byte_order instead of
13866         DBUS_COMPILER_BYTE_ORDER throughout.
13867         (dbus_message_create_header): pad header to align the
13868         start of the body of the message to 8-byte boundary
13869
13870         * dbus/dbus-marshal.h: make all the demarshalers take const
13871         DBusString arguments.
13872
13873         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13874         validate message args here, so we don't have to do slow validation
13875         later, and so we catch bad messages as they are incoming. Also add
13876         better checks on header_len and body_len. Also fill in
13877         message->byte_order
13878
13879         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13880         implemented properly)
13881         (_dbus_string_validate_nul): new function to check all-nul
13882
13883         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13884         get_arg_end_pos and remove all validation
13885         (_dbus_marshal_validate_arg): actually do validation here.
13886
13887 2003-01-29  Havoc Pennington  <hp@pobox.com>
13888
13889         * dbus/dbus-message.c (check_message_handling): fix assertion
13890         failure on set_client_serial
13891
13892 2003-01-28  Havoc Pennington  <hp@pobox.com>
13893
13894         * dbus/dbus-server-debug.c: Add doc section comments
13895
13896         * dbus/dbus-transport-debug.c: add doc section comments
13897
13898 2003-01-28  Havoc Pennington  <hp@redhat.com>
13899
13900         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13901         the reverse order from how I had it
13902         (_dbus_string_base64_encode): reverse encoding order. I was
13903         basically byteswapping everything during encoding.
13904
13905 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13906
13907         * dbus/dbus-connection-internal.h:
13908         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13909         (_dbus_connection_remove_timeout):
13910         Add functions for adding and removing timeouts.
13911
13912         * dbus/dbus-message.c: (dbus_message_new_from_message):
13913         Add new function that takes a message and creates an exact
13914         copy of it, but with the refcount set to 1.
13915         (check_message_handling):
13916         Fix build error.
13917
13918         * dbus/dbus-server-protected.h:
13919         * dbus/dbus-server.c: (_dbus_server_init_base),
13920         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13921         (dbus_server_set_timeout_functions):
13922         (_dbus_server_remove_timeout):
13923         New functions so that a server can add and remove timeouts.
13924
13925         (dbus_server_listen):
13926         Add commented out call to dbus_server_debug_new.
13927
13928         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13929         Actually set the handler, doh.
13930
13931         * dbus/dbus-transport.c: (_dbus_transport_open):
13932         Add commented out call to dbus_transport_debug_client_new.
13933
13934         * dbus/Makefile.am:
13935         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13936
13937 2003-01-28  Havoc Pennington  <hp@pobox.com>
13938
13939         * dbus/dbus-message.c (check_message_handling): function to check
13940         on the loaded message, iterates over it etc.
13941
13942 2003-01-28  Havoc Pennington  <hp@pobox.com>
13943
13944         * test/Makefile.am (dist-hook): fix make distdir
13945
13946         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13947
13948 2003-01-27  Havoc Pennington  <hp@pobox.com>
13949
13950         * dbus/dbus-mempool.c (time_for_size): replace printf with
13951         _dbus_verbose
13952
13953         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13954         empty lines; fix the SAVE_LENGTH stuff to be
13955         START_LENGTH/END_LENGTH so it actually works; couple other
13956         bugfixes
13957
13958         * test/Makefile.am (dist-hook): add dist-hook for .message files
13959
13960         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13961         can be constant or locked.
13962         (_dbus_string_free): allow freeing a const string as
13963         documented/intended
13964
13965         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13966
13967         * dbus/dbus-test-main.c (main): take an argument which is the
13968         directory containing test data
13969
13970         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13971         argument to this and load all the messages in test/data/
13972         checking that they can be loaded or not loaded as appropriate.
13973
13974 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13975
13976         * bus/dispatch.c: (bus_dispatch_message_handler):
13977         Dispatch messages sent to services.
13978
13979         * bus/driver.c: (bus_driver_send_service_deleted),
13980         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13981         (bus_driver_send_service_acquired):
13982         Add helper functions for sending service related messages.
13983
13984         (bus_driver_send_welcome_message):
13985         Send HELLO_REPLY instead of WELCOME.
13986
13987         (bus_driver_handle_list_services):
13988         Send LIST_SERVICES_REPLY instead of SERVICES.
13989
13990         (bus_driver_handle_own_service),
13991         (bus_driver_handle_service_exists):
13992         New message handlers.
13993
13994         (bus_driver_handle_message):
13995         Invoke new message handlers.
13996
13997         (bus_driver_remove_connection):
13998         Don't remove any services here since that's done automatically
13999         by bus_service_remove_owner now.
14000
14001         * bus/driver.h:
14002         New function signatures.
14003
14004         * bus/services.c: (bus_service_add_owner):
14005         Send ServiceAcquired message if we're the only primary owner.
14006
14007         (bus_service_remove_owner):
14008         Send ServiceAcquired/ServiceLost messages.
14009
14010         (bus_service_set_prohibit_replacement),
14011         (bus_service_get_prohibit_replacement):
14012         Functions for setting prohibit replacement.
14013
14014         (bus_service_has_owner):
14015         New function that checks if a connection is in the owner queue of
14016         a certain service.
14017
14018         * bus/services.h:
14019         Add new function signatures.
14020
14021         * dbus/dbus-list.c: (_dbus_list_test):
14022         Add tests for _dbus_list_remove_last and traversing the list backwards.
14023
14024         * dbus/dbus-list.h:
14025         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14026         go any further, so return NULL then.
14027
14028         * dbus/dbus-protocol.h:
14029         Add new messages, service flags and service replies.
14030
14031 2003-01-26  Havoc Pennington  <hp@pobox.com>
14032
14033         * dbus/dbus-message-builder.c: implement, completely untested.
14034
14035         * test/data/*: add data to be used in testing.
14036         ".message" files are our simple loadable text format.
14037         ".message-raw" will be binary dumps of messages.
14038
14039         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14040
14041 2003-01-26  Havoc Pennington  <hp@pobox.com>
14042
14043         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14044
14045         * dbus/dbus-errors.c (dbus_result_to_string): add
14046         file errors
14047
14048         * dbus/dbus-message-builder.c: new file, will contain code to load
14049         up messages from files. Not implemented yet.
14050
14051 2003-01-26  Havoc Pennington  <hp@pobox.com>
14052
14053         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14054         the sender by setting to NULL
14055
14056 2003-01-26  Havoc Pennington  <hp@pobox.com>
14057
14058         The unit tests pass, but otherwise untested.  If it breaks, the
14059         tests should have been better. ;-)
14060
14061         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14062         the connection.
14063
14064         * dbus/dbus-message.c: redo everything so we maintain
14065         message->header as the only copy of the various fields.
14066         This avoids the possibility of out-of-memory in some cases,
14067         for example dbus_message_lock() can't run out of memory anymore,
14068         and avoids extra copying. Figured I may as well go ahead and do
14069         this since it was busted for dbus_message_lock to not return
14070         failure on OOM, and dbus_message_write_header was totally
14071         unchecked for OOM. Also fixed some random other bugs.
14072
14073         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14074         that strings are nul-terminated. Also, end_pos can be equal
14075         to string length just not greater than, I think.
14076         (_dbus_marshal_set_int32): new function
14077         (_dbus_marshal_set_uint32): new function
14078         (_dbus_marshal_set_string): new function
14079
14080         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14081         a warning, init timeout_list to NULL
14082         (dbus_connection_send_message): don't use uninitialized variable
14083         "serial"
14084
14085         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14086
14087 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14088
14089         * bus/driver.c: (bus_driver_handle_hello),
14090         (bus_driver_send_welcome_message):
14091         Plug leaks
14092
14093 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14094
14095         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14096         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14097         (dbus_connection_unref):
14098         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14099         * dbus/dbus-message.c: (dbus_message_unref),
14100         Plug memory leaks.
14101
14102         (dbus_message_get_fields):
14103         Remove debugging printout.
14104
14105         (_dbus_message_loader_return_buffer):
14106         Don't store the header string.
14107
14108         (_dbus_message_test):
14109         Plug leaks.
14110
14111 2003-01-26  Richard Hult  <rhult@codefactory.se>
14112
14113         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14114         the file descriptor list, since it can change under us.
14115
14116 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14117
14118         * glib/dbus-gmain.c: (dbus_connection_prepare),
14119         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14120         (remove_watch), (dbus_connection_hookup_with_g_main):
14121         Rewrite the glib handling to use its own GSource instead of a
14122         GIOChannel so we can catch messages put in the queue while waiting
14123         for a reply.
14124
14125 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14126
14127         * bus/Makefile.am:
14128         * bus/connection.c: (connection_disconnect_handler),
14129         (connection_watch_callback), (bus_connection_setup):
14130         * bus/dispatch.c: (send_one_message),
14131         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14132         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14133         * bus/dispatch.h:
14134         * bus/driver.c: (bus_driver_send_service_deleted),
14135         (bus_driver_send_service_created), (bus_driver_handle_hello),
14136         (bus_driver_send_welcome_message),
14137         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14138         (bus_driver_handle_message):
14139         * bus/driver.h:
14140         Refactor code, put the message dispatching in its own file. Use
14141         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14142         is disconnected.
14143
14144 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14145
14146         * dbus/dbus-internals.h:
14147         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14148
14149         * dbus/dbus-message.c: (dbus_message_get_sender):
14150         * dbus/dbus-message.h:
14151         Implement dbus_message_get_sender.
14152
14153         * dbus/dbus-protocol.h:
14154         Add message and service defines.
14155
14156 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14157
14158         * dbus/dbus-connection.c: (dbus_connection_send_message):
14159         * dbus/dbus-message-internal.h:
14160         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14161         (dbus_message_write_header):
14162         Remove _dbus_messag_unlock and don't set the client serial on a
14163         message if one already exists.
14164
14165 2003-01-24  Havoc Pennington  <hp@pobox.com>
14166
14167         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14168         list_pool
14169
14170         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14171         on OOM
14172
14173 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14174
14175         * dbus/dbus-list.c: (alloc_link), (free_link):
14176         Use a memory pool for the links.
14177
14178 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14179
14180         * bus/connection.c: (bus_connection_foreach):
14181         * bus/connection.h:
14182         Add new bus_connection_foreach function.
14183
14184         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14185         Add function that broadcasts a message to all clients.
14186
14187         (bus_driver_send_service_created), (bus_driver_handle_hello),
14188         (bus_driver_send_welcome_message),
14189         (bus_driver_handle_list_services), (bus_driver_message_handler):
14190         Implement functions that take care of listing services, and notifying
14191         clients when new services are created.
14192
14193         * bus/services.c: (bus_services_list):
14194         * bus/services.h:
14195         Add new function that returns an array of strings with the currently
14196         registered services.
14197
14198         * glib/dbus-glib.h:
14199         * glib/dbus-gmain.c:
14200         Update copyright year.
14201
14202 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14203
14204         * dbus/dbus-connection.c: (dbus_connection_send_message):
14205         Unlock the message in case it was sent earlier.
14206
14207         (dbus_connection_send_message_with_reply_and_block):
14208         Remove the reply message from the list.
14209
14210         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14211         Set array_len and new_pos correctly.
14212
14213         (_dbus_marshal_test):
14214         Remove debug output.
14215
14216         * dbus/dbus-message-internal.h:
14217         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14218         New function that returns the reply serial.
14219
14220         (_dbus_message_unlock):
14221         New function that unlocks a message and resets its header.
14222
14223         (dbus_message_append_string_array),
14224         (dbus_message_get_fields_valist),
14225         (dbus_message_iter_get_field_type),
14226         (dbus_message_iter_get_string_array),
14227         (dbus_message_get_fields),
14228         (dbus_message_append_fields_valist):
14229         Handle string arrays.
14230
14231         (dbus_message_set_sender):
14232         Make this function public since the bus daemon needs it.
14233
14234         (decode_header_data):
14235         Set the reply serial to -1 initially.
14236
14237         * dbus/dbus-message.h:
14238         Add dbus_message_set_sender.
14239
14240 2003-01-24  Havoc Pennington  <hp@pobox.com>
14241
14242         * doc/dbus-specification.sgml: add some stuff
14243
14244 2003-01-22  Havoc Pennington  <hp@pobox.com>
14245
14246         * doc/dbus-specification.sgml: Start to document the protocol.
14247
14248 2003-01-22  Havoc Pennington  <hp@pobox.com>
14249
14250         * dbus/dbus-connection.c
14251         (dbus_connection_send_message_with_reply_and_block): add some @todo
14252
14253         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14254
14255 2003-01-21  Havoc Pennington  <hp@pobox.com>
14256
14257         (patch untested because can't compile)
14258
14259         * bus/driver.c (create_unique_client_name): make this function
14260         never recycle client names. Also, caller should initialize
14261         the DBusString.
14262
14263         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14264
14265 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14266
14267         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14268         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14269         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14270         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14271         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14272         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14273         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14274         * dbus/dbus-marshal.h:
14275         * dbus/dbus-protocol.h:
14276         Add support for marshalling and demarshalling integer, double
14277         and string arrays.
14278
14279 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14280
14281         * bus/Makefile.am:
14282         Add driver.[ch]
14283
14284         * bus/connection.c: (connection_disconnect_handler):
14285         Remove the connection from the bus driver's list.
14286
14287         (connection_watch_callback): Dispatch messages.
14288
14289         (free_connection_data): Free connection name.
14290
14291         (bus_connection_setup): Add connection to the bus driver's list.
14292         (bus_connection_remove_owned_service):
14293         (bus_connection_set_name), (bus_connection_get_name):
14294         Add functions for setting and getting the connection's name.
14295
14296         * bus/connection.h:
14297         Add function headers.
14298
14299         * bus/driver.c: (create_unique_client_name),
14300         (bus_driver_handle_hello_message),
14301         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14302         (bus_driver_add_connection), (bus_driver_remove_connection):
14303         * bus/driver.h:
14304         * bus/main.c:
14305         * bus/services.c: (bus_service_free):
14306         * bus/services.h:
14307         New file that handles communication and registreation with the bus
14308         itself.
14309
14310 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14311
14312         * dbus/dbus-connection.c: (dbus_connection_send_message):
14313         Add a new client_serial parameter.
14314
14315         (dbus_connection_send_message_with_reply):
14316         Remove a @todo since we've implemented the blocking function.
14317
14318         (dbus_connection_send_message_with_reply_and_block):
14319         New function that sends a message and waits for a reply and
14320         then returns the reply.
14321
14322         * dbus/dbus-connection.h:
14323         Add new functions.
14324
14325         * dbus/dbus-errors.c: (dbus_result_to_string):
14326         * dbus/dbus-errors.h:
14327         Add new DBUS_RESULT.
14328
14329         * dbus/dbus-message-internal.h:
14330         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14331         (_dbus_message_set_sender), (dbus_message_write_header),
14332         (dbus_message_new_reply), (decode_header_data),
14333         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14334         * dbus/dbus-message.h:
14335         Add new functions that set the reply serial and sender.
14336         Also marshal and demarshal them correctly and add test.
14337
14338         * dbus/dbus-protocol.h:
14339         Add new DBUS_MESSAGE_TYPE_SENDER.
14340
14341         * glib/dbus-glib.h:
14342         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14343         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14344         (dbus_connection_hookup_with_g_main):
14345         * glib/test-dbus-glib.c: (main):
14346         Rewrite to use GIOChannel and remove the GSource crack.
14347
14348         * test/echo-client.c: (main):
14349         * test/watch.c: (check_messages):
14350         Update for changed APIs
14351
14352 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14353
14354         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14355
14356         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14357         Create a DBusTimeoutList.
14358         (dbus_connection_set_timeout_functions): Add new function to
14359         set timeout callbacks
14360
14361         * dbus/dbus-connection.h: Add public DBusTimeout API.
14362
14363         * dbus/dbus-message.c: (dbus_message_get_service):
14364         * dbus/dbus-message.h:  New function.
14365
14366         * dbus/dbus-server.c: Fix small doc typo.
14367
14368         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14369
14370 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14371
14372         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14373         of the string, just as long as specified.
14374
14375 2003-01-19  Havoc Pennington  <hp@pobox.com>
14376
14377         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14378         new function
14379
14380         * dbus/dbus-server.c (dbus_server_set_max_connections)
14381         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14382         keep track of current number of connections, and add API for
14383         setting a max (but haven't implemented enforcing the max yet)
14384
14385 2003-01-18  Havoc Pennington  <hp@pobox.com>
14386
14387         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14388         reading/writing if read_watch != NULL or write_watch != NULL.
14389
14390         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14391         the message loader code to actually load message->header and
14392         message->body into the newly-created message.
14393
14394         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14395         in OOM case
14396
14397         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14398         (dbus_connection_get_max_message_size)
14399         (dbus_connection_set_max_live_messages_size)
14400         (dbus_connection_get_max_live_messages_size): implement some
14401         resource limitation functions
14402
14403         * dbus/dbus-resources.c: new file implementing some of the
14404         resource limits stuff
14405
14406         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14407         missing docs, add @todo to handle OOM etc.
14408
14409         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14410         docs
14411
14412 2003-01-18  Havoc Pennington  <hp@pobox.com>
14413
14414         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14415         connection if it hasn't been already.
14416
14417         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14418         replace with DisconnectFunction.
14419
14420 2003-01-18  Havoc Pennington  <hp@pobox.com>
14421
14422         Building --disable-verbose-mode --disable-asserts --disable-tests
14423         cuts the library from 112K to 45K or so
14424
14425         * configure.in: check for varargs macro support,
14426         add --enable-verbose-mode, --enable-asserts.
14427
14428         * dbus/dbus-internals.h (_dbus_assert): support
14429         DBUS_DISABLE_ASSERT
14430         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14431
14432 2003-01-18  Havoc Pennington  <hp@pobox.com>
14433
14434         * dbus/dbus-test.c: include config.h so that tests actually run
14435
14436         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14437         so the failure mode when that assumption fails will be plenty
14438         obvious.
14439
14440 2003-01-18  Havoc Pennington  <hp@pobox.com>
14441
14442         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14443
14444         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14445         the distribution
14446
14447         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14448         since we don't want to use those in make check
14449
14450 2003-01-15  Havoc Pennington  <hp@redhat.com>
14451
14452         Release 0.2
14453
14454         * NEWS: update
14455
14456 2003-01-15  Havoc Pennington  <hp@redhat.com>
14457
14458         * test/Makefile.am: fix so that test source code ends up in the
14459         distribution on make distcheck
14460
14461 2003-01-15  Havoc Pennington  <hp@redhat.com>
14462
14463         Release 0.1.
14464
14465         * NEWS: update
14466
14467 2003-01-15  Havoc Pennington  <hp@redhat.com>
14468
14469         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14470         fix build when --disable-tests
14471
14472         * Makefile.am (EXTRA_DIST): put HACKING in here
14473
14474         * HACKING: document procedure for making a tarball release.
14475
14476 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14477
14478         * bus/connection.c: (connection_error_handler),
14479         (bus_connection_setup):
14480         * bus/main.c: (main):
14481         Make sure that the DBusConnectionData struct is NULLed
14482         out to prevent a segfault.
14483
14484         * dbus/dbus-errors.c: (dbus_result_to_string):
14485         * dbus/dbus-errors.h:
14486         * dbus/dbus-message.c: (dbus_message_get_fields),
14487         (dbus_message_get_fields_valist), (_dbus_message_test):
14488         * dbus/dbus-message.h:
14489         Make dbus_message_get_fields return a result code so we can
14490         track invalid fields as well as oom.
14491
14492 2003-01-11  Havoc Pennington  <hp@pobox.com>
14493
14494         * configure.in: change --enable-test/--enable-ansi action-if-given
14495         to enable_foo=$enableval instead of enable_foo=yes
14496
14497 2003-01-08  Havoc Pennington  <hp@pobox.com>
14498
14499         * dbus/dbus-string.c (_dbus_string_align_length): new function
14500
14501         * dbus/dbus-test-main.c: move main() for test app here
14502         * dbus/dbus-test.c
14503         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14504         symbol to run tests, because dbus-test isn't in the main
14505         library
14506
14507         Code review nitpicks.
14508
14509         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14510         for people with narrow emacs ;-). Assert client_serial was filled
14511         in. Assert message->name != NULL.
14512         (dbus_message_append_fields): have "first_field_type" arg separate
14513         from va list, needed for C++ binding that also uses varargs IIRC
14514         and helps with type safety
14515         (dbus_message_new): add @todo about using DBusString to store
14516         service/name internally
14517         (dbus_message_new): don't leak ->service and ->name on OOM later
14518         in the function
14519         (dbus_message_unref): free the service name
14520         (dbus_message_get_fields): same change to varargs
14521         i.e. first_field_type
14522         (_dbus_message_loader_return_buffer): assert that the message data
14523         is aligned (if not it's a bug in our code). Put in verbose griping
14524         about why we set corrupted = TRUE.
14525         (decode_header_data): add FIXME that char* is evil.  Was going to
14526         add FIXME about evil locale-specific string.h strncmp, but just
14527         switched to wacky string-as-uint32 optimization. Move check for
14528         "no room for field name" above get_const_data_len() to avoid
14529         assertion failure in get_const_data_len if we have trailing 2
14530         bytes or the like. Check for service and name fields being
14531         provided twice. Don't leak service/name on error. Require field
14532         names to be aligned to 4 bytes.
14533
14534         * dbus/dbus-marshal.c: move byte swap stuff to header
14535         (_dbus_pack_int32): uscore-prefix
14536         (_dbus_unpack_int32): uscore-prefix
14537         (_dbus_unpack_uint32): export
14538         (_dbus_demarshal_string): add @todo complaining about use of
14539         memcpy()
14540         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14541         handling allowing corrupt data to go unchecked
14542
14543 2003-01-08  Havoc Pennington  <hp@redhat.com>
14544
14545         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14546         to the select() as needed for authentication. (should be using
14547         _dbus_poll() not select, but for another day)
14548
14549         * dbus/dbus.h: include dbus/dbus-protocol.h
14550
14551 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14552
14553         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14554         dbus-connection.h
14555
14556 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14557
14558         * dbus/dbus-internals.c: (_dbus_type_to_string):
14559         New function that returns a string describing a type.
14560
14561         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14562         * dbus/dbus-marshal.h:
14563         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14564         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14565         (dbus_message_iter_get_byte_array):
14566         * dbus/dbus-message.h:
14567         Add new convenience functions for appending and getting message fields.
14568         Also add demarshalling routines for byte arrays.
14569
14570 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14571
14572         * dbus/dbus-connection-internal.h:
14573         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14574         (_dbus_connection_get_next_client_serial),
14575         (dbus_connection_send_message):
14576         * dbus/dbus-internals.h:
14577         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14578         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14579         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14580         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14581         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14582         (_dbus_verbose_bytes), (_dbus_marshal_test):
14583         * dbus/dbus-marshal.h:
14584         * dbus/dbus-message-internal.h:
14585         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14586         (dbus_message_write_header), (_dbus_message_lock),
14587         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14588         (dbus_message_get_name), (dbus_message_append_int32),
14589         (dbus_message_append_uint32), (dbus_message_append_double),
14590         (dbus_message_append_string), (dbus_message_append_byte_array),
14591         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14592         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14593         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14594         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14595         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14596         (decode_header_data), (_dbus_message_loader_return_buffer),
14597         (message_iter_test), (_dbus_message_test):
14598         * dbus/dbus-message.h:
14599         * dbus/dbus-protocol.h:
14600         * dbus/dbus-test.c: (main):
14601         * dbus/dbus-test.h:
14602         * glib/test-dbus-glib.c: (message_handler), (main):
14603         * test/echo-client.c: (main):
14604         * test/watch.c: (check_messages):
14605         Make messages sendable and receivable for real.
14606
14607 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14608
14609         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14610         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14611         * dbus/dbus-message.c: (dbus_message_append_int32),
14612         (dbus_message_append_uint32), (dbus_message_append_double),
14613         (dbus_message_append_string), (dbus_message_append_byte_array):
14614         Handle OOM restoration.
14615
14616 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14617
14618         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14619         (_dbus_demarshal_string), (_dbus_marshal_test):
14620         * dbus/dbus-marshal.h:
14621         * dbus/dbus-message.c: (dbus_message_get_name),
14622         Document these functions.
14623
14624         (dbus_message_append_int32), (dbus_message_append_uint32),
14625         (dbus_message_append_double), (dbus_message_append_string),
14626         (dbus_message_append_byte_array):
14627         * dbus/dbus-message.h:
14628         Add functions for adding message fields of different types.
14629
14630         * dbus/dbus-protocol.h:
14631         Add the different types.
14632
14633 2003-01-05  Havoc Pennington  <hp@pobox.com>
14634
14635         * bus/connection.c: implement routines for handling connections,
14636         first thing is keeping a list of owned services on each connection
14637         and setting up watches etc.
14638
14639         * bus/services.c: implement a mapping from service names to lists
14640         of connections
14641
14642         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14643
14644         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14645         to use static mutexes for global data
14646
14647         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14648         collection of functions to set/get application-specific data
14649         on the DBusConnection.
14650
14651 2003-01-04  Havoc Pennington  <hp@pobox.com>
14652
14653         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14654         (_dbus_poll): new function
14655
14656         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14657         copied from GLib
14658
14659         * bus/loop.c: initial code for the daemon main loop
14660
14661 2003-01-04  Havoc Pennington  <hp@pobox.com>
14662
14663         * test/watch.c (error_handler): make it safe if the error handler
14664         is called multiple times (if we s/error handler/disconnect
14665         handler/ we should just guarantee it's called only once)
14666
14667         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14668         error handler on disconnect (it's quite possible we should
14669         just change the error handler to a "disconnect handler," I'm
14670         not sure we have any other meaningful errors)
14671
14672         * configure.in: check for getpwnam_r
14673
14674         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14675         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14676         mechanism as in SASL spec, using socket credentials
14677
14678         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14679         (_dbus_send_credentials_unix_socket): new function
14680
14681         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14682         dbus_accept()
14683         (_dbus_write): only check errno if <0 returned
14684         (_dbus_write_two): ditto
14685
14686 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14687
14688         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14689         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14690         (_dbus_marshal_test):
14691         * dbus/dbus-marshal.h:
14692         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14693         to _dbus_marshal_utf8_string. Also fix some tests.
14694
14695 2002-12-28  Harri Porten  <porten@kde.org>
14696
14697         * configure.in: added check for C++ compiler and a very cheesy
14698         check for the Qt integration
14699
14700         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14701
14702         * qt/Makefile.am: added
14703
14704         * qt/.cvsignore: added
14705
14706         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14707         latter, added #ifdef QT_THREAD_SUPPORT guard.
14708
14709         * dbus/Makefile.am: added missing headers for make dist
14710
14711 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14712
14713         * dbus/Makefile.am: fixup export-symbols-regex.
14714
14715 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14716
14717         * acinclude.m4: Add this file and put the
14718         PKG_CHECK_MODULE macro in it.
14719
14720 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14721
14722         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14723         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14724         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14725         (_dbus_marshal_test):
14726         Make the demarshalling routines align the pos argument.
14727         Add string marshalling tests and fix the obvious bugs
14728         discovered.
14729
14730 2002-12-26  Havoc Pennington  <hp@pobox.com>
14731
14732         * dbus/dbus-auth.c: fixes fixes fixes
14733
14734         * dbus/dbus-transport-unix.c: wire up support for
14735         encoding/decoding data on the wire
14736
14737         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14738         (_dbus_auth_decode_data): append to target string
14739         instead of nuking it.
14740
14741 2002-12-26  Havoc Pennington  <hp@pobox.com>
14742
14743         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14744         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14745         doh
14746
14747         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14748         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14749         now). Main point is because I wanted unpack_uint32 to implement
14750         _dbus_verbose_bytes
14751         (_dbus_verbose_bytes): new function
14752
14753         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14754
14755         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14756         mechanism to handle a corrupt message stream
14757         (_dbus_message_loader_new): fix preallocation to only prealloc,
14758         not prelengthen
14759
14760         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14761         (_dbus_string_test): enhance tests for copy/move and fix the
14762         functions
14763
14764         * dbus/dbus-transport-unix.c: Hold references in more places to
14765         avoid reentrancy problems
14766
14767         * dbus/dbus-transport.c: ditto
14768
14769         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14770         leak reference count in no-message case
14771
14772         * test/watch.c (do_mainloop): handle adding/removing watches
14773         during iteration over the watches. Also, ref the connection/server
14774         stored on a watch, so we don't try to mangle a destroyed one.
14775
14776         * dbus/dbus-transport-unix.c (do_authentication): perform
14777         authentication
14778
14779         * dbus/dbus-auth.c (get_state): add a state
14780         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14781         (_dbus_auth_get_unused_bytes): append the unused bytes
14782         to the passed in string, rather than prepend
14783
14784         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14785         the auth conversation DBusAuth
14786
14787         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14788         (_dbus_transport_new_for_domain_socket): when creating a
14789         transport, pass in whether it's a client-side or server-side
14790         transport so we know which DBusAuth to create
14791
14792 2002-12-03  Havoc Pennington  <hp@pobox.com>
14793
14794         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14795         _after_ finalizing the derived members
14796         (unix_connection_set): unref watch if we fail to add it
14797
14798         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14799         transport first, so that the connection owned by the
14800         transport will be valid as the transport finalizes.
14801
14802         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14803         if necessary, and remove watches from the connection.
14804
14805         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14806
14807 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14808
14809         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14810         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14811         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14812         (_dbus_marshal_test):
14813         * dbus/dbus-marshal.h:
14814         Add string marshal functions and have the demarshal functions
14815         return the new position.
14816
14817 2002-12-25  Havoc Pennington  <hp@pobox.com>
14818
14819         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14820         it is a simple protocol that just maps directly to SASL.
14821
14822         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14823         initial implementation, not actually used yet.
14824
14825         * dbus/dbus-string.c (_dbus_string_find): new function
14826         (_dbus_string_equal): new function
14827         (_dbus_string_base64_encode): new function
14828         (_dbus_string_base64_decode): new function
14829
14830 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14831
14832         * dbus/Makefile.am:
14833         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14834         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14835         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14836         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14837         * dbus/dbus-marshal.h:
14838         * dbus/dbus-protocol.h:
14839         * dbus/dbus-test.c: (main):
14840         * dbus/dbus-test.h:
14841         Add un-optimized marshalling/demarshalling routines.
14842
14843 2002-12-25  Harri Porten  <porten@kde.org>
14844
14845         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14846
14847 2002-12-24  Zack Rusin  <zack@kde.org>
14848
14849         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14850         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14851         main loop stuff
14852
14853 2002-12-24  Havoc Pennington  <hp@pobox.com>
14854
14855         * glib/dbus-gthread.c: fix include
14856
14857         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14858         I think glib API needs to change, though, as you don't
14859         want to use DBusMessageFunction, you want to use the
14860         DBusMessageHandler object. Probably
14861         dbus_connection_open_with_g_main_loop()
14862         and dbus_connection_setup_g_main_loop() or something like that
14863         (but think of better names...) that just create a connection
14864         that has watch/timeout functions etc. already set up.
14865
14866         * dbus/dbus-connection.c
14867         (dbus_connection_send_message_with_reply): new function just to
14868         show how the message handler helps us deal with replies.
14869
14870         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14871
14872         * dbus/dbus-string.c (_dbus_string_test): free a string that
14873         wasn't
14874
14875         * dbus/dbus-hash.c: use memory pools for the hash entries
14876         (rebuild_table): be more paranoid about overflow, and
14877         shrink table when we can
14878         (_dbus_hash_test): reduce number of sprintfs and write
14879         valid C89. Add tests for case where we grow and then
14880         shrink the hash table.
14881
14882         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14883
14884         * dbus/dbus-connection.c (dbus_connection_register_handler)
14885         (dbus_connection_unregister_handler): new functions
14886
14887         * dbus/dbus-message.c (dbus_message_get_name): new
14888
14889         * dbus/dbus-list.c: fix docs typo
14890
14891         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14892         an object representing a handler for messages.
14893
14894 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14895
14896         * glib/dbus-glib.h:
14897         * glib/dbus-gthread.c: (dbus_gthread_init):
14898         Don't use the gdbus prefix for public functions.
14899
14900 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14901
14902         * Makefile.am:
14903         * configure.in:
14904         Add GLib checks and fixup .pc files
14905
14906         * glib/Makefile.am:
14907         * glib/dbus-glib.h:
14908         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14909         (gdbus_connection_check), (gdbus_connection_dispatch),
14910         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14911         (dbus_connection_gsource_new):
14912         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14913         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14914         * glib/test-dbus-glib.c: (message_handler), (main):
14915         Add GLib support.
14916
14917 2002-12-15  Harri Porten  <porten@kde.org>
14918
14919         * autogen.sh: check for libtoolize before attempting to use it
14920
14921         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14922         struct.
14923
14924         * .cvsignore: ignore more stamp files
14925
14926         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14927
14928         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14929         without make install.
14930
14931 2002-12-15  Havoc Pennington  <hp@pobox.com>
14932
14933         * dbus/dbus-threads.c: add thread stubs that a higher library
14934         layer can fill in. e.g. the GLib wrapper might fill them in with
14935         GThread stuff. We still need to use this thread API to
14936         thread-safe-ize the library.
14937
14938 2002-12-12  Havoc Pennington  <hp@pobox.com>
14939
14940         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14941         below new interfaces and include fewer system headers.
14942
14943         * dbus/dbus-sysdeps.c (_dbus_read): new function
14944         (_dbus_write): new function
14945         (_dbus_write_two): new function
14946         (_dbus_connect_unix_socket): new function
14947         (_dbus_listen_unix_socket): new function
14948
14949         * dbus/dbus-message-internal.h: change interfaces to use
14950         DBusString
14951
14952 2002-12-11  Havoc Pennington  <hp@pobox.com>
14953
14954         * dbus/dbus-types.h: add dbus_unichar
14955
14956         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14957
14958         * dbus/dbus-connection.c (dbus_connection_send_message): return
14959         TRUE on success
14960
14961         * dbus/dbus-transport.c: include dbus-watch.h
14962
14963         * dbus/dbus-connection.c: include dbus-message-internal.h
14964
14965         * HACKING: add file with coding guidelines stuff.
14966
14967         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14968         handling here, for security purposes (as in vsftpd). Not actually
14969         using this class yet.
14970
14971         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14972         system/libc usage here, as in vsftpd, for ease of auditing (and
14973         should also simplify portability). Haven't actually moved all the
14974         system/libc usage into here yet.
14975
14976 2002-11-25  Havoc Pennington  <hp@pobox.com>
14977
14978         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14979         always print the first verbose message.
14980
14981 2002-11-24  Havoc Pennington  <hp@pobox.com>
14982
14983         * test/echo-client.c, test/echo-server.c: cheesy test
14984         clients.
14985
14986         * configure.in (AC_CHECK_FUNCS): check for writev
14987
14988         * dbus/dbus-message.c (_dbus_message_get_network_data): new
14989         function
14990
14991         * dbus/dbus-list.c (_dbus_list_foreach): new function
14992
14993         * dbus/dbus-internals.c (_dbus_verbose): new function
14994
14995         * dbus/dbus-server.c, dbus/dbus-server.h: public object
14996         representing a server that listens for connections.
14997
14998         * dbus/.cvsignore: create
14999
15000         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15001         public API for reporting errors
15002
15003         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15004         public object representing a connection that
15005         sends/receives messages. (Same object used for
15006         both client and server.)
15007
15008         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15009         Basic abstraction for different kinds of stream
15010         that we might read/write messages from.
15011
15012 2002-11-23  Havoc Pennington  <hp@pobox.com>
15013
15014         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15015         _DBUS_INT_MAX
15016
15017         * dbus/dbus-test.c (main): add list test, and include
15018         dbus-test.h as intended
15019
15020         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15021         (_dbus_hash_table_remove_int): return value indicates
15022         whether the entry existed to remove
15023
15024         * dbus/dbus-list.c: add linked list utility class,
15025         with docs and tests
15026
15027         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15028         array sometimes.
15029
15030 2002-11-23  Havoc Pennington  <hp@pobox.com>
15031
15032         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15033         DBUS_END_DECLS to nothing, that should fix this once and for all
15034
15035         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15036
15037         * dbus/dbus-message.c, dbus/dbus-hash.c:
15038         add some missing @brief
15039
15040 2002-11-23  Havoc Pennington  <hp@pobox.com>
15041
15042         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15043         to avoid confusing Doxygen
15044
15045         * dbus/dbus-hash.c: @} not }@
15046
15047         * dbus/dbus-message.c (struct DBusMessage): split out
15048         internals docs
15049
15050 2002-11-23  Havoc Pennington  <hp@pobox.com>
15051
15052         * configure.in: pile on more warning flags if using gcc
15053
15054         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15055         to document static functions
15056
15057         * configure.in: add summary to end of configure so it
15058         looks nice and attractive
15059
15060         * dbus/dbus-hash.c: finish implementation and write unit
15061         tests and docs
15062
15063         * configure.in: add --enable-tests to enable unit tests
15064
15065         * dbus/dbus-test.c: test program to run unit tests
15066         for all files in dbus/*, initially runs a test for
15067         dbus-hash.c
15068
15069         * dbus/dbus-internals.h: file to hold some internal utility stuff
15070
15071 2002-11-22  Havoc Pennington  <hp@redhat.com>
15072
15073         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15074         "ported" away from Tcl
15075
15076         * dbus/dbus-types.h: header for types such as dbus_bool_t
15077
15078 2002-11-22  Havoc Pennington  <hp@redhat.com>
15079
15080         * dbus/dbus.h: fixups for doc warnings
15081
15082         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15083         macros
15084         (QUIET): make it quiet so we can see warnings
15085
15086         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15087
15088 2002-11-22  Havoc Pennington  <hp@redhat.com>
15089
15090         * Makefile.am: include "Doxyfile" target in all-local
15091
15092         * configure.in: generate the Doxyfile
15093
15094         * Doxyfile.in: move Doxyfile here, so we can use
15095         configure to generate a Doxyfile with the right
15096         version number etc.
15097
15098 2002-11-22  Havoc Pennington  <hp@redhat.com>
15099
15100         * dbus/dbus-message.c: move inline docs into .c file
15101
15102         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15103         so all docs are under doc/
15104         (MAN_EXTENSION): generate man pages. Use extension
15105         ".3dbus" which matches ".3qt" on my system,
15106         I guess this is OK, I don't know really.
15107         (FILE_PATTERNS): look for .c files not .h, makes sense
15108         for plain C I think
15109
15110 2002-11-22  Havoc Pennington  <hp@pobox.com>
15111
15112         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15113         because any app can be a server, and any app can be a client,
15114         the bus is a special kind of server.
15115
15116 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15117
15118         * Doxyfile : adding. Still needs Makefile rules to be generated
15119         automatically (just run "doxygen" in the toplevel dir for now to
15120         generate docs)
15121
15122         * dbus/dbus-message.h : Adding sample docs (javadoc since
15123         resembles gtk-doc a little more)
15124
15125         * dbus/dbus.h : Adding sample docs
15126
15127 2002-11-21  Havoc Pennington  <hp@redhat.com>
15128
15129         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15130         so we can allow ourselves to include files directly,
15131         instead of having to use dbus.h
15132
15133         * dbus/dbus.h: fill in
15134
15135         * dbus/dbus-message.h: sketch out a sample header file.
15136         Include griping if you include it directly instead of
15137         via dbus.h
15138
15139         * dbus/dbus-macros.h: new file with macros for extern "C",
15140         TRUE/FALSE, NULL, etc.
15141
15142         * doc/file-boilerplate.c: put include guards in here
15143
15144 2002-11-21  Havoc Pennington  <hp@redhat.com>
15145
15146         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15147
15148         * COPYING: include the GPL as well, and license code
15149         under both AFL and GPL.
15150
15151 2002-11-21  Havoc Pennington  <hp@redhat.com>
15152
15153         * acconfig.h: get rid of this
15154
15155         * autogen.sh (run_configure): add --no-configure option
15156
15157         * configure.in: remove AC_ARG_PROGRAM to make
15158         autoconf complain less. add AC_PREREQ.
15159         add AC_DEFINE third arg.
15160
15161 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15162
15163         * doc/Makefile.am:
15164         Fix references so we can distcheck.
15165
15166 2002-11-21  Havoc Pennington  <hp@redhat.com>
15167
15168         * Initial module creation
15169