2006-11-17 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2006-11-17  Havoc Pennington  <hp@redhat.com>
2
3         * doc/dbus-faq.xml: minor FAQ tweaks
4
5 2006-11-14  Havoc Pennington  <hp@redhat.com>
6         
7         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
8         dbus_get_local_machine_id() to its own file, no substantive
9         changes. There are a couple other things we might want to add that
10         are "misc" so moving out of dbus-connection.[hc] which is big
11         enough already.
12         
13 2006-11-14  Havoc Pennington  <hp@redhat.com>
14
15         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
16         UUID had the timestamp last, but the implementation had it first;
17         move it to last since I think it's a tiny bit nicer (easier to
18         compare at a glance, faster to sort, less code), and will not
19         cause any practical compatibility problems. Also, always convert
20         the timestamp to big endian.
21
22         * doc/dbus-specification.xml: Clean up the docs on the UUID.
23
24         * tools/dbus-uuidgen.1: more prominently say it is not suitable
25         as a replacement for regular uuidgen/RFC4122.
26
27 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
28
29         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
30         the correct value so we don't assert when initalizing recursive threads
31
32         * test/name-test/test-thread-init.c: call dbus_threads_init_default
33         instead of _dbus_threads_init_debug since it is more of a real world
34         test
35
36 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
37
38         * Released 1.0.0
39
40 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
41
42         * AUTHORS: added Peter and Tor of windows porting fame
43
44 2006-11-08  Havoc Pennington  <hp@redhat.com>
45
46         * doc/dbus-specification.xml: add a note about protocol stability
47
48         * doc/TODO: Remove "important for 1.0" section, replace with
49         "important for 1.2" section
50         
51 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
52
53         * README: remove some of the out of date flags
54
55         * doc/TODO: Remove todo items which are done
56
57 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
58
59         * tools/dbus-monitor.c: Handle sigint so we flush stdout
60         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
61
62 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
63
64         * tools/dbus-monitor.1: update the manpage for dbus-monitor
65         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
66
67 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
68
69         * AUTHORS: Update with all people listed in the ChangeLog
70
71 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
72
73         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
74         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
75
76 2006-11-07  Havoc Pennington  <hp@redhat.com>
77
78         * HACKING: Update release instructions to include stuff about
79         stable releases, branching, etc. May not be totally correct,
80         please fix if needed, but keep instructions up-to-date so we do
81         each stable release consistently in the future.
82
83 2006-11-07  Havoc Pennington  <hp@redhat.com>
84
85         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
86         documentation updates. Bump faq/spec versions (not to 1.0; I don't
87         think the spec will be "finished"/1.0 when we ship the 1.0 library).
88
89 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
90
91         * bus/bus.c: Missed patch - pass in the context to the directory watch
92
93 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
94
95         * Released D-Bus 1.0 RC 3(0.95)
96
97 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
98
99         * bus/activation.c (bus_activation_new): don't fail if we can not read
100         the directory as it may not exist
101
102 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
103
104         * bus/config-parser.c (service_dirs_find_dir): use 
105         _dbus_list_get_next_link so we don't get stuck in an infinite loop
106         (start_busconfig_child): move processing of standard_session_servicedirs
107         tags here because they have no content
108         (bus_config_parser_content): check we don't have content in 
109         standard_session_servicedirs tag
110
111 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
112
113         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
114         Packagers need to own this directory
115
116 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
117
118         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
119         <standard_session_servicedirs> tag with a <sevicedir> tag that
120         points to the test service directory
121
122 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
123
124         * configure.in: Add a check for DIR *dirp->dd_fd
125
126         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
127         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
128         of both Solaris and Irix
129
130 2006-11-01  Havoc Pennington  <hp@redhat.com>
131
132         * bus/dbus-daemon.1.in: document standard_session_servicedirs
133
134 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
135
136         * configure.in: expose DBUS_DATADIR
137         
138         * bus/config-parser.c: add the standard_session_servicedirs element
139         to the parser
140         (bus_config_parser_content): process the standard_session_servicedirs
141         element by getting the standard directories from sysdeps and merging
142         them into the service directory list
143         (test_default_session_servicedirs): make sure we get what we expect
144
145         * bus/session.conf.in: replace the servicedir tag with the 
146         standard_session_servicedirs tag
147
148         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
149         dbus-sysdeps.h to avoid circular header dependencies
150
151         * dbus/dbus-sysdeps.h: add the typedef of DBusList
152
153         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
154         which takes a string of directories delimited by colons, parses them 
155         out, appends a suffix and puts them in a list ignoring empty elements
156         (_dbus_get_standard_session_servicedirs): returns the standard 
157         directories for a session bus to look for service activation files
158         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
159         DBUS_DATADIR directories
160
161         * test/data/valid-config-files/many-rules.conf: add the 
162         standard_session_servicedirs tag to the valid config file tests
163
164 2006-10-30  Havoc Pennington  <hp@redhat.com>
165
166         * tools/dbus-launch.1, doc/TODO: capture intent to change the
167         command line options of dbus-launch a bit post 1.0
168
169 2006-10-27  Havoc Pennington  <hp@redhat.com>
170         
171         * dbus/dbus-connection.c (dbus_connection_open_private): document
172         how to choose shared vs. private connections
173
174 2006-10-27  Havoc Pennington  <hp@redhat.com>
175
176         * dbus/dbus-test.c: enclose more of the file in the
177         DBUS_BUILD_TESTS check.
178
179         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
180         DBUS_DISABLE_ASSERT case.
181
182         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
183         that it only works on the server side
184
185         * dbus/dbus-bus.c: add a global lock covering the BusData we
186         attach to each connection
187         (internal_bus_get): lock our access to the BusData
188         (dbus_bus_register): lock the entire registration process
189         with _DBUS_LOCK(bus_datas). If we get the lock and 
190         registration is already complete, silently return (vs. previous
191         behavior of aborting).
192         (dbus_bus_set_unique_name): lock the BusData
193         (dbus_bus_get_unique_name): lock the BusData
194
195 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
196
197         * bus/config-parser.c (service_dirs_find_dir, 
198         service_dirs_append_unique_or_free, 
199         service_dirs_append_link_unique_or_free): New static methods
200         for only appending unique service directory names into
201         the service directory list
202         (merge_included, bus_config_parser_content): Only add unique
203         service directory names into the list
204
205 2006-10-27  Havoc Pennington  <hp@redhat.com>
206
207         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
208         variables volatile, suggested by Thiago. Document struct fields.
209         (PTHREAD_CHECK): remove pthread error checking if assertions are
210         disabled, should reduce the no-assertions case to the bare
211         minimum code.
212
213 2006-10-26  Havoc Pennington  <hp@redhat.com>
214         
215         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
216         to be recursive
217         (_dbus_pthread_mutex_unlock): make it recursive
218         (_dbus_pthread_condvar_wait): save/restore the recursion count
219         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
220
221 2006-10-26  Havoc Pennington  <hp@redhat.com>
222
223         * doc/dbus-specification.xml: clarify the UUID text slightly
224
225         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
226         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
227         in preparation for being able to extend them for e.g. recursive
228         mutexes.
229
230 2006-10-26  Havoc Pennington  <hp@redhat.com>
231
232         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
233         condition variables relate to recursive mutexes.
234         
235         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
236         dbus/dbus-threads.c: Split the platforms-specific thread 
237         implementations into their own files.
238         
239         * dbus/dbus-sysdeps-pthread.c
240         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
241         was backward. Not that anything uses it.
242
243 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
244
245         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
246         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
247         needs to be cleaned up more.
248
249         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
250         up the CREDS issue.
251
252 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
253
254         * configure.in, dbus-1.pc.in: Check to see if thread methods 
255         are in glibc or libpthread and add -lpthread to the link stage 
256         if it is the latter
257
258 2006-10-26  Thiago Macieira  <thiago@kde.org>
259
260         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
261         bug 8780: the connection lock is only required while recording
262         the shared connection, so protect only that code
263         section. Don't require connection_lookup_shared to return a
264         locked connection.
265
266 2006-10-26  Thiago Macieira  <thiago@kde.org>
267
268         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
269         check if get_machine_uuid() returns NULL before proceeding any
270         further: we can't init the X atoms or create a session file
271         name if there is no machine ID.
272         This solves a crash reported by some users if
273         --exit-with-session was used without --autolaunch=<machine-id>
274
275 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
276
277         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
278         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
279
280         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
281         before we run dbus-launch
282
283         * configure.in: define TEST_BUS_BINARY to be the full path to 
284         dbus-daemon in the build root 
285
286 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
287
288         * dbus/Makefile.am:
289         * tools/Makefile.am:
290         * toos/dbus-uuidgen.1:
291                 Move the machine-id file to /var/lib/dbus 
292
293 2006-10-24  David Zeuthen  <davidz@redhat.com>
294
295         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
296         _dbus_assert (thread_init_generation != _dbus_current_generation)
297         not _dbus_assert (thread_init_generation == _dbus_current_generation)
298
299 2006-10-24  Thiago Macieira  <thiago@kde.org>
300
301         * dbus/dbus-sysdeps.h:
302         * dbus/dbus-sysdeps-unix.c: Add function
303         _dbus_make_file_world_readable that chmods a file to 0644.
304
305         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
306         Avoid writing to the static "argv" array, thereby avoiding a
307         COW on the child process.
308
309         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
310         call _dbus_make_file_world_readable on the created file.
311
312 2006-10-23  David Zeuthen  <davidz@redhat.com>
313
314         * dbus/dbus-memory.c: Use atomic variable to protect
315         n_blocks_outstanding otherwise OOM will be reported using SMP on
316         some arches
317         
318         * bus/dispatch.c: Add missing end of line characters
319
320         * bus/desktop-file.c (parse_section_start, parse_key_value) 
321         (bus_desktop_file_load): Propertly handle OOM
322
323         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
324         thread_init_generation equals _dbus_current_generation, not 0
325
326 2006-10-22  Havoc Pennington  <hp@redhat.com>
327
328         * dbus/dbus-connection-internal.h: move prototype of
329         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
330         it isn't in a public header and doesn't end up in the DBusBus
331         group in Doxygen
332
333 2006-10-21  Havoc Pennington  <hp@redhat.com>
334
335         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
336         the tarball if packagers want to run it
337
338         * cleanup-man-pages.sh: Add a script which munges all the internal
339         API man pages out of the Doxygen output. This reduces the size of
340         the installed man pages from 7 to 2 megs, and avoids
341         namespace-polluting pages. Right now (like Doxygen) this script
342         isn't in the build, it's something packagers can do manually.
343
344 2006-10-21  Havoc Pennington  <hp@redhat.com>
345
346         * dbus/dbus-connection.h: don't include the watch/timeout
347         functions in connection section
348
349 2006-10-21  Havoc Pennington  <hp@redhat.com>
350
351         * Documentation! Whee! Doxygen now 100% silent. If you make it
352         angry again, you will be punished.
353         
354 2006-10-21  Havoc Pennington  <hp@redhat.com>
355
356         * More documentation - all public API now documented according to
357         Doxygen
358
359 2006-10-21  Havoc Pennington  <hp@redhat.com>
360
361         * Document a bunch of undocumented stuff
362         
363 2006-10-21  Havoc Pennington  <hp@redhat.com>
364
365         * Clean up Doxygen group markers for public API so Doxygen finds
366         everything (not comprehensively fixed for private API).
367         Means all remaining Doxygen warnings are just about missing docs
368         and thus pretty simple to resolve.
369         
370 2006-10-21  Havoc Pennington  <hp@redhat.com>
371         
372         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
373
374         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
375         as DBUS_GNUC_DEPRECATED
376
377 2006-10-21  Havoc Pennington  <hp@redhat.com>
378
379         * Move all private API into the private Doxygen group sections of
380         the files, so they don't show up in the public API docs
381         
382 2006-10-21  Havoc Pennington  <hp@redhat.com>
383
384         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
385         dbus_message_iter_get_array_len().
386
387         * throughout: documentation improvements.
388
389 2006-10-20  Havoc Pennington  <hp@redhat.com>
390
391         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
392         matter, and the message-loader-breaker thing since nobody is going
393         to do it.  Add an item to 1.0 about supporting recursive locks
394         in dbus_threads_init_default() though, since it should be easy.
395
396         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
397         Fix this in the !dispatch case to avoid busy-looping after
398         disconnection
399
400         * More misc docs improvements
401
402 2006-10-19  Havoc Pennington  <hp@redhat.com>
403
404         * more Doxygen-related fixes (lots of moving things from the
405         public to internal section in dbus-connection.c)
406
407 2006-10-19  Havoc Pennington  <hp@redhat.com>
408
409         * Fix a pile of Doxygen warnings and missing docs
410
411 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
412
413         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
414         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
415         instead of a void *.  kqueue uses this to get the context's loop
416         while the other modules ignore the parameter.  This allows us to
417         avoid platform conditionals
418
419         * bus/bus.c (process_config_postinit): Pass in the context to the 
420         watch
421
422 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
423
424         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
425         when starting the system bus
426
427 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
428
429         * configure.in: More fixups for cross compile (Patch from 
430         Marco Pracucci <development at pracucci dot com>)
431
432 2006-10-17  Havoc Pennington  <hp@redhat.com>
433
434         * tools/dbus-send.c (main): don't close shared connection, fix
435         from Timo Hoenig
436
437 2006-10-17  Havoc Pennington  <hp@redhat.com>
438
439         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
440
441         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
442         since realistically it doesn't look like we'll be changing it
443         anymore.
444
445 2006-10-17  Havoc Pennington  <hp@redhat.com>
446
447         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
448         be used for return_if_fail type warnings; prefixes the pid, and
449         fatal by default.
450
451 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
452
453         * configure.in: Released 1.0 RC 2(0.94)
454         Add check for -fPIC and enable it if available
455
456 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
457
458         * doc/TODO: Remove the check TODO item
459
460 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
461
462         * dbus-transport-socket.c (exchange_credentials):
463         Print out more detailed errors if reading or sending
464         credentials fail (Patch from Julio M. Merino Vidal 
465         <jmmv at NetBSD dot org>)
466
467 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
468
469         * configure.in: when checking for posix getpwnam_r assume true
470         for cross compiles
471
472 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
473
474         * configure.in: Check for gethostbyname first before we check for it
475         in libnsl.  On gnu systems it is implemeneted 
476
477 2006-10-13  Havoc Pennington  <hp@redhat.com>
478
479         * dbus/dbus-connection.c
480         (dbus_connection_send_with_reply_and_block): fix to handle closed
481         connections, from Tambet Ingo bug #8631
482
483 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
484
485         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
486
487 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
488
489         * test/name-test/Makefile.am: don't link against both libdbus and
490         libdbus-convenience
491
492 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
493
494         * configure.in: check for dirfd even if it is a macro
495         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
496
497 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
498
499         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
500         avoid using dirfd on systems that don't have dirfd 
501         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
502
503 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
504
505         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
506         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
507
508         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
509         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
510         macro because _dbus_abort calls it
511
512         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
513         works
514
515 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
516
517         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
518         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
519
520 2006-10-02  Thiago Macieira  <thiago@kde.org>
521
522         * tools/dbus-launch.c (main): make it complain and abort
523         execution in case an unknown option is given. Also, process
524         the '--' argument as the end of arguments.
525
526 2006-10-01  Havoc Pennington  <hp@redhat.com>
527
528         * tools/dbus-launch.c (print_variables): if no syntax is given,
529         don't print something that's sort-of-half-sh-syntax, just print
530         a plain key-value pairs thing.
531
532         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
533         the local machine representation (but still have the hostname in
534         the display). Remove the hostname from the display if it is
535         localhost. Change session files to be named
536         ~/.dbus/session-bus/machine-display. Change X atoms to be
537         underscore-prefixed so nobody whines about ICCCM compliance.
538         Otherwise name them the same as the env variables.
539         Change session file format to include key-value pairs and an
540         explanatory comment. Keys are the same as the env variables.
541         (set_address_in_x11): X property format can't depend on
542         sizeof(pid_t) on a particular machine, fix to always be 32 bits
543
544         * tools/dbus-launch.c: make --autolaunch take a machine id
545         argument. If --autolaunch is used with a program to run, complain
546         for now (but add a FIXME). Also, don't look for existing bus if 
547         there's a program to run (but add a FIXME).
548
549         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
550         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
551         just to get this, and avoids duplicating uuid-reading code).
552
553         * tools/dbus-launch.1: clarify various things
554         
555 2006-10-01  Havoc Pennington  <hp@redhat.com>
556
557         * test/test-service.c (path_message_func): remove broken extra
558         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
559
560         * test/test-shell-service.c (path_message_func): same fix
561         
562         * dbus/dbus-connection.c
563         (_dbus_connection_get_dispatch_status_unlocked): break up the
564         function a little for clarity and fix the notification of
565         dbus-bus.c to not require dispatch to be complete
566
567         * dbus/dbus-connection.c (dbus_connection_unref): improve the
568         warning when you try to finalize an open connection.
569         
570 2006-10-01  Havoc Pennington  <hp@redhat.com>
571
572         * dbus/dbus-bus.c
573         (internal_bus_get): only weak ref the connection; this means 
574         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
575         called safely in any context
576         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
577         unref
578
579         * dbus/dbus-connection.c
580         (_dbus_connection_get_dispatch_status_unlocked): move
581         _dbus_bus_notify_shared_connection_disconnected_unlocked here
582         when queuing Disconnected instead of when the Disconnected message
583         arrives, so dbus_bus_get() won't return closed connections.
584         
585 2006-10-01  Havoc Pennington  <hp@redhat.com>
586
587         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
588         Add a hack to make DBusNewConnectionFunction work right.
589
590         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
591         the hack here. Also, fix the todo about refcount leak.
592         
593         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
594         and use the hack here
595         
596         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
597         "shareable" flag; this was completely broken, since it meant 
598         dbus_connection_open() returned a connection of unknown
599         shared-ness. Now, we always hold a ref on anything opened 
600         as shareable.
601
602         Move the call to notify dbus-bus.c into
603         connection_forget_shared_unlocked, so libdbus consistently forgets
604         all its knowledge of a connection at once. This exposed numerous
605         places where things were totally broken if we dropped a ref inside
606         get_dispatch_status_unlocked where
607         connection_forget_shared_unlocked was previously, so move
608         connection_forget_shared_unlocked into
609         _dbus_connection_update_dispatch_status_and_unlock. Also move the
610         exit_on_disconnect here.
611
612         (shared_connections_shutdown): this assumed weak refs to the
613         shared connections; since we have strong refs now, the assertion 
614         was failing and stuff was left in the hash. Fix it to close
615         still-open shared connections.
616         
617         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
618         debug pipe connections
619         
620         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
621         dbus-bus.c if the closed connection is in fact shared
622         (_dbus_connection_close_possibly_shared): rename from 
623         _dbus_connection_close_internal
624         (dbus_connection_close, dbus_connection_open,
625         dbus_connection_open_private): Improve docs to explain the deal
626         with when you should close or unref or both
627
628         * dbus/dbus-bus.c
629         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
630         from _dbus_bus_check_connection_and_unref_unlocked and modify to
631         loop over all connections
632
633         * test/test-utils.c (test_connection_shutdown): don't try to close
634         shared connections.
635
636         * test/name-test/test-threads-init.c (main): fix warnings in here
637
638         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
639         env variable to cause blocking waiting for gdb; drop
640         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
641         unconditionally.
642
643         * configure.in: add -export-dynamic to libtool flags if assertions enabled
644         so _dbus_print_backtrace works.
645
646         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
647         instead of _dbus_verbose to print the backtrace, and diagnose lack 
648         of -rdynamic/-export-dynamic
649         
650 2006-09-30  Havoc Pennington  <hp@redhat.com>
651
652         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
653         (internal_bus_get): fix screwy code formatting. whoever committed
654         that was not paying attention!
655
656 2006-09-30  Havoc Pennington  <hp@redhat.com>
657
658         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
659         reflect addition of interfaces.
660
661         * doc/dbus-specification.xml: describe a new
662         org.freedesktop.DBus.Peer.GetMachineId method
663
664         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
665         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
666         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
667         at end of skip_white
668         (_dbus_string_chop_white): new function
669
670         * bus/connection.c (bus_connections_setup_connection): call
671         dbus_connection_set_route_peer_messages.
672
673         * dbus/dbus-connection.c
674         (_dbus_connection_peer_filter_unlocked_no_update): modify to
675         support a GetMachineId method.
676
677         Also, support a new flag to let the bus pass peer methods through
678         to apps on the bus, which can be set with
679         dbus_connection_set_route_peer_messages.
680
681         Finally, handle and return an error for anything unknown on the
682         Peer interface, which will allow us to extend the Peer interface
683         in the future without fear that we're now intercepting something
684         apps were wanting to see.
685         
686         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
687         dbus/dbus-uuidgen.c
688
689         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
690         binary here, since most of the code is already in libdbus
691
692         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
693         uuid from the system config file
694
695         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
696         (_dbus_read_uuid_file_without_creating) 
697         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
698         uuid-related functions, partly factored out from dbus-server.c
699
700         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
701         DBUS_ERROR_FILE_EXISTS instead of EEXIST
702
703         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
704
705         * tools/dbus-cleanup-sockets.1: explain what the point of this
706         thing is a bit more
707
708         * autogen.sh (run_configure): add --config-cache to default
709         configure args
710
711         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
712         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
713
714         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
715         don't try to save address, fixes crash in make check
716         
717 2006-09-30  Thiago Macieira  <thiago@kde.org>
718
719         * configure.in: add DBUS_BINDIR as a #define to C source code.
720
721         * tools/dbus-launch.c
722         * tools/dbus-launch.h
723         * tools/dbus-launch-x11.c:
724         * tools/dbus-launch.1: Add the --autolaunch option to
725         dbus-launch, which makes it scan for an existing session
726         started with --autolaunch. With that option, it also creates
727         an X11 window and saves the bus address and PID to it.
728
729         * dbus/dbus-sysdeps.h:
730         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
731         a function that runs "dbus-launch --autolaunch" to retrieve
732         the running D-Bus session address (or start one if none was running)
733
734         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
735         address protocol, which tries to get the running session from
736         dbus-launch.
737
738         * dbus/dbus-bus.c:
739         * dbus/dbus-internals.h: Make "autolaunch:" be the default
740         D-Bus session bus address.
741
742         * dbus/dbus-connection.c: Fix horrible typo in error message.
743
744 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
745
746         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
747
748 2006-09-17  Havoc Pennington  <hp@redhat.com>
749
750         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
751         fix so that if unix_user_function is set on windows, we still
752         do the default check that the auth identity matches the bus identity
753
754 2006-09-16  Havoc Pennington  <hp@redhat.com>
755
756         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
757         to _dbus_transport_open_platform_specific,
758         _dbus_transport_open_socket,
759         and _dbus_transport_open_debug_pipe
760
761         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
762
763 2006-09-16  Havoc Pennington  <hp@redhat.com>
764
765         Attempt auditing public API to remove all cases where a Unix
766         function returns weird emulated goo to Windows. This probably 
767         breaks the bus daemon on Windows, to fix it again we may 
768         need to stop processing unix-specific config options on Windows,
769         and may need to add Windows-specific public API or config options.
770         
771         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
772         to reflect added interfaces; should not break soname.
773         
774         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
775         not invoke unix user function on Windows. Kind of a hacky fix, but 
776         we don't want a "unix uid" leaking out on Windows.
777
778         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
779         to get the socket fd on Windows or UNIX
780         (dbus_connection_get_unix_fd): make this always fail on Windows
781
782 2006-09-16  Havoc Pennington  <hp@redhat.com>
783
784         * dbus/dbus-server.c (dbus_server_listen): change how this works
785         to be able to delegate to a set of handlers that can succeed,
786         fail, or choose not to handle. Allows us to have 
787         dbus_server_listen_platform_specific.
788
789         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
790         factor out the tcp socket stuff to be used on windows, leaving
791         unix domain socket only in dbus-socket-unix.c
792
793         * dbus/dbus-transport-socket.c
794         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
795         stuff to be used on windows, leaving unix domain socket only 
796         in dbus-transport-unix.c
797
798         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
799         temporary hack to be sure this fails on windows
800         (dbus_connection_get_unix_process_id): ditto
801
802 2006-09-16  Havoc Pennington  <hp@redhat.com>
803
804         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
805         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
806         _dbus_open_socket so the domain/type/protocol from system headers
807         are not required. This is kind of pointless though unless we move
808         part of _dbus_connect_tcp_socket into sysdeps.c instead of
809         sysdeps-unix.c, which would mean adding a wrapper around
810         bind/listen/etc.
811         Also, add DBusError to the socket-opening functions so they 
812         don't require use of errno.
813
814 2006-09-16  Havoc Pennington  <hp@redhat.com>
815
816         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
817         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
818
819         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
820         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
821         functions specifically for sockets only, and move generic 
822         read/write/open/close into unix-specific code.
823
824 2006-09-14  Havoc Pennington  <hp@redhat.com>
825
826         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
827         complaint about accessing revents when poll returns 0, from Julian Seward.
828
829 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
830
831         * Released 1.0 RC 1 (0.93) 
832
833 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
834
835         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
836         use _dbus_close instead of close
837
838 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
839
840         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
841         credentials.  Fixes "external" authentication under e.g. NetBSD
842         which does not support any other socket credentials mechanism.
843         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
844
845 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
846
847         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
848         dbus_threads_init and be used by the dbus mutex functions to
849         avoid deadlocks.
850
851         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
852
853 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
854
855         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
856         use threadsafe readdir_r instead of readdir
857
858 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
859
860         * dbus-threads.c (dbus_threads_init_default): New method for
861         initializing the internal thread implementation (Patch from
862         Alexander Larsson <alexl at redhat dot com>)
863
864 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
865
866         * remove a bunch of todo items from the 1.0 list
867
868 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
869
870         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
871         key not found
872
873 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
874
875         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
876         complex debugging code
877
878         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
879         between the test suite ifdefs
880         (_dbus_verbose_bytes): return if verbosity is not enabled 
881
882 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
883
884         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
885         remove DBusMark
886
887 2006-09-10  Havoc Pennington  <hp@redhat.com>
888
889        patch mostly by Peter Kümmel, bug #8211
890         
891         * dbus/dbus-sysdeps-unix.c: new file, which splits out
892         unix-specific stuff in dbus-sysdeps.c
893
894         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
895         and move unix-specific stuff to dbus-sysdeps-unix.c
896
897         * configure.in: check HAVE_ERRNO_H
898         
899 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
900
901         * bus/test-main.c (main): Initialize threading during tests
902
903         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
904         Unlock connection on error
905         (generate_local_error_message): static method for generating
906         an error message when we don't have a message to reply to
907         (_dbus_connection_block_pending_call): Send a disconnect error
908         instead of just a timeout (NULL) when the bus gets disconnected
909         while blocking for a reply.
910         
911 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
912
913         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
914         filters (Patch from Kimmo Hämäläinen 
915         <kimmo dot hamalainen at nokia dot com>)
916
917 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
918
919         * dbus/dbus-connection-internal.h: Add prototype for 
920         _dbus_connection_test_get_locks to remove warning
921
922 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
923
924         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
925         close child_err_report_pipe[WRITE_END] on exec (Patch from 
926         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
927
928 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
929
930         * Clean up close calls to use _dbus_close (Patch from 
931         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
932
933 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
934
935         * doc/TODO:
936         - Remove pending call locking todo item
937         - dbus_connection_open now holds hard ref.  Remove todo item
938         - do proper locking on _dbus_bus_check_connection_and_unref
939           and handle DBUS_BUS_STARTER. Remove todo item
940         - Warn on closing of a shared connection.  Remove todo item
941
942         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
943         dbus/dbus-connection.c: Use the dbus_connection_close_internal
944         so we don't get the warning when closing shared connections
945
946         * test/test-service.c, test/test-shell-service.c: Applications
947         don't close shared connections themselves so we unref instead of
948         close
949
950         * test/test-utils.c (test_connection_shutdown): Close the connection
951
952         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
953         _dbus_bus_check_connection_and_unref_unlocked since we only call this
954         method on a locked connection.  
955         Make sure we call _dbus_connection_unref_unlocked instead of 
956         dbus_connection_unref also.
957         Handle DBUS_BUS_STARTER correctly
958
959         * dbus/dbus-connection.c (connection_record_shared_unlocked):
960         Mark as shared and hard ref the connection
961         (connection_forget_shared_unlocked): Remove the hard ref from the 
962         connection
963         (_dbus_connection_close_internal_and_unlock):  New internal function
964         which takes a locked connection and unlocks it after closing it
965         (_dbus_connection_close_internal): New internal function which acts
966         like the origonal dbus_connection_close method by grabbing a connection
967         lock and calling _dbus_connection_close_internal_and_unlock
968         (dbus_connection_close): Public close method, warns when the app
969         trys to close a shared connection
970
971 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
972
973         * bus/driver.c:
974         (bus_driver_generate_introspect_string): New method for populating
975         a DBusString with the introspect data
976         (bus_driver_handle_introspect): Move introspect generation code to 
977         bus_driver_generate_introspect_string
978
979         * bus/main.c:
980         (introspect): New function which prints out the intropect data and
981         exits
982         (main): Add a --introspect switch
983
984 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
985
986         * doc/TODO: Removed dtd publishing item.  
987         It seems the dtd has already been added at
988         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
989
990 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
991
992         * doc/TODO, various source files: Audited todo's and FIXME's and
993         prepended the ones we should be looking at with 1.0.  Those
994         prepended with 1.0? need clerification or might not be needed
995         for 1.0
996
997 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
998
999         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1000         NULL in the public API (Patch from Kimmo Hämäläinen 
1001         <kimmo dot hamalainen at nokia dot com>)
1002
1003 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1004
1005         * configure.in: Fix for OS-X compile time endian issues (patch from
1006         Benjamin Reed <ranger at befunk dot com>)
1007
1008 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1009
1010         * configure.in: Check for no-common compiler flag (OS-X fix from
1011         Benjamin Reed <ranger at befunk dot com>)
1012
1013 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1014
1015         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1016         <fcrozat at mandriva dot com>)
1017
1018 2006-08-29  Havoc Pennington  <hp@redhat.com>
1019
1020         * test/test-service.c (path_message_func): fix lack of return value
1021
1022         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1023         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1024         any more sense than on anything else in this file.
1025         (_dbus_get_tmpdir): add const to return value, and keep the
1026         results of the various getenv around in a static variable.
1027
1028 2006-08-29  Havoc Pennington  <hp@redhat.com>
1029
1030         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1031         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1032
1033 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1034
1035         * test/Makefile.am: change find to use syntax that works with non
1036         gnu versions of find
1037
1038 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1039
1040         * dbus/dbus-transport.c: fix invalid deref when checking if
1041         a vtable method exists (Patch from Christian Ehrlicher 
1042         <ch dot ehrlicher at gmx dot de>)
1043
1044 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1045
1046         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1047         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1048         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1049         <bernard at brenda-arkle dot demon dot co dot uk>)
1050
1051 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1052
1053         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1054         default case
1055
1056 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1057
1058         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1059         it works on any system providing this interface, not only FreeBSD.
1060         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1061
1062 2006-08-20  Havoc Pennington  <hp@redhat.com>
1063
1064         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1065         the docs
1066
1067 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1068
1069         * Released 0.92 
1070
1071 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1072
1073         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1074         to reflect the init late change
1075
1076         * bus/bus.c (bus_context_new): Check user before we fork so we can
1077         print out an error message a user will be able to see
1078
1079 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1080
1081         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1082
1083         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1084         Add two more global locks for use on windows platforms.  These are
1085         unused on non-windows platforms but are not ifdefed out to avoid
1086         potential bugs (i.e. the few bytes lost does not warrent the extra
1087         maintanence and complexity that having seperate sets of locks would
1088         cause)
1089
1090 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1091
1092         * bus/services.c (bus_registry_acquire_service): Return an error
1093         when an application tries to register the org.freedesktop.DBus Bus Name
1094
1095         * bus/services.c (bus_registry_release_service): Return an error
1096         when an application tries to release the org.freedesktop.DBus Bus Name
1097
1098 2006-08-17  Alp Toker  <alp@atoker.com>
1099
1100         * doc/dbus-specification.xml: Fix some minor typos.
1101
1102 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1103
1104         * configure.in: use $with_init_scripts instead of $operating_system
1105         to determine where to store the pid since the init scripts manipulate 
1106         the pid file (patch from Marcelo Ricardo Leitner 
1107         <marcelo dot leitner at terra dot com dot br>.  
1108
1109 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1110
1111         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1112         static DBusList *uninitialized_condvar_list to support new late 
1113         initialization threading model.  In this model threads can be initialized
1114         even after the D-Bus API has been used but still needs to be initialized 
1115         before the second thread has been started.  Mutexes and condvar addresses
1116         are stored in the two static lists and are replaced with actuall locks
1117         when threads are initalized.
1118         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1119         the location into the static list
1120         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1121         from the static list and freeing the mutex
1122         (_dbus_condvar_new_at_location): New method for creating a conditional 
1123         variable and placing the location into the static list
1124         (_dbus_condvar_free_at_location): New method for removing a conditional
1125         variable location from the static list and freeing the conditional variable 
1126         (init_uninitialized_locks): Atomic method which goes through the static 
1127         lists of mutex and condvar location and updates them with actuall locks
1128         (init_global_locks): changed to init_locks
1129         
1130         * dbus/dbus-connection.c:
1131         (_dbus_connection_test_get_locks): New method for tests to check connections
1132         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1133         condvar API
1134         (dbus_connection_allocate_data_slot): Pass in the global lock address
1135         to _dbus_data_slot_allocator_alloc
1136
1137         * dbus/dbus-dataslot.c:
1138         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1139         instead of the mutex itself
1140
1141         * dbus/dbus-message.c:
1142         (dbus_message_allocate_data_slot): Pass in the global lock address
1143         to _dbus_data_slot_allocator_alloc
1144
1145         * dbus/dbus-pending-call.c:
1146         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1147         to _dbus_data_slot_allocator_alloc
1148
1149         * dbus/dbus-server.c:
1150         (_dbus_server_init_base): Use the new at_location mutex API
1151         (dbus_server_allocate_data_slot): Pass in the global lock address
1152         to _dbus_data_slot_allocator_alloc
1153
1154         * test/name-test/test-threads-init.c: New test case for late thread
1155         initialization
1156
1157 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1158
1159         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1160         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1161         causes compile problems when asserts are turned off
1162         Keeping _dbus_warn for printing out the message so even if
1163         asserts are turned off the user gets the messages that something is 
1164         wrong 
1165
1166 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1167
1168         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1169
1170         * bus/services.c (bus_service_list_queued_owners):
1171         Add a pointer cast to fix compiler warning
1172
1173         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1174         return a NULL instead of FALSE since the return type
1175         is not expecting a boolean
1176
1177         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1178         Remove unused variable
1179
1180         * dbus/dbus-marshal-recursive-util.c (node_new):
1181         return a NULL instead of FALSE since the return type
1182         is not expecting a boolean
1183
1184         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1185         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1186         because we are expecting a pointer not a boolean
1187
1188         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1189         add void as the parameter so some compilers
1190         don't complain
1191
1192         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1193           _dbus_transport_new_for_tcp_socket):
1194         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1195         because we are expecting a pointer not a boolean
1196
1197         * test/shell-test.c (test_command_line):
1198         cast the second argument to _dbus_list_append to avoid compiler
1199         warnings
1200
1201         * test/test-names.c (main): remove unused variable
1202
1203         * test/test-service.c (check_hello_from_self_reply):
1204         Initialize echo_message and echo_reply to NULL
1205         
1206         * test/test-shell-service.c (handle_echo):
1207         Remove unused variable and cast the third parameter passed to
1208         dbus_connection_get_object_path_data to avoid compiler warrnings
1209
1210         * test/name-test/test-names.c (clear_message_queue):
1211         Remove unused function
1212
1213         * test/name-test/test-pending-call-dispatch.c:
1214         Fix format string in printf
1215
1216
1217 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1218
1219         * dbus/dbus-bus.c:
1220         * test/name-test/test-names.c:
1221         Remove test method dbus_bus_connection_get_unique_name because 
1222         we already have public method dbus_bus_get_unique_name that 
1223         does the exact same thing
1224
1225 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1226
1227         * dbus/dbus-signature.c:
1228         fix typos in Julio's previous patch which cause make check to fail
1229
1230 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1231
1232         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1233         In any case it was wrong since this is a test checking to see if
1234         address parsing is correct.  There was no need to get the true
1235         tmp directory.  
1236
1237 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1238
1239         * dbus/dbus-macros.h: Revert the addition of stddef.h
1240         as we should not be adding it to library headers 
1241
1242 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1243
1244         * dbus/dbus-signature.c:
1245         Fix the unit tests so that they work if assertions are not enabled.
1246         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1247
1248 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1249
1250         * tools/run-with-tmp-session-bus.sh:
1251         * test/name-test/run-test.sh:
1252         Remove bashisms (patch from Julio M. Merino Vidal
1253         <jmmv at NetBSD dot org>)
1254
1255 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1256
1257         * configure.in: add a version (>= 2.6.0) check for libxml2
1258
1259 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1260
1261         * configure.in: make sure the compiler supports -Wfloat-equal
1262         
1263         * bus/dir-watch-dnotify.c: move functional code after 
1264         variable declerations (C99 fix)  (patches from Jens Granseuer
1265         <jensgr at gmx dot net>
1266
1267 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1268
1269         * dbus/dbus-macros.h:
1270         add #include <stddef.h> so that Sun compilers don't complain about
1271         the defining NULL
1272
1273 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1274
1275         * dbus/dbus-sysdeps.c:
1276         * dbus/dbus-address.c:
1277         * bus/activation.c:
1278         * test/shell-test.c:
1279         don't hardcode tmp directory (patch from Dave Meikle 
1280         <dmk at davemeikle dot co dot uk>)
1281
1282 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1283
1284         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1285         Change an assert to a detailed warning and abort.  
1286         When allocator->lock != mutex it indicates that the user has failed
1287         to initalize threads before using the D-Bus library.  This warning
1288         helps the user identify the issue and fix their app.
1289
1290 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1291
1292         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1293         with cleanups of bugs found from Coverity reports:
1294
1295         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1296         close the file on error to avoid a leak
1297
1298         * bus/expirelist.c (bus_expire_list_test):
1299         Check for NULL on dbus_new0
1300
1301         * bus/activation.c (update_directory):
1302         remove dead code
1303
1304         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1305         Fix some leaks
1306
1307         * bus/bus.c (process_config_every_time):
1308         Fixed a leak
1309
1310         * bus/desktop-file.c (parse_key_value):
1311         Fixed leak
1312
1313         * bus/selinux.c (bus_selinux_id_table_insert):
1314         Fixed leak
1315
1316 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1317
1318         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1319         remove dead code
1320
1321 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1322
1323         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1324         #!/bin/bash
1325
1326 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1327
1328         * Doxyfile.in: fix the INPUT line so we can generate docs 
1329         when sourcedir != builddir (patch from Cygwin Ports maintainer
1330         <yselkowitz at users dot sourceforge dot net>
1331
1332 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1333
1334         * dbus/dbus-sysdeps.h:
1335         * dbus/dbus-sysdeps.c: 
1336         * dbus/dbus-string.c: 
1337         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1338         GLib's function which does the same thing
1339
1340         * configure.in:
1341         * bus/Makefile.am:
1342         * bus/dir-watch-default.c:
1343         * bus/dir-watch-dnotify.c:
1344         * bus/dir-watch-kqueue.c:
1345         Add kqueue directory watching for freebsd and split the directory
1346         watching code into seperate files per method/arch
1347         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1348
1349 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1350
1351         * configure.in:
1352         * tools/Makefile.am:
1353         * tools/dbus-launch.c:
1354         * bus/Makefile.am:
1355         allow --with-dbus-daemondir switch to be used to make the
1356         daemon install to a seperate bindir like /usr/libexec
1357         (patch from Brian Cameron <brian dot cameron at sun dot com)
1358
1359 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1360
1361         * bus/Makefile.am (install-data-hook): removed the slash after 
1362         $(DESTDIR) so we don't get the double slash which does not work
1363         in windows (patch from Andras Porjesz 
1364         <andras dot porjesz at siemens dot com>)
1365
1366 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1367
1368         * dbus/dbus-sysdeps.h:
1369         * dbus/dbus-sysdeps.c: 
1370           add _dbus_printf_length (patch from Peter Kümmel 
1371           <syntheticpp at gmx dot net>)
1372
1373 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1374
1375         * dbus/dbus-internals.c: unistd.h is not used 
1376         (_dbus_verbose_real): only enable verbose printing 
1377         if DBUS_VERBOSE environment var is set to '1'
1378         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1379
1380 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1381
1382         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1383         so we still compile on older gcc (patch from Frederic Peters 
1384         <fpeters at 0d dot be>
1385
1386 2006-08-04  Havoc Pennington  <hp@redhat.com>
1387
1388         * configure.in: add -Wdeclaration-after-statement
1389
1390         * dbus/dbus-connection.c: change all the pending call stuff to
1391         reflect the fact that pending call operations use the connection
1392         lock
1393
1394         * dbus/dbus-pending-call.c: add locking here
1395
1396         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1397         field const consistent with how message field is done
1398
1399 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1400
1401         * s/D-BUS/D-Bus/g
1402
1403 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1404
1405         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1406         <in7y118 at public.uni-hamburg dot de> - fix invalid
1407         read/write reported by valgrind
1408
1409 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1410
1411         * Released 0.91
1412
1413 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1414
1415         * dbus/dbus-connection.c:
1416         (_dbus_connection_attach_pending_call_unlocked):
1417         (connection_timeout_and_complete_all_pending_calls_unlocked):
1418         Make sure we set timeout_added on pending calls to FALSE when
1419         we remove the timeout from the connection
1420
1421 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1422
1423         * Removed some extra bindings stuff lingering around (thanks timo)
1424         * dbus-pendingcall.c (_dbus_pending_call_new): 
1425         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1426         when we tried to take a lock on an already locked connection
1427
1428 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1429
1430         * Released 0.90
1431
1432 2006-07-17  Havoc Pennington  <hp@redhat.com>
1433
1434         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1435         ints, reported by Owen Taylor
1436
1437 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1438
1439         * doc/TODO:
1440         * dbus/dbus-bus.c:
1441         * dbus-errors.c:
1442         * dbus/dbus-marshal-validate.c:
1443           Removed TODO items which were fixed or are no longer relevent
1444
1445 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1446
1447         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1448         Remove stray files from the stripped bindings
1449
1450 2006-07-16  Havoc Pennington  <hp@redhat.com>
1451
1452         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1453         Improve the error message on reply timeout
1454
1455 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1456
1457         * Remove all bindings
1458
1459 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1460
1461         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1462         and set pending_reply out arg to NULL is connection is disconnected
1463         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1464         static method for cleaning up pending calls on disconnect
1465         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1466         calls queued timeouts on disconnect 
1467
1468          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1469         Remove 
1470
1471 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1472
1473         * bus/activation.[ch] (bus_activation_list_services): new function to 
1474         get the list of services that can be activated
1475
1476         * bus/dispatch.c: test coverage for the new bus method
1477         ListActivatableNames
1478
1479         * bus/driver.c: new bus method ListActivatableNames to get the list of
1480         services that can be activated
1481
1482         * doc/dbus-specification.xml: ListActivatableNames method documentation
1483
1484 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1485         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1486         source files
1487
1488 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1489         * dbus/dbus-message-factory.c:
1490         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1491
1492 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1493         * dbus/dbus-connection-internal.h:
1494         * dbus/dbus-connection.c:
1495         * file dbus/dbus-pending-call.c:
1496         * dbus/dbus-pending-call.h:
1497         Make DBusPendingCall an opaque type even to D-Bus internals
1498
1499 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1500
1501         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1502         connection_close
1503
1504         * dbus/dbus-connection.c: include dbus-bus.h
1505         (_dbus_connection_read_write_dispatch): make static
1506
1507 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1508
1509         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1510         function
1511         (dbus_connection_dispatch): On disconnect unref any shared connections
1512
1513         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1514         for cleaning up shared connections on disconnect
1515         (internal_bus_get): get a hard refrence to shared connections when
1516         they are created
1517         
1518         * doc/TODO: Remove items which are no longer relevent or have been fixed
1519         Split 1.0 todo items with a 0.90 freeze todo list
1520  
1521 2006-06-14  Ross Burton  <ross@openedhand.com>
1522
1523         * glib/dbus-gobject.c:
1524         Free a leaking GArray (surely not!) in dbus_g_method_return.
1525
1526 2006-06-14  Ross Burton  <ross@openedhand.com>
1527
1528         * tools/Makefile.am:
1529         * tools/dbus-monitor.c:
1530         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1531         Habacker).
1532         
1533 2006-06-14  Ross Burton  <ross@openedhand.com>
1534
1535         * tools/dbus-print-message.c:
1536         Also print the object path when outputting signals or method calls.
1537
1538 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1539
1540         * qt/src/Makefile.am: install the qdbus.h header.
1541         This allows people to actually use the installed code.
1542
1543 2006-06-12  Ross Burton  <ross@openedhand.com>
1544
1545         * glib/dbus-gproxy.c:
1546         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1547
1548 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1549
1550         * Released 0.62
1551
1552 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1553
1554         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1555         break pedantic builds. Closes bug 6043 (patch approved by
1556         Havoc back in February).
1557
1558 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1559
1560         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1561         that took a QDBusMessage parameter.
1562         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1563         * qt/tools/dbus.cpp: Don't use automatic call because we might
1564         be calling an async method: request a reply.
1565
1566 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1567
1568         * test/qt/*: Update the testcases, including testing the new
1569         functionality of sending null QByteArray and QString over the
1570         bus. Add new headertest test and restore the old
1571         qdbusxmlparser test.
1572
1573 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1574
1575         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1576         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1577
1578         * qt/examples/Makefile.am:
1579         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1580         form.
1581
1582         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1583         QByteArray() (nulls) over the bus.
1584         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1585         the one that has the signature suffix stripped.
1586         * qt/src/qdbusreply.h: Make some methods const.
1587
1588 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1589
1590         Patch from Timo Hoenig <thoenig@suse.de>.
1591
1592         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1593         required during build to EXTRA_DIST.
1594         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1595         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1596         * configure.in: Fix "make dist", take care that the Makefile for
1597         qt/dbus is being generated.
1598
1599 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1600
1601         * bus/bus.c: Fix eavesdropping on method calls
1602
1603 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1604
1605         * configure.in:
1606         * dbus/dbus-userdb-util.c:
1607         Add Solaris console owner patch from Artem Kachitchkine
1608
1609 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1610
1611         * qt/Makfile.am:
1612         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1613         reorganisation. Thanks to Timo Hoenig for pointing this out.
1614
1615 2006-06-06  Robert McQueen  <robot101@debian.org>
1616
1617         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1618           call to dbus_g_type_get_struct.
1619
1620 2006-06-06  Robert McQueen  <robot101@debian.org>
1621
1622         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1623           pointers were put into a GPtrArray-based specialised collection, and
1624           then freed along with the array. GValues which you add into
1625           collections or maps which have the NOCOPY flag set are assumed to not
1626           belong to the caller, so rather than the existing pointer-stealing
1627           semantics, they are copied instead. Given that the main consumers of
1628           this abstraction are the bindings themselves, I don't think this is
1629           too bad, but others should watch their choice of take vs set_static.
1630
1631 2006-06-06  Robert McQueen  <robot101@debian.org>
1632
1633         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1634           of g_slist_prepend not being used. Fixed copying of slist-based
1635           specialised collections, then wrote a test case and found that it was
1636           all broken. Went on to fix iterating and appending too. Good thing
1637           nobody uses this code yet.
1638
1639 2006-06-06  Robert McQueen  <robot101@debian.org>
1640
1641         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1642           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1643           are discarded without unsetting, so it makes no difference whether
1644           we take or set_static). Remove cases for G_TYPE_POINTER because
1645           there really is nothing useful we can do with them in our
1646           specialised types - we *need* boxed copy/free functions at the very
1647           least.
1648
1649 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1650
1651         * qt/dbus: Add directory. I had forgotten to add this
1652         yesterday after the move...
1653
1654         * qt/examples/Makefile.am:
1655         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1656
1657         * qt/tools/Makefile.am:
1658         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1659         Added feature to get and set properties.
1660         Added validation of service, object path and interface names.
1661
1662         * qt/tools/dbusidl2cpp.cpp: Two new features:
1663         1) Allow specifying both the header and the source file names,
1664         by separating them with a colon.
1665         2) Don't write an interface output if the -p switch wasn't
1666         given, but the -a was.
1667
1668         * qt/src/*: Fix usage of Iterators and ConstIterators.
1669         Fix shadowing of variables by other variables (-Wshadow).
1670         Fix keyword-cleanliness in headers.
1671         Fix ASCII-cast (QLatin1String, QLatin1Char).
1672         Fix validation of member names.
1673         Add extra checking of introspection data during XML parsing.
1674         Various bug fixes.
1675
1676 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1677
1678         * dbus/Makefile.am:
1679         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1680         qt/dbus/qdbus.h now.
1681
1682 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1683
1684         * configure.in: Make --disable-qt actually do
1685           something. Patch inspired by Zack Rusin.
1686
1687 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1688
1689         * qt/: Update to Subversion r548032.
1690         This includes a big reorganisation of the files inside the
1691         subdir.
1692
1693 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1694
1695         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1696         clear:  
1697         "Failed to connect to socket <host>:<port> <error>" instead of
1698         "Failed to connect to socket <host>: <error>:<port>"
1699
1700         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1701         for a tcp transport. 
1702
1703 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1704
1705         * qt/*: Update the QtDBus bindings up to revision 546310 in
1706         Subversion.
1707         This adds the dbuscpp2xml tool, that parses a C++ header and
1708         outputs a D-BUS Introspection XML.
1709
1710 2006-05-21  Havoc Pennington  <hp@redhat.com>
1711
1712         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1713         is not NULL when it shouldn't be. Also a couple of possible fixes
1714         for #4637 though I don't understand why the bug happens, to be
1715         honest... also the object constructor has an assert name != NULL
1716         and the name is only currently NULL for peer-to-peer proxies that 
1717         I don't think anyone uses? So it should be asserting.
1718         Anyway, for now at least see if we get an earlier assertion failure.
1719
1720         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1721         apparently broken code to be sure the tests fail and someone 
1722         will fix them...
1723
1724 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1725
1726         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1727         and arrays when they had a single element: has_next returns
1728         false, even before you read the element. So, instead, check
1729         the array length.
1730
1731 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1732
1733         * qt/qdbusmessage.cpp:
1734         * qt/qdbustypehelper_p.h:
1735         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1736         the list is a const-reference
1737
1738 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1739
1740         * Adding old doc patch that never got applied
1741         
1742         * dbus/bus.c (dbus_bus_add_match): Add documentation
1743
1744         * doc/dbus-specification.xml: Add documentation for the match rules
1745           and the AddMatch and RemoveMatch methods
1746
1747 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1748
1749         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1750         call (r535506)
1751
1752         * qt/dbusidl2cpp.cpp:
1753         * qt/qdbusabstractadaptor.cpp:
1754         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1755         sibling of the QDBusAbstractAdaptor objects instead of the
1756         parent. (r535848)
1757
1758         * qt/dbusidl2cpp.cpp:
1759         * qt/qdbusabstractinterface.cpp:
1760         * qt/qdbusabstractinterface.h:
1761         * qt/qdbusabstractinterface_p.h:
1762         * qt/qdbusinterface.cpp: Make properties in interfaces
1763         actually work. The code that was generated would not compile,
1764         due to moc calls to functions that did not exist. They now
1765         shall. (r536571)
1766
1767 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1768
1769         * Makefile.am:
1770         * configure.in:
1771         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1772         Thanks to Brad Hards for providing the patch
1773
1774 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1775
1776         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1777         call. (r535506)
1778
1779 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1780
1781         * qt/examples/dbus.cpp: Enhance error messages and use
1782         QDBusInterfacePtr.
1783
1784 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1785
1786         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1787         and disable the copy operators. (r533772, r534746)
1788
1789         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1790
1791         * qt/qdbusabstractinterface.cpp:
1792         * qt/qdbusabstractinterface.h: Change the default call mode to
1793         not use the event loop. Add convenience call() methods that
1794         take a CallMode parameter. (r534042)
1795
1796         * qt/qdbusconnection.h: Change the default call mode to not
1797         use the event loop. (r534042)
1798
1799         * qt/qdbusinterface.cpp:
1800         * qt/qdbusinterface.h: Add a method to tell us if the
1801         interface is valid (since we don't return a null pointer
1802         anymore) (r534099)
1803
1804         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1805         (r534101)
1806
1807         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1808         function in two so taht we get the chance to introspect
1809         without having a QDBusMessage (r534102)
1810
1811         * qt/qdbusbus.h:
1812         * qt/qdbusconnection.cpp:
1813         * qt/qdbusconnection_p.h:
1814         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1815         avoid a round-trip to the server when attempting to introspect
1816         one of our own objects. Also make sure the filter functions
1817         match the empty interface as well. (r534108)
1818         Don't keep the connection names. Instead, trust the unique
1819         connection name (r534111)
1820         Remove event loop usage (r534112)
1821
1822 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1823
1824         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1825         Brad Hards.
1826
1827 2006-04-28  Robert McQueen  <robot101@debian.org>
1828
1829         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1830         any order, making it easier for people who inherit from this
1831         object.
1832
1833 2006-04-28  Robert McQueen  <robot101@debian.org>
1834
1835         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1836         of memory from within pointer arrays and lists. Fixes bug #6300.
1837
1838 2006-04-28  Robert McQueen  <robot101@debian.org>
1839
1840         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1841         generating struct signatures. Fixes bug #6083.
1842
1843 2006-04-28  Robert McQueen  <robot101@debian.org>
1844
1845         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
1846         to qdbusconnection_p.moc.
1847
1848 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
1849
1850         * README, INSTALL: Doc fixes
1851         Patch from Brad Hards <bradh at frogmouth.net>
1852
1853 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1854
1855         * qt/examples/dbus.cpp: Use the new merged-interface mode for
1856         the dynamic meta object. No need to guess which interface to
1857         call.
1858
1859 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1860
1861         * qt/qdbusconnection_p.h:
1862         * qt/qdbusmetaobject.cpp:
1863         * qt/qdbusmetaobject_p.h:
1864         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
1865         for the dynamic meta object. No need to guess which
1866         interface to call.
1867         * qt/qdbusabstractinterface_p.h:
1868         * qt/qdbusconnection.cpp:
1869         * qt/qdbusintegrator.cpp:
1870         * qt/qdbusinterface.cpp:
1871         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
1872         Add a QDBusRef that looks and behaves like DCOPRef.
1873
1874 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1875
1876         * dbus/dbus-connection.c: Interfaces are optional in method
1877         calls, so don't give up if the interface parameter is NULL.
1878         Patch reviewed by Havoc Pennington.
1879
1880 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
1881
1882         * qt/qdbusreply.h: Add default constructor and operator=
1883           (r532625)
1884         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
1885           in public headers (r532952)
1886         * qt/qdbusabstractinterface.cpp:
1887         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
1888           make it the default (r532951)
1889
1890 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1891
1892         * dbus/dbus-connection.c: Fix asserts
1893         Patch from Tim Moloney <t.moloney at verizon.net>
1894
1895 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
1896
1897         * mono/Connection.cs, mono/Message.cs: Check Target type
1898         Patch from Aaron Bockover (abockover at novell.com)
1899
1900 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1901
1902         * INSTALL: fine-tune the requirements for the Qt4 binding.
1903
1904 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
1905
1906         * tools/dbus-print-message.c: Added support for printing of all 
1907           remaining data types. Fixed logic for indentation of compound
1908           data types.
1909         
1910 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
1911
1912         * INSTALL: fill out content of file providing DBus specific
1913           build installations, followed by generic Auto* INSTALL file
1914           content
1915         
1916 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1917
1918         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
1919           Patch by Stefan Eilers. (r529537)
1920
1921 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
1922
1923         * qt/qdbusinternalfilters.cpp: Don't show the parent's
1924           contents (r528208)
1925
1926 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1927
1928         * qt/Makefile.am: fix the dependency for
1929           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
1930           not in qdbusconnection.cpp.
1931           Thanks to Jakub Stachowski <stachowski@hypair.net> for
1932           spotting this.
1933
1934 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1935
1936         * qt/examples/listnames.cpp:
1937         * qt/examples/Makefile.am: Three ways to list the names on the
1938           bus.
1939
1940 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1941
1942         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
1943           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
1944
1945 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
1946
1947         Merge from Subversion:
1948         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
1949           something that exists (r526315)
1950         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
1951           slots/signals (r526316)
1952         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
1953           also return an unknown-method error if the parameters don't
1954           match for org.freedesktop.DBus.Properties. (r526842)
1955         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
1956         * qt/qdbusintegrator.cpp: Restore the proper order of
1957           delivery: don't make method returns be delivered on priority
1958           (r528150)
1959
1960 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1961
1962         * configure.in qt/Makefile.am: add qt/examples
1963         * qt/examples: Add QtDBus example programs:
1964           - hello: Hello, World
1965           - ping: Simple method-calling program
1966           - pong: Simple object-exporting program (not using adaptors)
1967           - complexping: Interactive method-calling program 
1968                 (also gets and sets properties).
1969           - complexpong: Sample program exporting methods, signals and
1970                 properties, using adaptors.
1971           - dbus: Simple implementation of a generic method-calling
1972                 program, similar to 'dbus-send', but with semantics
1973                 similar to 'dcop'.
1974           - chat: Simplistic chat program, implemented using signals
1975                 and the system bus. Looks like IRC.
1976
1977 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1978
1979         * configure.in: Detect QtGui (necessary for one of the
1980           example programs). Note: this increases the minimum required
1981           version of Qt to 4.1.3.
1982
1983 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1984
1985         * test/qt/*: Sync with KDE Subversion revision 523647.
1986         Update the testcases to the new API. Remove testcases for
1987         classes that are no longer public or have been removed.
1988
1989 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
1990
1991         * qt/*: 
1992         * dbus/qdbus.h: Sync with KDE Subversion revision
1993         523647. Hopefully, this will be the last of the
1994         source-incompatible changes. Documentation has been improved;
1995         support for QList<basic-types> has been added; QDBusObject is
1996         gone; QDBus(Abstract)Interface is now a QObject with
1997         auto-generated meta-object; QDBusIntrospection is marked
1998         private, since QMetaObject can be used now; lots of bugfixes.
1999
2000 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2001
2002         Patch from Milosz Derezynski <internalerror at gmail.com>
2003         
2004         * configure.in:
2005         Output the service directory in the configure summary
2006
2007         * dbus-1.pc.in:
2008         Add session_bus_services_dir
2009
2010 2006-03-10  Ross Burton  <ross@openedhand.com>
2011
2012         * tools/dbus-print-message.c:
2013         Add support for object paths and signatures.
2014
2015 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2016
2017         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2018         config reload.
2019         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2020         information caches
2021         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2022         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2023         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2024         * dbus/dbus-userdb.h: Add function to flush all user/group information
2025         caches.
2026
2027 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2028
2029         * qt/dbusidl2cpp.cpp:
2030         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2031         for dcopidl2cpp, found in the KDE installations (or the more
2032         modern kalyptus): generate Qt4 C++ code for the input XML
2033         introspection. Currently no IDL parsing.
2034
2035 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2036
2037         * test/qt/*: Update the self-tests.
2038
2039 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2040
2041         * qt/*: 
2042         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2043         represents the first feature-complete version of the Qt4
2044         bindings since I took ove maintainership.
2045
2046 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2047
2048         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2049         dir. This is C++, so we can't use the DBus ones.
2050
2051 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2052
2053         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2054         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2055
2056 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2057
2058         * dbus/dbus-connection.c: 
2059         (_dbus_connection_block_pending_call):
2060         Check to see if our data has already been read off the connection
2061         by another blocking pending call before we block in poll.
2062         (check_for_reply_and_update_dispatch_unlocked):
2063         Code taken from _dbus_connection_block_pending_call - checks for
2064         an already read reply and updates the dispatch if there is one.
2065
2066         * test/name-test/test-pending-call-dispatch.c:
2067         New test for making sure we don't get stuck polling a 
2068         dbus connection which has no data on the socket when
2069         blocking out of order on two or more pending calls.
2070
2071 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2072
2073         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2074         make/automake don't detect that we're talking about the same
2075         .lo file if I specify the full path to the source files.
2076
2077 2006-02-26  Havoc Pennington  <hp@redhat.com>
2078
2079         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2080
2081         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2082         session bus variable is unset, suggest "man dbus-launch" and "man
2083         dbus-daemon" to figure out how to fix the problem
2084
2085 2006-02-25  Havoc Pennington  <hp@redhat.com>
2086
2087         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2088         should make this thing use the new glib options parser
2089
2090 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2091
2092         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2093         .lo files taking moc sources.
2094
2095 2006-02-25  Havoc Pennington  <hp@redhat.com>
2096
2097         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2098         and install it as a public header
2099
2100 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2101
2102         * Released 0.61
2103
2104 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2105         
2106         * proxies.py: Fix the callchain
2107
2108 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2109         
2110         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2111
2112         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2113         dbus/dbus-sysdeps.c
2114
2115         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2116         call _dbus_group_info_free_allocated which causes infinite loop,
2117         correctly call _dbus_group_info_free
2118
2119 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2120
2121         * qt/qdbusinterface_p.h:
2122         * qt/qdbusinterface.cpp: Use the standard
2123         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2124         calls instead of creating one for us.
2125
2126         * qt/qdbusconnection_p.h:
2127         * qt/qdbusintegrator.cpp: Remove debugging code.
2128
2129         * qt/qdbusintegrator.cpp:
2130         * qt/qdbusmessage.cpp:
2131         * qt/qdbusmessage_p.h:
2132         * qt/qdbusmessage.h: Change the behaviour of automatic
2133         reply-sending: now a reply is always sent, unless the caller
2134         didn't request one or if the user slot has already sent one.
2135
2136 2006-02-16  Robert McQueen  <robot101@debian.org>
2137
2138         * configure.in: Patch from Debian packages by Sjoerd Simons
2139         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2140         arguments so it's possible to build both bindings in the
2141         same tree.
2142
2143         * qt/Makefile.am: Fix truncated value so that make dist works.
2144
2145 2006-02-16  Robert McQueen  <robot101@debian.org>
2146
2147         * acinclude.m4, configure.in: Patch from Brad Hards
2148         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2149         improving quoting, re-ordering a few checks, and a few other
2150         aesthetic tidy-ups.
2151
2152 2006-02-16  Robert McQueen  <robot101@debian.org>
2153
2154         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2155         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2156         assertion that the next element to read from the iter is fixed in
2157         size. This is not the case when you are at the end of the iter,
2158         because the next element type is INVALID.
2159
2160         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2161         a bogus assert which means that you may not initialise a 0-length
2162         string unless you provide a non-NULL pointer. This prevented
2163         you from marshalling messages containing zero-length arrays in
2164         some cases.
2165
2166         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2167         from Rob to correct bogus asserts when trying to demarshal an
2168         array and get_fixed_array got you 0 elements. Append nothing to
2169         the GArray in this case.
2170
2171         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2172         an empty array via the glib bindings. Without all of the above
2173         patches, this new test fails.
2174
2175 2006-02-16  Robert McQueen  <robot101@debian.org>
2176
2177         * glib/dbus-gmain.c: Make the previous commit compile.
2178
2179         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2180         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2181         specify sender_keyword="foo", path_keyword="bar" when adding
2182         a signal listener, so that you can bind to signals generically
2183         but still do something useful in your callback.
2184
2185         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2186         chars so that they're not cast to chars and made negative. Thanks
2187         to Jakub Stachowski for reporting this and testing the fix.
2188
2189 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2190
2191         * dbus/dbus-glib.h:
2192         * glib/dbus-gmain.h:
2193         (dbus_g_connection_open): new method for openning
2194         a connection to an arbitrary address in the glib bindings
2195
2196         * ChangeLog: checkin last entry which doesn't seem to be commited
2197
2198 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2199
2200         * tools/dbus-launch.c: Fixed sh syntax output
2201
2202 2006-02-13  Robert McQueen  <robot101@debian.org>
2203
2204         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2205         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2206         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2207         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2208         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2209         missing piece of the glib bindings jigsaw puzzle. This modifies
2210         the existing specialised types to have N type parameters (rather
2211         than the current 1 or 2 for arrays and dictionaries respectively).
2212         You can then use this to get a glib type to represent any arbitrary
2213         D-Bus struct type using dbus_g_type_get_struct. The only
2214         implementation of these types is with GValueArrays as before,
2215         but it's now possible to store these in arrays, emit them in
2216         signals, etc.
2217
2218 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2219
2220         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2221         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2222         <thiago.macieira at trolltech.com>
2223
2224 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2225
2226         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2227         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2228
2229 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2230
2231         * bus/connection.c (bus_connections_expect_reply): Make
2232         pending reply limit not common to all connections (Bug #5416)
2233         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2234
2235 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2236
2237         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2238
2239 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2240
2241         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2242         patch from Doug Goldstein <cardoe at gentoo.org>
2243
2244 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2245
2246         * mono/Arguments.cs: Fix a magic number in the mono bindings
2247         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2248
2249 2006-01-27  Robert McQueen  <robot101@debian.org>
2250
2251         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2252         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2253         when generating the client-side methods, instead of overloading
2254         CSymbol which broke everything horribly. My apologies.
2255
2256 2006-01-27  Robert McQueen  <robot101@debian.org>
2257
2258         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2259         by me and Rob Taylor to add a simple_free function to D-Bus map
2260         and collection types, which allows those types which can be freed
2261         with a GDestroyNotify (such as GHashTables and GArrays, but not
2262         GPtrArrays) to be stored as the values in hashtables.
2263
2264         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2265         Patch by Rob Taylor to add nested dicts to the glib tests to check
2266         the above code works, and appears not to leak when called repeatedly.
2267
2268 2006-01-27  Robert McQueen  <robot101@debian.org>
2269
2270         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2271         to free a D-Bus allocated string with dbus_free () instead of
2272         g_free ().
2273
2274 2006-01-27  Iain Holmes  <iain@openedhand.com>
2275
2276         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2277         method from being called multiple times.
2278
2279 2006-01-19  Robert McQueen  <robot101@debian.org>
2280
2281         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2282         <rob.taylor@collabora.co.uk> to add support for generating bindings
2283         to arrays that are represented as GPtrArrays rather than GArrays (ie
2284         size-variable things, such as strings, objects, structs, etc).
2285
2286 2006-01-05  Robert McQueen  <robot101@debian.org>
2287
2288         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2289         <ricardo.kekki@movial.fi> to make it possible to inherit from
2290         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2291         a private part, and moving the setting of the DBusGProxyManager into a
2292         connection property, allowing proper GObject construction.
2293
2294 2006-01-05  Robert McQueen  <robot101@debian.org>
2295
2296         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2297         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2298         annotations when generating glib client bindings.
2299
2300 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2301
2302         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2303
2304         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2305
2306 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2307
2308         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2309
2310 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2311
2312         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2313
2314 2005-12-19  Ross Burton  <ross@openedhand.com>
2315
2316         * doc/dbus-tutorial.xml:
2317         Document the Glib client-side bindings, and list all possible annotations.
2318
2319 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2320
2321         * dbus/bus.c (dbus_bus_release_name): Add documentation
2322
2323 2005-12-06  Robert McQueen  <robot101@debian.org>
2324
2325         * python/service.py: s/sucessful/successful/ so we're allocating to
2326         and reading from the same variable. Oops.
2327
2328 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2329
2330         * Released 0.60
2331
2332 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2333
2334         * test/qt/Makefile.am: build from srcdir
2335
2336         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2337         Note - this code is wrong and needs to be fixed by the Qt binding
2338         developers.  The flags should be treated as bitfields and not enums.
2339
2340         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2341
2342 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2343
2344         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2345           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2346           in production code
2347
2348 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2349
2350         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2351         method for getting messages off the bus in the absence of a
2352         mainloop.  This method is much like 
2353         dbus_connection_read_write_dispatch except it does not dispatch
2354         the messages to a registered filter function.  Instead it
2355         allows a developer to process messages by directly popping
2356         them off the bus.
2357
2358 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2359
2360         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2361         the parser to continue instead of returning error
2362         (bus_desktop_file_load): Do not free parser data when
2363         parse_section_start or parse_key_value fails because it was 
2364         already freed by parser_free (patch from Carlos Garcia Campos  
2365         <carlosgc at gnome.org>)
2366
2367 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2368
2369         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2370         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2371         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2372         test/test-segfault.c, test/test-utils.c,
2373         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2374         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2375         Various cleanup of dead code and compiler warnings (patch from
2376         Kjartan Maraas <kmaraas at gnome.org>) 
2377
2378 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2379
2380         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2381         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2382
2383 2005-11-27  Robert McQueen  <robot101@debian.org>
2384
2385         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2386         part of the preceding one. Oops. Merge patch by Johan Hedberg
2387         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2388         on big-endian platforms.
2389
2390         * test/python/test-client.py: Add some 16-bit integers to the test
2391         values.
2392
2393 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2394
2395         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2396         method return message for property getters
2397
2398 2005-11-27  Robert McQueen  <robot101@debian.org>
2399
2400         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2401         with type v of an instance of dbus.Variant(foo, type='x') caused
2402         it to be boxed twice before sending over the bus.
2403
2404         * python/dbus_bindings.pyx, python/service.py,
2405         test/python/test-client.py: Update the constants for the new
2406         request_name flags, and update comments/test cases now that queueing
2407         is the default action.
2408
2409 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2410
2411         * configure.in:
2412         - Change version to 0.60 for impending release
2413         - upped the sonames because of ABI and API breakage
2414
2415 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2416
2417         * configure.in: Add test/name-test/Makefile to the generated
2418         Makefile list
2419
2420         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2421         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2422         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2423         not to queue an ower if it can't be the primary owner
2424
2425         * bus/bus.h: Add new internal BusOwner struct
2426
2427         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2428         to bus_registry_ensure and don't set the prohibit_replacement flag
2429         since they are now set per BusOwner and not per name.
2430         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2431         that returns the list of connections in a name's connection queue
2432         
2433         * bus/services.c (struct BusService): remove prohibit_replacement field
2434         (struct BusOwner): new struct for keeping track of queued connections
2435         and their associated flags for the queue
2436         (struct BusRegistry): add a BusOwner memory pool
2437         (bus_registry_new): initialize the BusOwner memory pool
2438         (bus_registry_unref): free the BusOwner memory pool
2439         (_bus_service_find_owner_link): new internal method for
2440         searching the queue for a specific connection
2441         (bus_owner_set_flags): new method for adding setting the flags on a
2442         bus owner
2443         (bus_owner_new): new method that creates a BusOwner object from the
2444         pool and sets its flags
2445         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2446         (bus_registry_ensure): Add the flags parameter
2447         (bus_registry_acquire_service): Switch from using raw connections to
2448         using the BusOwner struct
2449         Add new state machine for dealing with the new set of flags
2450         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2451         cancel_ownership, free_ownership_cancel_data, 
2452         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2453         restore_ownership, free_ownership_restore_data, 
2454         add_restore_ownership_to_transaction): Switch to using BusOwner 
2455         instead of raw connections
2456         (bus_service_add_owner): Add flags parameter
2457         Switch to using BusOwner instead of raw connections
2458         Add state machine for dealing with the new set of flags
2459         (bus_service_swap_owner): Swaps the first and second owners in the
2460         queue.  Used to make sure proper signals are sent when a service looses 
2461         or gains primary ownership.  We never insert an owner at the top of the
2462         queue.  Instead we insert it in the second position and then swap.
2463         (bus_service_remove_owner): Remove the owner from the queue sending
2464         out the NameLost and NameOwnerChanged signals if the we were the 
2465         primary owner
2466         (bus_service_get_primary_owners_connection): New method that extracts
2467         the connection from the primary owner
2468         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2469         connection
2470         (bus_service_get_allow_replacement): Changed from the old 
2471         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2472         primary owner and returns if it can be replaced or not
2473         (bus_service_set_prohibit_replacement): removed
2474         (bus_service_has_owner): returns TRUE if and owner with
2475         the specified connection exists in the queue
2476         
2477         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2478         method that only compiles if tests are enabled.  Allows us to get the 
2479         unique name of a connection so we can check it against the queue when
2480         doing regression tests
2481
2482         * bus/activation.c (bus_activation_send_pending_auto_activate),
2483         bus/dispatch.c (bus_dispatch),  
2484         bus/driver.c (bus_driver_handle_get_service_owner, 
2485         bus_driver_handle_get_connection_unix_user, 
2486         bus_driver_handle_get_connection_unix_process_id,
2487         bus_driver_handle_get_connection_selinux_security_context),
2488         bus/signals.c (connection_is_primary_owner): 
2489         use bus_service_get_primary_owners_connection instead of
2490         bus_service_get_primary_owner
2491
2492         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2493         _dbus_listen_unix_socket): Calculate the length of the socket
2494         path and use that instead of using a fixed length which was
2495         causing socket names to contain many trailing Nul bytes.
2496
2497         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2498         (dbus_g_method_get_sender): New method for extracting the sender 
2499         from a DBusGMethodInvocation
2500         (dbus_g_method_return_get_reply): changed name to 
2501         dbus_g_method_get_reply
2502         (dbus_g_method_return_send_reply): changed name to
2503         dbus_g_method_send reply
2504
2505         * doc/dbus-specification.xml: New docs that describe how the new
2506         queueing system works and talks about the changes to the how
2507         we specify socket names
2508
2509         * glib/examples/example-service.c, 
2510         glib/examples/example-signal-emitter.c,
2511         glib/examples/statemachine/statemachine-server.c:
2512         Changed the RequestName flags to the new system
2513
2514         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2515         regression test suite for testing various states of the new
2516         queueing system
2517         
2518 2005-11-15  Robert McQueen  <robot101@debian.org>
2519
2520         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2521         Taylor to add two methods, dbus_g_method_return_get_reply and
2522         dbus_g_method_return_send_reply, to allow you to get the reply
2523         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2524         and send it. The GLib bindings can't marshal a return value of
2525         something like a(s) if the array is empty - ultimately they should be
2526         made to heed the signature of the out arguments as the Python bindings
2527         now can, but this is a workable interim solution which might have
2528         other applications.
2529
2530 2005-11-15  Robert McQueen  <robot101@debian.org>
2531
2532         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2533         method to org.freedesktop.DBus to release a bus name or give up
2534         waiting in the queue for it.
2535
2536         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2537         dbus_bus_release_name method to send the ReleaseName method calls.
2538         Add constants for the return values to dbus/dbus-shared.h.
2539
2540         * doc/dbus-specification.xml: Document the new ReleaseName method
2541         in the specification.
2542
2543         * python/dbus_bindings.pyx: Add a low-level python binding for the
2544         release name method.
2545
2546         * python/exceptions.py, python/service.py: Make freeing BusName
2547         objects release the name. Add a NameExistsException, and fix a
2548         bug with creating UnknownMethodException.
2549
2550         * test/python/test-client.py: Add tests for freeing BusName
2551         objects causing names to be released.
2552
2553 2005-11-14  Robert McQueen  <robot101@debian.org>
2554
2555         * python/service.py: Include the traceback in the error reply when we
2556         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2557
2558 2005-11-14  David Zeuthen  <davidz@redhat.com>
2559
2560         Patch from Timo Hoenig <thoenig@suse.de>.
2561
2562         * bus/bus.c: I've recently investigated why the automatic reload
2563         of configuration files does not work as expected.
2564
2565         Currently, reloading configuration files does only work when
2566         running dbus-daemon with --nodaemon.  If we are running as daemon
2567         we're hitting a dnotify bug once we fork the process.
2568
2569         We're initializing the dnotify fds before calling fork().  Once
2570         the child process forked it does still have the fds (and they
2571         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2572         getting SIGIO as changes are made to the configuration files.
2573
2574         The attached patch moves the initialization of the dnotify fds to
2575         process_config_postinit().  This is safe for all current code
2576         paths and solves the dnotify disfunction.  If we're running
2577         dbus-daemon as daemon the fds for dnotify are now being
2578         initialized after fork() for the child process.
2579
2580         * configure.in: The current configure.in check for dnotify probes
2581         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2582         match for 'xlinux', too. Additionally I have adapted the configure
2583         option's style to match with the others.
2584
2585 2005-11-14  Robert McQueen  <robot101@debian.org>
2586
2587         * python/decorators.py, python/service.py: Add a new argument to the
2588         dbus.service.method decorator called sender_keyword, which if set,
2589         specifies the name of an argument which will be provided the bus
2590         name of the method caller.
2591
2592         * test/python/test-client.py, test/python/test-service.py: Add a
2593         method and test to check the sender_keyword functionality.
2594
2595 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2596
2597         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2598         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2599         Simons <sjoerd at luon.net>)
2600
2601         * AUTHORS: Add Robert McQueen for his work on the Python
2602         Bindings and other parts of D-Bus
2603
2604 2005-11-07  Robert McQueen  <robot101@debian.org>
2605
2606         * python/decorators.py: Change emit_signal function to use the
2607         signature annotation of the signal when marhsalling the arguments from
2608         the service. Fix a bug where the code checking signature length
2609         against argument length referenced the wrong variable.
2610
2611         * python/introspect_parser.py: Avoid adding the type signature of
2612         signal arguments to any methods which occur after them in the
2613         introspection data (!) by making the parser a little more careful
2614         about its current state.
2615
2616         * python/service.py: Remove debug prints from last commit (again :D).
2617
2618         * test/python/test-client.py, test/python/test-service.py: Add test
2619         signals with signature decorators to test the strict marshalling code
2620         gives errors at the right time. Could do with checking the signals
2621         actually get emitted too, given that the test does nothing with
2622         signals at the moment...
2623
2624 2005-11-07  Robert McQueen  <robot101@debian.org>
2625
2626         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2627         instances to stop madness of creating new instances representing
2628         the same bus connection all the time, rendering any tracking of
2629         match rules and bus names quite meaningless. Caught a bug where
2630         the private argument to SessionBus() and friends was being passed
2631         in as use_default_mainloop by mistake. Still some problems with
2632         multiple dbus_binding.Connection instances representing the same
2633         low-level connection (eg when you use both SessionBus() and
2634         StarterBus() in same process), but it's a lot better now than it
2635         was.
2636
2637         * python/dbus_bindings.pyx: Add constants with the return values
2638         for bus_request_name().
2639
2640         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2641         and retrieve the same instances for the same name, so deletion can be
2642         done with refcounting. Also now throws some kind of error if you
2643         don't actually get the name you requested, unlike previously...
2644
2645         * test/python/test-client.py: Add tests for instance caching of buses
2646         and bus name objects.
2647
2648 2005-11-04  Robert McQueen  <robot101@debian.org>
2649
2650         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2651         marshalling of boolean values. Add some booleans to the values in
2652         the test client.
2653
2654         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2655         argument to the dbus.service.method decorator, which allows you to
2656         name arguments to take two callback functions for replying with
2657         return values or an exception.
2658
2659         * test/python/test-client.py, test/python/test-service.py: Add test
2660         case using asynchronous method reply functions, both return values and
2661         errors, and from within both the function itself and from a mainloop
2662         callback.
2663
2664         * python/decorators.py, python/service.py: Perform checking that the
2665         number of method/signal arguments matches the number of types in the
2666         signature at class loading time, not when you first introspect the
2667         class.
2668
2669         * python/service.py: Remove debug print left by the last commit.
2670
2671 2005-11-03  Robert McQueen  <robot101@debian.org>
2672
2673         * python/service.py: Heavy refactoring of method invocation, with
2674         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2675         in favour of a new _message_cb that uses seperate functions for
2676         looking up the method to call, marshalling the return values, and
2677         sending exceptions as errors, and is easier to follow as a
2678         consequence.  Fixes some corner cases about returning things that
2679         don't match your declared out_signature, allows exceptions to define
2680         _dbus_error_name and have it be sent over the bus as the error name,
2681         and paves the way for cool stuff like heeding the message no reply
2682         flag, asynchronous method implementations, informing the method of the
2683         sender, and including backtraces in the error messages.
2684
2685         * test/python/test-client.py: Catch and print exceptions thrown in the
2686         async callback tests, rather than passing them to the low-level
2687         bindings to be ignored in a noisy and frustrating manner.
2688
2689 2005-11-03  Robert McQueen  <robot101@debian.org>
2690
2691         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2692         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2693         tweak others to be consistent.
2694
2695         * test/python/test-client.py: Tweak output of testInheritance.
2696
2697 2005-10-29  Robert McQueen  <robot101@debian.org>
2698
2699         * python/service.py: Major changes to allow multiple inheritance
2700         from classes that define D-Bus interfaces:
2701         
2702          1. Create a new Interface class which is the parent class of
2703             Object, and make the ObjectType metaclass into InterfaceType.
2704         
2705          2. Patch written with Rob Taylor to replace use of method_vtable
2706             with code that walks the class's __MRO__ (method resolution order)
2707             to behave like Python does when invoking methods and allow
2708             overriding as you'd expect. Code is quite tricky because
2709             we have to find two methods, the one to invoke which has the
2710             right name and isn't decorated with the /wrong/ interface,
2711             and the one to pick up the signatures from which is decorated
2712             with the right interface.
2713         
2714             The same caveats apply as to normal multiple inheritance -
2715             this has undefined behaviour if you try and inherit from two
2716             classes that define a method with the same name but are
2717             decorated with different interfaces. You should decorate
2718             your overriding method with the interface you want.
2719         
2720          3. Replace grungy introspection XML generation code in the metaclass
2721             with dictionaries that cope correctly with multiple inheritance
2722             and the overriding of methods. This also uses the signature
2723             decorations to provide correct introspection data, including
2724             the debut appearance of the types of your return values. :D
2725
2726         * test/python/test-client.py, test/python/test-service.py: Add a test
2727         case to try invoking an method that overrides one inherited from a
2728         D-Bus interface class.
2729
2730 2005-10-29  Robert McQueen  <robot101@debian.org>
2731
2732         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2733         Add checking for the end of struct character when marshalling a
2734         struct in MessageIter.append_strict.
2735
2736         * python/examples/example-service.py,
2737         python/examples/gconf-proxy-service.py,
2738         python/examples/gconf-proxy-service2.py: Update to use gobject
2739         mainloop directly rather than appearing to depend on gtk.
2740
2741         * python/test/test-client.py, python/test/test-server.py: Remove
2742         obsolete and broken test scripts for old bindings. We have up to date
2743         and working tests in test/python/.
2744
2745 2005-10-29  Robert McQueen  <robot101@debian.org>
2746
2747         * python/decorators.py: Add optional arguments to the method and
2748         signal decorators to allow you to specify the signature of arguments
2749         and return values. Preserve the doc strings of signal functions in the
2750         decorated version, for pydoc and friends.
2751
2752         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2753         parse_signature_block function with an iterable dbus.Signature()
2754         type. Fix a bug in MessageIter.append_strict where you could append
2755         anything by claiming it was a string.
2756
2757         * python/service.py: Use the out_signature decoration on methods to
2758         marshal return values, meaning you no longer require dbus.Array()
2759         or dbus.Dictionary() to indicate the type when returning empty
2760         arrays or dictionaries. Fix a bug where exceptions which are defined
2761         in __main__ are not turned into error replies.
2762
2763         * test/python/test-client.py, test/python/test-service.py: Add test
2764         for correct marshalling of return values according to out_signature.
2765         Fix a bug in the async call test where the error_handler is missing a
2766         self argument.
2767
2768 2005-10-29  Robert McQueen  <robot101@debian.org>
2769
2770         * glib/Makefile.am, glib/examples/Makefile.am,
2771         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2772         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2773
2774         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2775
2776         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2777         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2778         the command line.
2779
2780 2005-10-27  Ross Burton  <ross@openedhand.com>
2781
2782         * dbus/dbus-marshal-header.c:
2783         Remove dead code.
2784
2785         * glib/dbus-gobject.c:
2786         Stop compiler warning.
2787
2788 2005-10-25  Ross Burton  <ross@openedhand.com>
2789
2790         * dbus/dbus-auth.c:
2791         * dbus/dbus-server-unix.c:
2792         * dbus/dbus-transport-unix.c:
2793         * glib/dbus-gmain.c:
2794         * glib/dbus-gobject.c:
2795         Add some const keywords.
2796
2797 2005-10-25  Ross Burton  <ross@openedhand.com>
2798
2799         * doc/dbus-specification.xml:
2800         Document the NoReply annotation.
2801
2802         * glib/dbus-binding-tool-glib.h:
2803         * glib/dbus-binding-tool-glib.c:
2804         Respect the NoReply annotation.
2805
2806 2005-10-24  Robert McQueen <robot101@debian.org>
2807
2808         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2809         derive from unicode instead of str, and encode/decode UTF-8 when
2810         marshalling/unmarshalling bus messages
2811
2812         * python/introspect_parser.py: encode introspection data as UTF-8
2813         before passing the buffer into libxml2
2814
2815         * test/python/test-client.py: add unicode test strings
2816
2817         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2818         ignore generated python test files
2819
2820 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2821
2822         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2823         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2824         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2825
2826         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2827         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2828         when constructing struct signatures
2829
2830         * python/_dbus.py (Bus): handle private connections using the
2831         private keyword in the constructor. defaults to private=False
2832         (Bus::close): new method to close a connection to the bus
2833
2834         * python/dbus_bindings.pyx (Connection::close): renamed method
2835         was previously called disconnect
2836         (bus_get): now supports getting a private connection
2837
2838         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2839         keyword is set to True.  if it is, execute the method without waiting
2840         for a reply
2841         (ProxyObject::_introspect_execute_queue): new method for executing
2842         all the pending methods that were waiting for the introspect to
2843         finish.  this is called when introspect either succeeds or fails
2844         (ProxyObject::_introspect_error_handler): call queued methods
2845
2846 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
2847
2848         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
2849         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
2850
2851         * python/service.py (Object::_message_cb): handle exceptions correctly
2852         by sending them over the wire to the calling app.  This makes sure
2853         the client returns immediately instead of waiting the 15 seconds to
2854         timeout.
2855
2856         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
2857         Add a test to benchmark how long it takes to introspect a service and 
2858         call a method which returns a large element (pretty fast)
2859
2860         * test/python/test-service.py (TestObject::GetComplexArray): new test 
2861         method which pushes a lot of data
2862
2863 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2864
2865         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
2866         reclaim memory outside of the loop and use del istead of just setting
2867         the key to None
2868
2869 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2870
2871         * python/service.py (ObjectType::_reflect_on_signal): Always close
2872         signal tag even when there are no arguments
2873
2874 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
2875
2876         * configure.in: Set mono, mono-docs and Qt3 to default
2877         to no instead of auto when building.  These bindings do not
2878         have full time maintainers and will not be supported for the
2879         1.0 release.
2880
2881 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
2882
2883         patches from Michael Krivoruchko <misha at sun.com>: 
2884         
2885         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
2886         _dbus_connection_message_sent, 
2887         _dbus_connection_send_preallocated_unlocked_no_update, 
2888         _dbus_connection_pop_message_link_unlocked): handle the case when path 
2889         is NULL when calling _dbus_verbose
2890
2891         * configure.in: check for functions getpeerucred and getpeereid
2892
2893         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
2894         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
2895         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
2896         Patch was only tested on Solaris 10 x86 so it might be issues
2897         with other platforms (i.e. BSDs and MacOSX)
2898         
2899
2900 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
2901
2902         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
2903         instead of marshal basic so we can handle recursive types in a variant
2904
2905         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
2906         in variants
2907
2908         * test/glib/test-service-glib.c, test-service-glib.xml
2909         (my_object_echo_variant [EchoVariant], 
2910         my_object_process_variant_of_array_of_ints123
2911         [ProcessVariantOfArrayOfInts123]): 
2912         Add two test methods
2913
2914         * python/introspect_parser.py: New module for parsing introspect
2915         data.
2916
2917         * python/dbus_bindings.pyx:
2918         (various places): when throwing errors fix to use errormsg instead 
2919         of message local variable because Pyrex can get confused with other 
2920         message variables (initial patch by Robert McQueen 
2921         <robert.mcqueen at collabora.co.uk>)
2922         (MessageIter::parse_signature_block): new method for getting the next
2923         block in a signiture.
2924         (MessageIter::append_strict): new method for appending values strictly
2925         using the passed in signature instead of guessing at the type
2926         (MessageItter:: append_dict, append_struct, append_array): use 
2927         signatures to marshal children if the signature is available
2928         
2929         * python/exceptions.py (IntrospectionParserException): new exception
2930
2931         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
2932         introspected signatures if available, else we fall back to the
2933         old way of doing things.
2934         (ProxyObject::_introspect_reply_handler ): parse introspection data
2935         
2936         * python/service.py (ObjectType::_reflect_on_method): Properly
2937         terminate <method> if there are no args in the reflection data
2938
2939         * test/python/test-client.py: add tests for talking with the GLib
2940         test server.  This gives us better coverage for introspection since
2941         python to python will always generate arguments as variants.  It also
2942         allows us to test the robustness of the GLib bindings and interlanguage
2943         communications.
2944
2945         
2946 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
2947
2948         * bus/driver.c (bus_driver_handle_introspect): Add signals
2949         to the introspect data. (patch from Daniel P. Berrange 
2950         <dan at berrange.com>)
2951
2952         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
2953         
2954         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
2955         _dbus_connection_run_builtin_filters): Changed these to
2956         be unlock_no_update functions and call 
2957         _dbus_connection_send_unlocked_no_update instead of
2958         dbus_connection_send to avoid locking errors.
2959         
2960         * doc/TODO: Removed the make Ping test TODO
2961         
2962 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2963
2964         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
2965         We now copy the message from a DBusError and then free 
2966         the error object befor throwing the error
2967
2968         * glib/dbus-glib-tool.c: removed extra comma at the end of the
2969         DBusBindingOutputMode enum which was causing a warning.
2970         #include <time.h> so using time_t is explicitly defined
2971
2972 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
2973
2974         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
2975         - dbus/dbus-bus.c
2976         (internal_bus_get): new method that take over the heavy lifting
2977         of dbus_bus_get and adds the ability to get a private connection
2978         to the bus
2979         (dbus_bus_get): wrapper to internal_bus_get that provides the same
2980         interface as in previous versions
2981         (dbus_bus_get_private): new method that is a wrapper to 
2982         internal_bus_get to get a private connection to the bus
2983
2984         - dbus/dbus-bus.h
2985         (dbus_bus_get_private): add as a public libdbus interface
2986
2987         - dbus-1.pc.in: output system_bus_default_address and 
2988         sysconfdir variables so apps can use them when compiling
2989
2990 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
2991         * dbus/qt: New Qt bindings
2992
2993 2005-09-12  Waldo Bastian  <bastian@kde.org>
2994
2995         * dbus/dbus-marshal-validate.c,
2996         doc/dbus-specification.xml, test/Makefile.am,
2997         test/test-names.c: allow hyphens in bus names.
2998
2999 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3000
3001         * test/data/auth/fallback.auth-script: we don't
3002         retry the EXTERNAL method when we know its going
3003         to fail anymore.
3004
3005 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3006
3007         * dbus/dbus-connection-internal.h: rename
3008         (add|remove|toggle)_(watch|timeout) to unlocked()
3009         
3010         * dbus/dbus-connection.c: ditto.
3011         
3012         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3013         Update some callers for the renaming.
3014
3015 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3016
3017         * dbus/dbus-auth.c: (record_mechanisms): don't
3018         retry the first auth mechanism because we know
3019         we're just going to get rejected again.
3020         
3021         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3022         Fix thinko ... and what a nasty little bugger to
3023         track down you were ...
3024
3025         * dbus/dbus-connection.c:
3026         (_dbus_connection_add_watch),
3027         (_dbus_connection_remove_watch): add note about
3028         these needing the connection to be locked.
3029         (_dbus_connection_get_dispatch_status_unlocked):
3030         set status to DATA_REMAINS when we queue the
3031         disconnected message.
3032         
3033         * bus/dispatch.c:
3034         (bus_dispatch): fix warning.
3035         (check_existent_service_no_auto_start):
3036         Expect ChildSignaled error too.
3037         (check_existent_hello_from_self): fix another
3038         couple of warnings.
3039         
3040 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3041
3042         Patches from James Willcox <snorp@snorp.net>
3043
3044         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3045
3046         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3047         support array "out" parameters.
3048
3049         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3050         for 16-bit int support.
3051
3052 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3053
3054         * Released 0.50
3055
3056         * Patch from Steve Grubb:
3057         - bus/activation.c (bus_activation_service_reload_test): clean up
3058         some indentation
3059         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3060         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3061         buffer overflows in the test suite.  This is non critical because
3062         it can not be exploited and this code is only run when doing a 
3063         make check.
3064
3065         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3066         - configure.in: Don't check and link against kdecore, only qt headers
3067         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3068         - gcj/org/freedesktop/dbus/Makefile.am:
3069         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3070         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3071         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3072         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3073         - tools/Makefile.am: Add platform extentions to binaries 
3074         (i.e. .exe on windows)
3075
3076         * configure.in: 
3077         - Make it so if no suitable version of python is found we only 
3078         disable building python instead of exiting the configure script
3079         - Require version 2.4 of glib for glib bindings
3080         - Up version to 0.50
3081
3082         * python/__init__.py: Sync version with libdbus to (0,50,0)
3083         
3084 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3085
3086         * dbus/dbus-object-tree.c (find_subtree_recurse):
3087         a couple of optimizations (bug #710):
3088         - do a binary search in the tree
3089         - insert a new child at the right place directly, no need for
3090           qsort anymore
3091         - do the "double alloc" thing when allocating children
3092
3093 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3094
3095         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3096
3097         * python/dbus_bindings.pyx: Memory management foo
3098         (global): remove hacky _user_data_references global list
3099         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3100         tuples. Unref user_data
3101         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3102         (Connection::__del__): Remove and replace with __dealloc__ method
3103         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3104         to keep tuple from being deallocated instead of the global var hack
3105         (Connection::register_object_path): Stuff user_data into a tuple.
3106         Use Py_INCREF to keep tuple from being deallocated instead of the 
3107         global var hack
3108         (Connection::register_fallback): Stuff user_data into a tuple.
3109         Use Py_INCREF to keep tuple from being deallocated instead of the 
3110         global var hack
3111         (GIL_safe_pending_call_notification): Don't unref the message
3112         because it gets unreffed when going out of scope.  Py_XDECREF
3113         the user_data
3114         (PendingCall::__del__): Remove and replace with __dealloc__ method
3115         (PendingCall::set_notify): ref the pending call because we will
3116         need it to stick around for when the notify callback gets called
3117         (Message::__del__): Remove and replace with __dealloc__ method
3118
3119         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3120         gthreads_init to match up with the dbus call
3121
3122         * python/glib.py (init_threads): Changed to threads_init to match
3123         up with gobject.threads_init().  init_threads is kept for backwards
3124         compat but will most likely be deprecated in the future
3125
3126         * test/python/test-client.py: 
3127         - revamp to use Python's unittest functionality
3128         - add async call tests
3129         - setup threads in glib and dbus so we make sure locks are working
3130         
3131 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3132
3133         * python/dbus_bindings.pyx 
3134         (_pending_call_notification, cunregister_function_handler, 
3135         cmessage_function_handler): All callback functions have been rearranged 
3136         to workaround a bug in Pyrex when working with the GIL which is Python's 
3137         global lock when dealing with threads.  They have been split into
3138         a wrapper function (which assumes the name of the old function) and
3139         a _GIL_safe_<function name> function which contains the functionality
3140         of the old function.  This ensures that Pyrex does not write code
3141         the lock is released.
3142         
3143
3144 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3145
3146         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3147         GIL global lock when calling back into Python
3148
3149 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3150
3151         * Release 0.36.2
3152
3153         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3154
3155         * bus/policy.c (bus_policy_allow_user): change default "user is
3156         allowed" to be "user has same uid as the bus itself"; any
3157         allow/deny rules will override.
3158
3159         * bus/session.conf.in: don't allow all users, since now by default
3160         the user that ran the bus can connect.
3161
3162 2005-08-26  Colin Walters  <walters@verbum.org>
3163
3164         * tools/dbus-print-message.c (print_message): Flush stdout
3165         after printing a message, so that redirecting to a file, then
3166         hitting Ctrl-C works.
3167
3168 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3169
3170         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3171         (EmptyMessage): new class that subclasses Message.  This is a workaround
3172         to a Pyrex bug that fails to call __del__ when the Message object goes out
3173         of scope.  For some reason subclassing Message fixes this bug
3174         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3175         - s/Message(_create=0)/EmptyMessage everywhere else
3176         
3177         * test/python/test-{server|client}.py: add the python/.libs directory
3178         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3179         get picked up from the system
3180
3181 2005-08-25  Colin Walters  <walters@verbum.org>
3182
3183         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3184         to Ryan Lortie for the suggestion.
3185
3186 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3187
3188         * test/python: Add python regression test
3189
3190         * configure.in: Add test/python/Makefile
3191
3192         * test/Makefile.am: Add the python directory to SUBDIRS
3193
3194 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3195
3196         * Release 0.36.1
3197
3198         * python/_dbus.py: 
3199         (Interface::connect_to_signal): propigate keywords for match on args
3200         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3201
3202         * python/proxies.py (ProxyObject::connect_to_signal):
3203         propigate keywords for match on args
3204
3205         * Makefile.am: point everything to pyexecdir since python borks
3206         on multilib
3207
3208 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3209
3210         * Release 0.36
3211
3212 2005-08-23  Colin Walters  <walters@verbum.org>
3213
3214         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3215
3216 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3217
3218         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3219         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3220         of defining DBusConnection ourselves.
3221
3222 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3223
3224         * python/dbus.pth: New path file to fix up problems when installing
3225         c libraries to lib64 and python files to lib.
3226
3227         * python/Makefile.am: install dbus.pth in the correct spot
3228
3229 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3230         * ChangeLog: clean up my last entry a bit
3231
3232         * doc/introspect.xsl: New stylesheet for converting introspection data
3233         into browser renderable xhtml. Contributed by Lennart Poettering.
3234
3235         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3236         Poettering.
3237
3238         * doc/dbus-tutorial.xml: 
3239         - Add Colin Walter to the Authors section for authoring the GLib
3240         section
3241         - Add descriptions of the new signature and type functionality
3242         in the Python complex type mapping section
3243         - Add a sidenote on the new args matching functionality in 
3244         the Python bindings
3245         - Fixed up some of the examples to use the gobject.MainLoop
3246         instead of gtk.main
3247         
3248         * python/_dbus.py:
3249         (Bus::_create_args_dict): New. Converts a hash of arg matches
3250         to a more useable format
3251         (Bus::add_signal_receiver): add a **keywords parameter for catching
3252         arg match parameters
3253         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3254         arg match parameters
3255         
3256         * python/matchrules.py:
3257         (MatchTree::exec_matches): Check for arg matches
3258         (SignalMatchRule::add_args_match): New method
3259         (SignalMatchRule::execute): Added args_list parameter as an optimization
3260         so we don't have to marshal the args more than once
3261         (SignalMatchRule::match_args_from_list): New method that checks to see
3262         if the rule's arg matches match an argument list.  Only arguments
3263         set in the rule are checked.
3264         (SignalMatchRule::match_args_from_rule): New method that checks to see
3265         if the rule's arg matches match another rule's.  All args have to match
3266         in order for this method to return true.  If either rule has more args
3267         then it is not a match.
3268         (SignalMatchRule::is_match): Add args match
3269         (SignalMatchRule::repr): Add args to the final output if they exist
3270
3271 2005-08-17  Ross Burton  <ross@burtonini.com>
3272
3273         * glib/dbus-gproxy.c:
3274         (dbus_g_proxy_call_no_reply): unref the message once sent.
3275         (dbus_g_proxy_call): protect against NULL proxy.
3276
3277 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3278
3279         * python/__init__.py: Version updated (0, 43, 0)
3280         
3281         * python/dbus_bindings.pyx: 
3282         - Fixed type objects to have self passed into __init__
3283         - Added the Variant type
3284         - Add the ability to specify types or signatures for Array, Variant 
3285         and Dictionary
3286         (Connection::send_with_reply_handlers): return a PendingCall object
3287         (_pending_call_notification): handle the case when an error is returned 
3288         without an error message in the body
3289         (MessageIter::get_boolean): return True or False instead of an integer
3290         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3291         and add checks for objects with embeded signatures or types (Array, 
3292         Variant and Dictionary)
3293         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3294         (MessageIter::append_dict): handle embeded types or signatures
3295         (MessageIter::append_array): handle embeded types or signatures
3296         (MessageIter::append_variant): new method
3297         
3298         * python/proxies.py:
3299         (DeferedMethod): New. Dummy executable object used when queuing calls 
3300         blocking on introspection data
3301         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3302         or shorter timeouts for method calls
3303         (ProxyObject): Add first pass at an introspection state machine
3304         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3305         introspection. 
3306         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3307         the usual mechanisms for sending messages.  This is to avoid a deadlock
3308         where the Intospect call would be queued waiting for the Introspect 
3309         call to finish ;-)
3310         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3311         when introspection returns with no error
3312         (ProxyObject::_introspect_error_handler): New.  This method is called 
3313         when introspection encounters an error
3314         (ProxyObject::__getattr__): Code to handle different introspection 
3315         states.  Queue async calls or block blocking calls if we are 
3316         introspecting.  Pass through as normal if we are not or are done with 
3317         introspecting.
3318         
3319         * python/service.py: Import signal and method from decorators.py
3320
3321         * python/types.py: Add Variant type
3322
3323 2005-08-16  Colin Walters  <walters@verbum.org>
3324
3325         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3326         DBusError message is NULL.
3327
3328 2005-08-09  Havoc Pennington  <hp@redhat.com>
3329
3330         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3331         malloc'd copy of the name parameter
3332
3333 2005-08-09  Havoc Pennington  <hp@redhat.com>
3334
3335         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3336         warning if the reply serial is set to 0
3337
3338 2005-08-04  Colin Walters  <walters@verbum.org>
3339
3340         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3341         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3342         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3343         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3344         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3345         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3346         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3347         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3348         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3349         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3350         
3351         Prefix name with _ to ensure they're not exported.  All callers
3352         updated.
3353
3354         * glib/dbus-gvalue.c (typecode_to_gtype)
3355         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3356         (signature_iter_to_g_type_dict)
3357         (signature_iter_to_g_type_array)
3358         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3359         (dbus_gtypes_from_arg_signature):
3360         Move to dbus-gsignature.c.
3361
3362         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3363         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3364         (dbus_binding_tool_output_glib_client): Ditto.
3365
3366         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3367         and dbus-gsignature.h
3368
3369         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3370         unused variable.
3371
3372 2005-08-03  Colin Walters  <walters@verbum.org>
3373
3374         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3375         catch any incompatible changes accidentally made.
3376
3377 2005-08-03  Havoc Pennington  <hp@redhat.com>
3378
3379         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3380         typo, from Julien Puydt
3381
3382         * bus/connection.c (bus_connection_disconnected): we were always
3383         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3384
3385 2005-08-01  Colin Walters  <walters@verbum.org>
3386
3387         Patch from Joe Markus Clarke:   
3388         
3389         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3390         use-after-free.
3391
3392 2005-08-01  Colin Walters  <walters@verbum.org>
3393         
3394         Patch from Joe Markus Clarke:   
3395         
3396         * tools/dbus-send.c (main): 
3397         
3398         Don't use C99 style initializers (bug #3933).
3399         
3400 2005-08-01  Colin Walters  <walters@verbum.org>
3401
3402         Patch from Joe Markus Clarke:   
3403
3404         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3405         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3406         * glib/dbus-gobject.c (write_interface):
3407
3408         Don't use C99 style initializers (bug #3933).
3409
3410 2005-07-31  Havoc Pennington  <hp@redhat.com>
3411
3412         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3413         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3414
3415 2005-07-30  Havoc Pennington  <hp@redhat.com>
3416
3417         * fix a bunch of Doxygen warnings and mistakes
3418
3419 2005-07-30  Havoc Pennington  <hp@redhat.com>
3420
3421         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3422         DBUS_BUILD_TESTS since it's now used in production code
3423
3424 2005-07-29  Havoc Pennington  <hp@redhat.com>
3425
3426         * test/glib/test-profile.c (write_junk): initialize the junk
3427         buffer so valgrind doesn't have a breakdown
3428
3429 2005-07-29  Havoc Pennington  <hp@redhat.com>
3430
3431         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3432         (match_rule_matches): remove unused arg
3433         (test_matching): add tests for match_rule_matches()
3434
3435         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3436         do arg0='foo' arg5='bar' in the match rules
3437         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3438
3439         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3440
3441 2005-07-29  Ross Burton  <ross@openedhand.com>
3442
3443         * dbus/dbus-connection.c:
3444         Don't create a DBusCondVar which is never used.
3445
3446 2005-07-27  Ross Burton  <ross@openedhand.com>
3447
3448         * dbus/dbus-message.c:
3449         Reduce the size of the maximum cached message to 10K.
3450
3451 2005-07-25  Ross Burton  <ross@openedhand.com>
3452
3453         * glib/dbus-gproxy.c:
3454         Remove matches when all proxies are unregistered.
3455
3456 2005-07-24  Colin Walters  <walters@verbum.org>
3457
3458         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3459         typedata; recursive arrays won't have it.
3460
3461         * test/glib/test-dbus-glib.c:
3462         * test/glib/test-service-glib.c:
3463         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3464         
3465 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3466
3467         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3468         proxies.py, service.py: Cleanup of code after running it through the
3469         pyflakes code checker mostly dealing with undefined names.  
3470         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3471
3472 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3473
3474         * NEWS: Update to 0.35.2
3475
3476 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3477
3478         * python/_dbus.py: Remove import of the dbus.services
3479         module as it no longer exists (patch from Dimitur Kirov)
3480
3481         * python/service.py (Object::__init__): Fixed typo
3482         s/name/bus_name (patch from Dimitur Kirov)
3483
3484         * python/examples/example-signal-emitter.py: import dbus.glib
3485         to get the main loop and use glib mainloop instead of gtk so
3486         X doesn't have to be running.
3487
3488         * python/examples/example-signal-recipient.py: import dbus.glib
3489         to get the main loop and use glib mainloop instead of gtk so
3490         X doesn't have to be running. Import the decorators module
3491         directly.
3492
3493         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3494         didn't pick up on but are needed to build
3495
3496         * configure.in: upped version to 0.35.2
3497
3498         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3499         added Colin Walters' SELinux API rename patch from head 
3500         s/unix sercurity context/selinux security context/
3501
3502 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3503
3504         * python/Makefile.am: dbus_binding.pxd.in should be included 
3505         in EXTRA_DIST not dbus_binding.pxd
3506         fix up $(srcdir) hopefully for the last time
3507
3508         * NEWS: Update to 0.35.1
3509
3510 2005-07-16  Colin Walters  <walters@verbum.org>
3511
3512         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3513         from bus_driver_handle_get_connection_unix_security_context.  Update for
3514         error usage.
3515         (message_handlers): Update for renames.
3516
3517         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3518         _dbus_string_init failure correctly.
3519         (bus_selinux_append_context): Convert SID to context.  Append it
3520         as a byte array.
3521         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3522         hasn't been called.
3523
3524         * bus/selinux.h: Update prototype.
3525
3526         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3527         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3528
3529 2005-07-15  Colin Walters  <walters@verbum.org>
3530
3531         * doc/TODO: Add note about convenience wrappers.
3532
3533 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3534
3535         * NEWS: Update to 0.35
3536
3537 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3538
3539         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3540         so distcheck doesn't fail
3541
3542         * glib/examples/Makefile.am: Add example-service.xml and 
3543         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3544
3545         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3546         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3547
3548         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3549         compiler looks in the right places during distcheck
3550
3551 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3552
3553         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3554         to fail
3555
3556 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3557
3558         * python/examples/example-service.py,
3559         python/examples/example-signal-emitter.py: Fixed up examples
3560         for API changes
3561
3562 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3563
3564         * python/__init__.py: Upped to version (0,42,0) because of
3565         the API change
3566
3567 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3568
3569         * ChangeLog: fix date in last entry
3570
3571         * configure.in, bus/system.conf.in: add the ability to configure 
3572         the system bus user at compiletime with the --with-dbus-user flag
3573         (patch from Kristof Vansant)
3574
3575 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3576
3577         * bus/dispatch.c, test/test-service.c: Add testcase
3578         for sending messages to oneself (TODO item).
3579
3580         * python/service.py (class Object): Swap ordering of bus_name 
3581         and object_path parameters to better support inheritance.
3582
3583         * doc/dbus-tutorial.xml: change Python docs to reflect change
3584         in parameter ordering and fix the inheritance section.
3585
3586         * doc/TODO: remove sending message to oneself TODO item
3587
3588 2005-07-15  Ross Burton  <ross@openedhand.com>
3589
3590         * glib/dbus-gproxy.c:
3591         Fix a leak when calling methods via the proxy.
3592
3593 2005-07-15  Colin Walters  <walters@verbum.org>
3594
3595         * bus/selinux.c (bus_selinux_append_context): Wrap in
3596         HAVE_SELINUX.
3597
3598 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3599
3600         * python/_dbus.py (Bus::remove_signal_receiver):
3601         don't add a callback to the match if none has been passed in
3602         
3603         * python/matchrules.py (SignalMatchTree::remove): if the rule
3604         being matched does not have a callback treat it as a wildcard
3605         fix matching logic
3606
3607         * doc/dbus-tutorial.xml: Add Python tutorial
3608
3609 2005-07-14  Colin Walters  <walters@verbum.org>
3610
3611         * bus/driver.c
3612         (bus_driver_handle_get_connection_unix_security_context): New function.
3613         (message_handlers): Add.
3614
3615         * bus/selinux.c (bus_selinux_append_context): New function; appends
3616         security context to message.
3617
3618         * bus/selinux.h: Prototype.
3619
3620         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3621
3622 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3623
3624         * bus/activation.c: clean up all tabs to be 8 spaces 
3625         (bus_activation_activate_service): make sure we clean up
3626         if activation fails
3627
3628         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3629         (check_shell_fail_service_auto_start): New function
3630         tests to make sure we get fail properly when trying to auto start a service
3631         with a faulty command line
3632         (check_shell_service_success_auto_start): New function tests to make sure
3633         auto started services get the arguments on the command line
3634
3635         * test/test-shell-service.c: Added service for testing auto-starting with 
3636         command line arguments
3637
3638         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3639         test/data/valid-service-files/debug-shell-echo-success.service.in:
3640         Added service files for testing auto-starting with command line arguments
3641
3642         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3643
3644 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3645
3646         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3647         
3648         * dbus/Makefile.am: added new files to build.
3649
3650         * bus/activation.c (bus_activation_activate_service): support
3651         activation commands with parameters.
3652
3653         * test/shell-test.c: added test program for the shell parsing
3654         code.
3655
3656 2005-07-13  David Zeuthen  <davidz@redhat.com>
3657
3658         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3659         64 bit signed and unsigned parameters
3660
3661 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3662
3663         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3664
3665         * python/service.py (class Name): renamed BusName to make it clearer
3666         what the object is for (a name on the bus)
3667
3668         * python/examples/example-service.py,
3669         python/examples/example-signal-emitter.py: change the Name object to
3670         BusName
3671
3672 2005-07-12  Colin Walters  <walters@verbum.org>
3673
3674         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3675
3676         * tools/dbus-launch.c: Include sys/select.h.
3677
3678 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3679         * python/dbus_bindings.pyx.in: removed
3680
3681         * python/dbus_bindings.pyx: Added.
3682         - Fixed some memleaks (patch from 
3683         Sean Meiners <sean.meiners@linspireinc.com>)
3684         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3685         own pxd file (Pyrex definition)
3686         - Broke out glib dependancies into its own pyx module
3687         
3688         * python/dbus_bindings.pdx: Added.
3689         - Defines C class Connection for exporting to other modules
3690
3691         * python/dbus_glib_bindings.pyx: Added.
3692         - New module to handle lowlevel dbus-glib mainloop integration
3693
3694         * python/glib.py: Added.
3695         - Registers the glib mainloop when you import this module
3696
3697         * python/services.py: Removed (renamed to service.py)
3698         
3699         * python/service.py: Added.
3700         - (class Server): renamed Name
3701
3702         * python/__init__.py: Bump ro version (0,41,0)
3703         -don't import the decorators or service module
3704         by default.  These now reside in the dbus.service namespace
3705
3706         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3707         setup function on creation 
3708
3709         * python/examples/example-service.py,
3710         python/examples/example-signal-emitter.py: update examples
3711
3712         * python/examples/gconf-proxy-service.py,
3713         python/examples/gconf-proxy-service2.py: TODO fix these up
3714
3715         * doc/TODO: Addition
3716         - Added a Python Bindings 1.0 section
3717         - added "Add match on args or match on details to match rules"
3718
3719
3720 2005-07-12  Colin Walters  <walters@verbum.org>
3721
3722         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3723         (statemachine-glue.h): 
3724         * glib/examples/Makefile.am (example-service-glue.h) 
3725         (example-signal-emitter-glue.h): 
3726         * glib/Makefile.am (dbus-glib-error-switch.h): 
3727         Add libtool --mode=execute so we use the built library instead
3728         of any installed one.
3729
3730 2005-07-11  Colin Walters  <walters@verbum.org>
3731
3732         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3733         (dbus_g_value_types_init): Remove assertion.
3734         (dbus_g_value_get_g_type, dbus_g_value_open)
3735         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3736         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3737         functions related to DBusGValue.  Now we marshal/demarshal
3738         structures as GValueArray.
3739         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3740         structures.
3741         (signature_iter_to_g_type_array): Don't call
3742         signature_iter_to_g_type_struct.
3743         (signature_iter_to_g_type_struct): Delete.
3744         (dbus_gvalue_to_signature): Delete.
3745         (dbus_gvalue_to_signature): New function with same name as other
3746         one; we can convert structures to signatures.
3747         (demarshal_valuearray): New function.
3748         (get_type_demarshaller): Use it.
3749         (demarshal_recurse): Delete.
3750         (marshal_proxy): New function.
3751         (marshal_map): Warn if we can't determine signature from type.
3752         (marshal_collection_ptrarray): Ditto.
3753         (marshal_collection_array): Ditto.
3754         (get_type_marshaller): Use marshal_valuearray.
3755         (marshal_recurse): Delete.
3756         (_dbus_gvalue_test): Add some tests.
3757
3758         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3759         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3760         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3761         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3762         (dbus_g_value_free): Remove prototypes.
3763
3764         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3765         G_TYPE_VALUE_ARRAY.
3766
3767         * glib/examples/example-service.c:
3768         * glib/examples/example-client.c: Implement GetTuple.
3769
3770         * test/glib/test-dbus-glib.c:
3771         * test/glib/test-service-glib.c:
3772         * test/glib/test-service-glib.xml: Add structure tests.
3773
3774 2005-07-10  Colin Walters  <walters@verbum.org>
3775
3776         * doc/TODO: Knock off some GLib items with this patch.
3777
3778         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3779         (_dbus_gvalue_signals_error): New functions.
3780
3781         * glib/dbus-gvalue-utils.h: Prototype them.
3782
3783         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3784         and change to not output const/retval flags for input args.  All
3785         callers updated.
3786         (invoke_object_method): Refactor to handle return values.  Add
3787         some more comments in various places.  Remove debug g_print.
3788
3789         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3790
3791         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3792         Handle G_TYPE_NONE.
3793         (compute_gsignature): New function; refactored from code from
3794         compute_marshaller and compute_marshaller_name.  Enhance to
3795         handle return values and async ops more cleanly.  Update for
3796         async ops returning NONE instead of BOOLEAN.
3797         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3798         and output appropriate string.
3799         (generate_glue): Handle return value annotation.  Also don't dump
3800         constness flag for input arguments.
3801
3802         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3803         files shared between installed library and utilities.
3804         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3805         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3806         binding tool can access gtype utility functions.
3807
3808         * test/glib/test-service-glib.c: 
3809         * test/glib/test-service-glib.xml: 
3810         * test/glib/test-dbus-glib.c: Add some tests for return values.
3811
3812 2005-07-09  Colin Walters  <walters@verbum.org>
3813
3814         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3815         argument if available, not method.
3816
3817         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3818         (invoke_object_method): First, remove some redundant
3819         GValues (object_value, error_value) in favor of working on
3820         array directly.  Second, rework constness to be less buggy.
3821         Now we iterate directly over the argument metadata instead
3822         of parallel iterating over output signature and metadata.
3823
3824         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3825
3826         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3827         annotation on input args.
3828         
3829 2005-07-09  Colin Walters  <walters@verbum.org>
3830
3831         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3832         Define.
3833
3834         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3835         annotation.
3836
3837         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3838         (method_dir_signature_from_object_info): Handle arg_iterate change.
3839         (write_interface): Ditto.
3840         (lookup_object_info): Don't barf if format_version is > 0.
3841         (invoke_object_method): Handle arg constness.
3842
3843         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
3844         (arg_info_new): Create.
3845         (arg_info_unref): Destroy.
3846         (arg_info_get_annotations, arg_info_get_annotation) 
3847         (arg_info_add_annotation): New functions.
3848
3849         * glib/dbus-gidl.h: Prototype them.
3850
3851         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
3852         args, disallow them in properties.
3853         (parse_annotation): Handle arg annotations.
3854
3855         * test/glib/test-service-glib.xml: 
3856         * test/glib/test-service-glib.c: Update to make some methods
3857         const.
3858
3859 2005-07-08  Colin Walters  <walters@verbum.org>
3860
3861         * test/glib/test-service-glib.xml: 
3862         * test/glib/test-service-glib.c:
3863         * test/glib/test-dbus-glib.c: Test a{sv}.
3864
3865         * glib/examples/statemachine/statemachine.c:
3866         * glib/examples/statemachine/statemachine-server.c:
3867         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
3868         add progress bar, etc.
3869
3870         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
3871         needed anymore due to generic array/map marshalling.
3872         (dbus_g_value_types_init): Don't register basic arrays or the
3873         string/string hash.
3874         (dbus_gtype_from_signature_iter): Don't try to recurse into
3875         variants.
3876         (dbus_gtype_to_signature): Check collection/map before type
3877         metadata.
3878         (demarshal_garray_basic): Renamed to demarshal_collection_array.
3879         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
3880         generic map creation/append functions instead of hash table
3881         specifically.
3882         (get_type_demarshaller): Handle maps.
3883         (demarshal_collection): Dispatch on collection type to either
3884         demarshal_collection_ptrarray or demarshal_collection_array.
3885         (get_type_marshaller): Handle maps.
3886         (marshal_collection): Dispatch collection type to either
3887         marshal_collection_ptrarray or marshal_collection_array.
3888         (_dbus_gvalue_test): New test.
3889
3890         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
3891         (hash_free_from_gtype): Use it to free GValues.
3892         (hashtable_append): New function.
3893         (ptrarray_append): Fix prototype.
3894         (slist_append): Ditto.
3895         (_dbus_gvalue_utils_test): Extend tests.
3896
3897         * glib/dbus-gtype-specialized.c
3898         (dbus_g_type_specialized_init_append): Renamed from
3899         dbus_g_type_specialized_collection_init_append.  Remove const from
3900         value, since we steal it.
3901         (dbus_g_type_specialized_map_append): New function.
3902
3903         * glib/dbus-gtype-specialized.h: Update prototypes.
3904         Add DBusGTypeSpecializedMapAppendFunc.
3905
3906         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
3907         _dbus_gvalue_test.
3908         
3909         * glib/dbus-gtest.h: Prototype it.
3910
3911 2005-07-08  Ross Burton  <ross@openedhand.com>
3912
3913         * dbus/dbus-glib.h:
3914         Add DBysGAsyncData for the async bindings.
3915
3916         * glib/dbus-binding-tool-glib.c:
3917         Re-enable the async bindings.
3918
3919         * test/glib/test-dbus-glib.c:
3920         Add a test for the generated async bindings.
3921
3922 2005-07-08  Colin Walters  <walters@verbum.org>
3923
3924         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
3925         connection concept.
3926         
3927 2005-07-08  Colin Walters  <walters@verbum.org>
3928         
3929         * tools/Makefile.am: Kill of print-introspect in favor of using
3930         dbus-send --print-reply=literal.
3931
3932         * test/glib/test-service-glib.xml: 
3933         * test/glib/test-service-glib.c (my_object_get_objs): New test
3934         for "ao".
3935
3936         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
3937         (main): Test GetObjs.
3938
3939         * glib/examples/statemachine/Makefile.am:
3940         * glib/examples/statemachine/sm-marshal.list:
3941         * glib/examples/statemachine/statemachine-client.c:
3942         * glib/examples/statemachine/statemachine-server.c:
3943         * glib/examples/statemachine/statemachine-server.xml:
3944         * glib/examples/statemachine/statemachine.c:
3945         * glib/examples/statemachine/statemachine.h:
3946         * glib/examples/statemachine/statemachine.xml:
3947
3948         New example.
3949
3950         * glib/examples/example-service.c (main): Move invocation
3951         of dbus_g_object_type_install_info earlier, to emphasize it
3952         should only be done once.
3953
3954         * glib/examples/example-signal-emitter.c (main): Ditto.
3955
3956         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
3957
3958         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
3959         (dbus_gvalue_marshal): Update prototypes.
3960
3961         * glib/dbus-gvalue.c: Update all marshalling functions to take
3962         const GValue instead of GValue.
3963         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
3964         types.
3965         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
3966         change.
3967         (dbus_gtype_to_signature): Handle generic collecitons and maps.
3968         Return a newly-allocated string.
3969         (demarshal_proxy, demarshal_object_path, demarshal_object)
3970         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
3971         we get the wrong types from message.
3972         (get_type_demarshaller): New function, extracted from
3973         dbus_gvalue_demarshal.
3974         (demarshal_collection): New function, demarshals generic
3975         collection.
3976         (dbus_gvalue_demarshal): Just invoke result of
3977         get_type_demarshaller.  Throw error if we don't have one.
3978         (marshal_garray_basic): Abort on OOM.
3979         (get_type_marshaller): New function, extracted from
3980         dbus_gvalue_marshal.
3981         (collection_marshal_iterator, marshal_collection): New functions;
3982         implements generic marshalling for an iteratable specialized
3983         collection.
3984         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
3985
3986         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
3987         G_TYPE_STRING.
3988         (ptrarray_value_from_gvalue): Ditto.
3989         (ptrarray_append, ptrarray_free): New functions.
3990         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
3991         (slist_append, slist_end_append, slist_free): New functions.
3992         (dbus_g_type_specialized_builtins_init): Add append fuctions
3993         for GPtrArray and GSList.  Register GSList.
3994         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
3995
3996         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
3997         New.
3998         (dbus_g_type_specialized_collection_init_append)
3999         (dbus_g_type_specialized_collection_append)
4000         (dbus_g_type_specialized_collection_end_append): Prototype.
4001         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4002         end_append_func.
4003
4004         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4005         (dbus_g_type_specialized_collection_append) 
4006         (dbus_g_type_specialized_collection_end_append): New functions.
4007         (dbus_g_type_map_value_iterate): Take const GValue.
4008         (dbus_g_type_collection_value_iterate): Ditto.
4009
4010         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4011         _dbus_gvalue_utils_test.
4012         
4013         * glib/dbus-gtest.h: Prototype it.
4014
4015         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4016         using uninitialized owner_list.
4017         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4018         public API.
4019         (dbus_g_proxy_end_call_internal): Update to use error set
4020         from dbus_gvalue_demarshal instead of setting it here.
4021         (dbus_g_proxy_begin_call): Move return_if_fail here.
4022
4023         * glib/dbus-gobject.c (write_interface): Update for
4024         dbus_gtype_to_signature returning new string.
4025
4026         * configure.in: Add glib/examples/statemachine.
4027
4028 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4029
4030         * configure.in: Add a configure option, --with-console-auth-dir
4031         
4032         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4033         new setting.  Patch from Kay Sievers.
4034
4035 2005-07-06  Colin Walters  <walters@verbum.org>
4036
4037         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4038         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4039         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4040         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4041         Delete in favor of dbus_g_proxy_begin_call and
4042         dbus_g_proxy_cancel_call.
4043         (DBusGProxyCall, DBusGProxyCallNotify): New.
4044         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4045         data, and destroy function.  This replaces
4046         dbus_g_pending_call_set_notify.
4047         (dbus_g_proxy_cancel_call): Prototype.
4048         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4049
4050         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4051         pending_calls map.
4052         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4053         internal proxy for calls to the bus. Remove
4054         pending_nameowner_calls, now the internal proxy keeps track.
4055         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4056         pending_nameowner_calls.
4057         (got_name_owner_cb): Update prototype, and use
4058         dbus_g_proxy_end_call.
4059         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4060         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4061         favor of using internal proxy.
4062         (dbus_g_proxy_manager_unregister): Update to use
4063         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4064         (dbus_g_proxy_init): Initialize pending calls map.
4065         (dbus_g_proxy_constructor): New.
4066         (dbus_g_proxy_class_init): Add get/set property functions,
4067         constructor, and add NAME, PATH, and INTERFACE properties.
4068         (cancel_pending_call): New function.
4069         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4070         cancel them.
4071         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4072         (GPendingNotifyClosure): New structure.
4073         (d_pending_call_notify, d_pending_call_free): Moved here from
4074         dbus-glib.c.
4075         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4076         ordering.
4077         (manager_begin_bus_call): New internal function for talking to
4078         internal bus proxy.
4079         (dbus_g_proxy_new): Construct object using GObjet properties.
4080         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4081         Create closure of same, and insert call into map of pending calls.
4082         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4083         call.  Look up pending call in current set.  Remove it when we've
4084         completed.
4085         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4086         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4087         and destroy function directly.
4088         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4089         (dbus_g_proxy_call): Invoke with NULL callback.
4090         (dbus_g_proxy_cancel_call): New function, replaces
4091         dbus_g_pending_call_cancel.
4092
4093         * glib/dbus-gparser.c (validate_signature): Fix call to
4094         dbus_set_g_error.
4095
4096         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4097         New quark for attaching metadata to GType.
4098         (info_hash): Delete.
4099         (lookup_object_info): Look up using quark.
4100         (dbus_g_object_type_install_info): Check that a type is classed,
4101         not that it's an object.  Also just install type data using quark
4102         instead of using global hash.
4103
4104         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4105         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4106         (GPendingNotifyClosure): Delete.
4107         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4108         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4109
4110         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4111         client method generation until we can fix it...
4112         
4113         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4114         (load_from_service_thread_func): Ditto.
4115
4116         * tools/dbus-names-model.c (struct NamesModel): Hold
4117         DBusGProxyCall.
4118         (have_names_notify): Update prototype, use
4119         dbus_g_proxy_cancel_call.
4120         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4121
4122         * tools/dbus-monitor.c (filter_func): Update for print_message
4123         API change.
4124
4125         * test/glib/test-dbus-glib.c: Add more tests for async
4126         invocations.  Update many begin_call/end_call pairs to just use
4127         dbus_g_proxy_call.
4128
4129         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4130         allows us to dump print-introspect.c.
4131
4132         * tools/dbus-print-message.h (print_message): Add literal argument
4133         to print_message which is intended to allow printing arguments without
4134         metadata like "string=".
4135
4136         * tools/dbus-print-message.c (print_iter): Add literal argument.
4137         (print_message): Allow printing string messages literally.
4138
4139 2005-07-05  Colin Walters  <walters@verbum.org>
4140
4141         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4142         Remove value refcount leak, original patch from Jorn Baayen
4143         <jorn@openedhand.com>.  Also remove useless extra value in favor
4144         of prepending to value array directly.
4145
4146 2005-07-02  Colin Walters  <walters@verbum.org>
4147
4148         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4149
4150 2005-07-01  Colin Walters  <walters@verbum.org>
4151
4152         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4153         
4154         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4155         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4156         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4157         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4158
4159 2005-06-30  Colin Walters  <walters@verbum.org>
4160
4161         * test/glib/test-dbus-glib.c:
4162         * test/glib/test-service-glib.c:
4163         * test/glib/test-service-glib.xml: Update tests for new error
4164         setting bits, also add async tests (patch from Ross Burton).
4165
4166         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4167         DBUS_GLIB_THREADS_LIBS.
4168
4169         * glib/dbus-gproxy.c (get_name_owner)
4170         (dbus_g_pending_call_end_valist): Ditto.
4171
4172         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4173         domain (GQuark) to DBusGErrorInfo.  
4174         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4175         quark in error_metadata.  Take message interface as default
4176         error message interface.
4177         (gerror_to_dbus_error_message): Pass message interface.
4178         (dbus_set_g_error): Resurrected.
4179         (dbus_g_error_info_free): New function.
4180         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4181         of _peek to actually create the object class if it hasn't been
4182         created yet.
4183         (dbus_g_error_domain_register): New function.
4184
4185         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4186
4187         * glib/dbus-gparser.c (validate_signature): Ditto.
4188
4189         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4190         (dbus_g_error_domain_register): Prototype.
4191
4192         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4193         Update tests.
4194
4195 2005-06-29  Colin Walters  <walters@verbum.org>
4196
4197         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4198         DBUS_TYPE_G_OBJECT_PATH.
4199
4200         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4201         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4202         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4203         (dbus_g_object_path_get_g_type): New function.
4204         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4205         to DBUS_TYPE_G_OBJECT_PATH by default.
4206         (demarshal_proxy): Remove unused name variable.
4207         (demarshal_object_path, marshal_object_path): New functions.
4208         (demarshal_proxy_array, marshal_proxy_array): Delete.
4209         
4210         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4211         DBUS_TYPE_G_OBJECT_PATH to char *.
4212         (dbus_g_type_get_lookup_function): Map builtin
4213         DBUS_TYPE_G_OBJECT_PATH.
4214
4215         * test/glib/test-dbus-glib.c
4216         * test/glib/test-service-glib.c (my_object_objpath): 
4217         Adapt tests to new object path marshalling.
4218
4219 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4220
4221         * configure.in: force check for Python >= 2.4
4222
4223 2005-06-29  Colin Walters  <walters@verbum.org>
4224         
4225         Patch from Ross Burton <ross@openedhand.com>
4226         
4227         * glib/dbus-gobject.c (invoke_object_method): Unset object
4228         value in all cases, not only in async case.
4229
4230 2005-06-29  Colin Walters  <walters@verbum.org>
4231
4232         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4233         name_call for keeping track of any outgoing GetNameOwner call.
4234         Also add for_owner and associated.
4235         (struct _DBusGProxyManager): Add owner_names, which is hash table
4236         that maps a base name to a list of names it owns (that we're
4237         interested in).  Add pending_nameowner_calls which is a list of
4238         all outstanding GetNameOwner; avoids us having to iterate over
4239         every proxy.  Add unassociated_proxies which keeps track of name
4240         proxies with no associated name owner.
4241         (dbus_g_proxy_manager_unref): Destroy owner_names.
4242         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4243         name refcounts.
4244         (find_name_in_info, name_owner_foreach)
4245         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4246         (dbus_g_proxy_manager_monitor_name_owner)
4247         (dbus_g_proxy_manager_unmonitor_name_owner)
4248         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4249         New functions; they manipulate the owner_names mapping.
4250         (got_name_owner_cb): New function.
4251         (get_name_owner): New function, extracted from
4252         dbus_g_proxy_new_for_name_owner.
4253         (dbus_g_proxy_manager_register): For now we need to keep track of
4254         all NameOwnerChanged.  Also if the proxy is for a name, if we
4255         don't already know the name owner, queue a new GetNameOwner
4256         request and add it to our list of unassociated proxies.  Otherwise
4257         inc the refcount.
4258         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4259         cancel any pending GetNameOwner call, etc.
4260         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4261         the owner_names mapping to look up the current names for the
4262         signal source, and dispatch to any proxies for that name.
4263         (dbus_g_proxy_new): Initialize new members.
4264         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4265         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4266         (dbus_g_pending_call_end_valist): New function, extracted from
4267         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4268         but want to use the GLib infrastructure.  Also note how many
4269         arguments in reply were over.
4270         (dbus_g_pending_call_end): New function, just call
4271         dbus_g_pending_call_end_valist.
4272         (dbus_g_proxy_end_call_internal): Just call
4273         dbus_g_pending_call_end_valist.
4274
4275         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4276         of builtin marshaller for STRING_STRING_STRING.
4277
4278         * test/glib/test-dbus-glib.c: 
4279         * test/glib/test-service-glib.c:
4280         * test/glib/test-service-glib.xml:
4281         Extend tests to cover name proxies, destruction of owner proxies,
4282         etc.
4283         
4284         * glib/examples/example-signal-recipient.c
4285         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4286         
4287         * tools/dbus-send.c (main): Print D-BUS error name in addition
4288         to message.
4289
4290 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4291
4292         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4293         cmessage_function_handler): Patch from 
4294         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4295         by using the Py_GILState_Ensure/Release to synchronize with the
4296         python runtime.
4297         
4298 2005-06-28  Ray Strode  <rstrode@redhat.com>
4299
4300         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4301         babysitter helper process on last unref, bug #2813.
4302
4303 2005-06-27  Colin Walters  <walters@verbum.org>
4304
4305         * test/glib/test-dbus-glib.c: 
4306         * test/glib/test-service-glib.c:
4307         * test/glib/test-service-glib.xml:
4308         Test hash table signal emitting.
4309
4310         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4311         types to their fundamental basis types, since this is what
4312         marshallers operate on.  Also add an entry for VOID__BOXED.
4313         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4314
4315 2005-06-26  Havoc Pennington  <hp@redhat.com>
4316
4317         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4318         from Don Park
4319
4320 2005-06-26  Colin Walters  <walters@verbum.org>
4321
4322         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4323         (dbus_g_error_set): New public function from its ashes; used by
4324         both service-side method implementation and GLib bindings
4325         internals.
4326         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4327         (_dbus_glib_test): Add some tests.
4328
4329         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4330
4331         * test/glib/test-service-glib.c (my_object_throw_error): Use
4332         dbus_g_error_set.
4333
4334         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4335         errors thrown by dbus_g_error_set.
4336
4337         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4338
4339         * glib/dbus-gparser.c (validate_signature): Ditto.
4340
4341         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4342         (dbus_g_proxy_end_call_internal): Ditto.
4343
4344         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4345         converts DBUS_ERROR_x to DBUS_GERROR_x.
4346         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4347
4348         * doc/TODO: Remove error TODO.
4349
4350         * doc/dbus-tutorial.xml: Update with documentation about error
4351         handling.
4352
4353         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4354         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4355         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4356
4357 2005-06-22  Colin Walters  <walters@verbum.org>
4358         
4359         Patch from Ross Burton <ross@openedhand.com>
4360
4361         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4362
4363 2005-06-20  Colin Walters  <walters@verbum.org>
4364
4365         * configure.in: Add glib/examples.
4366
4367         * glib/Makefile.am: Add examples/
4368
4369         * glib/examples/.cvsignore
4370         * glib/examples/Makefile.am
4371         * glib/examples/example-client.c
4372         * glib/examples/example-service.c
4373         * glib/examples/example-service.xml
4374         * glib/examples/example-signal-emitter.c
4375         * glib/examples/example-signal-emitter.xml
4376         * glib/examples/example-signal-recipient.c:
4377         New files; GLib binding examples, ported from
4378         python/examples.
4379
4380 2005-06-20  Colin Walters  <walters@verbum.org>
4381
4382         * dbus/dbus-glib.h: 
4383         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4384         dbus_g_proxy_call.
4385
4386         * glib/dbus-binding-tool-glib.c: 
4387         * doc/dbus-tutorial.xml: 
4388         * test/glib/test-dbus-glib.c: Update for rename.
4389         
4390 2005-06-20  Colin Walters  <walters@verbum.org>
4391
4392         Patch suggested by Ross Burton <ross@openedhand.com>
4393
4394         * glib/dbus-gobject.c (export_signals): Free signal name.
4395         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4396         memory leak.  Add a bit of documentation.
4397         (dbus_g_method_return_error): Free context, and note we do
4398         so.
4399
4400 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4401
4402         * dbus/dbus-glib.h:
4403         * glib/dbus-gobject.c:
4404         * glib/dbus-gproxy.c:
4405         * glib/dbus-gvalue.c: Predeclare structs as 
4406         typedef struct _Something Something instead of 
4407         typedef struct Something Something, so we can 
4408         redeclare the prototypes. Other GNOME libraries 
4409         do this already.
4410
4411 2005-06-17  Colin Walters  <walters@verbum.org>
4412
4413         * tools/dbus-names-model.c (have_names_notify): Fix call
4414         to dbus_g_proxy_end_call.
4415         
4416 2005-06-17  Colin Walters  <walters@verbum.org>
4417
4418         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4419         spew warnings if we get malformed remote signals.
4420
4421         * glib/dbus-gobject.c (propsig_iterate): New function.
4422         (lookup_object_info): New function, extracted from
4423         lookup_object_and_method.
4424         (introspect_properties, introspect_signals): Delete; these
4425         are merged into write_interface.
4426         (write_interface): Write out signals and properties here;
4427         dump the org.gtk.object stuff and use the interface given
4428         in the introspection data blob.  Also fix up property XML.
4429         (lookup_values): New function.
4430         (introspect_interfaces): Gather a mapping from interface to a
4431         list of its methods, signals, and properties, then write out
4432         each interface.
4433         (lookup_object_and_method): Use lookup_object_info.
4434         (struct DBusGSignalClosure): Add interface.
4435         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4436         we can just use the constant data.
4437         (dbus_g_signal_closure_finalize): Don't free signal name.
4438         (signal_emitter_marshaller): Use interface from signal closure.
4439         (export_signals): Only export signals mentioned in introspection
4440         blob.
4441         (dbus_g_connection_register_g_object): Warn if we have no
4442         introspection data for an object.
4443         (funcsig_equal): Remove unused variable.
4444         (dbus_g_object_register_marshaller): Take varargs instead of
4445         list.
4446         (dbus_g_object_register_marshaller_array): New function,
4447         extracted from old dbus_g_object_register_marshaller.
4448
4449         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4450         signals and property data.
4451         (write_quoted_string): New function, extracted from generate_glue.
4452         (generate_glue): Write signals and properties to introspection
4453         blob.
4454
4455         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4456         exported_signals and exported_properties.
4457         (dbus_g_object_register_marshaller): Update prototype.
4458         (dbus_g_object_register_marshaller_array): Prototype.
4459         
4460         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4461
4462         * test/glib/test-service-glib.c: Add new test signals and method
4463         to emit them.
4464
4465         * test/glib/test-service-glib.xml: Add some test signals.
4466
4467         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4468         and my-object-marshal.h
4469         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4470         my-object-marshal.c.
4471         (my-object-marshal.c, my-object-marshal.h): Implement.
4472
4473         * test/glib/.cvsignore: Update.
4474
4475         * doc/TODO: Remove two GLib TODO items fixed by this
4476         patch.
4477
4478 2005-06-16  Colin Walters  <walters@verbum.org>
4479
4480         * doc/TODO: Update for GLib bindings.
4481         
4482 2005-06-16  Colin Walters  <walters@verbum.org>
4483
4484         * glib/dbus-binding-tool-glib.c:
4485         * glib/dbus-gobject.c:
4486         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4487         from Ross Burton, for his GLib bindings work.
4488
4489 2005-06-16  Colin Walters  <walters@verbum.org>
4490
4491         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4492         to iterate instead of walking to G_TYPE_INVALID.
4493
4494         Patch based on a patch from Ryan Gammon.
4495
4496 2005-06-16  Colin Walters  <walters@verbum.org>
4497
4498         * bus/bus.c (bus_context_new): Set parser to NULL
4499         after we unref it (Patch from Chris Boscolo, #2174).
4500         
4501 2005-06-16  Colin Walters  <walters@verbum.org>
4502
4503         * python/dbus_bindings.pyx.in: Import size_t,
4504         __int64_t, __uint64_t, and __signed.
4505
4506         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4507         Define cmsg struct, output it.
4508         (_dbus_read_credentials_unix_socket):
4509         Use cmsg struct.
4510         
4511         Patch from Joe Markus Clarke for FreeBSD support.
4512         
4513 2005-06-16  Colin Walters  <walters@verbum.org>
4514
4515         * tools/dbus-send.c (append_array): Use strtok.
4516         (append_dict): New function.
4517         (type_from_name): New function, extracted from main.
4518         (main): Handle sending dicts.
4519
4520         * tools/dbus-print-message.c (print_iter): Print dict
4521         entries.
4522         
4523 2005-06-16  Colin Walters  <walters@verbum.org>
4524
4525         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4526         values as the empty string (#2948).
4527         
4528 2005-06-16  Colin Walters  <walters@verbum.org>
4529
4530         * dbus/Makefile.am:
4531         * mono/doc/Makefile.am:
4532         * test/glib/Makefile.am:
4533
4534         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4535
4536 2005-06-16  Colin Walters  <walters@verbum.org>
4537
4538         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4539         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4540
4541         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4542         Increment pointer after swapping fixed array.  Add assertion
4543         for array length.
4544                 
4545 2005-06-15  Colin Walters  <walters@verbum.org>
4546
4547         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4548         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4549         
4550 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4551
4552         * NEWS: Update to 0.34
4553
4554 2005-06-15  David Zeuthen  <davidz@redhat.com>
4555
4556         * configure.in (LT_CURRENT): Revert back to 1 as the library
4557         hasn't changed and we've certainly not committed to protocol
4558         stability yet.  All this does is to break ABI. See commit note
4559         from hp@redhat.com 2005-05-05 for details.
4560         
4561 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4562
4563         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4564         (_dbus_connection_run_builtin_filters): New method
4565         (dbus_connection_dispatch): Run the builtin filters which in turn
4566         runs the peer filter which handles Ping messages.
4567
4568         * doc/TODO: 
4569          - Ping isn't handled: This patch fixes it
4570          
4571          - Add a test case for the Ping message: added TODO item
4572
4573 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4574
4575         * dbus/dbus-message.c:
4576         (dbus_message_has_path): New method
4577         (dbus_message_has_interface): New method
4578         (dbus_message_has_member): New method
4579
4580         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4581         New method
4582
4583         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4584         the keyring directory is private to the user
4585
4586         * doc/TODO:
4587          - The convenience functions in dbus-bus.h should perhaps have
4588          the signatures that they would have if they were autogenerated
4589          stubs. e.g. the acquire service function. We should also evaluate
4590          which of these functions to include, in light of the fact that
4591          GLib/Qt native stubs will probably also exist.: Punted
4592
4593          - add dbus_message_has_path(), maybe has_member/interface:
4594          fixed in this patch
4595
4596          - in dbus-keyring.c, enforce that the keyring dir is not
4597          world readable/writable: Fixed in this patch
4598
4599 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4600
4601         * dbus/dbus-marshal-validate.h: Added a new validation
4602         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4603         out of memory errors when validating signitures
4604
4605         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4606         in places where we previously used DBUS_VALID and a FALSE return 
4607         value to indicate OOM
4608         
4609         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4610         Use a stack to track the number of elements inside containers.  The 
4611         stack values are then used to validate that dict entries have only two
4612         elements within them.
4613         (validate_body_helper): check the reason for failure when validating
4614         varients
4615         
4616         * dbus/dbus-message.c (load_message): use 
4617         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4618         DBUS_VALID and a FALSE return value to indicate OOM
4619
4620         * doc/TODO: remove "- validate dict entry number of fields" as this
4621         patch fixes it
4622
4623 2005-06-14  David Zeuthen  <davidz@redhat.com>
4624
4625         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4626         watches (if applicable) and add new watches
4627
4628         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4629         (main): Setup SIGIO signal handler if using D_NOTIFY
4630
4631         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4632
4633         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4634         (merge_included): Also merge conf_dirs list
4635         (bus_config_parser_unref): Clear conf_dirs list
4636         (include_dir): Add directory to conf_dirs list
4637         (bus_config_parser_get_conf_dirs): New function
4638
4639         * bus/dir-watch.[ch]: New files
4640
4641         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4642
4643         * configure.in: Add checks for D_NOTIFY on Linux
4644
4645 2005-06-14  Colin Walters  <walters@verbum.org>
4646
4647         * glib/dbus-binding-tool-glib.c:
4648         * glib/dbus-gobject.c:
4649         * glib/dbus-gvalue.c: Fix indentation and brace style.
4650         
4651 2005-06-14  Ross Burton <ross@openedhand.com>.
4652
4653         * glib/dbus-glib.h: Make DBusGMethodInvocation
4654         a private structure.  Rearrange prototypes a bit.
4655         
4656         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4657         documentation for first_arg_type.
4658         
4659         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4660         here, add documentation.  Move dbus_g_method_return
4661         and dbus_g_method_return_error into public API
4662         section.
4663
4664 2005-06-14  Colin Walters  <walters@verbum.org>
4665
4666         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4667         Add missing return statements, noticed by Ross Burton.
4668         
4669 2005-06-13  Ross Burton <ross@openedhand.com>.
4670
4671         * glib/dbus-gobject.c: Handle errors on message
4672         demarshalling by sending error message back.
4673         * glib/dbus-gvalue.c: Initialize return variables.
4674
4675 2005-06-13  Colin Walters  <walters@verbum.org>
4676
4677         * glib/Makefile.am: Fix thinko in last patch.
4678
4679 2005-06-13  Colin Walters  <walters@verbum.org>
4680
4681         * glib/Makefile.am: Move dbus-gtype-specialized.c
4682         and dbus-gtype-specialized.h into a _HEADERS variable,
4683         install them.
4684
4685 2005-06-12  Colin Walters  <walters@verbum.org>
4686
4687         Async signals and various bugfixes and testing by
4688         Ross Burton <ross@openedhand.com>.
4689
4690         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4691         (dbus_gvalue_genmarshal_name_from_type)
4692         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4693         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4694         (dbus_g_value_types_init, dbus_gtype_from_signature)
4695         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4696         (dbus_gtypes_from_arg_signature): New function prototypes.
4697         (dbus_gvalue_demarshal): Take context and error arguments.
4698         (dbus_gvalue_demarshal_variant): New function.
4699         (dbus_gvalue_demarshal_message): New function.
4700         (dbus_gvalue_store): Delete.
4701
4702         * glib/dbus-gvalue.c:
4703
4704         File has been almost entirely rewritten; now we special-case
4705         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4706         hash tables correctly, etc.  Full support for recursive values
4707         is not yet complete.
4708
4709         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4710         argument of signal to G_TYPE_POINTER since we now pass a
4711         structure.
4712         (lookup_g_marshaller): Delete in favor of
4713         _dbus_gobject_lookup_marshaller.
4714         (marshal_dbus_message_to_g_marshaller): Use
4715         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4716         to handle remote signal callbacks.
4717         (dbus_g_proxy_new_from_proxy): New function; creates a new
4718         DBusGProxy by copying an existing one.
4719         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4720         (dbus_g_proxy_get_path): New functions.
4721         (dbus_g_proxy_marshal_args_to_message): New function;
4722         factored out of existing code.
4723         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4724         from a varargs array.
4725         (dbus_g_proxy_begin_call_internal): New function.
4726         (dbus_g_proxy_end_call_internal): New function.
4727         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4728         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4729         after collecting args into value array.
4730         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4731         invoke dbus_g_proxy_end_call_internal.
4732         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4733         end_call_internal.
4734         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4735         types.
4736         (array_free_all): New function.
4737         (dbus_g_proxy_add_signal): Take GTypes.
4738
4739         * glib/dbus-gobject.h:
4740         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4741         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4742         Prototype.
4743
4744         * glib/dbus-gobject.c: Add a global marshal_table hash which
4745         stores mappings from type signatures to marshallers.  Change lots
4746         of invocations of dbus_gtype_to_dbus_type to
4747         dbus_gtype_to_signature.
4748         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4749         (introspect_signals): Fix test for query.return_type.
4750         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4751         (invoke_object_method): Many changes.  Handle asynchronous
4752         invocations.  Convert arguments with
4753         dbus_gvalue_demarshal_message.  Handle errors.  Use
4754         DBusSignatureIter instead of strlen on args. Handle all arguments
4755         generically.  Special-case variants.
4756         (dbus_g_method_return, dbus_g_method_return_error): New function.
4757         (DBusGSignalClosure): New structure, closes over signal
4758         information.
4759         (dbus_g_signal_closure_new): New function.
4760         (dbus_g_signal_closure_finalize): New function.
4761         (signal_emitter_marshaller): New function; is special marshaller
4762         which emits signals on bus.
4763         (export_signals): New function; introspects object signals and
4764         connects to them.
4765         (dbus_g_object_type_install_info): Take GType instead of
4766         GObjectClass.
4767         (dbus_g_connection_register_g_object): Invoke export_signals.
4768         (dbus_g_connection_lookup_g_object): New function.
4769         (DBusGFuncSignature) New structure; used for mapping type
4770         signatures to marshallers.
4771         (funcsig_hash): New function; hashes DBusGFuncSignature.
4772         (funcsig_equal): New function; compares DBusGFuncSignature.
4773         (_dbus_gobject_lookup_marshaller): New function.
4774         (dbus_g_object_register_marshaller): New function; used to
4775         register a marshaller at runtime for a particular signature.
4776
4777         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4778
4779         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4780         which notes a server method implementation should be
4781         asynchronous.
4782
4783         * glib/dbus-binding-tool-glib.c
4784         (dbus_binding_tool_output_glib_server): Call
4785         dbus_g_value_types_init.
4786         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4787         variants specially.
4788         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4789         of a lookup function.
4790         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4791         (write_untyped_out_args): New method; write output arguments.
4792         (write_formal_declarations_for_direction): Function for
4793         writing prototypes.
4794         (write_formal_parameters_for_direction): Function for
4795         writing implementations.
4796         (write_typed_args_for_direction): Function for writing
4797         arguments prefixed with GTypes.
4798         (write_async_method_client): Write out async version
4799         of method.
4800
4801         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4802         (dbus_g_type_get_marshal_name): Move mapping from GType
4803         to marshal name into here.
4804         (dbus_g_type_get_c_name): Move into here.
4805         (compute_marshaller): Convert signature to type with
4806         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4807         (compute_marshaller_name): Ditto.
4808         (compute_marshaller): Handle async signal annotations.
4809         (gather_marshallers): Return if we don't have a known
4810         prefix.
4811         (generate_glue): Collect introspection blob here, and
4812         write all of the blob at the end.  This allows an object
4813         with multiple interfaces to work.
4814         Mark async methods in introspection blob.
4815
4816         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4817         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4818         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4819
4820         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4821         avoids people accidentally using DBUS_TYPE_* which should
4822         not be necessary anymore.
4823         Do include dbus-gtype-specialized.h, which are utilities
4824         for GLib container types.
4825         Add various #defines for types such as
4826         DBUS_TYPE_G_BOOLEAN_ARRAY.
4827         (DBusGValueIterator, DBusGValue): Define, not fully used
4828         yet.
4829         (dbus_g_value_get_g_type): Type for recursive value.
4830         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4831         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4832         (dbus_g_value_free): Prototypes.
4833         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4834         (dbus_g_proxy_set_interface): Prototype.
4835         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4836         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4837         types.
4838         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4839         Accessors.
4840         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4841         doing async invocations.
4842         (dbus_g_method_return, dbus_g_method_return_error):
4843         Prototypes.
4844         * doc/dbus-tutorial.xml: Update GLib section.
4845         
4846         * tools/dbus-viewer.c (load_child_nodes): Update
4847         for new invocation type of dbus_g_proxy_end_call.
4848         (load_from_service_thread_func): Ditto.
4849
4850         * tools/print-introspect.c (main): Ditto.
4851
4852         * tools/dbus-names-model.c (have_names_notify)
4853         (names_model_reload, names_model_set_connection)
4854         Use GTypes.
4855
4856         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
4857         needed since Python bindings use GLib bindings.
4858
4859         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
4860         Add --prefix argument.
4861
4862         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
4863         unneeded --ignore-unsupported arg.
4864         
4865         * test/glib/test-service-glib.c: 
4866         * test/glib/test-service-glib.xml:
4867         * test/glib/test-dbus-glib.c: Add many more tests.
4868
4869 2005-06-06  David Zeuthen  <davidz@redhat.com>
4870
4871         * doc/TODO: Add item about need to remove deprecated functions.
4872
4873         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
4874
4875         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
4876         to repair the ABI which was broken with the last commit.
4877
4878 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
4879
4880         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
4881         (dbus_connection_disconnect): renamed to dbus_connection_close 
4882         for API symmetry with dbus_connection_open
4883         (_dbus_connection_open_internal): 
4884         s/dbus_connection_disconnect/dbus_connection_close
4885
4886         * dbus/dbus-bus.c (dbus_bus_get):
4887         s/dbus_connection_disconnect/dbus_connection_close
4888
4889         * bus/connection.c (bus_connections_unref, 
4890         bus_connections_setup_connection, bus_connections_expire_incomplete):
4891         s/dbus_connection_disconnect/dbus_connection_close
4892
4893         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
4894         kill_client_connection_unchecked, check_hello_connection):
4895         s/dbus_connection_disconnect/dbus_connection_close
4896
4897         * bus/bus.c (new_connection_callback):
4898         s/dbus_connection_disconnect/dbus_connection_close
4899
4900         * tools/dbus-send.c (main):
4901         s/dbus_connection_disconnect/dbus_connection_close
4902
4903         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
4904         s/dbus_connection_disconnect/dbus_connection_close
4905         
4906         * test/test-service.c (path_message_func, filter_func):
4907         s/dbus_connection_disconnect/dbus_connection_close
4908         
4909         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
4910         
4911 2005-05-25  Colin Walters  <walters@verbum.org>
4912
4913         * dbus/dbus-protocol.h: Move various bus service #defines such
4914           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
4915           dbus/dbus-shared.h.
4916         * dbus/dbus-shared.h: Various defines moved here.
4917         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
4918
4919 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
4920
4921         * python/__init__.py: Python bindings deserve a minor version
4922         update.  Upped to (0, 40, 2)
4923
4924 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
4925
4926         * python/decorators.py: add explicitly_pass_message decorator
4927         for passing in the dbus message as keyword for edge case signal
4928         handling
4929
4930         * python/matchrules.py (SignalMatchRule.__repr__): fix output
4931         to conform with what dbus expects for match rules
4932         (SignalMatchRule.execute): add the dbus message as a keyword
4933         if the signal handler has requested it
4934
4935         * python/examples/example/signal-recipient.py: added some more
4936         examples on how to hook up to signals
4937
4938 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
4939
4940         * python/decorators.py: import dbus_bindings
4941
4942         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
4943         SignalMatchNode): new classes that implement wildcard signal
4944         callback matching using a tree lookup. Heavily modified from a
4945         patch sent by Celso Pinto (fd.o bug #3241)
4946
4947         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
4948         use new match classes to handle signals.
4949
4950 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
4951         
4952         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
4953
4954 2005-05-18  Havoc Pennington  <hp@redhat.com>
4955
4956         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
4957         gettext. Not really worth requiring yet perhaps, but any
4958         production quality 1.0 would require it so we should go ahead and
4959         get things set up. We do have a couple token calls to
4960         bindtextdomain in the code already.
4961
4962 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
4963
4964         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
4965         when using recursive g_main_loops
4966
4967         * python/_dbus.py (class Bus): add the ProxyObjectClass
4968         alias for ProxyObject to make it easier for the Twisted 
4969         networking framework to integrate dbus.
4970
4971         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
4972         alias for ProxyMethod to make it easier for the Twisted 
4973         networking framework to integrate dbus. 
4974
4975 2005-05-11  Ross Burton  <ross@openedhand.com>
4976
4977         * glib/dbus-glib-tool.c: Add --prefix argument.
4978         * glib/dbus-binding-tool-glib.h: Add prefix argument.
4979         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
4980         Add prefix argument.
4981         (generate_glue): Pass prefix argument down.
4982         (dbus_binding_tool_output_glib_server): Pass prefix to
4983         glib-genmarshal.
4984         
4985 2005-05-11  Colin Walters  <walters@verbum.org>
4986
4987         * tools/dbus-send.c (append_array): New function.
4988         (append_arg): Broken out from main.
4989         (main): Add cheesy hack to send arrays and variants.
4990         (usage): Update.
4991         * tools/dbus-print-message.c (print_iter): Broken out
4992         from main.
4993
4994 2005-05-11  Colin Walters  <walters@verbum.org>
4995
4996         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
4997         New function, returns signature string for signature iter.
4998         * dbus/dbus-signature.h: Prototype it.
4999         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5000         New function, returns signature string for message iter.
5001         (dbus_message_iter_get_array_len): New function, returns
5002         length of array.
5003         (dbus_message_iter_get_fixed_array): Fix assertion; this
5004         function should be used when the iter is pointing to the
5005         contents of an array
5006         * dbus/dbus-message.h: Prototypes.
5007         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5008         New function; returns length of an array.
5009         * dbus/dbus-marshal-recursive.h: Prototype it.
5010         
5011 2005-05-11  Colin Walters  <walters@verbum.org>
5012
5013         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5014         compilation error.
5015         
5016 2005-05-08  Havoc Pennington  <hp@redhat.com>
5017
5018         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5019         daemon's pid, not the parent's pid, to the file descriptor.
5020         Reported by Taj Morton.
5021
5022 2005-05-05  Havoc Pennington  <hp@redhat.com>
5023
5024         * configure.in (LT_*): add notes on how the libtool versioning
5025         works to save thinking. Increment soname to indicate protocol
5026         breakage (though really the library interface hasn't changed I
5027         guess)
5028
5029         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5030         verify the GUID received from server matches what we were
5031         expecting, if we had an expectation
5032
5033         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5034         (_dbus_auth_get_guid_from_server): new function
5035         (send_begin): parse the OK args
5036
5037         * doc/dbus-specification.xml: add GUID to the auth protocol
5038
5039 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5040
5041         * Fix my name in previous changelog ;)
5042
5043         * python/proxies.py (ProxyObject.__getattr__): add further patch
5044         from Anthony Baxter to throw an AttributeError when python 
5045         __special__ functions are called instead of marshling them over 
5046         the bus (Bug#1685 comment 3).
5047
5048 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5049
5050         * python/Makefile.am: changed to use pyexecdir for the binding
5051         shared libraries (Bug#2494)
5052
5053         * python/exceptions.py: bring exceptions over from the bindings
5054         so they can be used in applications (Bug#2036)
5055         Make all exceptions derive from DBusException
5056
5057         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5058         of classes so that print obj doesn't throw an exception (Bug #1685)
5059
5060 2005-05-03  Ross Burton  <ross@openedhand.com>
5061
5062         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5063         Return if we get an error during registration.  Set up a
5064         weak reference on object to unregister if object is destroyed.
5065         (unregister_gobject): New function.
5066         
5067 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5068
5069         * python/dbus_bindings.pyx.in: 
5070         - added new type classes for hinting to the marashaler what type 
5071         to send over the wire
5072         - added int16 and uint16 marshalers
5073         - Fixed a bug in the type constants that caused int32 to go out
5074         as uint16 over the wire
5075         * python/dbus.py: split up into different files and renamed _dbus.py
5076         * python/__init__.py, python/_util.py, python/decorators.py, 
5077         python/exceptions.py, python/proxies.py, python/services.py,
5078         python/types.py: new files split off from dbus.py
5079         * python/Makefile.am: Add new files, remove dbus.py and 
5080         install all python files to <python module dir>/dbus
5081         * python/examples/*: Added #!/usr/bin/env python to the top of
5082         every example.  Patch provided by Tatavarty Kalyan
5083
5084 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5085
5086         * NEWS: Update to 0.33
5087
5088 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5089
5090         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5091         method for doing async calls
5092         (_pending_call_notification): New C function for handling pendning call
5093         callbacks
5094         (set_notify): New method for setting pending call notification
5095         
5096         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5097         Async capabilities added to remote method calls
5098         (Sender): class removed
5099         (RemoteService): class removed
5100         (ObjectTree): class removed for now
5101         (RemoteObject): Renamed to ProxyObject
5102         (RemoteMethod): Renamed to ProxyMethod
5103         (method): Decorator added for decorating python methods as dbus methods
5104         (signal): Decorator added for decorating python methods as signal emitters
5105         (ObjectType): Metaclass added for generating introspection data and the
5106         method callback vtable
5107         (Interface): Wrapper class added to wrap objects in a dbus interface
5108         (Object): Uses ObjectType as its metaclass and exports Introspect
5109         of the org.freedesktop.DBus.Introspectable interface
5110         (ValidationException, UnknownMethodException): new exceptions
5111
5112         * python/examples/*: Modified to fit with the new bindings
5113
5114 2005-04-23  Havoc Pennington  <hp@redhat.com>
5115
5116         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5117         reported by Tony Houghton
5118
5119         * test/test-service.c (main): test
5120         dbus_connection_get_object_path_data()
5121
5122         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5123         the exact_match
5124         (_dbus_object_tree_get_user_data_unlocked): new function used by
5125         dbus_connection_get_object_path_data()
5126         (do_register): add assertion test for get_user_data_unlocked
5127         (object_tree_test_iteration): more tests
5128
5129         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5130         new function from Dan Reed to let you get the user data from 
5131         dbus_connection_register_object_path()
5132
5133 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5134
5135         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5136         in numerous places that did not account for the NULL terminator
5137         (signature_from_seed): changed the manual string copy loop to 
5138         just use strcpy instead
5139         make check should now pass
5140
5141 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5142
5143         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5144         so that it allows messages that are not signals to pass in 
5145         NULL as the interface.
5146
5147 2005-04-18  David Zeuthen  <davidz@redhat.com>
5148
5149         * glib/dbus-gmain.c (io_handler_destroy_source): 
5150         (timeout_handler_destroy_source, connection_setup_free): 
5151         Also unref the source to avoid memory leaks.
5152
5153 2005-04-13  David Zeuthen  <davidz@redhat.com>
5154
5155         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5156         more reasonable, yet still totally arbitrary, value :-). 
5157
5158 2005-04-13  David Zeuthen  <davidz@redhat.com>
5159
5160         * doc/TODO: Added an "important for 1.0" item about selinux
5161         allow/deny messages
5162
5163 2005-04-13  David Zeuthen  <davidz@redhat.com>
5164
5165         * bus/selinux.c: Add c-file-style to top of file
5166         (log_audit_callback): Don't free the data here anymore
5167         (bus_selinux_check): Don't take spid and tpid since appending
5168         that to auxdata may OOM.
5169         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5170         to the caller if we are OOM by taking an error object.
5171         (bus_selinux_allows_send): -do-
5172
5173         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5174         and bus_selinux_allows_send
5175
5176         * bus/bus.c (bus_context_check_security_policy): Pass error and
5177         pass on OOM thrown by bus_selinux_allows_send()
5178
5179         * bus/services.c (bus_registry_acquire_service): Pass error and
5180         pass on OOM thrown by bus_selinux_allows_acquire_service()
5181
5182 2005-04-13  Havoc Pennington  <hp@redhat.com>
5183
5184         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5185         message at a time to avoid monopolizing the main loop, bug 
5186         #2953 from Benjamin Otte
5187
5188 2005-04-09  Havoc Pennington  <hp@redhat.com>
5189
5190         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5191         possible overlap, fix from Daniel Reed
5192         (fixup_alignment): fix signedness warnings
5193         (_dbus_string_append_unichar): ditto
5194
5195 2005-04-09  Havoc Pennington  <hp@redhat.com>
5196
5197         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5198
5199         * glib/dbus-glib-tool.c (main): fix warning
5200
5201         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5202
5203         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5204         add a new function that can be used in simple applications that
5205         don't have a main loop and are willing to block
5206
5207 2005-04-05  David Zeuthen  <davidz@redhat.com>
5208
5209         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5210
5211         * glib/dbus-gmain.c:
5212         (io_handler_destroy_source): Remove from list of IO handlers
5213         of the ConnectionSetup object
5214         (timeout_handler_destroy_source): -do- for timeout handlers
5215         (io_handler_source_finalized): Don't remove from list since
5216         we now do that in io_handler_destroy_source(). Renamed from
5217         io_handler_source_destroyed
5218         (timeout_handler_source_destroyed): -do- for timeout handlers
5219         (connection_setup_free): It is now safe to iterate over all
5220         IO and timeout handlers as the _destroy_source removes them
5221         from the list synchronously
5222
5223 2005-03-30  Havoc Pennington  <hp@redhat.com>
5224
5225         * configure.in: change check to gtk 2.4
5226
5227         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5228         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5229         to 2.4
5230
5231 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5232
5233         * News: Update 0.32
5234
5235         * HACKING: Fixed realease instructions.  configure.in should be updated to
5236           the next release by the person who made the last release.
5237
5238 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5239
5240         * python/lvalue_cast_post_process.py - removed.  Patch has been
5241           submitted to Pyrex maintainers that fixes gcc4.0 errors
5242
5243         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5244
5245 2005-03-24  Daniel Reed  <n@ml.org>
5246
5247         * tools/Makefile.am: Make print-introspect and
5248         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5249
5250 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5251
5252         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5253
5254         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5255           had in Red Hat packages for a while but for some reason never 
5256           got merged upstream
5257           (_dbus_is_a_number): New checks if a string
5258           can be converted to a number and does the conversion if it can
5259           (_dbus_user_database_lookup): Add check to see if the given username
5260           is a udi.  This allows udi's to be used instead of usernames in the
5261           config file.
5262           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5263           is a gdi.  This allows gdi's to be used instead of groupnames in the
5264           config file.
5265
5266 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5267
5268         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5269           code so that it compiles with gcc4.0
5270
5271         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5272           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5273           results back to dbus_binding.c
5274
5275 2005-03-20  Colin Walters  <walters@verbum.org>
5276
5277         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5278
5279         * configure.in: Require GTK+ 2.6.
5280         
5281 2005-03-20  Colin Walters  <walters@verbum.org>
5282
5283         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5284
5285 2005-03-17  Tom Parker  <palfrey@tevp.net>
5286
5287         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5288         print DBUS_UID_UNSET; instead print passed username.  Also
5289         be sure to actually use gid looked up in cache.
5290         
5291         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5292         for DBUS_GID_UNSET and groupname.
5293
5294 2005-03-17  Colin Walters  <walters@verbum.org>
5295
5296         * bus/print-introspect.c: Move to tools/.
5297         * bus/run-with-tmp-session-bus.sh: Ditto.
5298         
5299         * glib/Makefile.am (dbus-glib-bindings.h): Move
5300         generation to tools/Makefile.am.
5301
5302         * test/glib/run-test.sh: Update to handle move
5303         of run-with-tmp-session-bus.sh.
5304
5305         * test/glib/test-service-glib.c: Update to handle
5306         move of dbus-glib-bindings.h.
5307
5308         * tools/print-introspect.c: Moved here
5309         from bus/, and ported to GLib bindings.
5310
5311         * tools/run-with-tmp-session-bus.sh: Moved here
5312         from bus/.
5313
5314         * tools/Makefile.am: Generate dbus-glib-bindings.h
5315         and dbus-bus-introspect.xml here.
5316
5317         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5318         Update.
5319
5320 2005-03-17  Colin Walters  <walters@verbum.org>
5321
5322         * bus/driver.c (write_args_for_direction): Use
5323         _dbus_string_get_const_data to retrieve string;
5324         _dbus_string_get_const_data_len doesn't actually return
5325         a NULL-terminated substring.
5326
5327         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5328         (main): Change to use org_freedesktop_DBus_request_name
5329         instead of using g_proxy_begin_call/end_call.
5330
5331 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5332
5333         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5334         generating the finalizer.  Fixes from Ben Maurer.
5335
5336 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5337
5338         * mono/BusDriver.cs: Update method names: ListServices
5339         becomes ListNames; GetOwner becomes GetNameOwner.
5340
5341         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5342         onto the eval stack when removing the delegate.
5343
5344 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5345
5346         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5347         LT_CURRENT.  Set it to the autoconf variable.
5348                                                                                 
5349         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5350         classes that disconnects the signal handler delegate from the
5351         service object.  Fixes a big leak of proxy objects on the
5352         client side of things.  Patch from Ben Maurer
5353         <bmaurer@ximian.com>
5354
5355 2005-03-12  Colin Walters  <walters@verbum.org>
5356
5357         * bus/driver.c (write_args_for_direction): New function,
5358         parses a type signature into arguments and outputs to
5359         XML.
5360         (bus_driver_handle_introspect): Use it instead of
5361         hardcoding XML for certain signatures.
5362         
5363         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5364         dependency on dbus-daemon.
5365
5366         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5367         argument, pass it to dbus_binding_tool_output_glib_client.
5368
5369         * glib/dbus-binding-tool-glib.c
5370         (generate_client_glue): Protect against multiple inclusion.
5371         (dbus_binding_tool_output_glib_client): Add
5372         G_BEGIN_DECLS/G_END_DECLS.
5373
5374         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5375         Change to just take iface prefix directly.
5376         (write_formal_parameters): Clarify error message.
5377         (check_supported_parameters): New function; checks to see type
5378         signatures of method parameters are supported.
5379         (generate_client_glue): Handle ignore_unsupported flag.
5380         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5381         parameter.
5382
5383         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5384         --ignore-unsupported by default until glib bindings
5385         support arrays.
5386
5387 2005-03-11  Colin Walters  <walters@verbum.org>
5388
5389         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5390         install it.
5391
5392         * bus/print-introspect.c: New file; prints introspection
5393         data for a given name and object path.
5394
5395         * bus/run-with-tmp-session-bus.sh: New file, refactored
5396         from test/glib/run-test.sh.  Creates a temporary session
5397         bus and runs another program.
5398
5399         * test/glib/run-test.sh: Refactor to invoke
5400         run-with-tmp-session-bus.sh.
5401
5402         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5403         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5404         macros instead of hardcoding.
5405
5406         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5407
5408 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5409
5410         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5411         this unref; it doesn't match up evenly in some codepaths.
5412         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5413         this evenly matches with the ref near the top of this function.
5414
5415 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5416
5417         * dbus/dbus-object-tree.c
5418         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5419         and we try to unregister a path that's not registered, still go
5420         through the process of unlocking and don't just return.
5421
5422 2005-03-09  Colin Walters  <walters@verbum.org>
5423
5424         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5425         to this are generated for client-side wrappers.  Invokes a
5426         D-BUS method and returns reply values.  
5427
5428         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5429         function; writes signature string for argument direction.
5430         (write_args_for_direction): Change to pass input values directly
5431         instead of via address, and fix indentation.
5432         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5433         make generated wrappers inlineable.
5434
5435         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5436         note about using dbus_type_is_fixed.
5437
5438         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5439         dbus/dbus-signature.c as dbus_type_is_fixed.
5440
5441         All callers updated.
5442
5443         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5444         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5445
5446         * dbus/dbus-signature.h: Prototype.
5447
5448         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5449         error printf code.
5450
5451         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5452         appropriate instead of just freeing it.
5453         (main): Free returned strings using g_free.
5454
5455         * test/glib/Makefile.am (test-service-glib-glue.h)
5456         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5457
5458         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5459         simply maps a simple D-BUS type to GType.
5460         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5461         GType.
5462         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5463         initialize the value with it.
5464         (dbus_gvalue_binding_type_from_type): Unused, delete.
5465         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5466         various types instead of unmarshalling to value data directly.
5467         Remove can_convert boolean.
5468         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5469         returning directly instead of using can_convert boolean.
5470         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5471         Stores a GValue in a pointer to a value of its corresponding C
5472         type.
5473
5474         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5475         add dbus_gvalue_store.
5476
5477 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5478
5479         Fix a bunch of lifecycle and memory management problems
5480         in the mono bindings.
5481
5482         * mono/Arguments.cs (Arguments): Implement IDisposable
5483
5484         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5485         strictly a static class.
5486
5487         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5488         delegates into this file.
5489         (Connection): Implement IDisposable.
5490         (Dispose): Disconnect the connection and set the raw connection
5491         pointer to IntPtr.Zero.
5492         (~Connection): Call Dispose().
5493         (RegisterObjectPath): Added.  Manages the registration of object
5494         paths so we can cleanly disconnect them at dispose/finalize time.
5495         (UnregisterObjectPath): Ditto.
5496         (set_RawConnection): Unregister all of the object paths when
5497         changing the underlying DBusConnection.  Add them back onto the
5498         new connection, if any.
5499
5500         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5501         more unmanaged resources anymore, so it's not necessary.  Move all
5502         the DBusObjectPathVTable stuff out of here.
5503         (Handler): Save references to our delegates so that they don't get
5504         finalized.  Call Connection.RegisterObjectPath() instead of
5505         dbus_connection_register_object_path() directly.
5506         (Message_Called): Dispose the message after we're finished with
5507         it.
5508
5509         * mono/Message.cs (Message): Implement IDisposable.
5510         (Dispose): Dispose the Arguments, and set the RawMessage to
5511         IntPtr.Zero.
5512         (SendWithReplyAndBlock): We own the ref to the reply that comes
5513         back from dbus_connection_send_with_reply_and_block() so add a
5514         comment about that and unref it after we've constructed a managed
5515         MethodReturn class around it.  Fixes a big, big leak.
5516
5517         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5518         method.
5519         (BuildSignalHandler): After we've sent the Signal message, dispose
5520         of it.
5521         (BuildMethod): Dispose of the method call and reply messages after
5522         we've sent the message and extracted the data we want from the
5523         reply.
5524
5525         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5526         anymore.
5527         (Service_FilterCalled): Dispose of the message after we're
5528         finished with it.
5529
5530 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5531
5532         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5533         After we attach our pending call to the connection, unref
5534         it.  Fixes a leak.
5535  
5536         * mono/Connection.cs (set_RawConnection): Disconnect our
5537         filter and match callbacks from the old connection and
5538         reconnect them to the new connection, if any.
5539
5540         * mono/DBusType/Array.cs: "Code" is a static member, so
5541         don't use "this" to refer to it.  Fix for stricter checking
5542         in Mono 1.1.4.
5543  
5544         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5545         object path that we pass into unmanaged code.
5546  
5547         * mono/DBusType/String.cs (Append): Don't leak the string
5548         that we pass into unmanged code.
5549
5550 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5551         * NEWS: Update for 0.31
5552
5553         * configure.in: Release 0.31
5554         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5555
5556         * qt/Makefile.am: fixed build
5557
5558         * dbus/Makefile.am: soname bump for libdbus
5559
5560         * glib/Makefile.am: soname bump for libdbus-glib
5561
5562 2005-03-05  Havoc Pennington  <hp@redhat.com>
5563
5564         * dbus/dbus-sysdeps.c:
5565         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5566         value
5567         (_dbus_generate_random_bytes_buffer): fix return value
5568
5569         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5570         checks actually work, from Tom Parker <fdo@tevp.net>
5571
5572 2005-03-01  Colin Walters  <walters@verbum.org>
5573
5574         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5575         functions copied from dbus-glib-tool.c.
5576         (main): Convert lots of error code to use them.
5577         Also add some testing for introspection bits.
5578
5579 2005-03-01  Colin Walters  <walters@verbum.org>
5580         
5581         * doc/TODO: Remove introspection signature TODO.
5582
5583 2005-02-27  Colin Walters  <walters@verbum.org>
5584
5585         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5586         Change return value to const char * instead of int so we can do
5587         full signatures.
5588         (struct PropertyInfo, struct ArgInfo): Store char *.
5589         (property_info_new, arg_info_new): Update parameters, strdup.
5590         (property_info_unref, arg_info_unref): Free.
5591
5592         * glib/dbus-gidl.h: Update prototypes.
5593
5594         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5595         (validate_signature): New function, just validates signature and
5596         sets GError.
5597         (parse_property, parse_arg): Invoke validate_signature.  Store
5598         signature instead of just type code.
5599
5600         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5601         function to return a primary type for a signature, dropping
5602         information about types in container types.
5603         (dbus_gvalue_genmarshal_name_from_type)
5604         (dbus_gvalue_binding_type_from_type)
5605         (dbus_gvalue_ctype_from_type): Update to take full signature
5606          instead of type code.
5607         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5608
5609         * glib/dbus-gvalue.h: Update prototypes for above.
5610
5611         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5612         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5613         (introspect_properties, introspect_signals, write_interface):
5614         Update to handle signatures, and remove usage of
5615         _dbus_gutils_type_to_string.
5616         (handle_introspect): Print out type codes instead of e.g. "string"
5617         in hardcoded introspection XML; also use x_AS_STRING constants
5618         instead of hardcoding in string.
5619
5620         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5621         to string.  Remove usage of _dbus_gutils_type_to_string.
5622
5623         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5624
5625         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5626         deletion.
5627         
5628         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5629         (compute_marshaller_name, generate_glue): Handle signature change
5630         to string.
5631         (write_formal_parameters, write_args_for_direction): Ditto, and
5632         remove FIXME.
5633
5634         * tools/dbus-tree-view.c (type_to_string): Delete.
5635         (info_set_func_text): Update to print full signatures.
5636
5637         * test/glib/test-service-glib.xml: Change types to new
5638         introspection format.
5639
5640 2005-02-26  Havoc Pennington  <hp@redhat.com>
5641
5642         * doc/TODO: remove the "guid" item
5643
5644         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5645         (with_bus_thread_func): use open_private
5646
5647         * dbus/dbus-connection.c (dbus_connection_open_private): new
5648         function that works like the old dbus_connection_open()
5649         (dbus_connection_open): now returns an existing connection if
5650         possible
5651
5652         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5653         through the GUID to the transport
5654
5655         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5656         GUID in hex-encoded form.
5657
5658         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5659         pass GUID argument in to the transport
5660
5661         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5662         guid argument
5663
5664         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5665
5666         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5667
5668 2005-02-25  Havoc Pennington  <hp@redhat.com>
5669
5670         * doc/dbus-specification.xml: document the GUID thing
5671
5672         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5673         globally unique ID for the server, and put a "guid=hexencoded"
5674         field in the address
5675
5676         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5677
5678         * dbus/dbus-message.c: ditto
5679
5680         * dbus/dbus-dataslot.c: ditto
5681
5682         * dbus/dbus-list.c: ditto
5683
5684         * dbus/dbus-internals.h: wait, just include
5685         dbus-threads-internal.h here
5686         
5687         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5688         use in main library
5689
5690         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5691
5692 2005-02-24  Colin Walters  <walters@verbum.org>
5693
5694         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5695
5696 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5697
5698         * glib/Makefile.am: added dbus-gobject.h to sources list
5699         so distcheck doesn't fail
5700         
5701 2005-02-24  Havoc Pennington  <hp@redhat.com>
5702
5703         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5704         you must disconnect before unref, since locking and other things
5705         are screwed up otherwise. Fix assorted other locking stuff.
5706
5707         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5708         fix compilation
5709
5710         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5711         into a private header and don't export from the library
5712
5713         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5714
5715 2005-02-24  Colin Walters  <walters@verbum.org>
5716         
5717         * dbus/dbus-signature.c: New file; implements various functions
5718         related to type signatures.  Includes an interator for parsing,
5719         validation functions.
5720         (dbus_type_is_basic): Moved here from
5721         dbus-marshal-basic.c:_dbus_type_is_basic.
5722         (dbus_type_is_container): Moved here from
5723         dbus-marshal-basic.c:_dbus_type_is_container.
5724
5725         All callers of _dbus_type_is_container and _dbus_type_is_basic
5726         updated, and include dbus-signature.h.
5727
5728         * dbus/dbus-signature.h: New file; prototypes for the above.
5729
5730         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5731         dbus-signature.h.
5732
5733         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5734         function factored out of _dbus_first_type_in_signature.
5735         (_dbus_first_type_in_signature_c_str): New function; returns first
5736         type code for a type signature character.
5737
5738         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5739         handle function moves.
5740
5741         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5742
5743         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5744         function; skips to next complete type in type signature.
5745         Implemented using previous skip_one_complete_type.  Now
5746         skip_one_complete_type just delegates to
5747         _dbus_type_signature_next.
5748
5749         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5750         to dbus-signature.c
5751         (_dbus_type_is_container): Ditto.
5752
5753         * doc/dbus-specification.xml: Update introspection sample to
5754         use real type signatures.
5755
5756         * dbus/dbus-test.h: Prototype signature test.
5757
5758         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5759         signature tests.
5760
5761         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5762
5763 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5764
5765         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5766         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5767
5768 2005-02-21  Colin Walters  <walters@verbum.org>
5769
5770         * dbus/dbus-test-main.c (main): Take optional specific test
5771         argument.
5772
5773         * dbus/dbus-test.c (run_test): New function, runs a test function
5774         with no data directory.
5775         (run_data_test): Like above, but takes data directory.
5776         (dbus_internal_do_not_use_run_tests): Take
5777         specific test argument.  Replace lots of cut n' paste code
5778         with run_test and run_data_test.
5779
5780         * dbus/dbus-test.h: Update prototype for
5781         dbus_internal_do_not_use_run_tests.
5782
5783 2005-02-20  Havoc Pennington  <hp@redhat.com>
5784
5785         Fix bugs reported by Daniel P. Berrange
5786         
5787         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5788         (protected_change_watch): new function
5789         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5790         (_dbus_server_add_watch): change to work like the
5791         dbus-connection.c equivalents; like those, probably kind of
5792         busted, but should at least mostly work for now
5793         (dbus_server_disconnect): drop the lock if we were already
5794         disconnected, patch from Daniel P. Berrange
5795
5796         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5797         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5798         same stuff
5799
5800         * doc/TODO: todo about unscrewing this mess
5801
5802 2005-02-19  Colin Walters  <walters@verbum.org>
5803
5804         * glib/dbus-binding-tool-glib.c
5805         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5806
5807         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5808         as errno.h and sys/stat.h.
5809         (lose): New function, prints error with
5810         newline and exits.
5811         (lose_gerror): Similar, but takes GError for message.
5812         (main): Add --output argument to specify output file to write to,
5813         instead of always printing to stdout.  In this mode, determine
5814         timestamps on source files to see whether any are newer than the
5815         target file.  If not, exit.  Also convert a number of error
5816         messages to use lose (since it's shorter), and switch to using
5817         g_io_channel_shutdown.
5818
5819 2005-02-19  Havoc Pennington  <hp@redhat.com>
5820
5821         * glib/dbus-gobject.c
5822         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5823
5824         * glib/dbus-glib.c: fix doxygen warnings
5825
5826         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5827         is found on an <arg>
5828
5829 2005-02-17  Colin Walters  <walters@verbum.org>
5830
5831         * glib/dbus-gobject.h: Don't export
5832         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5833         
5834         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5835         (invoke_object_method): Handle it.
5836
5837         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5838         Handle rename.
5839         
5840 2005-02-17  Colin Walters  <walters@verbum.org>
5841
5842         * bus/.cvsignore, doc/.cvsignore
5843         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
5844         Update.
5845
5846 2005-02-17  Colin Walters  <walters@verbum.org>
5847         
5848         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
5849         Rename to DBUS_SERVICE_DBUS.
5850         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
5851         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
5852         Change the value from "org.freedesktop.Local"
5853         to "org.freedesktop.DBus.Local".
5854         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
5855         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
5856         DBUS_INTERFACE_INTROSPECTABLE.
5857         Change the value from "org.freedesktop.Introspectable"
5858         to "org.freedesktop.DBus.Introspectable".
5859         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
5860         DBUS_INTERFACE_PROPERTIES.
5861         Change the value from "org.freedesktop.Properties"
5862         to "org.freedesktop.DBus.Properties".
5863         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
5864         DBUS_INTERFACE_PEER.
5865         Change the value from "org.freedesktop.Peer"
5866         to "org.freedesktop.DBus.Peer".
5867         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
5868         DBUS_INTERFACE_LOCAL.
5869         Change the value from "org.freedesktop.Local"
5870         to "org.freedesktop.DBus.Local".
5871
5872         All other users of those constants have been changed.
5873
5874         * bus/driver.c (bus_driver_handle_introspect): Use constants.
5875
5876         * glib/dbus-gobject.c (handle_introspect): Use constants.
5877
5878         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
5879
5880 2005-02-17  Colin Walters  <walters@verbum.org>
5881
5882         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
5883         (parse_node, parse_interface, parse_method, parse_signal)
5884         (parse_property, parse_annotation): Lose if we're currently in an
5885         annotation.
5886         (parse_annotation): New function.
5887         (parser_start_element, parser_end_element): Handle annotation.
5888         (parse_method, parse_interface): Remove support for c_name attribute,
5889         switch to annotations.
5890
5891         * glib/dbus-gidl.h (interface_info_get_binding_names)
5892         (method_info_get_binding_names)
5893         (interface_info_get_binding_name, method_info_get_binding_name)
5894         (interface_info_set_binding_name, method_info_set_binding_name):
5895         Remove.
5896         (interface_info_get_annotations, method_info_get_annotations)
5897         (interface_info_get_annotation, method_info_get_annotation)
5898         (interface_info_add_annotation, method_info_add_annotation):
5899         Prototype.
5900
5901         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
5902         for "bindings".
5903         (struct MethodInfo): Ditto.
5904         Straightfoward conversion of binding methods into annotation methods
5905         as prototyped.
5906
5907         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
5908
5909         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
5910
5911         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
5912         Use new annotation API.
5913
5914         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
5915         annotation element.
5916         
5917         * doc/dbus-specification.xml: Discuss introspection annotations,
5918         include list of well-known annotations.
5919
5920         * test/glib/test-service-glib.xml: Make validate against new DTD.
5921
5922 2005-02-17  Colin Walters  <walters@verbum.org>
5923
5924         This patch is based on initial work from
5925         Paul Kuliniewicz <kuliniew@purdue.edu>.
5926
5927         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
5928         initialization of GValue from dbus type to here.
5929         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
5930         for the "glib-genmarshal" program from a DBus type.
5931         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
5932         into the C name for it we use in the glib bindings.
5933         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
5934         glib C type (not GValue).
5935         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
5936
5937         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
5938         from dbus-gobject.c.
5939
5940         * glib/dbus-gutils.h: Prototype it.
5941
5942         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
5943         (marshal_dbus_message_to_g_marshaller): Use new shared function
5944         dbus_glib_marshal_dbus_message_to_gvalue_array.
5945
5946         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
5947         Will be changed once we have annotations.
5948
5949         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
5950         GStaticRWLock.  Callers updated.
5951         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
5952         (string_table_next): New function for iterating over zero-terminated
5953         string value array.
5954         (string_table_lookup): New function; retrieves specific entry in
5955         array.
5956         (get_method_data): New function; look up method data in object data chunk.
5957         (object_error_domain_prefix_from_object_info)
5958         (object_error_code_from_object_info): New functions, but not implemented yet.
5959         (method_interface_from_object_info): New function; retrieve interface name.
5960         (method_name_from_object_info): New function; retrieve method name.
5961         (method_arg_info_from_object_info): New function; retrieve argument data.
5962         (arg_iterate): New function; iterates over serialized argument data.
5963         (method_dir_signature_from_object_info): New function; returns a
5964         GString holding type signature for arguments for just one
5965         direction (input or output).
5966         (method_input_signature_from_object_info)
5967         (method_output_signature_from_object_info): New functions.
5968         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
5969         converts dbus message arguments into a GValue array.  Used for both
5970         signal handling and method invocation.
5971         (struct DBusGlibWriteIterfaceData): New utility structure.
5972         (write_interface): New function; generate introspection XML for
5973         an interface.
5974         (introspect_interfaces): New function; gathers all interface->methods,
5975         generates introspection XML for them.
5976         (handle_introspect): Invoke introspect_interfaces.
5977         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
5978         (lookup_object_and_method): New function; examines an incoming message
5979         and attempts to match it up (via interface, method name, and argument
5980         signature) with a known object and method.
5981         (gerror_domaincode_to_dbus_error_name): New function; converts a
5982         GError domain and code into a DBus error name.  Needs GError data
5983         added to object introspection to work well.
5984         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
5985         GError.
5986         (invoke_object_method): New function to invoke an object method
5987         looked up via lookup_object_and_method.  Parses the incoming
5988         message, turns it into a GValue array, then invokes the marshaller
5989         specified in the DBusGMethodInfo.  Creates a new message with
5990         either return values or error message as appropriate.
5991         (gobject_message_function): Invoke lookup_object_and_method and
5992         invoke_object_method.
5993
5994         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
5995         (enum DBusBindingOutputMode): New enum for binding output modes.
5996         (pretty_print): Print binding names.
5997         (dbus_binding_tool_error_quark): GError bits.
5998         (version): Fix typo.
5999         (main): Create GIOChannel for output.  Parse new --mode argument,
6000         possible values are "pretty-print", "glib-server", "glib-client".
6001         Use mode to invoke appropriate function.
6002         
6003         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6004
6005         * glib/dbus-glib-tool.h: New header, just includes GError bits
6006         for now.
6007
6008         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6009         maps binding style to name.
6010         (struct MethodInfo): Ditto.
6011         (get_hash_keys, get_hash_key): Utility function, returns keys for
6012         a GHashTable.
6013         (interface_info_new, method_info_new): Initialize bindings.
6014         (interface_info_unref, method_info_unref): Destroy bindings.
6015         (method_info_get_binding_names, method_info_get_binding_name)
6016         (interface_info_get_binding_names, interface_info_get_binding_name):
6017         Functions for retrieving binding names.
6018         (method_info_set_binding_name, interface_info_set_binding_name):
6019         Functions for setting binding names.
6020
6021         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6022         for glib binding generation.
6023
6024         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6025         and client-side glib glue generation.
6026
6027         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6028         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6029         dbus-glib-tool.h.
6030
6031         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6032         of using GClosureMarshal directly.
6033         (struct DBusGObjectInfo): Add n_infos member.
6034
6035         * test/glib/test-service-glib.xml: New file; contains introspection data
6036         for MyTestObject used in test-service-glib.c.
6037
6038         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6039         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6040         (my_object_uppercase, my_object_many_args): New test methods.
6041         (main): Use dbus_g_object_class_install_info to include generated object
6042         info.
6043
6044         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6045         as well as client-side bindings.
6046
6047         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6048         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6049         using both the dbus_gproxy stuff directly as well as the generated bindings.
6050
6051 2005-02-15  Havoc Pennington  <hp@redhat.com>
6052
6053         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6054         complete a pending call, don't run filters first.
6055
6056         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6057         dbus_pending_call_steal_reply
6058
6059         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6060         _dbus_connection_block_pending_call
6061         (dbus_pending_call_get_reply): change to steal_reply and return a
6062         ref
6063
6064         * dbus/dbus-connection.c
6065         (dbus_connection_send_with_reply_and_block): port to work in terms
6066         of DBusPendingCall
6067         (_dbus_connection_block_pending_call): replace block_for_reply
6068         with this
6069
6070 2005-02-14  Havoc Pennington  <hp@redhat.com>
6071
6072         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6073         properly handle looking up group information by name; fix 
6074         from j@bootlab.org
6075
6076 2005-02-13  Havoc Pennington  <hp@redhat.com>
6077
6078         * dbus/dbus-connection.c (dbus_connection_return_message) 
6079         (dbus_connection_borrow_message): hold dispatch lock while message
6080         is outstanding
6081         (_dbus_connection_block_for_reply): hold dispatch lock while we
6082         block for the reply, so nobody steals our reply
6083         (dbus_connection_pop_message): hold the dispatch lock while we
6084         pluck the message
6085
6086 2005-02-13  Havoc Pennington  <hp@redhat.com>
6087
6088         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6089         (_dbus_connection_release_dispatch)
6090         (_dbus_connection_acquire_io_path)
6091         (_dbus_connection_release_io_path): make the mutex and condvar
6092         control access to the "acquired" flag. Drop the connection lock
6093         while waiting on the condvar. Hopefully these are baby steps in
6094         roughly the right direction.
6095
6096 2005-02-13  Havoc Pennington  <hp@redhat.com>
6097
6098         * dbus/dbus-connection.c: use separate mutexes for the condition
6099         variables; this is some kind of baseline for sanity, but the
6100         condition variables still aren't used correctly afaict
6101
6102 2005-02-13  Havoc Pennington  <hp@redhat.com>
6103
6104         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6105         fix a double-unlock
6106
6107         * dbus/dbus-connection.c
6108         (_dbus_connection_detach_pending_call_unlocked): add this
6109
6110         Initial semi-correct pass through to fix thread locking; there are
6111         still some issues with the condition variable paths I'm pretty
6112         sure
6113         
6114         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6115         lock/unlock calls
6116
6117         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6118         rename to add _unlocked
6119         (struct DBusConnection): move "dispatch_acquired" and
6120         "io_path_acquired" to use only one bit each.
6121         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6122         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6123         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6124         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6125         (_dbus_connection_remove_timeout) 
6126         (_dbus_connection_toggle_timeout): drop lock when calling out to
6127         user functions; done in a hacky/bad way.
6128         (_dbus_connection_send_and_unlock): add a missing unlock
6129         (_dbus_connection_block_for_reply): add a missing unlock
6130
6131         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6132         drop lock in a hacky probably unsafe way to call out to user
6133         function
6134
6135 2005-02-12  Havoc Pennington  <hp@redhat.com>
6136
6137         * tools/dbus-tree-view.c (info_set_func_text): display more
6138         details on args
6139
6140         * bus/driver.c (bus_driver_handle_list_services): list the bus
6141         driver
6142
6143         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6144
6145         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6146         (method_info_get_n_args): new function
6147
6148 2005-02-12  Havoc Pennington  <hp@redhat.com>
6149
6150         * bus/driver.c (bus_driver_handle_introspect): add introspection
6151         for bus driver
6152
6153 2005-02-12  Havoc Pennington  <hp@redhat.com>
6154
6155         * bus/driver.c: put the signature of each bus driver method in the
6156         table of handlers and check it on incoming calls; this isn't
6157         really useful, but going to add introspect support in a minute.
6158
6159 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6160
6161         * mono/Connection.cs: The unpredictability of finalizers in mono
6162         prevents us from deterministically disconnecting the filters from
6163         the Service class's finalizer, so move tracking of filters and
6164         matches here.  Add API for that.
6165
6166         * mono/Service.cs: Remove the code, add code which calls the
6167         methods now on the Connection class.
6168
6169 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6170
6171         * python/dbus.py (class Sender): added to support dbus signals better
6172         (Bus::add_signal_receiver): added expand_args parameter which defaults
6173         to True.  When expand args is True the signal handler will pass the 
6174         message arguments as parameters to the signal handler.  If False
6175         revert to previous behavior where the signal handler must get the
6176         argument list from the message.  This is to help port applications
6177         like HAL that have a tendancy to send variable length argument lists.
6178         self._match_rule_to_receivers is now a dict of dicts.
6179         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6180         removing it from a list
6181         (Bus::_signal_func): change signal handlers so that interface,
6182         signal_name, service, path and message are packed into a Sender
6183         object and that is passed to the handler.  If expand_args is True
6184         extract the args list from the message and append it to the parameter
6185         list
6186         
6187         * python/dbus_bindings.pyx.in (class Signature): added to support 
6188         signiature types
6189         (MessageIter::__init__): changed iteration limit to match D-BUS
6190         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6191         STRUCT and VARIENT type support
6192         (MessageIter::python_value_to_dbus_sig): made recursive to support
6193         recursive types
6194         (MessageIter::append*): added Signature, dict, tuple 
6195         support
6196
6197         * python/examples/example-client.py: added examples of getting tuples
6198         and dicts
6199
6200         * python/examples/example-service.py: added examples of sending tuples
6201         and dicts
6202
6203         * python/examples/example-signal-recipient.py: Fixed to handle new
6204         signal callback format
6205
6206 2005-02-10  Havoc Pennington  <hp@redhat.com>
6207
6208         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6209         (call dbus_g_proxy_add_signal)
6210
6211         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6212         escape the hostname
6213         (_dbus_server_new_for_domain_socket): escape the path
6214
6215         * dbus/dbus-address.c (dbus_address_escape_value): new
6216         (dbus_address_unescape_value): new
6217         (dbus_parse_address): unescape values
6218
6219         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6220
6221         * doc/dbus-specification.xml: explain how to escape values in
6222         addresses
6223
6224 2005-02-10  Havoc Pennington  <hp@redhat.com>
6225
6226         * dbus/dbus-message-factory.c (generate_special): modify test to
6227         avoid using a non-basic dict key
6228
6229         * dbus/dbus-marshal-validate-util.c: add test for the below
6230
6231         * doc/dbus-specification.xml: require that dict keys are a basic
6232         type
6233
6234         * dbus/dbus-marshal-validate.c
6235         (_dbus_validate_signature_with_reason): require that dict key is a
6236         basic type
6237
6238 2005-02-10  Havoc Pennington  <hp@redhat.com>
6239
6240         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6241         change to be _and_unlock instead of _unlocked
6242
6243         * dbus/dbus-connection.c
6244         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6245         have no_update so we can find this bug quickly in future
6246
6247 2005-02-10  Havoc Pennington  <hp@redhat.com>
6248
6249         * dbus/dbus-message-util.c (verify_test_message): tests for string
6250         array
6251
6252         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6253         support for arrays of string/signature/path
6254
6255 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6256
6257         * dbus/dbus-connection.c
6258         (_dbus_connection_queue_received_message_link,
6259         _dbus_connection_message_sent): Add the path to
6260         the verbose output.
6261         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6262         _dbus_connection_send_preallocated_unlocked(), updated the
6263         dispatch status, and unlocks.  Fixes a bug where certain
6264         situations (like a broken pipe) could cause a Disconnect message
6265         to not be sent, tricking the bus into thinking a service was still
6266         there when the process had quit.
6267         (_dbus_connection_send_preallocated): Call
6268         _dbus_connection_send_preallocated_and_unlock().
6269         (_dbus_connection_send_and_unlock): Added.  Calls
6270         _dbus_connection_send_preallocated_and_unlock().
6271         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6272         (dbus_connection_send_with_reply): Update the dispatch status and
6273         unlock.
6274
6275         * mono/Service.cs (~Service): Added.  Removes the filter so that
6276         we don't get unmanaged code calling back into a GCed delegate.
6277         (RemoveFilter); Added.
6278
6279 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6280
6281         * dbus/dbus-message.c (dbus_message_iter_open_container):
6282         - Removed check for iterator type being an array because
6283         get_arg_type does not work with writer iterators
6284         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6285
6286 2005-02-07  Havoc Pennington  <hp@redhat.com>
6287
6288         * doc/dbus-specification.xml: some more language cleanups; add
6289         stuff about how to deal with invalid protocol and extension
6290         points; add _ to allowed chars in auth commands; add EXTENSION_
6291         auth command prefix
6292
6293 2005-02-06  Havoc Pennington  <hp@redhat.com>
6294
6295         * s/expected/required/ in a couple places for clarity
6296
6297 2005-02-07  Colin Walters  <walters@verbum.org>
6298
6299         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6300         sender or proposed_recipient.
6301
6302 2005-02-06  Havoc Pennington  <hp@redhat.com>
6303
6304         * dbus/dbus-message-factory.c (generate_special): more tests
6305
6306         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6307         array length that exceeds the maximum
6308
6309 2005-02-05  Havoc Pennington  <hp@redhat.com>
6310
6311         * dbus/dbus-message-factory.c (generate_special): more test cases,
6312         increasing coverage
6313
6314         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6315         reason why a signature was invalid
6316
6317         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6318         skip the length of the string before we look at it in validation
6319
6320         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6321         equal_substring
6322
6323         * dbus/dbus-message.c (_dbus_message_loader_new): default
6324         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6325
6326 2005-02-05  Havoc Pennington  <hp@redhat.com>
6327
6328         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6329         if the signature of a variant was empty
6330         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6331         struct with no element type)
6332
6333         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6334         mangled messages to break things
6335
6336 2005-02-04  Havoc Pennington  <hp@redhat.com>
6337
6338         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6339         g_quark_try_string() so it actually can return 0
6340         (dbus_g_proxy_connect_signal): ditto
6341
6342 2005-02-04  Havoc Pennington  <hp@redhat.com>
6343
6344         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6345         bogus warning
6346         (tristring_from_message): assert cleanly on null path/interface
6347         (should not be possible though I decided later)
6348         (dbus_g_proxy_dispose): move proxy manager unregistration here
6349         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6350         g_return_if_fail() checks
6351
6352 2005-02-04  Havoc Pennington  <hp@redhat.com>
6353
6354         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6355
6356         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6357         (with some minor changes)
6358
6359         * doc/dbus-specification.xml: add deprecated attribute to
6360         introspection format
6361
6362 2005-01-31  Havoc Pennington  <hp@redhat.com>
6363
6364         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6365         think it's sort of right
6366
6367 2005-01-30  Havoc Pennington  <hp@redhat.com>
6368
6369         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6370
6371 2005-01-30  Havoc Pennington  <hp@redhat.com>
6372
6373         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6374
6375         * autogen.sh: change to autotools 1.9
6376
6377         * glib/dbus-gproxy.c: completely change how signals work
6378         (dbus_g_proxy_add_signal): new function to specify signature of a
6379         signal
6380         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6381         and g_warning if the incoming message has the wrong signature.
6382
6383 2005-01-30  Havoc Pennington  <hp@redhat.com>
6384
6385         * tools/dbus-names-model.c (have_names_notify): fix this
6386
6387         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6388         up the string array handling a bit 
6389
6390 2005-01-30  Havoc Pennington  <hp@redhat.com>
6391
6392         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6393         (dbus_g_pending_call_cancel): new function
6394
6395         * dbus/dbus-glib.h: move GType decls for connection/message here;
6396         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6397         here, just kind of rationalizing how we handle all that
6398
6399         * tools/dbus-names-model.c: new file for a tree model listing the
6400         services on a bus
6401
6402         * tools/dbus-tree-view.c (model_new): use proper typing on the
6403         model rows
6404
6405 2005-01-30  Havoc Pennington  <hp@redhat.com>
6406
6407         * glib/dbus-gmain.c: add a custom GSource back that just checks
6408         whether the message queue has anything in it; otherwise, there are 
6409         cases where we won't see messages in the queue since there was no 
6410         IO visible to the glib main loop
6411
6412         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6413         increase default message timeout to 25 seconds
6414
6415 2005-01-30  Havoc Pennington  <hp@redhat.com>
6416
6417         * test/glib/test-profile.c (no_bus_stop_server): remove the
6418         warning about the g_warning that I just fixed
6419
6420         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6421         custom source, seems to be a lot easier to understand and work
6422         better.
6423
6424 2005-01-30  Havoc Pennington  <hp@redhat.com>
6425
6426         I think this main loop thing is conceptually broken, but here are 
6427         some band aids. I'll maybe rewrite it in a minute.
6428         
6429         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6430         custom GSource, so don't pass it in; confusing
6431         (gsource_server_finalize, gsource_connection_finalize): add
6432         finalize handlers that remove all the watches.  
6433
6434 2005-01-30  Havoc Pennington  <hp@redhat.com>
6435
6436         * glib/dbus-gobject.c (introspect_properties): fix the XML
6437         generated
6438
6439         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6440         which effectively detects the use of freed messages
6441
6442         * glib/dbus-gobject.c (handle_introspect): modify and return the
6443         reply message instead of the incoming message
6444
6445         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6446         gee, maybe it should SEND THE XML instead of just making a string
6447         and freeing it again ;-)
6448
6449         * tools/dbus-print-message.c (print_message): improve printing of
6450         messages
6451
6452         * configure.in: add debug-glib.service to the output
6453
6454 2005-01-30  Havoc Pennington  <hp@redhat.com>
6455
6456         dbus-viewer introspected and displayed the bus driver
6457         
6458         * dbus/dbus-object-tree.c 
6459         (object_tree_test_iteration): add tests for a handler registered on "/"
6460
6461         * dbus/dbus-object-tree.c
6462         (_dbus_decompose_path): fix to handle path "/" properly
6463         (run_decompose_tests): add tests for path decomposition
6464         
6465         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6466         properly
6467
6468         * glib/dbus-gobject.c (handle_introspect): fix quotes
6469
6470         * test/glib/run-test.sh: support launching the bus, then running
6471         dbus-viewer
6472
6473         * test/glib/test-service-glib.c (main): put in a trivial gobject
6474         subclass and register it on the connection
6475
6476         * bus/driver.c (bus_driver_handle_introspect): implement
6477         introspection of the bus driver service
6478
6479         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6480         identifiers, doctype decl
6481
6482         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6483         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6484         returning the service unchanged.
6485         (bus_driver_handle_message): remove old check for reply_serial in
6486         method calls, now the message type deals with that
6487         (bus_driver_handle_message): handle NULL interface
6488
6489         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6490
6491         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6492         -1 for len
6493
6494         * tools/dbus-viewer.c: add support for introspecting a service on
6495         a bus
6496
6497         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6498         (dbus_g_pending_call_unref): add
6499
6500 2005-01-29  Havoc Pennington  <hp@redhat.com>
6501
6502         * tools/dbus-tree-view.c: add support for displaying properties.
6503         (run dbus-viewer with an introspect xml file as arg, then resize
6504         the window so the tree elements show up, not sure what that is)
6505
6506         * glib/dbus-gobject.c (handle_introspect): return
6507         org.freedesktop.Properties and org.freedesktop.Introspectable
6508         interfaces when we are introspected.
6509
6510         * doc/dbus-specification.xml: allow empty interface name when 
6511         Get/Set a property
6512
6513 2005-01-29  Havoc Pennington  <hp@redhat.com>
6514
6515         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6516         though it uses glib, it could be extended for any binding in
6517         principle
6518
6519         * glib/dbus-gobject.c (gobject_message_function): change to the
6520         new way properties work
6521
6522         * dbus/dbus-protocol.h: add the new interfaces
6523
6524         * doc/dbus-specification.xml: document the introspection format,
6525         Introspectable interface, and add an org.freedesktop.Properties
6526         interface.
6527
6528         * glib/dbus-gparser.c: add support for a <property> element
6529
6530         * glib/dbus-gidl.c: add PropertyInfo
6531
6532         * glib/dbus-gobject.c (handle_introspect): put the outermost
6533         <node> outside the signal and property descriptions.
6534         (introspect_properties): export properties as <property> rather
6535         than as method calls
6536
6537 2005-01-28  Havoc Pennington  <hp@redhat.com>
6538
6539         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6540         related to authentication protocol
6541
6542 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6543
6544         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6545                 - BUS_ACTIVATION -> BUS_STARTER
6546                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6547                 - class MessageIter (__init__): Added recursion checking 
6548                 so we throw a nice error instead of just disconnecting from the
6549                 bus.
6550                 (get): Added arg_type parameter for recursion.
6551                 Removed the nil type
6552                 Added signiture type placeholder (not implemented)
6553                 Added struct type placeholder (not implemented)
6554                 Added varient type placeholder (not implemented)
6555                 Commented out dict type for now     
6556                 (get_element_type): renamed from get_array_type
6557                 (get_*): changed to use the dbus_message_iter_get_basic API
6558                 (get_*_array): removed in favor of recursive get_array method
6559                 (get_array): new recursive method which calls get to marshal
6560                 the elements of the array
6561                 (value_to_dbus_sig): New method returns the corrasponding
6562                 dbus signiture to a python value
6563                 (append): Comment out dict handling for now
6564                 Handle lists with the new recursive API
6565                 Comment out None handling for now
6566                 (append_nil): removed
6567                 (append_*): changed to use dbus_message_iter_append_basic API
6568                 (append_*_array): removed in favor of recursive append_array 
6569                 method
6570                 (__str__): Make it easier to print out recursive iterators
6571                 for debugging
6572                 - class Message (__str__): moved type inspection to the
6573                 MessageIter class' __str__ method
6574                 (get_iter): Added an append parameter wich defaults to False
6575                 If True use the new API's to create an append iterator
6576
6577         * python/dbus.py: Update to use new bindings API
6578                 - TYPE_ACTIVATION -> TYPE_STARTER
6579                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6580                 - class ActivationBus -> class StarterBus
6581                 - class RemoteObject (__call__): get an append iterator
6582                 - (_dispatch_dbus_method_call): get an append iterator
6583                 - class Object (emit_signal): get an append iterator
6584
6585         * python/examples/: Fixed up the examples to work with the new API
6586                 
6587 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6588
6589         * configure.in: Bump version up to 0.30.
6590
6591         * HACKING: Add a release item to bump the version number up after 
6592         a release.
6593
6594 2005-01-28  Havoc Pennington  <hp@redhat.com>
6595
6596         * doc/dbus-specification.xml: update to describe 16-bit types and
6597         dict entries
6598
6599         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6600         assertion
6601
6602         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6603         type
6604
6605         * dbus/dbus-marshal-recursive.c: implement
6606
6607 2005-01-27  Havoc Pennington  <hp@redhat.com>
6608
6609         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6610
6611         * configure.in: find the right type for 16 and 32 bit ints as well
6612         as 64
6613
6614         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6615         the 16-bit types so people don't have to stuff them in 32-bit or
6616         byte arrays.
6617
6618 2005-01-27  Havoc Pennington  <hp@redhat.com>
6619
6620         * dbus/dbus-message.c: byteswap the message if you init an
6621         iterator to read/write from it
6622         
6623         * dbus/dbus-marshal-byteswap.c: new file implementing 
6624         _dbus_marshal_byteswap()
6625
6626         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6627
6628 2005-01-26  Havoc Pennington  <hp@redhat.com>
6629         
6630         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6631         build, apparently - nobody noticed?)
6632         
6633 2005-01-26  Havoc Pennington  <hp@redhat.com>
6634
6635         * dbus/dbus-marshal-recursive.h: remove todo comment
6636
6637 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6638
6639         * Land the mono binding changes to conform to the new APIs.
6640
6641         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6642         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6643
6644         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6645         type code as a string.
6646         (InitAppending): Rename dbus_message_append_iter_init() to
6647         dbus_message_iter_init_append().
6648
6649         * mono/BusDriver.cs: Rename ServiceEventHandler to
6650         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6651         Rename ServiceOwnerChanged to NameOwnerChanged.
6652
6653         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6654         underlying C call.
6655
6656         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6657
6658         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6659         dbus_bus_acquire_service() to dbus_bus_request_name().
6660
6661         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6662         of Type.UnderlyingSystemType to get the correct element type for
6663         the array.
6664         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6665         dbus_message_get_{element|arg}_type() instead of
6666         dbus_message_iter_init_array_iterator().
6667         (Append): Replace dbus_message_iter_append_array() with
6668         dbus_message_iter_open_container() and
6669         dbus_message_iter_close_container().
6670
6671         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6672         types have been removed.
6673         
6674         * mono/DBusType/*.cs: Replace calls of
6675         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6676         but specify the type in the DllImport extern declaration.  Ditto
6677         for dbus_message_iter_append_[type]() ->
6678         dbus_message_iter_append_basic().
6679
6680         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6681         NameOwnerChangedHandler.
6682
6683 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6684
6685         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6686                 - get_base_service -> get_unique_name
6687                 - bus_get_base_service -> bus_get_unique_name
6688                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6689                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6690                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6691                 - bus_activate_service -> bus_start_service_by_name
6692                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6693                 - bus_acquire_service -> bus_request_name
6694                 - dbus_bus_acquire_service -> dbus_bus_request_name
6695                 - bus_service_exists -> bus_name_has_owner
6696                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6697
6698         * python/dbus.py: Rename of methods
6699                 - activate_service -> start_service_by_name
6700                 - bus_acquire_service -> bus_request_name
6701                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6702                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6703
6704         
6705 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6706
6707         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6708         signature for the method that can't be found.
6709
6710         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6711         the message has any arguments, we need to call
6712         _dbus_type_reader_get_current_type(), not
6713         _dbus_type_reader_has_next().
6714
6715 2005-01-24  Havoc Pennington  <hp@redhat.com>
6716
6717         * dbus/dbus-message-factory.c: more testing of message validation
6718
6719         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6720         header
6721
6722 2005-01-23  Havoc Pennington  <hp@redhat.com>
6723
6724         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6725         get this all working, not many tests in the framework yet though
6726
6727 2005-01-22  Havoc Pennington  <hp@redhat.com>
6728
6729         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6730         tutorial, based on work from David Wheeler.
6731
6732 2005-01-21  Havoc Pennington  <hp@redhat.com>
6733
6734         * dbus/dbus-bus.c: add more return_if_fail checks
6735
6736         * dbus/dbus-message.c (load_message): have the "no validation"
6737         mode (have to edit the code to toggle the mode for now though)
6738
6739         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6740         skips all validation; I want to use this at least for benchmark
6741         baseline, I'm not sure if it should be a publicly-available switch.
6742
6743 2005-01-21  Havoc Pennington  <hp@redhat.com>
6744
6745         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6746         toplevel doxygen group as the low-level API stuff
6747
6748         * dbus/dbus.h: note that libdbus is the low-level API
6749
6750 2005-01-20  Havoc Pennington  <hp@redhat.com>
6751
6752         * update-dbus-docs.sh: script to update docs on the web site, only
6753         works for me though. neener.
6754
6755 2005-01-20  Havoc Pennington  <hp@redhat.com>
6756
6757         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6758         code can reveal bugs in it
6759
6760 2005-01-20  Havoc Pennington  <hp@redhat.com>
6761
6762         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6763         select() version, patches from Tor Lillqvist
6764
6765 2005-01-20  Havoc Pennington  <hp@redhat.com>
6766
6767         * doc/dbus-tutorial.xml: replace > with &gt;
6768
6769         * bus/services.c (bus_registry_acquire_service): validate the name
6770         and return a better error if it's no good.
6771
6772         * doc/dbus-specification.xml: note NO_AUTO_START change
6773
6774         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6775         from AUTO_START, we're toggling the default
6776
6777         * bus/dispatch.c: adapt the tests to change of auto-start default
6778
6779 2005-01-18  Havoc Pennington  <hp@redhat.com>
6780
6781         * rename dbus-daemon-1 to dbus-daemon throughout
6782
6783 2005-01-18  Havoc Pennington  <hp@redhat.com>
6784
6785         * Throughout, grand renaming to strip out the use of "service",
6786         just say "name" instead (or "bus name" when ambiguous).  Did not
6787         change the internal code of the message bus itself, only the
6788         programmer-facing API and messages.
6789         
6790         * doc/dbus-specification.xml: further update the message bus section
6791         
6792         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6793         in error case
6794
6795 2005-01-17  Havoc Pennington  <hp@redhat.com>
6796
6797         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6798         ever
6799
6800         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6801         "invalid name character" not only non-ASCII
6802
6803         * doc/dbus-specification.xml: further update spec, message bus 
6804         parts are still out-of-date but the marshaling etc. stuff is now
6805         accurate-ish
6806
6807 2005-01-17  Havoc Pennington  <hp@redhat.com>
6808
6809         * doc/dbus-specification.xml: partially update spec
6810
6811 2005-01-17  Havoc Pennington  <hp@redhat.com>
6812
6813         * Throughout, align variant bodies according to the contained
6814         type, rather than always to 8. Should save a fair bit of space in
6815         message headers.
6816         
6817         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6818         fix handling of case where p == end
6819
6820         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6821
6822 2005-01-17  Havoc Pennington  <hp@redhat.com>
6823
6824         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6825
6826         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6827         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6828         are marshaling/unmarshaling a boolean.
6829
6830 2005-01-16  Havoc Pennington  <hp@redhat.com>
6831
6832         This is about it on what can be disabled/deleted from libdbus
6833         easily, back below 150K anyhow. Deeper cuts are more work than 
6834         just turning the code off as I've done here.
6835         
6836         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6837         signed int convenience funcs
6838
6839         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6840         verbose mode
6841
6842         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6843         things out of libdbus
6844
6845         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
6846         
6847         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
6848         tests-enabled-only, though it should probably be deleted)
6849
6850         * dbus/dbus-message-util.c: same stuff
6851
6852         * dbus/dbus-auth-util.c: same stuff
6853
6854 2005-01-16  Havoc Pennington  <hp@redhat.com>
6855
6856         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
6857
6858         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
6859         way for stripping down dbus-userdb.c stuff included in libdbus.
6860         Rename _dbus_parse_uid for consistency.
6861
6862 2005-01-16  Havoc Pennington  <hp@redhat.com>
6863
6864         * dbus/dbus-internals.c (_dbus_real_assert): print the function
6865         name the assertion failed in
6866
6867         * dbus/dbus-internals.h (_dbus_return_if_fail) 
6868         (_dbus_return_val_if_fail): assert that the name of the function
6869         containing the check doesn't start with '_', since we only want to 
6870         use checks on public functions
6871         
6872         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
6873         checks to assertions
6874
6875         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
6876         change checks to asserts for private function
6877
6878         * dbus/dbus-message.c (_dbus_message_set_serial): checks
6879         to asserts for private function
6880
6881         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
6882         broken assertion that was breaking make check
6883         (_dbus_type_reader_array_is_empty): remove this rather than fix
6884         it, was only used in assertions
6885
6886 2005-01-16  Havoc Pennington  <hp@redhat.com>
6887
6888         * test/unused-code-gc.py: hacky script to find code that's used
6889         only by the bus (not libdbus) or used only by tests or not used at
6890         all. It has some false alarms, but looks like we can clean up a
6891         lot of size from libdbus.
6892
6893         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
6894         dbus/Makefile.am: initially move 10K of binary size out of libdbus
6895         
6896 2005-01-16  Havoc Pennington  <hp@redhat.com>
6897
6898         * Add and fix docs according to Doxygen warnings throughout
6899         source.
6900         
6901         * dbus/dbus-marshal-recursive.c
6902         (_dbus_type_reader_array_is_empty): change this to just call
6903         array_reader_get_array_len() and make it static
6904
6905         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
6906         from get_array_type
6907         (dbus_message_iter_init_append): rename from append_iter_init
6908
6909         * dbus/dbus-marshal-recursive.c
6910         (_dbus_type_reader_get_element_type): rename from
6911         _dbus_type_reader_get_array_type
6912
6913 2005-01-15  Havoc Pennington  <hp@redhat.com>
6914
6915         * test/glib/test-profile.c (with_bus_server_filter): fix crash
6916
6917         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
6918         when DBUS_DISABLE_ASSERT
6919         (_dbus_marshal_set_basic): be sure we align for the string length
6920
6921         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
6922         this look faster
6923
6924         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
6925         inline macro version
6926         (_dbus_string_set_byte): provide inline macro version
6927
6928 2005-01-15  Havoc Pennington  <hp@redhat.com>
6929
6930         * Land the new message args API and type system.
6931
6932         This patch is huge, but the public API change is not 
6933         really large. The set of D-BUS types has changed somewhat, 
6934         and the arg "getters" are more geared toward language bindings;
6935         they don't make a copy, etc.
6936
6937         There are also some known issues. See these emails for details
6938         on this huge patch:
6939         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
6940         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
6941         
6942         * dbus/dbus-marshal-*: all the new stuff
6943
6944         * dbus/dbus-message.c: basically rewritten
6945
6946         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
6947         freed blocks to be all non-nul bytes so using freed memory is less
6948         likely to work right
6949
6950         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
6951         DBUS_FAIL_MALLOC=N environment variable, so you can do
6952         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
6953         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
6954         thorough.
6955
6956         * qt/message.cpp: port to the new message args API
6957         (operator<<): use str.utf8() rather than str.unicode()
6958         (pretty sure this is right from the Qt docs?)
6959
6960         * glib/dbus-gvalue.c: port to the new message args API
6961
6962         * bus/dispatch.c, bus/driver.c: port to the new message args API
6963
6964         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
6965         "locked" flag to TRUE and align_offset to 0; I guess we never
6966         looked at these anyhow, but seems cleaner.
6967
6968         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
6969         move allocation padding macro to this header; use it to implement
6970         (_DBUS_STRING_STATIC): ability to declare a static string.
6971
6972         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
6973         change to return TRUE if the interface is not set.
6974
6975         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
6976         to dbus-marshal-validate.[hc]
6977
6978         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
6979         dbus-internals.c
6980
6981         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
6982         to dbus-marshal-*.[hc]
6983
6984         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
6985         function here from dbus-marshal.c
6986
6987 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6988
6989         * NEWS: Update for 0.23.
6990
6991         * configure.in: Release 0.23.
6992
6993 2005-01-12  Joe Shaw  <joeshaw@novell.com>
6994
6995         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
6996         dbus DLL with --debug.  Clean up after the .mdb files this leaves
6997         behind.
6998
6999         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7000         uninstall"
7001
7002         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7003         is an enum, get the enum's underlying type.  Another mono
7004         1.1.3 fix.
7005
7006 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7007
7008         Patch from Sjoerd Simons <sjoerd@luon.net>
7009
7010         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7011         DESTDIR.  It breaks stuff.
7012
7013 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7014
7015         Patch from Tambet Ingo <tambet@ximian.com>
7016
7017         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7018         calling type.GetElementType().  The code previously depended on
7019         broken Mono behavior, which was fixed in Mono 1.1.3.
7020
7021         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7022         Activator.CreateInstance() so that the class's constructor is
7023         called with the right parameters.
7024
7025 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7026
7027         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7028
7029         * dbus/dbus-connection.c
7030         (_dbus_connection_queue_received_message_link): Call
7031         _dbus_connection_remove_timeout() instead of the _locked()
7032         variant, since it's always called from
7033         _dbus_connection_handle_watch(), which handles the locking.
7034         Removed the _locked() variant since it's no longer used.
7035
7036 2005-01-03  Havoc Pennington  <hp@redhat.com>
7037
7038         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7039         return
7040         
7041 2004-12-26  Havoc Pennington  <hp@redhat.com>
7042
7043         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7044
7045 2005-01-03  Havoc Pennington  <hp@redhat.com>
7046
7047         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7048         floating point
7049
7050         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7051
7052 2005-01-02  Havoc Pennington  <hp@redhat.com>
7053
7054         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7055
7056 2005-01-01  Havoc Pennington  <hp@redhat.com>
7057
7058         * configure.in: add -Wfloat-equal
7059
7060 2005-01-01  Havoc Pennington  <hp@redhat.com>
7061
7062         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7063         for a variety of reasons '==' doesn't do this.
7064
7065 2004-12-31  Havoc Pennington  <hp@redhat.com>
7066
7067         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7068         I keep wishing I had
7069
7070 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7071
7072         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7073
7074 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7075
7076         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7077         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7078         dbus-protocol.h.  Because they are defines and not enums they are not
7079         autogenerated.
7080
7081 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7082
7083         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7084         dbus_bus_activate_service
7085
7086         * python/dbus.py (Bus.activate_service): activate a service on the
7087         bus.
7088
7089 2004-12-24  Havoc Pennington  <hp@redhat.com>
7090
7091         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7092         file format has also changed and I haven't adapted to that yet
7093         
7094         * Makefile.am: load .gcno files from latest gcc
7095
7096 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7097         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7098
7099         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7100         lowlevel binding
7101
7102         * python/dbus.py (get_unix_user): Added binding to 
7103         call dbus_bindings.bus_get_unix_user
7104
7105         * python/extract.py: Modified the proto_pat regex to
7106         handle unsigned long
7107
7108 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7109
7110         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7111         better POSIX compliance.
7112
7113 2004-12-19  Havoc Pennington  <hp@redhat.com>
7114
7115         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7116         (_dbus_string_insert_8_aligned): new functions
7117
7118         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7119
7120 2004-12-18  Havoc Pennington  <hp@redhat.com>
7121
7122         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7123         macro
7124
7125         * dbus/dbus-message.c: fix a comment, and add a still-unused
7126         not-implemented function
7127
7128         * dbus/dbus-marshal.h: fix comment
7129
7130         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7131
7132 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7133
7134         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7135         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7136         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7137         Type.UnderlyingSystemType to get the actual system type
7138         underneath.  This code previously depended on the broken Mono
7139         behavior, which was fixed in 1.1.3.
7140
7141 2004-11-27  Havoc Pennington  <hp@redhat.com>
7142
7143         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7144         are disabled
7145         (_dbus_string_get_const_data): inline when asserts are disabled
7146
7147         * dbus/dbus-message.c: record the _dbus_current_generation of
7148         creation so we can complain if dbus_shutdown() is used improperly.
7149         Do this only if checks are enabled.
7150
7151         * dbus/dbus-connection.c: ditto
7152         
7153 2004-11-26  Havoc Pennington  <hp@redhat.com>
7154
7155         * test/glib/test-profile.c: add with_bus mode to profile echoes
7156         that go through the bus.
7157
7158         * test/glib/run-test.sh: add ability to run test-profile
7159
7160         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7161         config file reload.
7162
7163 2004-11-26  Havoc Pennington  <hp@redhat.com>
7164
7165         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7166         thing was implemented
7167
7168 2004-11-26  Havoc Pennington  <hp@redhat.com>
7169
7170         * test/glib/test-profile.c: tweak a bit, add support for some
7171         made-up minimal malloc overhead with plain sockets, since in 
7172         real life some sort of buffers are unavoidable thus we could 
7173         count them in the theoretical best case
7174
7175 2004-11-26  Havoc Pennington  <hp@redhat.com>
7176
7177         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7178         where I was trying to cache one too many messages
7179
7180 2004-11-26  Havoc Pennington  <hp@redhat.com>
7181
7182         * dbus/dbus-message.c: reimplement message cache as an array which 
7183         makes the cache about twice as fast and saves maybe 1.5% overall
7184
7185 2004-11-26  Havoc Pennington  <hp@redhat.com>
7186
7187         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7188         message cache lock here
7189
7190 2004-11-26  Havoc Pennington  <hp@redhat.com>
7191
7192         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7193         the "char byte_order" next to each other to save 4 bytes
7194         (dbus_message_new_empty_header): reduce preallocation, since the
7195         message cache should achieve a similar effect
7196         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7197         message cache that keeps a few DBusMessage around in a pool,
7198         another 8% speedup or so.
7199
7200         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7201
7202 2004-11-25  Havoc Pennington  <hp@redhat.com>
7203
7204         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7205         to write, without reading or blocking, try it before the poll()
7206         and skip the poll() if nothing remains to write. This is about a
7207         3% speedup in the echo client/server
7208
7209 2004-11-25  Havoc Pennington  <hp@redhat.com>
7210
7211         The primary change here is to always write() once before adding
7212         the write watch, which gives us about a 10% performance increase.
7213         
7214         * dbus/dbus-transport-unix.c: a number of modifications to cope
7215         with removing messages_pending
7216         (check_write_watch): properly handle
7217         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7218         messages_pending stuff
7219         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7220         AUTHENTICATED cases
7221         (unix_handle_watch): after writing, see if the write watch can be
7222         removed
7223         (unix_do_iteration): assert that write_watch/read_watch are
7224         non-NULL rather than testing that they aren't, since they 
7225         aren't allowed to be NULL. check_write_watch() at the end so 
7226         we add the watch if we did not finish writing (e.g. got EAGAIN)
7227
7228         * dbus/dbus-transport-protected.h: remove messages_pending call,
7229         since it resulted in too much inefficient watch adding/removing; 
7230         instead we now require that the transport user does an iteration 
7231         after queueing outgoing messages, and after trying the first
7232         write() we add a write watch if we got EAGAIN or exceeded our 
7233         max bytes to write per iteration setting
7234
7235         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7236         function
7237
7238         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7239         freed and then accessed, valgrind flagged this bug, fix it
7240
7241         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7242         as the last valid field plus 1, where really it is equal to the
7243         last valid field. Corrects some message corruption issues.
7244
7245         * dbus/dbus-mainloop.c: verbosity changes
7246
7247         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7248         instead of aborting in one of the test codepaths
7249
7250         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7251         caused not printing the pid ever again if a verbose was missing
7252         the newline at the end
7253         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7254
7255         * dbus/dbus-connection.c: verbosity changes; 
7256         (dbus_connection_has_messages_to_send): new function
7257         (_dbus_connection_message_sent): no longer call transport->messages_pending
7258         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7259         try to write() immediately, so we can avoid the write watch. This
7260         is the core purpose of this patchset
7261         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7262         dump the outgoing message queue, so nobody will get confused
7263         trying to send them or thinking stuff is pending to be sent
7264
7265         * bus/test.c: verbosity changes
7266
7267         * bus/driver.c: verbosity/assertion changes
7268
7269         * bus/dispatch.c: a bunch of little tweaks to get it working again
7270         because this patchset changes when/where you need to block.
7271
7272 2004-11-23  Havoc Pennington  <hp@redhat.com>
7273
7274         * test/glib/test-profile.c: modify to accept a plain_sockets
7275         argument in which case it will bench plain sockets instead of
7276         libdbus, for comparison purposes.
7277
7278 2004-11-22  Havoc Pennington  <hp@redhat.com>
7279
7280         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7281         threads for more time, so sysprof can get a grip on it.
7282
7283         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7284         pointless variable
7285
7286 2004-11-13  Havoc Pennington  <hp@redhat.com>
7287
7288         * test/glib/test-profile.c: fix this thing up a bit
7289
7290         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7291         preallocation sizes by a fair bit; not sure if this will be an
7292         overall performance win or not, but it does reduce reallocs.
7293
7294         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7295         the test hack that forced constant realloc if asserts are
7296         disabled, so we can profile sanely. Sprinkle in some
7297         _DBUS_UNLIKELY() which are probably pointless, but before I
7298         noticed the real performance problem I put them in.
7299         (_dbus_string_validate_utf8): micro-optimize this thing a little
7300         bit, though callgrind says it didn't help; then special-case
7301         ascii, which did help a lot; then be sure we detect nul bytes as
7302         invalid, which is a bugfix.
7303         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7304         superstition; use memset to nul the padding instead of a manual
7305         loop.
7306         (_dbus_string_get_length): inline this as a
7307         macro; it showed up in the profile because it's used for loop
7308         tests and so forth
7309
7310 2004-11-10  Colin Walters  <walters@verbum.org>
7311
7312         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7313         for extra paranoia.
7314
7315 2004-11-09  Colin Walters  <walters@verbum.org>
7316
7317         * dbus/dbus-string.c (_dbus_string_get_length): New
7318         function, writes DBusString to C buffer.
7319
7320         * dbus/dbus-string.h: Prototype it.
7321
7322         * dbus/dbus-message.c (dbus_message_type_to_string): New
7323         function, converts message type into C string.
7324
7325         * dbus/dbus-message.h: Prototype it.
7326
7327         * bus/selinux.c (bus_selinux_check): Take source pid,
7328         target pid, and audit data.  Pass audit data to
7329         avc_has_perm.
7330         (log_audit_callback): New function, appends extra
7331         audit information.
7332         (bus_selinux_allows_acquire_service): Also take
7333         service name, add it to audit data.
7334         (bus_selinux_allows_send): Also take message
7335         type, interface, method member, error name,
7336         and destination, and add them to audit data.
7337         (log_cb): Initialize func_audit.
7338         
7339         * bus/selinux.h (bus_selinux_allows_acquire_service)
7340         (bus_selinux_allows_send): Update prototypes 
7341
7342         * bus/services.c (bus_registry_acquire_service): Pass
7343         service name to bus_selinux_allows_acquire_service.
7344
7345         * bus/bus.c (bus_context_check_security_policy): Pass
7346         additional audit data.  Move assignment of dest
7347         to its own line.
7348
7349 2004-11-07  Colin Walters  <walters@verbum.org>
7350
7351         * dbus/dbus-transport-unix.c (do_authentication): Always
7352         initialize auth_completed.
7353         
7354 2004-11-07  Colin Walters  <walters@verbum.org>
7355
7356         * bus/bus.c (load_config): Break into three
7357         separate functions: process_config_first_time_only,
7358         process_config_every_time, and process_config_postinit.
7359         (process_config_every_time): Move call of
7360         bus_registry_set_service_context_table into
7361         process_config_postinit.
7362         (process_config_postinit): New function, does
7363         any processing that needs to happen late
7364         in initialization (and also on reload).
7365         (bus_context_new): Instead of calling load_config,
7366         open config parser here and call process_config_first_time_only
7367         and process_config_every_time directly.  Later, after
7368         we have forked but before changing UID,
7369         invoke bus_selinux_full_init, and then call
7370         process_config_postinit.
7371         (bus_context_reload_config): As in bus_context_new,
7372         load parse file inside here, and call process_config_every_time
7373         and process_config_postinit.
7374
7375         * bus/services.h, bus/services.c
7376         (bus_registry_set_service_context_table): Rename
7377         from bus_registry_set_sid_table.  Take string hash from config
7378         parser, and convert them here into SIDs.
7379
7380         * bus/config-parser.c (struct BusConfigParser): Have
7381         config parser only store a mapping of service->context
7382         string.
7383         (merge_service_context_hash): New function.
7384         (merge_included): Merge context string hashes instead
7385         of using bus_selinux_id_table_union.
7386         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7387         simply create a new string hash.
7388         (bus_config_parser_unref): Unref it.
7389         (start_selinux_child): Simply insert strings into hash,
7390         don't call bus_selinux_id_table_copy_over.
7391
7392         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7393         (bus_selinux_id_table_copy_over): Delete.
7394
7395 2004-11-03  Colin Walters  <walters@verbum.org>
7396
7397         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7398         variables.
7399         
7400 2004-11-03  Colin Walters  <walters@verbum.org>
7401
7402         * bus/test-main.c (test_pre_hook): Fix test logic,
7403         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7404
7405 2004-11-02  Colin Walters  <walters@redhat.com>
7406
7407         * bus/selinux.c (bus_selinux_init): Split into two functions,
7408         bus_selinux_pre_init and bus_selinux_post_init.
7409         (bus_selinux_pre_init): Just determine whether SELinux is
7410         enabled.
7411         (bus_selinux_post_init): Do everything else.
7412
7413         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7414         config file, and bus_selinux_post_init after.  This ensures that
7415         we don't lose the policyreload notification thread that
7416         bus_selinux_init created before forking previously.
7417         
7418         * bus/test-main.c (test_pre_hook): Update for split.
7419
7420 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7421
7422         Patch from Johan Fischer <linux@fischaz.com>
7423         
7424         * mono/doc/Makefile.am (install-data-local): Added directory
7425         install for DESTDIR
7426
7427 2004-10-29  Colin Walters  <walters@redhat.com>
7428
7429         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7430         parameter for fd to write pid to.       
7431
7432         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7433         
7434         * bus/bus.c (bus_context_new): Pass print_pid_fd
7435         to _dbus_become_daemon (bug #1720)
7436
7437 2004-10-29  Colin Walters  <walters@redhat.com>
7438
7439         Patch from Ed Catmur <ed@catmur.co.uk>
7440
7441         * mono/doc/Makefile.am (install-data-local): Handle
7442         DESTDIR.
7443
7444 2004-10-29  Colin Walters  <walters@redhat.com>
7445
7446         * bus/.cvsignore, qt/.cvsignore: Update.
7447
7448 2004-10-29  Colin Walters  <walters@redhat.com>
7449
7450         Patch from Kristof Vansant <de_lupus@pandora.be>
7451
7452         * configure.in: Detect Slackware.
7453         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7454         * bus/rc.messagebus.in: New file.
7455
7456 2004-10-29  Colin Walters  <walters@redhat.com>
7457
7458         * tools/dbus-monitor.c (filter_func): Return
7459         DBUS_HANDLER_RESULT_HANDLED in filter function
7460         for now.  See:
7461         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7462
7463 2004-10-29  Colin Walters  <walters@redhat.com>
7464
7465         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7466
7467         * bus/services.c (bus_registry_acquire_service): 
7468         Correctly retrieve service name from DBusString
7469         for printing.
7470
7471 2004-10-29  Colin Walters  <walters@redhat.com>
7472
7473         * dbus/dbus-glib.h: Update documentation to not
7474         refer to internal APIs.
7475
7476 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7477
7478         * mono/Arguments.cs (GetDBusTypeConstructor):
7479         type.UnderlyingSystemType will return "System.Byte" if you do it
7480         on "byte[]", which is not what we want.  So check the type.IsArray
7481         property and use System.Array instead.
7482
7483 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7484
7485         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7486         the DBusUserInfo structure since this is passed into the function.
7487         This would cause a double free when the function that allocated
7488         the structure would try to free it when an error occured.
7489
7490         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7491         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7492         for service activation to avoid 32bit/64bit parallel install issues
7493
7494 2004-10-21  Colin Walters  <walters@verbum.org>
7495
7496         * AUTHORS: Fix my email address, the @gnu.org one
7497         has been bouncing for some time.  Also add J5.
7498         
7499 2004-10-21  Colin Walters  <walters@verbum.org>
7500
7501         * dbus/dbus-transport-unix.c (do_authentication): Return
7502         authentication status to callers.
7503         (unix_handle_watch): If we completed authentication this round,
7504         don't do another read.  Instead wait until the next iteration,
7505         after we've read any pending data in the auth buffer.
7506         (unix_do_iteration): Ditto.
7507         (unix_handle_watch): Updated for new do_authentication prototype.
7508
7509 2004-10-18  Colin Walters  <walters@verbum.org>
7510
7511         * bus/selinux.c (bus_selinux_enabled): Handle
7512         --disable-selinux case.
7513         
7514 2004-10-18  Colin Walters  <walters@verbum.org>
7515
7516         * bus/selinux.h: Add bus_selinux_enabled.
7517         
7518         * bus/selinux.c (bus_selinux_enabled): Implement it.
7519         
7520         * bus/config-parser.c (struct include): Add
7521         if_selinux_enabled member.
7522         (start_busconfig_child): Parse if_selinux_enabled
7523         attribute for include.
7524         (bus_config_parser_content): Handle it.
7525
7526         * bus/session.conf.in, bus/system.conf.in: Add
7527         inclusion of context mapping to default config files;
7528         conditional on SELinux being enabled.
7529         
7530         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7531         
7532         * test/data/invalid-config-files/badselinux-1.conf, 
7533         test/data/invalid-config-files/badselinux-2.conf:
7534         Test files for bad syntax.
7535         
7536 2004-10-17  Colin Walters  <walters@verbum.org>
7537
7538         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7539         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7540         format specifier mismatches.
7541
7542 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7543
7544         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7545         format string.
7546
7547         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7548         pointer (bug #1540, Leonardo Boiko).
7549
7550 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7551
7552         * mono/BusDriver.cs: Changed BusDriver struct to remove
7553         the ServiceCreated and ServiceDeleted events and replace them
7554         with the new ServiceOwnerChanged event.
7555
7556         * mono/example/BusListener.cs: Added a new example program,
7557         which listens for and reports any ServiceOwnerChanged events
7558         on the bus driver.
7559
7560         * mono/example/Makefile.am (DESTDIR): Build changes for the
7561         new BusListener.cs example.
7562
7563 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7564
7565         * bus/signals.c (bus_match_rule_parse): validate the components of
7566         match rules (bug #1439).
7567
7568         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7569
7570 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7571
7572         * doc/dbus-specification.xml: document ServiceOwnerChanged
7573         signal.
7574         
7575         * bus/driver.c, bus/driver.h, bus/services.c: Use
7576         ServiceOwnerChanged signal instead of ServiceCreated and
7577         ServiceDeleted.
7578         
7579         * bus/dispatch.c: update testcase for the new signal.
7580
7581 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7582
7583         Patch from Nat Friedman <nat@novell.com>
7584
7585         * mono/Makefile.am: A number of small build fixes to allow "make
7586         distcheck" to succeed.
7587
7588         * mono/example/Makefile.am: "make distcheck" fixes.
7589
7590         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7591         key in @srcdir@.
7592
7593         * test/Makefile.am: "make distcheck" fixes.
7594
7595 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7596
7597         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7598
7599         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7600
7601         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7602         messages after the first one (bug #1389).
7603         
7604         * bus/dispatch.c (check_double_hello_message): add a test case for
7605         the double hello message bug.
7606         (check_existent_service_activation): fix check of spawning error.
7607         
7608 2004-09-16  David Zeuthen  <david@fubar.dk>
7609
7610         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7611
7612 2004-09-12  David Zeuthen  <david@fubar.dk>
7613
7614         Patch from Kay Sievers <kay.sievers@vrfy.org>
7615
7616         * bus/bus.c (bus_context_new):
7617         * bus/bus.h:
7618         * bus/main.c (usage)
7619         (main):
7620         Add commandline option --nofork to override configuration file
7621         setting.
7622
7623 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7624
7625         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7626         compilers don't like it (bug #974).
7627
7628 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7629
7630         * qt/connection.*: Applied patch by Jérôme Lodewyck
7631         <lodewyck@clipper.ens.fr> to integrate an existing
7632         connection into the Qt eventloop
7633
7634 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7635
7636         * mono/BusDriver.cs: Added.  This is a class for interacting with
7637         the org.freedesktop.DBus service.
7638
7639         * mono/Message.cs: Added a mechanism to expose the message that is
7640         currently being dispatched via the static Message.Current
7641         property.  Added Message.Sender and Message.Destination
7642         properties.
7643
7644         * mono/Handler.cs: Expose the dispatched message via
7645         Message.Current when handling method calls.
7646
7647         * mono/Service.cs: Expose the dispatched message via
7648         Message.Current when handling signal emissions.
7649         
7650         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7651         Connection.BaseService property.
7652
7653 2004-08-28  Havoc Pennington  <hp@redhat.com>
7654
7655         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7656
7657         More fixes from Steve Grubb
7658         
7659         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7660         (_dbus_listen_tcp_socket): fix fd leak
7661
7662         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7663         EINTR to a bit lower in the code
7664
7665 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7666
7667         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7668         TRUE if we are inquiring about the existence of the built-in
7669         org.freedesktop.DBus service.
7670
7671 2004-08-25  John Palmieri  <johnp@redhat.com>
7672         * bus/config-parser.c:
7673         (struct PolicyType): Add POLICY_CONSOLE
7674         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7675         (start_busconfig_child): Sets up console element when
7676         <policy at_console=""> is encountered in a policy file
7677         (append_rule_from_element): Convert console elements to console
7678         rules.
7679
7680         * bus/policy.c: 
7681         (bus_policy_create_client_policy): Add console rules to the client
7682         policy based on if the client is at the console
7683         (bus_policy_append_console_rule): New function for adding a
7684         console rule to a policy
7685         (bus_policy_merge): Handle console rule merging
7686
7687         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7688         where we check for console user files
7689         
7690         * dbus/dbus-sysdeps.c:
7691         (_dbus_file_exists): New function which checks if the given
7692         file exists
7693         (_dbus_user_at_console): New function which does the system
7694         specific process of checking if the user is at the console
7695
7696         * dbus/dbus-userdb.c:
7697         (_dbus_is_console_user): New function converts a UID to user name
7698         and then calls the system specific _dbus_user_at_console to 
7699         see if the user is at the console and therefor a console user
7700
7701 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7702
7703         * bus/config-parser.c (set_limit):
7704         * bus/dbus-daemon-1.1.in:
7705         * test/data/valid-config-files/many-rules.conf: set the
7706         max_match_rules_per_connection limt from the config file. 
7707
7708         * doc/busconfig.dtd: update the DTD.
7709
7710         * bus/driver.c: remove some unused variables.
7711
7712 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7713
7714         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7715         it's been replaced by dbus_g_bus_get
7716
7717 2004-08-23  Colin Walters  <walters@redhat.com>
7718
7719         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7720
7721         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7722
7723         * bus/selinux.c: Create a thread for policy reload notification.
7724         (bus_selinux_get_policy_root): Implement.
7725
7726         * bus/config-parser.c (start_busconfig_child)
7727         (bus_config_parser_content): Support SELinux-root relative
7728         inclusion.
7729
7730         * configure.in <HAVE_SELINUX>: Add -lpthread.
7731         
7732         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7733         (test_post_hook): Move memory checking into here.
7734         (test_pre_hook, test_post_hook): Move SELinux checks in
7735         here, but conditional on a DBUS_TEST_SELINUX environment
7736         variable.  Unfortunately we can't run the SELinux checks
7737         as a normal user, since they won't have any permissions
7738         for /selinux.  So this will have to be tested manually
7739         for now, until we have virtualization for most of
7740         libselinux.
7741         
7742 2004-08-23  Havoc Pennington  <hp@redhat.com>
7743
7744         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7745         drop supplementary groups, suggested by Steve Grubb
7746
7747 2004-08-20  Colin Walters  <walters@redhat.com>
7748
7749         * bus/config-parser.c (start_busconfig_child): Remove some unused
7750         variables.
7751         
7752         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7753         warning.
7754
7755 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7756
7757         * configure.in: If --enable-mono is passed in, if we can't find
7758         mono error out.
7759
7760         * mono/Makefile.am: Use /gacutil to install assemblies into the
7761         GAC and not /root.
7762
7763 2004-08-12  Havoc Pennington  <hp@redhat.com>
7764
7765         * NEWS: update for 0.22
7766
7767         * configure.in: release 0.22
7768
7769 2004-08-11  Colin Walters  <walters@redhat.com>
7770
7771         * tools/dbus-send.c (main, usage): Add --reply-timeout
7772         argument.
7773
7774 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7775
7776         * bus/bus.c (process_config_first_time_only): get rid of an unused
7777         DBusError that was causing a memoy leak (bug #989).
7778
7779         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7780         fix compilation on Solaris/Forte C (bug #974)
7781
7782         * bus/main.c (main): plug two minuscule memleaks.
7783
7784 2004-08-10  Havoc Pennington  <hp@redhat.com>
7785
7786         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7787
7788 2004-08-09  Havoc Pennington  <hp@redhat.com>
7789
7790         * COPYING: switch to Academic Free License version 2.1 instead of
7791         2.0, to resolve complaints about patent termination clause.
7792
7793 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7794
7795         * README: added documentation for the --enable-python 
7796         configure switch.
7797
7798 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7799
7800         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7801         _unref in the SELinux support.
7802
7803         * doc/busconfig.dtd: update DTD for SELinux support.
7804
7805         * bus/config-loader-libxml.c: fix error handler and parser
7806         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7807
7808         * configure.in: remove the warning about libxml2.
7809
7810         * dbus/dbus-bus.c: silence doxygen warning.
7811
7812 2004-07-31  Colin Walters  <walters@redhat.com>
7813
7814         * configure.in: Move #error in SELinux check to its own line.
7815
7816 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7817
7818         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7819         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7820         dbus_error_set.
7821
7822         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7823         broken by the change in the _SET_OOM macros.
7824
7825 2004-07-31  Colin Walters  <walters@redhat.com>
7826
7827         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7828         BUS_SET_OOM.
7829
7830 2004-07-31  Colin Walters  <walters@redhat.com>
7831
7832         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7833         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7834         AC_MSG_CHECKING.
7835
7836 2004-07-24  Havoc Pennington  <hp@redhat.com>
7837
7838         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7839
7840         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7841         functionality
7842
7843         * configure.in: add --enable-selinux
7844         
7845         * bus/policy.c (bus_policy_merge): add FIXME to a comment
7846
7847         * bus/main.c (main): initialize and shut down selinux
7848
7849         * bus/connection.c: store SELinux ID on each connection, to avoid 
7850         repeated getting of the string context and converting it into 
7851         an ID
7852
7853         * bus/bus.c (bus_context_get_policy): new accessor, though it
7854         isn't used
7855         (bus_context_check_security_policy): check whether the security
7856         context of sender connection can send to the security context of
7857         recipient connection
7858
7859         * bus/config-parser.c: add parsing for <selinux> and <associate>
7860         
7861         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
7862         implement dbus_connection_get_unix_fd()
7863
7864         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
7865         function, used by the selinux stuff
7866         
7867 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7868
7869         * bus/config-loader-libxml.c: complete the implementation of
7870         libxml backend for config file loader. Doesn't work with full OOM
7871         test yet. 
7872         
7873         * configure.in: change error when selecting libxml into a warning.
7874         
7875         * test/data/invalid-config-files: add two non-well-formed XML
7876         files. 
7877         
7878         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
7879         
7880         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
7881         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
7882         be necessary to read all the buffer. (bug #894)
7883
7884         * bus/activation.c (bus_activation_activate_service): fix a
7885         potential assertion failure (bug #896). Small optimization in the
7886         case of auto-activation messages.
7887
7888         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
7889         add test case for byte-through-vararg bug (#901). patch by Kimmo
7890         Hämäläinen. 
7891
7892 2004-07-28  Anders Carlsson  <andersca@gnome.org>
7893
7894         * python/dbus.py:
7895         * python/dbus_bindings.pyx.in:
7896         Add dbus.init_gthreads (), allow emit_signal to pass
7897         arguments to the signal.
7898         
7899 2004-07-24  Havoc Pennington  <hp@redhat.com>
7900
7901         * AUTHORS: add some people, not really comprehensively, let me
7902         know if I missed you
7903
7904 2004-07-24  Havoc Pennington  <hp@redhat.com>
7905
7906         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
7907         Owen
7908
7909         * test/Makefile.am (DIST_SUBDIRS): here also
7910
7911 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7912
7913         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
7914         breaking build on Solaris, reported by Farhad Saberi on the ML.
7915
7916         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
7917         va_arg invocation to account for integer promotion in the case of
7918         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
7919
7920         * bus/services.c (bus_service_remove_owner): fix bug #902, use
7921         _dbus_list_get_first_link, not _dbus_list_get_first.
7922
7923         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
7924
7925         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
7926         handler functions so that the asserts in _dbus_object_subtree_unref
7927         do not fail.
7928
7929         * dbus/dbus-transport-unix.c (do_reading):
7930         _dbus_transport_queue_messages return value is of type
7931         dbus_bool_t, not DBusDispatchStatus.
7932         
7933 2004-07-19  David Zeuthen  <david@fubar.dk>
7934
7935         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
7936
7937         * bus/dispatch.c:
7938         (check_get_connection_unix_user): Debug says GetProperty; but the
7939         method is called GetConnectionUnixUser
7940         (check_get_connection_unix_process_id): New function
7941         (bus_dispatch_test): Actually call check_get_connection_unix_user();
7942         also call check_get_connection_unix_process_id()
7943         
7944         * bus/driver.c:
7945         (bus_driver_handle_get_connection_unix_process_id): New function,
7946         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
7947         interface
7948         
7949         * dbus/dbus-auth.c:
7950         (handle_server_data_external_mech): Set pid from the credentials
7951         obtained from the socket
7952         
7953         * dbus/dbus-connection.c:
7954         (dbus_connection_get_unix_process_id): New function
7955         
7956         * dbus/dbus-connection.h: 
7957         Add prototype for dbus_connection_get_unix_process_id
7958         
7959         * dbus/dbus-transport.c:
7960         (_dbus_transport_get_unix_process_id): New function
7961         
7962         * dbus/dbus-transport.h:
7963         Add prototype for _dbus_transport_get_unix_process_id
7964         
7965 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7966
7967         * dbus/dbus-message.c: Message counter fix, patch by Christian
7968         Hammond <chipx86@gnupdate.org>
7969
7970 2004-07-18  Seth Nickell  <seth@gnome.org>
7971
7972         * python/dbus.py:
7973         * python/dbus_bindings.pyx.in:
7974         * python/tests/test-client.py:
7975
7976         Add dbus.ByteArray and dbus_bindings.ByteArray
7977         types so that byte streams can be passed back.
7978
7979         Give jdahlin the heaps of credit that are so
7980         rightfully his.
7981         
7982 2004-07-12  Seth Nickell  <seth@gnome.org>
7983
7984         * python/dbus.py:
7985
7986         Add message argument to the default object_method_handler
7987         function.
7988         
7989         * python/dbus_bindings.pyx.in:
7990
7991         Automatically return NIL when passed an empty list
7992         (we can't pass back a list since lists are typed
7993         and we don't have any idea what type the the client
7994         intended the list to be... :-( )
7995         
7996 2004-07-10  Seth Nickell  <seth@gnome.org>
7997
7998         * python/examples/Makefile.am:
7999
8000         Fix distcheck breakage caused by new examples.
8001
8002 2004-07-10  Seth Nickell  <seth@gnome.org>
8003
8004         * python/dbus.py:
8005
8006         Add "message" argument to service-side dbus.Object
8007         methods. This will break existing services written
8008         using the python bindings, but will allow extraction
8009         of all the message information (e.g. who its from).
8010
8011         Add improved "object oriented" signal handling/emission.
8012         
8013         * python/examples/example-service.py:
8014
8015         Nix this example.
8016         
8017         * python/examples/example-signal-emitter.py:
8018         * python/examples/example-signal-recipient.py:
8019
8020         Two new examples that show how to emit and receive
8021         signals using the new APIs.
8022         
8023         * python/examples/example-signals.py:
8024         * python/examples/gconf-proxy-service.py:
8025         * python/examples/gconf-proxy-service2.py:
8026
8027         Add "message" argument to service methods.
8028
8029 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8030
8031         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8032         * dbus/bus.c (dbus_bus_get_unix_user)
8033         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8034         method of org.freedesktop.DBus interface.
8035
8036         * bus/dispatch.c: test case
8037
8038 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8039
8040         * python/Makefile.am: switched include directory from glib/ to dbus/
8041         since dbus-glib.h moved
8042  
8043 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8044
8045         * configure.in: prevent building the gcj stuff and libxml loader
8046         since they are broken.
8047
8048 2004-06-20  Havoc Pennington  <hp@redhat.com>
8049
8050         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8051         codes from the dbus error names
8052         
8053         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8054         as dbus/dbus-glib.h and that breakage is now visible due to 
8055         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8056         
8057         * glib/dbus-glib.h: s/gproxy/g_proxy/
8058
8059         * dbus/dbus-shared.h: new header to hold stuff shared with
8060         binding APIs
8061         
8062         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8063         than dbus-errors.h
8064
8065         * glib/dbus-glib.h (dbus_set_g_error): move to
8066         dbus-glib-lowlevel.h
8067
8068         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8069         of stuff to enable this
8070
8071         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8072
8073         * a bunch of other changes with the same basic "separate glib 
8074         bindings from dbus.h" theme
8075         
8076 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8077
8078         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8079
8080         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8081
8082 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8083
8084         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8085         the reply value of the ServiceExists message.
8086
8087 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8088
8089         * python/dbus_bindings.pyx.in: No longer need to parse path
8090         elements and pass them as arrays of strings.  The C API now
8091         accepts plain path strings.
8092         (_build_parsed_path): removed 
8093
8094 2004-06-07  Havoc Pennington  <hp@redhat.com>
8095
8096         * doc/TODO: remove auto-activation item since it's done; sort
8097         items by importance/milestone
8098
8099 2004-06-07  Havoc Pennington  <hp@redhat.com>
8100
8101         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8102         random signature when using REQUIRED_FIELDS (this hack won't work
8103         in the long term)
8104
8105         * dbus/dbus-message.c: change the signature to be a header field,
8106         instead of message->signature special-case string. Incremental
8107         step forward. Then we can fix up code to send the signature in the
8108         message, then fix up code to validate said signature, then fix up
8109         code to not put the typecodes inline, etc.
8110         (load_one_message): don't make up the signature after the fact
8111         (decode_header_data): require signature field for the known
8112         message types
8113
8114         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8115
8116         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8117
8118 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8119
8120         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8121
8122         * mono/Handler.cs: Updated to follow new path argument for
8123         (un-)registering objects.
8124
8125         * mono/example/Makefile.am:
8126         * mono/Makefile.am:
8127         * configure.in: Bumped required version for mono and use new -pkg
8128         syntax for deps
8129
8130 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8131
8132         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8133         registration functions take the path argument as char* instead of
8134         char**.
8135
8136         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8137         split off the path decompostion part of
8138         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8139         warnings. 
8140
8141         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8142         
8143 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8144  
8145         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8146         machine approach.  A state is implemented as a function that
8147         handles incoming events as specified for that state.
8148         
8149         * doc/dbus-specification.xml: Update auth protocol state machine
8150         specification to match implementation.  Remove some leftover
8151         base64 examples.
8152
8153 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8154
8155         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8156         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8157         quiet doxygen.
8158
8159         * Doxyfile.in: remove deprecated options.
8160
8161         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8162         glib/test-thread.h, glib/test-thread-client.c,
8163         glib/test-thread-server.c, glib/test-profile.c,
8164         glib/test-dbus-glib.c: remove these unused files.
8165
8166 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8167
8168         * dbus/dbus-object-tree.c
8169         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8170         non-fallback handlers (bug #684).
8171         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8172         (find_subtree_recurse): report wether the returned subtree is an
8173         exact match or a "fallback" match higher up in the tree.
8174         (object_tree_test_iteration): update test case.
8175
8176 2004-06-01  Seth Nickell  <seth@gnome.org>
8177
8178         * python/dbus_bindings.pyx.in:
8179         * python/tests/test-client.py:
8180
8181         Round off basic type support. Add dicts (yay!), and 
8182         remaining array types.
8183
8184         Make MessageIter more general so it works for dicts too.
8185
8186         Mark all loop variables as C integers.
8187         
8188 2004-05-31  Havoc Pennington  <hp@redhat.com>
8189
8190         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8191         "in" before "out"
8192
8193         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8194
8195         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8196         option that runs the tests, and start filling in some code
8197         including for starters just dumping the interfaces to stdout
8198
8199         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8200
8201         * test/data/valid-introspection-files/lots-of-types.xml: test of
8202         an example introspection file
8203
8204         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8205         "node" (I think...)
8206
8207 2004-05-31  Seth Nickell  <seth@gnome.org>
8208
8209         * python/dbus_bindings.pyx.in:
8210         * python/tests/test-client.py:
8211
8212         Test Suite: 1
8213         Python Bindings: 0
8214
8215         Fix string array memory trashing bug... oops...
8216
8217 2004-05-30  Seth Nickell  <seth@gnome.org>
8218
8219         * python/dbus.py:
8220
8221         Add a nicer-but-less-flexible alternate API for handling 
8222         calls to virtual objects in dbus.ObjectTree.
8223
8224         Screw up the argument order to the dbus.Object constructor
8225         for consistency with dbus.ObjectTree (and to make dbus_methods
8226         optional for future extension)
8227         
8228         * python/examples/Makefile.am:
8229         * python/examples/gconf-proxy-service.py:
8230         * python/examples/gconf-proxy-service2.py:
8231
8232         Alternate implementation of gconf-proxy-service using the
8233         nicer dbus.ObjectTree API.
8234         
8235         * python/examples/example-service.py:
8236         * python/tests/test-server.py
8237
8238         Reverse the argument order to deal with dbus.Object constructor
8239         changes.
8240         
8241 2004-05-30  Seth Nickell  <seth@gnome.org>
8242
8243         * python/examples/example-client.py:
8244         * python/examples/example-service.py:
8245
8246         Take it back. Lists seem to work but they're broken
8247         in the test suite. Make the base examples use
8248         lists (works fine).
8249
8250 2004-05-30  Seth Nickell  <seth@gnome.org>
8251
8252         * python/dbus_bindings.pyx.in:
8253         * python/tests/test-client.py:
8254
8255         Add some more tests and fix errors that crop up.
8256         Unfortunately, currently it seems like marshalling
8257         and unmarshalling of lists is completely broken :-(
8258
8259 2004-05-30  Seth Nickell  <seth@gnome.org>
8260
8261         * python/dbus_bindings.pyx.in:
8262
8263         Add support for ObjectPath type.
8264
8265         * python/dbus.py:
8266
8267         Refactor message handling code to a common function.
8268         
8269         * python/tests/test-client.py:
8270         * python/tests/test-server.py:
8271
8272         Add tests that check to make sure values of all types
8273         can be echoed from a service w/o mangling.
8274         
8275 2004-05-29  Seth Nickell  <seth@gnome.org>
8276
8277         * python/dbus.py:
8278
8279         Add ObjectTree class which allows implementation
8280         of trees of "virtual" objects. Basically the python
8281         wrapper for "register_fallback".
8282         
8283         * python/examples/Makefile.am
8284         * python/examples/gconf-proxy-client.py:
8285         * python/examples/gconf-proxy-service.py:
8286
8287         Implement a simple GConf proxy service that supports
8288         get/set on string and int GConf keys using the ObjectTree.
8289         
8290 2004-05-29  Seth Nickell  <seth@gnome.org>
8291
8292         * python/dbus.py:
8293         * python/examples/example-client.py:
8294         * python/examples/example-service.py:
8295         * python/examples/list-system-services.py:
8296
8297         Add SessionBus, SystemBus and ActivationBus classes
8298         so you don't need to know the special little BUS_TYPE
8299         flag.
8300         
8301 2004-05-29  Havoc Pennington  <hp@redhat.com>
8302
8303         * bus/config-parser.c (process_test_valid_subdir): temporarily
8304         stop testing config parser OOM handling, since expat has issues
8305         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8306
8307         * bus/dbus-daemon-1.1.in: change requested_reply to
8308         send_requested_reply/receive_requested_reply so we can send the
8309         replies, not just receive them.
8310
8311         * bus/config-parser.c: parse the new
8312         send_requested_reply/receive_requested_reply
8313
8314         * bus/policy.c (bus_client_policy_check_can_send): add
8315         requested_reply argument and use it
8316
8317         * bus/bus.c (bus_context_check_security_policy): pass through
8318         requested_reply status to message send check
8319
8320         * bus/system.conf.in: adapt to requested_reply change
8321         
8322 2004-05-28  Havoc Pennington  <hp@redhat.com>
8323
8324         * test/glib/test-service-glib.c (main): remove unused variable
8325
8326         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8327
8328         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8329         from the enum, no longer in use.
8330
8331         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8332         works right.
8333
8334         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8335         whether error_name passed in is a valid error name.
8336
8337 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8338
8339         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8340         OBJECT_PATH and OBJECT_PATH_ARRAY
8341
8342 2004-05-28  Seth Nickell  <seth@gnome.org>
8343
8344         * python/examples/Makefile.am:
8345
8346         Forget to add Makefile.am. Do not pass go.
8347
8348 2004-05-28  Michael Meeks  <michael@ximian.com>
8349
8350         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8351         fix no int64 case.
8352
8353         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8354
8355         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8356         (_dbus_message_iter_get_basic_type_array): impl.
8357         drastically simplify ~all relevant _get methods to use these.
8358         (_dbus_message_iter_append_basic_array),
8359         (dbus_message_iter_append_basic): impl
8360         drastically simplify ~all relevant _append methods to use these.
8361
8362         * dbus/dbus-message-builder.c (parse_basic_type) 
8363         (parse_basic_array, lookup_basic_type): impl.
8364         (_dbus_message_data_load): prune scads of duplicate /
8365         cut & paste coding.
8366
8367         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8368         (_dbus_demarshal_basic_type): implement,
8369         (demarshal_and_validate_len/arg): beef up debug.
8370         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8371
8372 2004-05-27  Seth Nickell  <seth@gnome.org>
8373
8374         * configure.in:
8375         * python/Makefile.am:
8376
8377         Include the example python apps in the tarball.
8378         
8379         * python/examples/list-system-services.py
8380
8381         Add a python new example that fetches the list of services
8382         from the system bus.
8383         
8384 2004-05-27  Seth Nickell  <seth@gnome.org>
8385
8386         * python/dbus.py:
8387         * python/dbus_bindings.pyx.in:
8388
8389         Fix failure to notify that a signal was not handled,
8390         resulted in hung functions.
8391         
8392 2004-05-25  Colin Walters  <walters@redhat.com>
8393
8394         * tools/dbus-monitor.c (main): Monitor all types of messages.
8395
8396 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8397
8398         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8399         which unregisters the object path and disposes the handler.
8400
8401 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8402  
8403         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8404          
8405         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8406         operands to && so we call dbus_message_iter_next () for the last
8407         argument also.
8408
8409 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8410
8411         * dbus/dbus-object-tree.c
8412         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8413         children even if the requested path isn't registered.
8414         (object_tree_test_iteration): test object_tree_list_registered.
8415
8416         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8417         it to 0.
8418         
8419 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8420
8421         * doc/TODO: Remove resolved items.
8422
8423         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8424         field.
8425         
8426         * bus/connection.c (bus_connections_expect_reply): Enforce the
8427         per-connection limit on pending replies.
8428         
8429         Patch from Jon Trowbridge <trow@ximian.com>:
8430  
8431         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8432         up a watch that triggers a config reload when one end of the pipe
8433         becomes readable.
8434         (signal_handler): Instead of doing the config reload in our SIGHUP
8435         handler, just write to the reload pipe and let the associated
8436         watch handle the reload when control returns to the main loop.
8437  
8438         * bus/driver.c (bus_driver_handle_reload_config): Added.
8439         Implements a ReloadConfig method for requesting a configuration
8440         file reload via the bus driver.
8441  
8442 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8443
8444         * HACKING: Updated release instructions concerning the wiki page.
8445
8446 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8447
8448         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8449         filter against auth->allowed_mechs; we only add allowed mechs in
8450         record_mechanisms().
8451  
8452         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8453         ALLOWED_MECHS to auth-script format so we can set the list of
8454         allowed mechanisms.
8455  
8456         * data/auth/client-out-of-mechanisms.auth-script: New test to
8457         check client disconnects when it is out of mechanisms to try.
8458  
8459         * dbus/dbus-auth.c (process_command): Remove check for lines
8460         longer that 1 MB; we only buffer up maximum 16 kB.
8461  
8462         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8463         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8464         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8465         assume there might be unused bytes.
8466  
8467         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8468         client-out-of-mechs, it is handled in process_reject(). Move check
8469         for max failures to send_rejected(), as it's a server-only thing.
8470
8471         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8472         send_auth(), send_data(), send_rejected(), send_error(),
8473         send_ok(), send_begin() and send_cancel().
8474
8475 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8476
8477         Remove base64 encoding, replace with hex encoding. Original patch
8478         from trow@ximian.com, added error handling.
8479
8480         * dbus/dbus-string.c (_dbus_string_base64_encode)
8481         (_dbus_string_base64_decode): Remove.
8482         (_dbus_string_hex_decode): Add end_return argument so we can
8483         distinguish between OOM and invalid hex encoding.
8484         (_dbus_string_test): Remove base64 tests and add test case for
8485         invalid hex.
8486
8487         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8488         Replace base64 with hex.
8489
8490         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8491         for invalid hex encoded data in auth protocol.
8492
8493 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8494
8495         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8496         leak.
8497
8498 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8499
8500         * mono/dbus-sharp.dll.config.in: Added for GAC
8501         * mono/dbus-sharp.snk: Added for GAC
8502         * mono/Assembly.cs.in: Added for GAC
8503         * mono/Makefile.am: Changes for GAC installation        
8504         * configure.in: Added refs for dbus-sharp.dll.config.in and
8505         Assembly.cs.in. More fixes for mono testing
8506         * mono/example/Makefile.am: Changed var to CSC
8507         * Makefile.am: Changed flag name to DBUS_USE_CSC
8508
8509 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8510
8511         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8512         * mono/doc/*: Added documentation framework
8513         * configure.in: Added monodoc check
8514         * README: Added description of mono configure flags
8515
8516 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8517
8518         * doc/dbus-specification.xml: Added a "Required" column to the 
8519         header fields table and changed the "zero or more" verbage in
8520         the above paragraph to read "The header must contain the required 
8521         named header fields and zero or more of the optional named header 
8522         fields".
8523         * test/data/invalid-messages/*.message: Added the required PATH 
8524         named header field to the tests so that they don't fail on 
8525         'Missing path field'
8526
8527 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8528
8529         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8530         the stack by implicitly defining variable and parameter types and
8531         removing the hack of defining C pointers as python objects and later
8532         casting them.
8533
8534 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8535
8536         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8537
8538 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8539
8540         * mono/DBusType/Dict.cs: Handle empty dicts
8541         * mono/DBusType/Array.cs: Handle empty arrays
8542         * mono/Arguments.cs: Handle empty arguments
8543
8544 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8545
8546         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8547         field
8548
8549 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8550
8551         * test/data/valid-messages/standard-*.message: Update message
8552         test scripts to new header field names.
8553
8554 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8555
8556         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8557         overflow to times_we_did_each_thing array which would chop off the
8558         first character of the failure_dir string. Increased the size of
8559         the array to 7 to reflect the number of random mutation functions
8560         we have.
8561
8562 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8563
8564         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8565         unix_server->watch here, it is unreffed in disconnect.
8566         (_dbus_server_new_for_tcp_socket): convert NULL host to
8567         "localhost" here so we don't append NULL to address.
8568         
8569         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8570         various addresses, including tcp with no explicit host.
8571
8572 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8573
8574         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8575         fix incorrect setting of .name_offset in the HeaderField (it was
8576         off by two bytes, positioned right after the name and typecode)
8577
8578         * bus/bus.c (bus_context_new, bus_context_unref): test before
8579         calling dbus_server_free_data_slot and _dbus_user_database_unref
8580         in case of an error.
8581
8582         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8583         by libdbus-gtool.
8584
8585 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8586
8587         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8588         _dbus_poll() instead of select().
8589
8590 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8591
8592         * bus/main.c (signal_handler): Reload the configuration files
8593         on SIGHUP.
8594         (main): Set up our SIGHUP handler.
8595
8596         * bus/bus.c (struct BusContext): Store the config file, user and
8597         fork flag in the BusContext.
8598         (process_config_first_time_only): Added.  Contains the code
8599         (previously in bus_context_new) for setting up the BusContext from
8600         the BusConfigParser that should only be run the first time the
8601         config files are read.
8602         (process_config_every_time): Added.  Contains the code (previously
8603         in bus_context_new) for setting up the BusContext from the
8604         BusConfigParser that should be run every time the config files are
8605         read.
8606         (load_config): Added.  Builds a BusConfigParser from the config
8607         files and passes the resulting structure off to
8608         process_config_first_time_only (assuming this is the first time)
8609         and process_config_every_time.
8610         (bus_context_new): All of the config-related code has been moved
8611         to process_config_first_time_only and process_config_every_time.
8612         Now this function just does the non-config-related initializations
8613         and calls load_config.
8614         (bus_context_reload_config): Added.
8615
8616 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8617
8618         * bus/driver.c (bus_driver_handle_get_service_owner):
8619         implement a GetServiceOwner method.
8620         * doc/dbus-specification.xml: document it.
8621         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8622         
8623         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8624         implement, using the bus GetServiceOwner method.
8625
8626         * test/glib/test-dbus-glib.c:
8627         use dbus_gproxy_new_for_service_owner so that we can receive the
8628         signal. 
8629
8630 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8631
8632         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8633         dbus/dbus-message.c, dbus/dbus-protocol.h
8634         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8635
8636         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8637         dbus/dbus-message.c, dbus/dbus-protocol.h
8638         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8639
8640         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8641         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8642         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8643
8644         * doc/dbus-specification.xml (Header Fields Table):
8645         s/SERVICE/DESTINATION
8646         s/SENDER_SERVICE/SENDER
8647
8648
8649 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8650
8651         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8652         a few seconds.
8653
8654 2004-04-13  Michael Meeks  <michael@ximian.com>
8655
8656         * glib/dbus-gobject.c (handle_introspect): split out
8657         (introspect_properties): this.
8658         (handle_introspect): implement this.
8659
8660         * test/glib/Makefile.am: use the absolute path so the bus
8661         daemon's chdir ("/") doesn't kill us dead.
8662
8663         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8664
8665 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8666
8667         * bus/config-parser.c (struct BusConfigParser): Added
8668         included_files field.
8669         (seen_include): Added.  Checks whether or not a file has already
8670         been included by any parent BusConfigParser.
8671         (bus_config_parser_new): Copy the parent's included_files.
8672         (include_file): Track which files have been included, and fail on
8673         circular inclusions.
8674         (process_test_valid_subdir): Changed printf to report if we are
8675         testing valid or invalid conf files.
8676         (all_are_equiv): Changed printf to be a bit clearer about
8677         what we are actually doing.
8678         (bus_config_parser_test): Test invalid configuration files.
8679
8680 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8681
8682         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8683         argument.  If non-null, the newly-constructed BusConfigParser will
8684         be initialized with the parent's BusLimits instead of the default
8685         values.
8686         (include_file): When including a config file, pass in
8687         the current parser as the parent and then copy the BusLimits
8688         from the included BusConfigParser pack to the current parser.
8689         (process_test_valid_subdir): Renamed from process_test_subdir.
8690         (process_test_equiv_subdir): Added.  Walks through a directory,
8691         descending into each subdirectory and loading the config files
8692         it finds there.  If any subdirectory contains two config files
8693         that don't produce identical BusConfigParser structs, fail.
8694         For now, the BusConfigParser's BusPolicies are not compared.
8695         (bus_config_parser_test): Call both process_test_valid_subdir and
8696         process_test_equiv_subdir.
8697
8698         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8699         argument and pass it along to the call to bus_config_parser_new.
8700         Also made a few small changes to allow this code to compile.
8701
8702         * bus/config-loader-expat.c (bus_config_load): Take a parent
8703         argument and pass it along to the call to bus_config_parser_new.
8704
8705         * bus/bus.c (bus_context_new): Load the config file
8706         with a NULL parent argument.
8707
8708 2004-03-29  Michael Meeks  <michael@ximian.com>
8709
8710         * glib/dbus-gobject.c (introspect_properties): split
8711         out, fix mangled 'while' flow control.
8712         (introspect_signals): implement.
8713         (handle_introspect): update.
8714
8715 2004-03-29  Michael Meeks  <michael@ximian.com>
8716
8717         * glib/dbus-gobject.c (set_object_property): split out / 
8718         re-work, use the property type, and not the message type(!)
8719         (get_object_property): ditto.
8720
8721         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8722         (dbus_gvalue_marshal): make this code re-usable, needed
8723         for signals too, also on both proxy and server side.
8724         Re-write for more efficiency / readability.
8725
8726 2004-03-29  Michael Meeks  <michael@ximian.com>
8727
8728         * dbus/dbus-message.c
8729         (dbus_message_new_error_printf): impl.
8730
8731         * dbus/dbus-connection.c
8732         (dbus_connection_unregister_object_path): fix warning.
8733
8734         * configure.in: fix no-mono-installed situation.
8735
8736 2004-03-27  Havoc Pennington  <hp@redhat.com>
8737
8738         Patch from Timo Teräs:
8739         
8740         * tools/dbus-send.c (main): if --print-reply, assume type is
8741         method call; support boolean type args
8742         
8743         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8744         bunch of memleak and logic bugs
8745         
8746 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8747
8748         * mono/Arguments.cs:
8749         * mono/Introspector.cs:
8750         * mono/Handler.cs:
8751         * mono/InterfaceProxy.cs:
8752         * mono/Message.cs
8753         * mono/ProxyBuilder.cs:
8754         * mono/Service.cs:
8755         Added InterfaceProxy class to avoid building proxies for every
8756         object.
8757
8758         * dbus-message.h:
8759         * dbus-message.c (dbus_message_append_args_valist)
8760         (dbus_message_iter_get_object_path)
8761         (dbus_message_iter_get_object_path_array)
8762         (dbus_message_iter_append_object_path)
8763         (dbus_message_iter_append_object_path_array):
8764         Added object_path iter functions to handle OBJECT_PATH arguments
8765         
8766 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8767
8768         First checkin of mono bindings.
8769         * configure.in:
8770         * Makefile.am:
8771         Build stuff for the bindings
8772         * dbus-sharp.pc.in: Added for pkgconfig
8773         
8774 2004-03-21  Havoc Pennington  <hp@redhat.com>
8775
8776         * test/test-service.c (main): remove debug spew
8777
8778 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8779
8780         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8781         arrays
8782
8783         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8784         (dbus_message_iter_init_array_iterator)
8785         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8786         indicate whether the iterator is empty
8787
8788         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8789         warnings
8790
8791 2004-03-19  Havoc Pennington  <hp@redhat.com>
8792
8793         * NEWS: 0.21 updates
8794
8795         * configure.in: 0.21
8796
8797         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8798         
8799         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8800         you don't need pyrex to make dist
8801
8802         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8803         sources; run moc
8804         
8805 2004-03-18  Richard Hult  <richard@imendio.com>
8806
8807         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8808         (dbus_message_set_auto_activation): Add doxygen docs.
8809
8810 2004-03-16  Richard Hult  <richard@imendio.com>
8811
8812         * bus/activation.c: (bus_activation_service_created),
8813         (bus_activation_send_pending_auto_activation_messages),
8814         (bus_activation_activate_service):
8815         * bus/activation.h:
8816         * bus/dispatch.c: (bus_dispatch),
8817         (check_nonexistent_service_auto_activation),
8818         (check_service_auto_activated),
8819         (check_segfault_service_auto_activation),
8820         (check_existent_service_auto_activation), (bus_dispatch_test):
8821         * bus/driver.c: (bus_driver_handle_activate_service):
8822         * bus/services.c: (bus_registry_acquire_service):
8823         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8824         (dbus_message_get_auto_activation):
8825         * dbus/dbus-message.h:
8826         * dbus/dbus-protocol.h: Implement auto-activation.
8827         
8828         * doc/dbus-specification.xml: Add auto-activation to the spec.
8829
8830 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8831
8832         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8833         fix a bug with CUSTOM types.
8834
8835         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8836         a unit test for this bug (used to fail).
8837
8838 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8839
8840         * bus/activation.c:
8841         (babysitter_watch_callback): notify all pending activations waiting for
8842           the same exec that the activation failed.
8843         (bus_activation_activate_service): shortcut the activation if we 
8844           already waiting for the same executable to start up.
8845
8846 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8847
8848         * bus/activation.c: 
8849         - Added service file reloading. 
8850           Each service files directory is kept in an hash table in 
8851           BusActivation and each BusActivationEntry knows what .service-file it
8852           was read from. So when you try to activate a service the bus will 
8853           check if it's been updated, removed or if new .service-files has 
8854           been installed.
8855         - Test code at the bottom for the service file reloading.
8856         * bus/test-main.c: (main):
8857         * bus/test.h:
8858         - added service reloading test.
8859         * dbus/dbus-sysdeps.c: 
8860         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
8861
8862 2004-03-08  Michael Meeks  <michael@ximian.com>
8863
8864         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
8865         bail immediately if disconnected, to avoid busy loop.
8866
8867         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
8868         cleanup cut/paste/inefficiency.
8869
8870 2004-03-01  David Zeuthen  <david@fubar.dk>
8871
8872         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
8873         bug where args were used twice. This bug resulted in a segfault
8874         on a Debian/PPC system when starting the messagebus daemon. Include
8875         dbus-sysdeps.h for DBUS_VA_COPY
8876
8877         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
8878
8879         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
8880         appropriate va_copy implementation. From GLib
8881         
8882 2004-02-24  Joe Shaw  <joe@ximian.com>
8883
8884         * bus/services.c (bus_registry_acquire_service): We need to pass
8885         in the service name to dbus_set_error() to prevent a crash.
8886
8887 2003-12-26  Anders Carlsson  <andersca@gnome.org>
8888
8889         * AUTHORS: Reveal my True identity.
8890
8891 2003-12-17  Mikael Hallendal  <micke@imendio.com>
8892
8893         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
8894         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
8895
8896 2003-12-13  Mikael Hallendal  <micke@imendio.com>
8897
8898         * doc/TODO: Added not about better error check of configuration files.
8899
8900 2003-12-02  Richard Hult  <richard@imendio.com>
8901
8902         * Update AFL version to 2.0 throughout the source files to reflect
8903         the update that was done a while ago.
8904
8905 2003-12-02  Richard Hult  <richard@imendio.com>
8906
8907         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
8908         wrote_dict_key to FALSE on the iter that the dict is appended to,
8909         just like when appending other types. Fixes a bug where a dict
8910         couldn't be put inside a dict.
8911         (dbus_message_iter_append_dict_key): Fix typo in warning message.
8912         (message_iter_test, _dbus_message_test): Add test case for dict
8913         inside dict.
8914
8915 2003-12-01  David Zeuthen  <david@fubar.dk>
8916
8917         * python/dbus.py: Add the actual message when calling the reciever
8918         of a signal such that parameters can be inspected. Add the method
8919         remove_signal_receiver
8920         
8921 2003-11-26  Mikael Hallendal  <micke@imendio.com>
8922
8923         * bus/*.[ch]:
8924         * dbus/*.[ch]:
8925         * glib/*.[ch]: Made ref functions return the pointer
8926
8927 2003-11-25  Zack Rusin  <zack@kde.org>
8928
8929         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
8930
8931         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
8932         wrappers,
8933
8934         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
8935         the Integrator and to better fit with the server,
8936
8937 2003-11-24  Zack Rusin  <zack@kde.org>
8938
8939         * qt/connection.h, qt/connection.cpp: removing initDbus method since
8940         the integrator handles it now
8941
8942         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
8943         since QTimer wasn't really meant to be used the way DBusTimeout is
8944
8945 2003-11-24  Zack Rusin  <zack@kde.org>
8946
8947         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
8948         Integrator class which integrates D-BUS with the Qt event loop,
8949
8950         * qt/connection.h, qt/connection.cpp: Move all the code which
8951         was dealing with D-BUS integration to the Integrator class,
8952         and start using Integrator,
8953
8954 2003-11-23  Zack Rusin  <zack@kde.org>
8955
8956         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
8957         wrapper
8958
8959         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
8960         switching namespaces to DBusQt, reworking the class,
8961
8962         * Makefile.cvs: switching dependencies so that it matches KDE 
8963         schematics,
8964         
8965         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
8966         the library
8967
8968 2003-11-19  Havoc Pennington  <hp@redhat.com>
8969
8970         * NEWS: update
8971
8972         * configure.in: bump version to 0.20
8973
8974         * configure.in (have_qt): add yet another place to look for qt
8975         (someone hand trolltech a .pc file...)
8976
8977 2003-11-01  Havoc Pennington  <hp@redhat.com>
8978
8979         * doc/dbus-specification.xml: add state machine docs on the auth
8980         protocol; just a first draft, I'm sure it's wrong.      
8981
8982 2003-10-28  David Zeuthen  <david@fubar.dk>
8983
8984         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
8985         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
8986         
8987 2003-10-28  Havoc Pennington  <hp@redhat.com>
8988
8989         * dbus/dbus-message.c (get_next_field): delete unused function
8990
8991 2003-10-28  Havoc Pennington  <hp@redhat.com>
8992
8993         * bus/expirelist.c (do_expiration_with_current_time): detect
8994         failure of the expire_func due to OOM
8995
8996         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
8997
8998         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
8999         NoReply error that's now created by the bus when the service exits
9000
9001 2003-10-28  Havoc Pennington  <hp@redhat.com>
9002
9003         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9004         tests for set_path, set_interface, set_member, etc.
9005
9006         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9007
9008         * dbus/dbus-message.c (set_string_field): always just delete and
9009         re-append the field; accept NULL for deletion
9010         (re_align_fields_recurse): reimplement
9011         
9012 2003-10-26  Havoc Pennington  <hp@redhat.com>
9013
9014         * dbus/dbus-connection.c: fix docs to properly describe the
9015         disconnected message
9016         (_dbus_connection_notify_disconnected): remove this function; 
9017         we can't synchronously add the disconnected message, we have to 
9018         do it after we've queued any remaining real messages
9019         (_dbus_connection_get_dispatch_status_unlocked): queue the
9020         disconnect message only if the transport has finished queueing all
9021         its real messages and is disconnected.
9022         (dbus_connection_disconnect): update the dispatch status here
9023
9024 2003-10-22  Havoc Pennington  <hp@redhat.com>
9025
9026         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9027
9028         * bus/connection.c (bus_transaction_send_from_driver): set the
9029         destination to the connection's base service
9030
9031 2003-10-20  Havoc Pennington  <hp@redhat.com>
9032
9033         hmm, make check is currently not passing.
9034         
9035         * doc/dbus-specification.xml: add requirement that custom type
9036         names follow the same rules as interface names.
9037
9038         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9039         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9040         'map'
9041
9042         * doc/dbus-specification.xml: update type codes to match
9043         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9044         CUSTOM. Add type OBJECT_PATH to the spec.
9045
9046 2003-10-17  Havoc Pennington  <hp@redhat.com>
9047
9048         * bus/driver.c (create_unique_client_name): use "." as separator
9049         in base service names instead of '-'
9050
9051         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9052         byte at the end of the string
9053
9054         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9055         optimization macros since string validation seems to be a slow
9056         point.
9057         
9058         * doc/dbus-specification.xml: restrict valid
9059         service/interface/member/error names. Add test suite code for the
9060         name validation.
9061
9062         * dbus/dbus-string.c: limit service/interface/member/error names 
9063         to [0-9][A-Z][a-z]_
9064
9065         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9066         format arg to verbose spew
9067
9068         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9069         memory, return instead of g_error
9070
9071         * test/test-service.c (path_message_func): support emitting a
9072         signal on request
9073
9074         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9075         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9076         assuming the activation bus was the session bus so that services
9077         started manually will still register.
9078         (init_connections_unlocked): fix so that in OOM situation we get
9079         the same semantics when retrying the function
9080         
9081         * test/test-service.c (main): change to use path registration, to
9082         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9083         than DBUS_BUS_SESSION
9084
9085 2003-10-16  Havoc Pennington  <hp@redhat.com>
9086
9087         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9088
9089         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9090         coverage of the tests
9091         (coverage-report.txt): don't move the .da and .bbg files around
9092
9093 2003-10-16  Havoc Pennington  <hp@redhat.com>
9094
9095         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9096         to put there
9097
9098 2003-10-16  Havoc Pennington  <hp@redhat.com>
9099
9100         * bus/connection.c (bus_pending_reply_expired): either cancel or
9101         execute, not both
9102         (bus_connections_check_reply): use unlink, not remove_link, as we
9103         don't want to free the link; fixes double free mess
9104
9105         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9106         where no reply was received
9107
9108         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9109         fix a refcount leak
9110
9111         * bus/signals.c (match_rule_matches): add special cases for the
9112         bus driver, so you can match on sender/destination for it.
9113
9114         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9115         DBUS_PRINT_BACKTRACE is set
9116
9117         * dbus/dbus-internals.c: add pid to assertion failure messages
9118
9119         * dbus/dbus-connection.c: add message type code to the debug spew
9120
9121         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9122         sender=foo not service=foo
9123
9124         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9125         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9126         DBUS_ACTIVATION_ADDRESS instead
9127
9128         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9129         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9130
9131         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9132         context struct
9133
9134         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9135         (dbus_message_iter_get_object_path_array): new function (half
9136         finished, disabled for the moment)
9137         
9138         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9139         DBUS_MESSAGE_TYPE_ERROR
9140
9141         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9142         avoid redirecting stderr to /dev/null
9143         (babysit): close stdin if not doing the "exit_with_session" thing
9144
9145         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9146         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9147         stdout/stdin, so things don't get confused
9148         
9149         * bus/system.conf.in: fix to allow replies, I modified .conf
9150         instead of .conf.in again.
9151
9152 2003-10-14  David Zeuthen  <david@fubar.dk>
9153
9154         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9155         argtype to arg_type when raising unknown arg type exception.
9156         Changed type list to reflect the changes in dbus-protocol.h so 
9157         the bindings actually work.
9158
9159 2003-10-14  Havoc Pennington  <hp@redhat.com>
9160
9161         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9162         to have a bug keeping it from outputting the .da files sometimes
9163         (string_get_string): don't append garbage nul bytes to the string.
9164
9165 2003-10-15  Seth Nickell  <seth@gnome.org>
9166
9167         * python/Makefile.am:
9168
9169         Include dbus_h_wrapper.h in the dist tarball.
9170
9171 2003-10-14  Havoc Pennington  <hp@redhat.com>
9172
9173         * bus/bus.c (bus_context_check_security_policy): revamp this to
9174         work more sanely with new policy-based requested reply setup
9175
9176         * bus/connection.c (bus_transaction_send_from_driver): set bus
9177         driver messages as no reply
9178
9179         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9180         requested_reply attribute on allow/deny rules
9181
9182         * bus/system.conf: add <allow requested_reply="true"/>
9183
9184         * bus/driver.c (bus_driver_handle_message): fix check for replies
9185         sent to the bus driver, which was backward. How did this ever work
9186         at all though? I think I'm missing something.
9187
9188         * dbus/dbus-message.c (decode_header_data): require error and
9189         method return messages to have a reply serial field to be valid
9190         (_dbus_message_loader_queue_messages): break up this function;
9191         validate that reply serial and plain serial are nonzero; 
9192         clean up the OOM/error handling.
9193         (get_uint_field): don't return -1 from this
9194         (dbus_message_create_header): fix signed/unsigned bug
9195
9196         * bus/connection.c (bus_connections_expect_reply): save serial of
9197         the incoming message, not reply serial
9198
9199 2003-10-14  Havoc Pennington  <hp@redhat.com>
9200
9201         * bus/connection.c: implement pending reply tracking using
9202         BusExpireList
9203
9204         * bus/bus.c (bus_context_check_security_policy): verify that a
9205         reply is pending in order to allow a reply to be sent. Deny 
9206         messages of unknown type.
9207
9208         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9209
9210         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9211         (bus_context_get_reply_timeout): new
9212
9213 2003-10-13  Seth Nickell  <seth@gnome.org>
9214
9215         * python/Makefile.am:
9216
9217         Pass "make distcheck": remove a couple files from DIST_FILES
9218         that weren't included in the final version.
9219
9220 2003-10-12  Havoc Pennington  <hp@pobox.com>
9221
9222         Added test code that 1) starts an actual bus daemon and 2) uses
9223         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9224         more testing possible, but this is the basic framework.
9225         
9226         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9227         empty proxy lists from the proxy list hash
9228
9229         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9230         couple of return_if_fail checks
9231
9232         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9233         to allocate, so everything is cleared to NULL as it should be.
9234
9235         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9236         source as data to dbus_connection_set_timeout_functions() as the 
9237         timeout functions expected
9238
9239         * test/glib/run-test.sh: add a little script to start up a message
9240         bus and run tests using it
9241
9242         * tools/dbus-launch.1: updates
9243
9244         * tools/dbus-launch.c (main): add --config-file option
9245
9246         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9247         that could never be reached.
9248
9249         * dbus/dbus-message.c (dbus_message_new_method_return) 
9250         (dbus_message_new_error, dbus_message_new_signal): set the
9251         no-reply-expected flag on all these. Redundant, but may
9252         as well be consistent.
9253
9254 2003-10-11  Havoc Pennington  <hp@pobox.com>
9255
9256         * test/decode-gcov.c (function_solve_graph): make broken block
9257         graph a nonfatal error since it seems to be broken. Need to debug
9258         this.
9259
9260         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9261         can't just check type > INVALID < LAST anymore
9262
9263         * dbus/dbus-message.c (dbus_message_get_signature): new function
9264         (dbus_message_has_signature): new function
9265         (struct DBusMessage): add signature field (right now it isn't sent
9266         over the wire, just generated on the fly)
9267         (dbus_message_copy): copy the signature, and init strings to
9268         proper length to avoid some reallocs
9269         (dbus_message_iter_init_array_iterator): return void, since it
9270         can't fail
9271         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9272         (_dbus_message_loader_queue_messages): add silly temporary hack to
9273         fill in message->signature on load
9274
9275         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9276         characters, so they are relatively human-readable.
9277
9278 2003-10-11  Havoc Pennington  <hp@pobox.com>
9279
9280         * dbus/dbus-message.c (_dbus_message_test): add more test
9281         coverage, but #if 0 for now since they uncover a bug 
9282         not fixed yet; I think in re_align_field_recurse()
9283         (re_align_field_recurse): add FIXME about broken assertion
9284
9285         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9286
9287         * bus/connection.c: share a couple code bits with expirelist.c
9288
9289         * bus/expirelist.h, bus/expirelist.c: implement a generic
9290         expire-items-after-N-seconds facility, was going to share between
9291         expiring connections and replies, decided not to use for expiring
9292         connections for now.
9293
9294         * COPYING: include AFL 2.0 (still need to change all the file headers)
9295
9296 2003-10-09  Havoc Pennington  <hp@redhat.com>
9297
9298         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9299         gcc 3.3. Not that we do anything about it yet.
9300
9301         * bus/signals.c (bus_match_rule_parse): impose max length on the
9302         match rule text
9303
9304         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9305
9306 2003-10-09  Havoc Pennington  <hp@redhat.com>
9307
9308         Make matching rules theoretically work (add parser).
9309         
9310         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9311         the case where destination is explicitly specified as bus driver
9312         and someone else is eavesdropping.
9313         
9314         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9315         definition of eavesdropping and assertion
9316
9317         * tools/dbus-send.c (main): use dbus_message_type_from_string
9318
9319         * bus/signals.c (bus_match_rule_parse): implement
9320
9321         * dbus/dbus-message.c (dbus_message_type_from_string): new
9322
9323         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9324
9325 2003-10-02  Havoc Pennington  <hp@pobox.com>
9326
9327         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9328         dbus_gproxy_oneway_call
9329
9330         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9331         (dbus_server_setup_with_g_main): fix to allow calling them more
9332         than once on the same args
9333         (dbus_bus_get_with_g_main): new function
9334
9335 2003-10-02  Havoc Pennington  <hp@redhat.com>
9336
9337         * doc/dbus-tutorial.xml: write some stuff
9338
9339 2003-09-29  Havoc Pennington  <hp@pobox.com>
9340
9341         * configure.in: split checks for Doxygen from XML docs, check for
9342         xmlto
9343
9344         * doc/Makefile.am: XML-ify all the docs, and add a blank
9345         dbus-tutorial.xml
9346
9347 2003-09-29  Havoc Pennington  <hp@pobox.com>
9348
9349         * Merge dbus-object-names branch. To see the entire patch 
9350         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9351         it's huuuuge though.
9352         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9353         
9354 2003-09-28  Havoc Pennington  <hp@pobox.com>
9355
9356         * HACKING: update to reflect new server
9357
9358 2003-09-26  Seth Nickell  <seth@gnome.org>
9359
9360         * python/dbus.py:
9361         * python/examples/example-signals.py:
9362
9363         Start implementing some notions of signals. The API
9364         is really terrible, but they sort of work (with the
9365         exception of being able to filter by service, and to
9366         transmit signals *as* a particular service). Need to
9367         figure out how to make messages come from the service
9368         we registered :-(
9369         
9370         * python/dbus_bindings.pyx.in:
9371
9372         Removed duplicate message_handler callbacks.
9373         
9374 2003-09-25  Havoc Pennington  <hp@redhat.com>
9375
9376         * bus/session.conf.in: fix my mess
9377
9378 2003-09-25  Havoc Pennington  <hp@pobox.com>
9379
9380         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9381
9382 2003-09-25  Seth Nickell  <seth@gnome.org>
9383
9384         * python/examples/example-service.py:
9385
9386         Johan notices complete wrong code in example-service, but
9387         completely wrong in a way that works exactly the same (!).
9388         Johan is confused, how could this possibly work? Example
9389         code fails to serve purpose of making things clear.
9390         Seth fixes.
9391
9392 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9393
9394         * doc/dbus-specification.sgml: don't require header fields
9395         to be 4-byte aligned and specify that fields should be
9396         distinguished from padding by the fact that zero is not
9397         a valid field name.
9398         
9399         * doc/TODO: remove re-alignment item and add item to doc
9400         the OBJECT_PATH type.
9401         
9402         * dbus/dbus-message.c:
9403         (HeaderField): rename the original member to value_offset
9404         and introduce a name_offset member to keep track of where
9405         the field actually begins.
9406         (adjust_field_offsets): remove.
9407         (append_int_field), (append_uint_field),
9408         (append_string_field): don't align the start of the header
9409         field to a 4-byte boundary.
9410         (get_next_field): impl finding the next marhsalled field
9411         after a given field.
9412         (re_align_field_recurse): impl re-aligning a number of
9413         already marshalled fields.
9414         (delete_field): impl deleting a field of any type and
9415         re-aligning any following fields.
9416         (delete_int_or_uint_field), (delete_string_field): remove.
9417         (set_int_field), (set_uint_field): no need to re-check
9418         that we have the correct type for the field.
9419         (set_string_field): ditto and impl re-aligning any
9420         following fields.
9421         (decode_header_data): update to take into account that
9422         the fields aren't 4-byte aligned any more and the new
9423         way to distinguish padding from header fields. Also,
9424         don't exit when there is too much header padding.
9425         (process_test_subdir): print the directory.
9426         (_dbus_message_test): add test to make sure a following
9427         field is re-aligned correctly after field deletion.
9428         
9429         * dbus/dbus-string.[ch]:
9430         (_dbus_string_insert_bytes): rename from insert_byte and
9431         allow the insert of multiple bytes.
9432         (_dbus_string_test): test inserting multiple bytes.
9433
9434         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9435         warning note to docs about having to re-align any
9436         marshalled values following the string.
9437         
9438         * dbus/dbus-message-builder.c:
9439         (append_string_field), (_dbus_message_data_load):
9440         don't align the header field.
9441         
9442         * dbus/dbus-auth.c: (process_test_subdir): print the
9443         directory.
9444         
9445         * test/break-loader.c: (randomly_add_one_byte): upd. for
9446         insert_byte change.
9447         
9448         * test/data/invalid-messages/bad-header-field-alignment.message:
9449         new test case.
9450         
9451         * test/data/valid-messages/unknown-header-field.message: shove
9452         a dict in the unknown field.
9453
9454 2003-09-25  Seth Nickell  <seth@gnome.org>
9455
9456         * python/dbus.py:
9457         * python/dbus_bindings.pyx.in:
9458
9459         Handle return values.
9460         
9461         * python/examples/example-client.py:
9462         * python/examples/example-service.py:
9463
9464         Pass back return values from the service to the client.
9465         
9466 2003-09-24  Seth Nickell  <seth@gnome.org>
9467
9468         * python/dbus.py:
9469
9470         Connect Object methods (when you are sharing an object) up... pass
9471         in a list of methods to be shared. Sharing all the methods just
9472         worked out too weird. You can now create nice Services over the
9473         DBus in Python. :-)
9474         
9475         * python/dbus_bindings.pyx.in:
9476
9477         Keep references to user_data tuples passed into C functions so 
9478         Python doesn't garbage collect on us.
9479
9480         Implement MethodReturn and Error subclasses of Message for creating
9481         DBusMessage's of those types.
9482         
9483         * python/examples/example-client.py:
9484         * python/examples/example-service.py:
9485
9486         Simple example code showing both how create DBus services and objects,
9487         and how to use them.
9488
9489 2003-09-23  Havoc Pennington  <hp@pobox.com>
9490
9491         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9492
9493 2003-09-23  Havoc Pennington  <hp@redhat.com>
9494
9495         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9496         (dbus_gproxy_disconnect_signal): implement
9497         (dbus_gproxy_manager_remove_signal_match): implement
9498         (dbus_gproxy_manager_add_signal_match): implement
9499         (dbus_gproxy_oneway_call): implement
9500
9501 2003-09-23  Havoc Pennington  <hp@pobox.com>
9502
9503         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9504         subclass. This means dropping the transparent thread safety of the
9505         proxy; you now need a separate proxy per-thread, or your own
9506         locking on the proxy. Probably right anyway.
9507         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9508
9509 2003-09-22  Havoc Pennington  <hp@redhat.com>
9510
9511         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9512
9513 2003-09-21  Seth Nickell  <seth@gnome.org>
9514
9515         First checkin of the Python bindings.
9516         
9517         * python/.cvsignore:
9518         * python/Makefile.am:
9519         * python/dbus_bindings.pyx.in:
9520         * python/dbus_h_wrapper.h:
9521
9522         Pieces for Pyrex to operate on, building a dbus_bindings.so
9523         python module for low-level access to the DBus APIs.
9524         
9525         * python/dbus.py:
9526
9527         High-level Python module for accessing DBus objects.
9528
9529         * configure.in:
9530         * Makefile.am:
9531
9532         Build stuff for the python bindings.
9533
9534         * acinclude.m4:
9535
9536         Extra macro needed for finding the Python C header files.
9537
9538 2003-09-21  Havoc Pennington  <hp@pobox.com>
9539
9540         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9541         implementing the proxy manager, didn't get very far.
9542
9543         * dbus/dbus-bus.c (dbus_bus_add_match): new
9544         (dbus_bus_remove_match): new
9545
9546         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9547         path_name argument; adjust the other not-yet-implemented 
9548         gproxy constructors to be what I think they should be.
9549
9550 2003-09-21  Havoc Pennington  <hp@pobox.com>
9551
9552         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9553         by default for message bus connections.
9554
9555         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9556         exit_on_disconnect flag is set and we process the disconnected
9557         signal.
9558         (dbus_connection_set_exit_on_disconnect): new function
9559
9560 2003-09-21  Havoc Pennington  <hp@pobox.com>
9561
9562         Get matching rules mostly working in the bus; only actually
9563         parsing the rule text remains. However, the client side of
9564         "signal connections" hasn't been started, this patch is only the
9565         bus side.
9566         
9567         * dbus/dispatch.c: fix for the matching rules changes
9568         
9569         * bus/driver.c (bus_driver_handle_remove_match)
9570         (bus_driver_handle_add_match): send an ack reply from these
9571         method calls
9572
9573         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9574         arguments, reported by Seth Nickell
9575
9576         * bus/config-parser.c (append_rule_from_element): support
9577         eavesdrop=true|false attribute on policies so match rules 
9578         can be prevented from snooping on the system bus.
9579
9580         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9581         and "destination" in attribute names; fix some docs bugs; 
9582         add eavesdrop=true|false attribute
9583
9584         * bus/driver.c (bus_driver_handle_add_match)
9585         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9586         messages
9587
9588         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9589         rid of broadcast service concept, signals are just always broadcast
9590
9591         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9592         mostly implement matching rules stuff (currently only exposed as signal
9593         connections)
9594
9595 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9596
9597         * doc/dbus-specification.sgml: Change the header field name
9598         to be an enum and update the rest of the spec to reference
9599         the fields using the conventinal name.
9600
9601         * dbus/dbus-protocol.h: update to reflect the spec.
9602
9603         * doc/TODO: add item to remove the 4 byte alignment requirement.
9604         
9605         * dbus/dbus-message.c: Remove the code to generalise the
9606         header/body length and serial number header fields as named
9607         header fields so we can reference field names using the 
9608         protocol values.
9609         (append_int_field), (append_uint_field), (append_string_field):
9610         Append the field name as a byte rather than four chars.
9611         (delete_int_or_uint_field), (delete_string_field): reflect the
9612         fact that the field name and typecode now occupy 4 bytes instead
9613         of 8.
9614         (decode_string_field), (decode_header_data): update to reflect
9615         protocol changes and move the field specific encoding from
9616         decode_string_field() back into decode_header_data().
9617         
9618         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9619         Add utility to aid debugging.
9620         
9621         * dbus/dbus-message-builder.c:
9622         (append_string_field), (_dbus_message_data_load): Update to
9623         reflect protocol changes; Change the FIELD_NAME directive
9624         to HEADER_FIELD and allow it to take the field's conventional
9625         name rather than the actual value.
9626         
9627         * test/data/*/*.message: Update to use HEADER_FIELD instead
9628         of FIELD_NAME; Always align the header on an 8 byte boundary
9629         *before* updating the header length.
9630
9631 2003-09-15  Havoc Pennington  <hp@pobox.com>
9632
9633         * dbus/dbus-pending-call.c: add the get/set object data
9634         boilerplate as for DBusConnection, etc. Use generic object data
9635         for the notify callback.
9636
9637         * glib/dbus-gparser.c (parse_node): parse child nodes
9638
9639         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9640         
9641         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9642         contain functions shared between the convenience lib and the
9643         installed lib
9644
9645         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9646         -export-symbols-regex to the GLib library
9647
9648         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9649         fix the locking in here, and add a default handler for
9650         Introspect() that just returns sub-nodes.
9651
9652 2003-09-14  Havoc Pennington  <hp@pobox.com>
9653
9654         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9655         rather than gfoo consistent
9656
9657         * glib/dbus-gproxy.h: delete for now, move contents to
9658         dbus-glib.h, because the include files don't work right since we
9659         aren't in the dbus/ subdir.
9660         
9661         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9662         (dbus_gproxy_end_call): finish
9663         (dbus_gproxy_begin_call): finish
9664
9665         * glib/dbus-gmain.c (dbus_set_g_error): new
9666
9667         * glib/dbus-gobject.c (handle_introspect): include information
9668         about child nodes in the introspection
9669
9670         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9671         function to help in implementation of introspection
9672
9673         * dbus/dbus-object-tree.c
9674         (_dbus_object_tree_list_registered_and_unlock): new function
9675
9676 2003-09-12  Havoc Pennington  <hp@pobox.com>
9677
9678         * glib/dbus-gidl.h: add common base class for all the foo_info
9679         types
9680
9681         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9682         similar to kdcop
9683
9684         * test/Makefile.am: try test srcdir -ef . in addition to test
9685         srcdir = ., one of them should work (yeah lame)
9686         
9687         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9688         library
9689         
9690         * glib/dbus-gparser.h: make description_load routines return
9691         NodeInfo* not Parser*
9692
9693         * Makefile.am (SUBDIRS): build test dir after all library dirs
9694
9695         * configure.in: add GTK+ detection
9696
9697 2003-09-07  Havoc Pennington  <hp@pobox.com>
9698
9699         * Make Doxygen contented.
9700
9701 2003-09-07  Havoc Pennington  <hp@pobox.com>
9702
9703         * doc/dbus-specification.sgml: more updates
9704
9705 2003-09-06  Havoc Pennington  <hp@pobox.com>
9706
9707         * doc/dbus-specification.sgml: partial updates
9708
9709         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9710         zillionth time; hopefully I edited the right file this time.
9711
9712         * bus/config-parser.c (append_rule_from_element): support
9713         send_type, send_path, receive_type, receive_path
9714
9715         * bus/policy.c: add message type and path to the list of things
9716         that can be "firewalled"
9717
9718 2003-09-06  Havoc Pennington  <hp@pobox.com>
9719
9720         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9721         (dbus_connection_register_object_path): make this not handle
9722         messages to paths below the given path
9723
9724 2003-09-03  Havoc Pennington  <hp@pobox.com>
9725
9726         * test/glib/Makefile.am: add this with random glib-linked test
9727         programs
9728
9729         * glib/Makefile.am: remove the random test programs from here,
9730         leave only the unit tests
9731
9732         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9733         uscore/javacaps conversion, and fix     
9734         (get_object_property, set_object_property): change to .NET
9735         convention for mapping props to methods, set_FooBar/get_FooBar, 
9736         since one language has such a convention we may as well copy it. 
9737         Plus real methods in either getFooBar or get_foo_bar style won't 
9738         collide with this convention.
9739
9740 2003-09-01  Havoc Pennington  <hp@pobox.com>
9741
9742         * glib/dbus-gparser.c: implement
9743
9744         * glib/dbus-gobject.c: start implementing skeletons support
9745
9746         * configure.in: when disabling checks/assert, also define
9747         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9748
9749 2003-09-01  Havoc Pennington  <hp@pobox.com>
9750
9751         * glib/Makefile.am: rearrange a bunch of files and get "make
9752         check" framework set up
9753
9754 2003-08-31  Havoc Pennington  <hp@pobox.com>
9755
9756         * fix build with --disable-tests
9757
9758 2003-08-30  Havoc Pennington  <hp@pobox.com>
9759
9760         * dbus/dbus-connection.c: purge DBusMessageHandler
9761
9762         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9763         use callbacks everywhere
9764
9765 2003-08-30  Havoc Pennington  <hp@pobox.com>
9766
9767         * test/data/valid-config-files/system.d/test.conf: change to 
9768         root for the user so warnings don't get printed
9769
9770         * dbus/dbus-message.c: add dbus_message_get_path,
9771         dbus_message_set_path
9772         
9773         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9774         dispatching to a path
9775
9776         * dbus/dbus-string.c (_dbus_string_validate_path): add
9777
9778         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9779         (_dbus_marshal_object_path): implement
9780
9781         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9782         to contain the path to the target object
9783         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9784         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9785
9786 2003-08-30  Havoc Pennington  <hp@pobox.com>
9787
9788         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9789
9790 2003-08-29  Havoc Pennington  <hp@pobox.com>
9791
9792         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9793         registered
9794         (struct DBusObjectSubtree): shrink this
9795         a lot, since we may have a lot of them
9796         (_dbus_object_tree_free_all_unlocked): implement
9797         (_dbus_object_tree_dispatch_and_unlock): implement
9798
9799 2003-08-29  Havoc Pennington  <hp@pobox.com>
9800
9801         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9802
9803 2003-08-28  Havoc Pennington  <hp@pobox.com>
9804
9805         purge DBusObjectID
9806         
9807         * dbus/dbus-connection.c: port to no ObjectID, create a
9808         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9809
9810         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9811         everything except UnregisterFunction and MessageFunction
9812         
9813         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9814         add DBUS_TYPE_OBJECT_PATH
9815         
9816         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9817         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9818         path-based object IDs
9819
9820 2003-08-25  Havoc Pennington  <hp@pobox.com>
9821
9822         Just noticed that dbus_message_test is hosed, I wonder when I
9823         broke that. I thought make check was passing earlier...
9824         
9825         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9826         container tree, will replace most of dbus-object-registry
9827
9828         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9829         screwup
9830
9831 2003-08-19  Havoc Pennington  <hp@pobox.com>
9832
9833         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9834         (dbus_message_is_error): fix this function
9835
9836         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9837         match
9838
9839         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9840         reflect clarified man page
9841         (bus_client_policy_check_can_send): ditto
9842         
9843         * bus/session.conf.in: fixup
9844
9845         * bus/system.conf.in: fixup
9846
9847 2003-08-18  Havoc Pennington  <hp@redhat.com>
9848
9849         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
9850
9851         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9852         dumb bug created earlier (wrong order of args to
9853         decode_header_data())
9854         
9855         * tools/dbus-send.c: port
9856
9857         * tools/dbus-print-message.c (print_message): port
9858
9859         * test/data/*messages: port all messages over
9860         
9861         * dbus/dbus-message-builder.c: support including 
9862         message type
9863         
9864         * bus/driver.c: port over
9865         
9866         * bus/dispatch.c: port over to new stuff
9867
9868         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9869         rename disconnect signal to "Disconnected"
9870
9871 2003-08-17  Havoc Pennington  <hp@pobox.com>
9872
9873         This doesn't compile yet, but syncing up so I can hack on it from
9874         work. What are branches for if not broken code? ;-)
9875         
9876         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
9877         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
9878         DBUS_HEADER_FIELD_ERROR_NAME
9879         
9880         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
9881         for the interface+member pairs
9882         (string_hash): change to use g_str_hash algorithm
9883         (find_direct_function, find_string_function): refactor these to
9884         share most code.
9885         
9886         * dbus/dbus-message.c: port all of this over to support 
9887         interface/member fields instead of name field
9888
9889         * dbus/dbus-object-registry.c: port over
9890         
9891         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
9892         from _dbus_string_validate_name
9893
9894         * bus/dbus-daemon-1.1: change file format for the 
9895         <deny>/<allow> stuff to match new message naming scheme
9896
9897         * bus/policy.c: port over
9898
9899         * bus/config-parser.c: parse new format
9900         
9901 2003-08-16  Havoc Pennington  <hp@pobox.com>
9902
9903         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
9904         broken assertion
9905
9906         * glib/dbus-gproxy.c: some hacking
9907
9908 2003-08-15  Havoc Pennington  <hp@redhat.com>
9909
9910         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
9911
9912         * dbus/dbus-connection.c
9913         (dbus_connection_send_with_reply_and_block): factor out internals;
9914         change to convert any error replies to DBusError instead of 
9915         returning them as a message
9916
9917 2003-08-15  Havoc Pennington  <hp@pobox.com>
9918
9919         * dbus/dbus-connection.c, 
9920         dbus/dbus-pending-call.c: Finish the pending call stuff
9921
9922 2003-08-14  Havoc Pennington  <hp@redhat.com>
9923
9924         * dbus/dbus-pending-call.c: start on new object that will replace
9925         DBusMessageHandler and ReplyHandlerData for tracking outstanding
9926         replies
9927
9928         * dbus/dbus-gproxy.c: start on proxy object used to communicate
9929         with remote interfaces
9930
9931         * dbus/dbus-gidl.c: do the boring boilerplate in here
9932         
9933 2003-08-12  Havoc Pennington  <hp@pobox.com>
9934
9935         * bus/dispatch.c (bus_dispatch): make this return proper 
9936         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
9937
9938         * dbus/dbus-errors.c (dbus_set_error): use
9939         _dbus_string_append_printf_valist
9940
9941         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
9942         (_dbus_string_append_printf): new
9943
9944         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
9945         UNKNOWN_METHOD
9946
9947         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
9948         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
9949         message is unhandled.
9950
9951 2003-08-11  Havoc Pennington  <hp@pobox.com>
9952
9953         * bus/test.c (client_disconnect_handler): change to return
9954         HANDLED (would have been REMOVE_MESSAGE)
9955
9956         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
9957         HANDLED/NOT_YET_HANDLED instead of
9958         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
9959         should be used.
9960
9961 2003-08-10  Havoc Pennington  <hp@pobox.com>
9962
9963         * tools/dbus-send.c (main): add --type argument, for now
9964         supporting only method_call and signal types.
9965
9966         * tools/dbus-print-message.c: print message type
9967
9968         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9969         init connection->objects
9970
9971         * doc/dbus-specification.sgml: fix sgml
9972
9973         * bus/*.c: port over to object-instance API changes
9974
9975         * test/test-service.c: ditto
9976         
9977         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
9978         name, we will have to fix up the rest of the code to also handle
9979         this
9980         (dbus_message_new): generic message-creation call
9981         (set_string_field): allow appending name field
9982
9983 2003-08-06  Havoc Pennington  <hp@pobox.com>
9984
9985         * dbus/dbus-object-registry.c: implement signal connection 
9986         and dispatch
9987
9988         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
9989
9990         * dbus/dbus-internals.c (_dbus_memdup): new function
9991
9992 2003-08-02  Havoc Pennington  <hp@pobox.com>
9993
9994         * dbus/dbus-message.c (dbus_message_get_no_reply)
9995         (dbus_message_set_no_reply): add these and remove
9996         set_is_error/get_is_error
9997
9998         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
9999         remove the ERROR flag, since there's now an ERROR type
10000
10001 2003-08-01  Havoc Pennington  <hp@pobox.com>
10002
10003         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10004         implement
10005
10006         * dbus/dbus-message.c (dbus_message_get_type): new function
10007
10008         * doc/dbus-specification.sgml: add "type" byte to messages
10009
10010 2003-08-01  Havoc Pennington  <hp@pobox.com>
10011
10012         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10013         a message type enum to distinguish kinds of message
10014         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10015         that need not be replied to
10016
10017 2003-08-01  Havoc Pennington  <hp@pobox.com>
10018
10019         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10020         (unpack_8_octets): fix no-64-bit-int bug
10021
10022         * dbus/dbus-object-registry.c (validate_id): validate the 
10023         connection ID bits, not just the instance ID.
10024
10025         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10026         the connection-global 33 bits of the object ID
10027
10028         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10029         object ID in the new way
10030
10031         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10032         define server/client/instance bits.
10033
10034 2003-07-30  Havoc Pennington  <hp@pobox.com>
10035
10036         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10037         build
10038
10039 2003-07-13  Havoc Pennington  <hp@pobox.com>
10040
10041         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10042         fields to DBusObjectVTable and DBusObjectInfo
10043
10044 2003-07-12  Havoc Pennington  <hp@pobox.com>
10045
10046         * dbus/dbus-object-registry.c: implement unit test,
10047         fix bugs discovered in process
10048
10049         * dbus/dbus-connection.c: remove handler_table and
10050         register_handler(), add DBusObjectRegistry usage
10051
10052         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10053         (dbus_object_id_set_null): new functions
10054
10055 2003-07-08  Havoc Pennington  <hp@pobox.com>
10056
10057         * dbus/dbus-object.c: implement some of this
10058
10059         * dbus/dbus-object-registry.c
10060         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10061         param
10062         (_dbus_object_registry_new): handle OOM
10063
10064 2003-07-08  Havoc Pennington  <hp@pobox.com>
10065
10066         * dbus/dbus-object.h: sketch out an API for registering objects
10067         with a connection, that allows us to use as little as 24 bytes
10068         per object and lets application code represent an object in 
10069         any conceivable way.
10070
10071         * dbus/dbus-object-registry.c: implement the hard bits of the
10072         DBusConnection aspect of object API. Not yet wired up.
10073         
10074 2003-07-06  Havoc Pennington  <hp@pobox.com>
10075
10076         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10077         (_dbus_marshal_object_id): new
10078         (_dbus_demarshal_object_id): new
10079         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10080         consolidate identical switch cases. Don't conditionalize handling
10081         of DBUS_TYPE_UINT64, need to handle the type always.
10082         (_dbus_marshal_validate_arg): consolidate identical cases, and
10083         handle DBUS_TYPE_OBJECT_ID
10084
10085         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10086
10087         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10088
10089 2003-09-28  Havoc Pennington  <hp@pobox.com>
10090
10091         * real 0.13 release
10092
10093 2003-09-28  Havoc Pennington  <hp@pobox.com>
10094
10095         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10096         to work with Debian db2html
10097
10098 2003-09-28  Havoc Pennington  <hp@pobox.com>
10099
10100         * configure.in: 0.13
10101
10102         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10103         stylesheet-images for benefit of Debian
10104         
10105         Change back to using filesystem-linked sockets for the system
10106         bus, so only root can create the default system bus address.
10107         
10108         * bus/system.conf.in: change to use
10109         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10110
10111         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10112         from here.
10113
10114         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10115         here, and AC_DEFINE DBUS_SYSTEM_PATH
10116
10117 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10118
10119         * doc/TODO:
10120         * doc/busconfig.dtd:
10121         Add busconfig DTD.
10122         
10123 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10124
10125         * doc/dbus-specification.sgml:
10126         Add activation reply values.
10127         
10128 2003-08-05  Havoc Pennington  <hp@redhat.com>
10129
10130         * configure.in: 0.12
10131
10132 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10133
10134         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10135         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10136         (add_watch), (remove_watch), (create_source):
10137         Refcount fds, fixes some reentrancy issues.
10138         
10139 2003-07-30  Havoc Pennington  <hp@redhat.com>
10140
10141         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10142         bus address to be abstract if we have abstract sockets
10143
10144         * NEWS: update
10145
10146 2003-07-28  Havoc Pennington  <hp@redhat.com>
10147
10148         * bus/messagebus.in: fix to avoid processname/servicename 
10149         confusion, from Michael Kearey
10150         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10151         
10152 2003-07-23  Havoc Pennington  <hp@pobox.com>
10153
10154         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10155         fix from Andy Hanton to remove broken "+1"
10156
10157 2003-07-16  Havoc Pennington  <hp@pobox.com>
10158
10159         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10160         babysitter process, as suggested by Thomas Leonard, so 
10161         an "eval `dbus-launch --exit-with-session`" will actually 
10162         return
10163
10164 2003-07-16  Havoc Pennington  <hp@pobox.com>
10165
10166         * configure.in: print out EXPANDED_* variables in the summary at
10167         the end; clean up the code that computes EXPANDED_ variables and
10168         get the ones using exec_prefix right. Should make things work
10169         when you build without --prefix
10170
10171 2003-06-29  Havoc Pennington  <hp@pobox.com>
10172
10173         * mono/Test.cs (class Test): fire up a main loop and run it
10174
10175         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10176         done once, the app has to do it
10177
10178 2003-06-26  Havoc Pennington  <hp@pobox.com>
10179
10180         * mono/Connection.cs: set up connection with the glib main loop
10181
10182 2003-07-01  Havoc Pennington  <hp@redhat.com>
10183
10184         * doc/dbus-specification.sgml: clarify the format of a type code,
10185         change suggested by Jim Blandy
10186
10187 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10188
10189         * doc/Makefile.am:
10190         * tools/Makefile.am: Don't assume srcdir == builddir.
10191
10192         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10193         the allocated block.
10194         (_dbus_memory_test): New function.
10195         * dbus/dbus-test.h: Add _dbus_memory_test ().
10196         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10197
10198         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10199         of %c%c%c%c.
10200         (dbus_message_new): Remove obsolete @todo.
10201
10202         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10203         (_dbus_marshal_set_uint64): Fix comment.
10204
10205         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10206         hardcode FIELD_REPLY_SERIAL.
10207
10208         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10209         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10210
10211         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10212         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10213
10214 2003-06-24  Havoc Pennington  <hp@pobox.com>
10215
10216         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10217
10218 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10219
10220         * configure.in:
10221         * gcj/.cvsignore:
10222         * gcj/Hello.java:
10223         * gcj/Makefile.am:
10224         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10225         * gcj/org/.cvsignore:
10226         * gcj/org/Makefile.am:
10227         * gcj/org/freedesktop/.cvsignore:
10228         * gcj/org/freedesktop/Makefile.am:
10229         * gcj/org/freedesktop/dbus/.cvsignore:
10230         * gcj/org/freedesktop/dbus/Makefile.am:
10231         * gcj/org/freedesktop/dbus/Message.java: (Message),
10232         (Message.Message):
10233         * gcj/org/freedesktop/dbus/natMessage.cc:
10234         Fix the build system.
10235
10236 2003-06-22  Havoc Pennington  <hp@pobox.com>
10237
10238         * mono/Connection.cs: add more bindings
10239
10240         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10241         more than once.
10242
10243 2003-06-22  Havoc Pennington  <hp@pobox.com>
10244
10245         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10246         Start wrapping more stuff.
10247
10248 2003-06-22  Havoc Pennington  <hp@pobox.com>
10249
10250         * mono/Message.cs: implement Message.Wrap() that ensures we only
10251         have a single C# wrapper per DBusMessage, assuming it works which
10252         it probably doesn't.
10253
10254         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10255         (dbus_message_free_data_slot): new
10256         (dbus_message_set_data): new
10257         (dbus_message_get_data): new
10258
10259 2003-06-22  Havoc Pennington  <hp@pobox.com>
10260
10261         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10262         (_dbus_data_slot_allocator_alloc): rework these to keep a
10263         reference count on each slot and automatically manage a global
10264         slot ID variable passed in by address
10265
10266         * bus/bus.c: convert to new dataslot API
10267
10268         * dbus/dbus-bus.c: convert to new dataslot API
10269
10270         * dbus/dbus-connection.c: convert to new dataslot API
10271
10272         * dbus/dbus-server.c: convert to new dataslot API
10273
10274         * glib/dbus-gmain.c: ditto
10275
10276         * bus/test.c: ditto
10277
10278         * bus/connection.c: ditto
10279
10280 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10281
10282         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10283         after the gcj checks so that the correct configuration tags
10284         will be added to libtool.
10285
10286         * dbus-glib-1.pc.in: No need to specify any includes since
10287         dbus-1.pc.in has those.
10288
10289 2003-06-22  Havoc Pennington  <hp@pobox.com>
10290
10291         * mono/*, gcj/*, configure.in, Makefile.am:
10292         Check in makefiles and subdirs for mono and gcj bindings.
10293         Neither binding actually exists, just trying to get through
10294         all the build and other boring bits.
10295
10296 2003-06-21  Philip Blundell  <philb@gnu.org>
10297
10298         * tools/dbus-monitor.1: Updated.
10299
10300         * tools/dbus-send.1: Likewise.
10301
10302 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10303
10304         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10305         for hangup and error after checking read so we won't discard
10306         pending data if both hangup and read are set.
10307
10308 2003-06-19  Philip Blundell  <philb@gnu.org>
10309
10310         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10311
10312         * tools/dbus-send.c: Accept both --system and --session.
10313
10314         * tools/dbus-monitor.c: Same here.
10315
10316 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10317
10318         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10319         from C++ (Patch by Miloslav Trmac).
10320
10321 2003-06-15  Joe Shaw  <joe@assbarn.com>
10322
10323         * configure.in: Check for socklen_t.
10324
10325         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10326
10327         * test/test-segfault.c: Add #include <sys/time.h>
10328
10329         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10330         dbus-launch needs it.
10331
10332 2003-06-09  Havoc Pennington  <hp@redhat.com>
10333
10334         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10335         SUN_LEN, it breaks abstract socket usage
10336
10337         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10338         starts of lines.
10339
10340 2003-06-04  Havoc Pennington  <hp@pobox.com>
10341
10342         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10343         using unix:abstract=/foo, and when listening in a tmpdir
10344         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10345
10346         * dbus/dbus-transport.c (_dbus_transport_open): support
10347         unix:abstract=/foo
10348
10349         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10350         support abstract sockets
10351
10352         * dbus/dbus-transport-unix.c
10353         (_dbus_transport_new_for_domain_socket): support abstract sockets
10354
10355         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10356         toggle as an argument, implement abstract namespace support
10357         (_dbus_listen_unix_socket): ditto
10358
10359         * configure.in: add --enable-abstract-sockets and implement
10360         a configure check for autodetection of the right value.
10361
10362 2003-06-01  Havoc Pennington  <hp@pobox.com>
10363
10364         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10365         in /tmp (though on Linux this will end up being useless,
10366         when we add abstract namespace support)
10367
10368         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10369         subst'ing it
10370
10371 2003-05-28  Colin Walters  <walters@verbum.org>
10372
10373         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10374
10375 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10376
10377         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10378
10379 2003-05-17  Colin Walters  <walters@gnu.org>
10380
10381         * tools/dbus-send.c: Don't exit with an error code if --help was
10382         passed.  Default to using the session bus instead of the system
10383         one.
10384
10385         * tools/dbus-launch.c: Ditto.
10386
10387         * tools/dbus-monitor.c: Ditto.
10388
10389         * tools/dbus-send.1: Update with new arguments.
10390
10391         * tools/dbus-launch.c: Emit code to export variables.  New
10392         arguments -s and -c to specify shell syntax, and a bit of code to
10393         autodetect syntax.  Also, allow specifying a program to run.
10394
10395         * tools/dbus-launch.1: Update with new arguments.
10396
10397         * tools/dbus-send.1: Ditto.
10398
10399         * tools/dbus-monitor.1: Ditto.
10400
10401 2003-05-17  Havoc Pennington  <hp@pobox.com>
10402
10403         * bus/config-parser.c (merge_included): merge in policies from
10404         child configuration file.
10405
10406         * bus/policy.c (bus_policy_merge): function to merge two policies
10407         together
10408
10409 2003-05-16  Havoc Pennington  <hp@redhat.com>
10410
10411         * dbus/dbus-connection.c: disable verbose lock spew
10412
10413         * tools/dbus-send.c: add --print-reply command line option
10414
10415         * tools/dbus-print-message.h (print_message): new util function
10416         shared by dbus-send and dbus-monitor
10417
10418         * tools/dbus-monitor.c (handler_func): exit on disconnect
10419
10420         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10421         disconnected, don't try to use the read_watch
10422
10423         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10424         so we can find this bug more easily
10425
10426 2003-05-16  Havoc Pennington  <hp@redhat.com>
10427
10428         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10429         NULL as DBusHashTable is annoyingly likely to do.
10430
10431 2003-05-16  Colin Walters  <walters@verbum.org>
10432
10433         * tools/dbus-monitor.c: Add --session argument and usage()
10434         function.
10435
10436         * tools/dbus-monitor.1: Update with new --session arg.
10437
10438         * bus/Makefile.am (install-data-hook): Create
10439         $(libdir)/dbus-1.0/services so that the session bus is happy.
10440
10441 2003-05-15  Havoc Pennington  <hp@redhat.com>
10442
10443         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10444         on non-x86. ifdef's are evil.
10445
10446 2003-05-15  Havoc Pennington  <hp@redhat.com>
10447
10448         * configure.in: 0.11
10449
10450         * NEWS: update
10451
10452         * bus/Makefile.am (initddir): apparently we are supposed to put
10453         init scripts in /etc/rc.d/init.d not /etc/init.d
10454
10455         * bus/Makefile.am: remove the "you must --enable-tests to make
10456         check" as it broke distcheck
10457
10458         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10459
10460 2003-05-13  James Willcox  <jwillcox@gnome.org>
10461
10462         * configure.in:
10463         * bus/activation.c: (bus_activation_service_created),
10464         (bus_activation_activate_service):
10465         * bus/driver.c: (bus_driver_send_service_deleted),
10466         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10467         (bus_driver_send_service_acquired),
10468         (bus_driver_send_welcome_message),
10469         (bus_driver_handle_list_services):
10470         * bus/session.conf.in:
10471         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10472         (dbus_bus_service_exists), (dbus_bus_activate_service):
10473         * dbus/dbus-bus.h:
10474
10475         Add some convenience API which lets you activate a service, and did a
10476         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10477         and dbus_message_get_args()
10478
10479 2003-05-11  Havoc Pennington  <hp@pobox.com>
10480
10481         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10482         calling _dbus_marshal_validate_arg() for every byte in a byte
10483         array, etc.
10484
10485         * dbus/dbus-message-handler.c: use atomic reference counting to
10486         reduce number of locks slightly; the global lock in here sucks
10487
10488         * dbus/dbus-connection.c
10489         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10490         update_dispatch_status that can be called with lock held; then use
10491         in a couple places to reduce locking/unlocking
10492         (dbus_connection_send): hold the lock over the whole function
10493         instead of acquiring it twice.
10494
10495         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10496
10497         * bus/connection.c (bus_connections_setup_connection): fix access
10498         to already-freed memory.
10499
10500         * dbus/dbus-connection.c: keep a little cache of linked list
10501         nodes, to avoid using the global linked list alloc lock in the
10502         normal send-message case. Instead we just use the connection lock
10503         that we already have to take.
10504
10505         * dbus/dbus-list.c (_dbus_list_find_last): new function
10506
10507         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10508         change to use a struct for the atomic type; fix docs,
10509         they return value before increment, not after increment.
10510
10511         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10512         (_dbus_string_append_8_aligned): new functions to try to
10513         microoptimize this operation.
10514         (reallocate_for_length): break this out of set_length(), to
10515         improve profile info, and also so we can consider inlining the
10516         set_length() part.
10517
10518         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10519         strings with some preallocation, cuts down on our calls to realloc
10520         a fair bit. Though if we can get the "move entire string to empty
10521         string" optimization below to kick in here, it would be better.
10522
10523         * dbus/dbus-string.c (_dbus_string_move): just call
10524         _dbus_string_move_len
10525         (_dbus_string_move_len): add a special case for moving
10526         an entire string into an empty string; we can just
10527         swap the string data instead of doing any reallocs.
10528         (_dbus_string_init_preallocated): new function
10529
10530 2003-05-11  Havoc Pennington  <hp@pobox.com>
10531
10532         Write a "test-profile" that does echo client-server with threads;
10533         profile reveals lock contention, memcpy/realloc of buffers, and
10534         UTF-8 validation as hot spots. 20% of lock contention eliminated
10535         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10536         contention is global mempool locks for GList and DBusList.
10537
10538         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10539         x86 implementation
10540
10541         * dbus/dbus-connection.c (struct DBusConnection): use
10542         dbus_atomic_t for the reference count
10543
10544         * dbus/dbus-message.c (struct DBusMessage): declare
10545         dbus_atomic_t values as volatile
10546
10547         * configure.in: code to detect ability to use atomic integer
10548         operations in assembly, from GLib patch
10549
10550         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10551         time, tired of it being wrong in threads and forked processes
10552
10553         * glib/test-profile.c: a little program to bounce messages back
10554         and forth between threads and eat CPU
10555
10556         * dbus/dbus-connection.c: add debug spew macros for debugging
10557         thread locks; include config.h at top; fix deadlock in
10558         dbus_connection_flush()
10559
10560 2003-05-08  Havoc Pennington  <hp@pobox.com>
10561
10562         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10563         data from getting written, and there wasn't a good reason to
10564         use _exit really.
10565
10566         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10567         dbus_verbose lines in test coverage
10568         (main): add list of functions sorted by # of untested blocks
10569         to the coverage report
10570
10571         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10572
10573         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10574
10575         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10576         extend test coverage
10577
10578         * test/data/auth/cancel.auth-script: test canceling an
10579         authentication
10580
10581         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10582         aren't used. in CVS history if we end up needing them.
10583
10584 2003-05-04  Havoc Pennington  <hp@pobox.com>
10585
10586         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10587         unit test
10588
10589         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10590         function, which assumed length was in # of strings, not bytes
10591
10592         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10593         missing coverage
10594
10595         * dbus/dbus-connection.c
10596         (_dbus_connection_queue_received_message): disable function for
10597         now, we are only using it in test mode
10598
10599         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10600         remove a mistaken FIXME
10601
10602 2003-05-04  Havoc Pennington  <hp@pobox.com>
10603
10604         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10605         unlock mutex on successful return, patch from Anders Gustafsson
10606
10607 2003-05-04  Havoc Pennington  <hp@pobox.com>
10608
10609         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10610         Anders Gustafsson
10611
10612 2003-05-04  Havoc Pennington  <hp@pobox.com>
10613
10614         * tools/dbus-launch.c: implement
10615
10616         * bus/main.c (main), bus/bus.c (bus_context_new):
10617         implement --print-pid and --fork
10618
10619 2003-05-03  Havoc Pennington  <hp@redhat.com>
10620
10621         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10622         the address had no value, and add to test suite. Fix and
10623         regression test from Miloslav Trmac
10624
10625 2003-05-03  Havoc Pennington  <hp@pobox.com>
10626
10627         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10628         watch is invalid when handled
10629
10630         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10631         dbus-launch utility to launch the bus from a shell script.  Didn't
10632         actually implement dbus-launch yet, it's just a placeholder still.
10633
10634 2003-05-03  Havoc Pennington  <hp@pobox.com>
10635
10636         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10637         daemon; also documents daemon config file, so replaces
10638         doc/config-file.txt. Corrected some stuff from config-file.txt in
10639         the process of moving it.
10640
10641 2003-05-03  Havoc Pennington  <hp@pobox.com>
10642
10643         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10644         add some man pages
10645
10646 2003-05-03  Colin Walters  <walters@verbum.org>
10647
10648         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10649         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10650
10651         * Makefile.am: Update to use new .pc versioning scheme.
10652
10653 2003-05-02  Havoc Pennington  <hp@redhat.com>
10654
10655         * bus/system.conf.in: allow send/receive to/from message bus
10656         service
10657
10658 2003-04-30  Havoc Pennington  <hp@redhat.com>
10659
10660         * configure.in: print a note when building with unit tests and
10661         without assertions
10662
10663 2003-04-30  Havoc Pennington  <hp@redhat.com>
10664
10665         * Makefile.am: add a check-local that complains if you didn't
10666         configure with --enable-tests
10667
10668 2003-04-29  Havoc Pennington  <hp@redhat.com>
10669
10670         * glib/dbus-gmain.c: docs cleanups
10671
10672         * dbus/dbus-types.h: add docs on int64 types
10673
10674         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10675         public API docs section
10676
10677 2003-04-29  Havoc Pennington  <hp@redhat.com>
10678
10679         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10680         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10681         parallel install API version, not with the D-BUS package version.
10682
10683         * HACKING: move some of README over here
10684
10685         * README: updates, and document API/ABI policy
10686
10687         * configure.in: reindentation
10688
10689 2003-04-29  Havoc Pennington  <hp@redhat.com>
10690
10691         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10692         to use this library" to be sure people have the right
10693         expectations.
10694
10695 2003-04-28  Havoc Pennington  <hp@redhat.com>
10696
10697         * configure.in: add --enable-docs which by default is auto yes if
10698         doxygen and db2html found, no otherwise; but can be forced on/off
10699
10700         * doc/Makefile.am: conditionalize whether to build docs on
10701         --enable-docs
10702
10703 2003-04-28  Havoc Pennington  <hp@redhat.com>
10704
10705         * configure.in: 0.10
10706
10707         * NEWS: update
10708
10709         * bus/system.conf.in: add <includedir>system.d</includedir>
10710
10711         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10712         username was provided but not uid
10713
10714         * bus/config-parser.c (struct BusConfigParser): keep track of
10715         whether the parser is toplevel or was included; change some
10716         of the error handling if it's included.
10717
10718 2003-04-27  Havoc Pennington  <hp@pobox.com>
10719
10720         Unbreak my code...
10721
10722         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10723         report correct status if we finish processing authentication
10724         inside this function.
10725
10726         * bus/activation.c (try_send_activation_failure): use
10727         bus_transaction_send_error_reply
10728
10729         * bus/connection.c (bus_connection_get_groups): return an error
10730         explaining the problem
10731
10732         * bus/bus.c (bus_context_check_security_policy): implement
10733         restriction here that inactive connections can only send the
10734         hello message. Also, allow bus driver to send anything to
10735         any recipient.
10736
10737         * bus/connection.c (bus_connection_complete): create the
10738         BusClientPolicy here instead of on-demand.
10739         (bus_connection_get_policy): don't return an error
10740
10741         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10742         sender field in message being replied to
10743
10744         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10745         causing it to return FALSE always
10746
10747         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10748         we checked sender rather than destination
10749
10750 2003-04-25  Havoc Pennington  <hp@redhat.com>
10751
10752         test suite is slightly hosed at the moment, will fix soon
10753
10754         * bus/connection.c (bus_connections_expire_incomplete): fix to
10755         properly disable the timeout when required
10756         (bus_connection_set_name): check whether we can remove incomplete
10757         connections timeout after we complete each connection.
10758
10759         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10760         probably still broken.
10761
10762         * bus/services.c (bus_registry_acquire_service): implement max
10763         number of services owned, and honor allow/deny rules on which
10764         services a connection can own.
10765
10766         * bus/connection.c (bus_connection_get_policy): report errors here
10767
10768         * bus/activation.c: implement limit on number of pending
10769         activations
10770
10771 2003-04-25  Havoc Pennington  <hp@redhat.com>
10772
10773         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10774         where we used >= 0 instead of != DBUS_UID_UNSET.
10775
10776 2003-04-25  Havoc Pennington  <hp@redhat.com>
10777
10778         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10779         were toggled without add/remove, fix from Anders Gustafsson
10780
10781 2003-04-24  Havoc Pennington  <hp@redhat.com>
10782
10783         * test/data/valid-config-files/basic.conf: add <limit> tags to
10784         this test
10785
10786         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10787         <limit> tag in configuration file.
10788
10789 2003-04-24  Havoc Pennington  <hp@redhat.com>
10790
10791         * bus/dispatch.c: somehow missed some name_is
10792
10793         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10794         (_dbus_timeout_set_interval): new
10795
10796         * bus/connection.c (bus_connections_setup_connection): record time
10797         when each connection is first set up, and expire them after the
10798         auth timeout passes.
10799
10800 2003-04-24  Havoc Pennington  <hp@redhat.com>
10801
10802         * dbus/dbus-message.c (dbus_message_name_is): rename
10803         (dbus_message_service_is): rename
10804         (dbus_message_sender_is): rename
10805         (dbus_message_get_service): rename
10806
10807 2003-04-24  Havoc Pennington  <hp@redhat.com>
10808
10809         * configure.in: add --enable-checks
10810
10811         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10812
10813         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10814         to use thread locks.
10815         (_dbus_connection_handler_destroyed_locked): move some private
10816         functions into proper docs group
10817
10818         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10819         _dbus_return_val_if_fail
10820
10821         Throughout: use dbus_return_if_fail
10822
10823 2003-04-23  James Willcox  <jwillcox@gnome.org>
10824
10825         * glib/dbus-glib.h:
10826         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10827         (dbus_connection_setup_with_g_main),
10828         (dbus_server_setup_with_g_main):
10829         * glib/test-dbus-glib.c: (main):
10830         * glib/test-thread-client.c: (main):
10831         * glib/test-thread-server.c: (new_connection_callback), (main):
10832         * tools/dbus-monitor.c: (main):
10833
10834         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10835         and dbus_server_setup_with_g_main().
10836
10837 2003-04-20  Havoc Pennington  <hp@pobox.com>
10838
10839         * doc/dbus-specification.sgml: document the restrictions on
10840         message and service names
10841
10842 2003-04-22  Havoc Pennington  <hp@redhat.com>
10843
10844         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
10845         support, and do some code cleanups to share more code and
10846         speed up array marshal/demarshal.
10847
10848         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
10849
10850         * configure.in: generate dbus-arch-deps.h
10851
10852         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
10853         64-bit typecodes
10854
10855 2003-04-22  Havoc Pennington  <hp@redhat.com>
10856
10857         * test/data/valid-messages/opposite-endian.message: fix test
10858         to use proper type for rply field
10859
10860         * test/data/invalid-messages: add tests for below validation
10861
10862         * dbus/dbus-message.c (decode_header_data): validate field types,
10863         and validate that named fields are valid names
10864         (decode_name_field): consider messages in the
10865         org.freedesktop.Local. namespace to be invalid.
10866
10867         * dbus/dbus-string.c (_dbus_string_validate_name): new
10868
10869 2003-04-19  Havoc Pennington  <hp@pobox.com>
10870
10871         * bus/driver.c (bus_driver_handle_hello): check limits and
10872         return an error if they are exceeded.
10873
10874         * bus/connection.c: maintain separate lists of active and inactive
10875         connections, and a count of each. Maintain count of completed
10876         connections per user. Implement code to check connection limits.
10877
10878         * dbus/dbus-list.c (_dbus_list_unlink): export
10879
10880         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
10881         number of bytes in the message queue for a connection
10882
10883 2003-04-18  Havoc Pennington  <hp@pobox.com>
10884
10885         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
10886
10887         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
10888         memleaks
10889
10890         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
10891         on realloc be sure to update the pointer in the keyring
10892
10893         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
10894         offset to avoid writing to unallocated memory
10895
10896         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
10897         try the next mechanism, so we properly handle OOM
10898
10899         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
10900         on OOM.
10901         (_dbus_keyring_new): fix OOM bug
10902         (_dbus_keyring_new_homedir): always set error; impose a maximum
10903         number of keys we'll load from the file, mostly to speed up the
10904         test suite and make its OOM checks more useful, but also for
10905         general sanity.
10906
10907         * dbus/dbus-auth.c (process_error_server): reject authentication
10908         if we get an error from the client
10909         (process_cancel): on cancel, send REJECTED, per the spec
10910         (process_error_client): send CANCEL if we get an error from the
10911         server.
10912
10913 2003-04-18  Havoc Pennington  <hp@pobox.com>
10914
10915         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
10916         debug spew
10917
10918         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
10919         handling problem
10920
10921         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
10922         about DBUS_TEST_HOMEDIR once
10923
10924         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
10925         the environment
10926
10927         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
10928         config file so we test the right thing
10929
10930         Throughout: assorted docs improvements
10931
10932 2003-04-18  Havoc Pennington  <hp@pobox.com>
10933
10934         * glib/dbus-gmain.c: adapt to watch changes
10935
10936         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
10937
10938         * dbus/dbus-server.h: remove dbus_server_handle_watch
10939
10940         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
10941
10942         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
10943         like DBusTimeout, so we don't need dbus_connection_handle_watch
10944         etc.
10945
10946 2003-04-17  Havoc Pennington  <hp@redhat.com>
10947
10948         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
10949         database usage so it all goes via the DBusUserDatabase cache.
10950
10951 2003-04-17  Havoc Pennington  <hp@redhat.com>
10952
10953         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
10954         there was an OOM watch we skipped, we always return TRUE so we
10955         iterate again to have a look at it again. Fixes test suite hang.
10956         Code rearrangement also lets us lose some memset and only iterate
10957         over callbacks once.
10958
10959         * bus/driver.c (bus_driver_handle_message): sense of test for
10960         reply was backward
10961
10962 2003-04-16  Havoc Pennington  <hp@pobox.com>
10963
10964         * doc/dbus-specification.sgml: make spec say serials are unsigned
10965
10966         * dbus/dbus-message.h: change message serials to unsigned
10967
10968         * dbus/dbus-connection.c: adapt to message serials being unsigned
10969
10970 2003-04-15  Havoc Pennington  <hp@pobox.com>
10971
10972         * bus/bus.c: create and keep around a shared DBusUserDatabase
10973         object.
10974
10975         * bus/connection.c (bus_connection_get_groups): don't cache
10976         groups for user in the connection object, since user database
10977         object now does that.
10978
10979 2003-04-16  Havoc Pennington  <hp@redhat.com>
10980
10981         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
10982         list of size counters
10983         (_dbus_message_loader_putback_message_link): put back a popped link
10984
10985         * dbus/dbus-connection.c
10986         (dbus_connection_set_max_live_messages_size): rename
10987         max_received_size
10988         (dbus_connection_get_outgoing_size): get size of outgoing
10989         queue
10990         (_dbus_connection_set_connection_counter): remove this cruft
10991
10992 2003-04-14  Havoc Pennington  <hp@redhat.com>
10993
10994         * dbus/dbus-userdb.c: user database abstraction, mostly to get
10995         caching, but at some point we might want to be able to use a
10996         different database.
10997
10998         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
10999         SHA1 conf file to test the sha1 auth mechanism, since the regular
11000         test always uses EXTERNAL when available.
11001
11002         * configure.in,
11003         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11004         add conf file that requires use of sha1 auth
11005
11006 2003-04-13  Havoc Pennington  <hp@pobox.com>
11007
11008         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11009         from Philip Blundell to send messages and monitor them.
11010
11011 2003-04-13  Havoc Pennington  <hp@pobox.com>
11012
11013         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11014         callbacks
11015
11016         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11017         users
11018
11019         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11020         fix to only recover unused bytes if we're already authenticated
11021         (_dbus_transport_get_is_authenticated): fix to still mark us
11022         authenticated if there are unused bytes.
11023
11024         * bus/dispatch.c: implement security policy checking
11025
11026         * bus/connection.c (bus_transaction_send_from_driver): new
11027
11028         * bus/bus.c (bus_context_check_security_policy): new
11029
11030         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11031         now we just set the DBusError and it gets converted to an error
11032         reply.
11033
11034         * bus/connection.c (allow_user_function): enable code using actual
11035         data from the config file
11036
11037         * bus/policy.c (list_allows_user): handle wildcard rules for
11038         user/group connection perms
11039
11040 2003-04-13  Havoc Pennington  <hp@pobox.com>
11041
11042         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11043
11044         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11045
11046         * bus/policy.c (bus_policy_append_mandatory_rule)
11047         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11048         (bus_policy_append_group_rule): new functions
11049
11050 2003-04-12  Havoc Pennington  <hp@pobox.com>
11051
11052         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11053
11054         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11055         the pid/gid/uid, just for paranoia.
11056
11057         * test/break-loader.c (randomly_do_n_things): find a byte
11058         containing a type code, and randomly change it to a different
11059         type code.
11060
11061 2003-04-12  Havoc Pennington  <hp@pobox.com>
11062
11063         * bus/policy.h: change BusPolicy to be the thing from the config
11064         file, and rename old BusPolicy to BusClientPolicy
11065
11066         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11067         match change in how policy works
11068
11069         * dbus/dbus-internals.h: mark assert_not_reached as
11070         __attribute((noreturn))__
11071
11072 2003-04-11  Havoc Pennington  <hp@redhat.com>
11073
11074         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11075         the broadcast service. Use boolean return for ServiceExists.
11076
11077 2003-04-11  Havoc Pennington  <hp@redhat.com>
11078
11079         * configure.in: add another directory to look for qt in.
11080
11081 2003-04-11  Havoc Pennington  <hp@redhat.com>
11082
11083         * AUTHORS: add Colin Walters
11084
11085 2003-04-11  Havoc Pennington  <hp@redhat.com>
11086
11087         * NEWS: update
11088
11089         * configure.in: 0.9
11090
11091 2003-04-11  Havoc Pennington  <hp@redhat.com>
11092
11093         * bus/messagebus.in: remove pid file when stopping the
11094         message bus, since the bus won't have privileges to remove it
11095         itself.
11096
11097 2003-04-11  Havoc Pennington  <hp@redhat.com>
11098
11099         * bus/bus.c (bus_context_new): move credentials change after
11100         creating pidfile
11101
11102 2003-04-11  Havoc Pennington  <hp@pobox.com>
11103
11104         * test/decode-gcov.c: add "below average functions" to the
11105         coverage report, and change how some of the code works.
11106
11107         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11108         not in the coverage stats.
11109
11110         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11111         couple places so running the test suite doesn't result in megaspam.
11112
11113 2003-04-11  Havoc Pennington  <hp@pobox.com>
11114
11115         * bus/dispatch.c (check_existent_service_activation): accept a no
11116         memory error in a place we didn't before
11117
11118         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11119         in case the first one failed," since the test suite is less
11120         broken now.
11121
11122 2003-04-10  Havoc Pennington  <hp@pobox.com>
11123
11124         * bus/dispatch.c (check_segfault_service_activation): add test
11125         for launching an executable that just crashes.
11126
11127         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11128         don't leave a million cores. We'll see how portable this is.
11129
11130 2003-04-10  Havoc Pennington  <hp@pobox.com>
11131
11132         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11133         the possible parent failures before we fork, so that we don't
11134         fail to create a babysitter after creating the child.
11135
11136         * bus/activation.c (bus_activation_activate_service): kill child
11137         if we don't successfully complete the activation.
11138
11139 2003-04-10  Havoc Pennington  <hp@redhat.com>
11140
11141         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11142         the connection if it's disconnected
11143
11144         * bus/activation.c (bus_activation_service_created): use new
11145         transaction features to roll back removal of pending activation if
11146         we don't successfully create the service after all. Don't remove
11147         pending activation if the function fails.
11148
11149         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11150         (_dbus_list_insert_after_link): new code to facilitate
11151         services.c fixes
11152
11153         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11154         new functionality, so we can preallocate the ability to insert
11155         into a hash table.
11156
11157         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11158         allowing us to put custom hooks in a transaction to be used for
11159         cancelling said transaction
11160
11161         * doc/dbus-specification.sgml: add some discussion of secondary
11162         service owners, and disallow zero-length service names
11163
11164         * bus/services.c (bus_registry_acquire_service): new function,
11165         splits out part of bus_driver_handle_acquire_service() and fixes
11166         a bug where we didn't remove the service doing the acquiring
11167         from the secondary queue if we failed to remove the current owner
11168         from the front of the queue.
11169
11170 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11171
11172         * doc/dbus-specification.sgml:
11173         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11174
11175 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11176
11177         * bus/.cvsignore:
11178         * glib/.cvsignore:
11179         * test/.cvsignore:
11180         Added files to cvsignore
11181
11182         * dbus/dbus-message.h:
11183         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11184         Make get_named() take two out argument and return a boolean.
11185         (dbus_message_iter_get_args_valist):
11186         Update usage of get_named().
11187         (dbus_message_iter_append_byte):
11188         Fix typo
11189         (dbus_message_iter_append_named)
11190         Fix typo
11191         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11192         More tests.
11193
11194 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11195
11196         * dbus/dbus-marshal.[ch]:
11197         Add array_type_pos argument to _dbus_marshal_validate_arg.
11198         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11199
11200         * dbus/dbus-message.[ch]:
11201         Multi-dimensional arrays have full type specification in the
11202         outermost array. Iter code re-arranged to handle this.
11203         Added some more iter tests.
11204
11205         * doc/dbus-specification.sgml:
11206         Add me to authors.
11207         Remove old FIXME.
11208         Update new array encoding description.
11209         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11210
11211         * test/data/invalid-messages/array-with-mixed-types.message:
11212         * test/data/valid-messages/array-of-array-of-uint32.message:
11213         Change to the new array format.
11214
11215         * test/data/invalid-messages/too-short-dict.message:
11216         Fix bug in test.
11217
11218         * test/data/valid-messages/recursive-types.message:
11219         Fix up and extend test.
11220
11221 2003-04-10  Havoc Pennington  <hp@pobox.com>
11222
11223         * bus/dispatch.c: lots of fixes
11224
11225         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11226         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11227         that was crack, broke the test service.
11228
11229         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11230         handling to avoid piling up errors if we get a failure on the
11231         first address.
11232
11233         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11234         pid in assertion failures.
11235
11236         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11237         to some fixed size of file descriptor array. Don't return TRUE
11238         anytime a timeout exists, that led to lots of busy loop silliness
11239         in the tests.
11240
11241 2003-04-09  Havoc Pennington  <hp@redhat.com>
11242
11243         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11244         I'd checked this in earlier but hadn't.
11245
11246 2003-04-09  Havoc Pennington  <hp@redhat.com>
11247
11248         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11249         the activation test (man this is getting old!)
11250
11251 2003-04-09  Havoc Pennington  <hp@redhat.com>
11252
11253         * test/test-utils.c: use dispatch status function to fix this up
11254
11255         * bus/connection.c (connection_watch_callback): don't dispatch
11256         from here
11257         (connection_timeout_callback): don't dispatch from here
11258         (bus_connections_setup_connection): set the dispatch status function
11259         (bus_connection_disconnected): unset it
11260
11261         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11262         used to add a connection to be dispatched
11263         (_dbus_loop_iterate): do the dispatching at the end of each
11264         iteration
11265
11266         * dbus/dbus-connection.c
11267         (dbus_connection_set_dispatch_status_function): new function
11268         allowing us to fix up main loop usage
11269         (_dbus_connection_last_unref): free all the various function
11270         user data
11271         (dbus_connection_dispatch): call the DispatchStatusFunction
11272         whenever this function returns
11273         (dbus_connection_handle_watch): call DispatchStatusFunction
11274         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11275         (reply_handler_timeout): call DispatchStatusFunction
11276         (dbus_connection_flush): call DispatchStatusFunction
11277
11278 2003-04-09  Havoc Pennington  <hp@redhat.com>
11279
11280         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11281         a memory leak
11282
11283         * bus/dispatch.c (check_service_activated): fix bug in test
11284
11285         * dbus/dbus-mainloop.c (check_timeout): fix this up
11286
11287         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11288         verbose output so we can sort out output from different processes,
11289         e.g. in the activation case.
11290
11291 2003-04-08  Colin Walters  <walters@gnu.org>
11292
11293         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11294         the pid file.
11295         (bus_context_new): Set it.
11296         (bus_context_unref): Use it to delete the pid file.
11297
11298 2003-04-08  Havoc Pennington  <hp@redhat.com>
11299
11300         * test/data/invalid-messages/array-with-mixed-types.message:
11301         regression test that fails for the moment
11302
11303         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11304         tests for convenience
11305
11306         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11307         array of nil, it broke things.
11308
11309         * test/data/invalid-messages/array-of-nil.message: regression test
11310
11311         * test/data/valid-messages/array-of-array-of-uint32.message:
11312         happened to write this so added it to suite
11313
11314 2003-04-08  Havoc Pennington  <hp@redhat.com>
11315
11316         * bus/driver.c (bus_driver_handle_acquire_service): init
11317         retval/reply before checking name
11318
11319         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11320         recursion depth argument
11321
11322         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11323         in the public struct for future extension
11324
11325         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11326         typo
11327
11328         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11329         message
11330
11331         * doc/dbus-specification.sgml: fix typo
11332
11333 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11334
11335         Implemented recursive types, named types and new-style iters
11336
11337         * bus/driver.c:
11338         * glib/test-thread-client.c: (thread_func):
11339         * glib/test-thread-server.c: (handle_test_message):
11340         * test/test-service.c: (handle_echo):
11341         Update to new api
11342
11343         * dbus/Makefile.am:
11344         * dbus/dbus-dict.c:
11345         * dbus/dbus-dict.h:
11346         * dbus/dbus.h
11347         Remove DBusDict
11348
11349         * dbus/dbus-internals.c: (_dbus_type_to_string):
11350         Update for new types.
11351
11352         * dbus/dbus-marshal.[ch]:
11353         Implement recursive types and the new marshalling format.
11354         Remove hardcoded dict marshalling.
11355         Marshal named types.
11356
11357         * dbus/dbus-message-builder.c:
11358         Add BYTE_ARRAY.
11359         Remove references to old types
11360
11361         * dbus/dbus-message.[ch]:
11362         New non-refcounted iter API that supports recursive iters.
11363         Use iters for appending, including support for recursive
11364         iters.
11365         Add byte and named type support.
11366         Update everything to new marshalling formats.
11367         Add tests for new API.
11368
11369         * dbus/dbus-protocol.h:
11370         Remove old array types.
11371         Add types: BYTE, ARRAY, DICT, NAMED
11372
11373         * dbus/dbus-string.c:
11374         * dbus/dbus-sysdeps.c:
11375         Make parse_double locale safe.
11376
11377         * dbus/dbus-test-main.c:
11378         Call setlocale.
11379
11380         * dbus/dbus-test.c:
11381         Kill dict test
11382
11383         * doc/dbus-specification.sgml:
11384         Update spec
11385
11386         * test/data/incomplete-messages/missing-body.message:
11387         * test/data/invalid-messages/bad-boolean.message:
11388         * test/data/invalid-messages/bad-boolean-array.message:
11389         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11390         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11391         * test/data/invalid-messages/too-short-dict.message:
11392         * test/data/valid-messages/dict-simple.message:
11393         * test/data/valid-messages/dict.message:
11394         * test/data/valid-messages/emptiness.message:
11395         * test/data/valid-messages/lots-of-arguments.message:
11396         * test/data/valid-messages/no-padding.message:
11397         * test/data/valid-messages/recursive-types.message:
11398         Add missing NAME fields
11399         Fix up dicts & arrays
11400
11401         * test/data/invalid-messages/dict-with-nil-value.message:
11402         Removed, this is not invalid anymore.
11403
11404         * test/data/valid-messages/recursive-types.message:
11405         Add new test for deeply recursive types.
11406
11407 2003-04-07  Havoc Pennington  <hp@pobox.com>
11408
11409         * bus/driver.c (bus_driver_handle_acquire_service): return an
11410         error if you try to acquire a service that starts with ':'
11411
11412 2003-04-07  Havoc Pennington  <hp@redhat.com>
11413
11414         * doc/dbus-specification.sgml: require that base service names
11415         start with ':' and that the base service is created/deleted
11416         as first and last things a connection does on the bus
11417
11418         * bus/dispatch.c (check_existent_service_activation): lots more
11419         work on the activation test; it doesn't fully pass yet...
11420
11421         * test/test-service.c (main): fix so we don't memleak the
11422         connection to the message bus
11423         (filter_func): accept a message asking us to exit
11424
11425 2003-04-06  Havoc Pennington  <hp@pobox.com>
11426
11427         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11428         from Colin Walters
11429
11430         * configure.in: fixes to Qt detection from Colin Walters
11431
11432         * doc/Makefile.am: Only remove generated docbook dirs if they
11433         exist, from Colin Walters
11434
11435         * dbus/dbus-bus.c: change how we set well-known connections to
11436         NULL, so that it works if a single connection is stored in
11437         two well-known array slots.
11438
11439         * test/Makefile.am: remove a lot of stuff that isn't immediately
11440         useful, it's in CVS history if we want it.
11441
11442         * test/test-service.c: use dbus-mainloop instead of that
11443         watch.[hc] crack
11444
11445 2003-04-06  Havoc Pennington  <hp@pobox.com>
11446
11447         * dbus/Makefile.am: split lists of sources into stuff that goes in
11448         the library, util functions that go in the lib and are also used
11449         elsewhere, and util functions that are used in tests/daemon but
11450         don't go in the lib.
11451
11452         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11453         here so it can be used in test binaries also
11454
11455 2003-04-06  Havoc Pennington  <hp@pobox.com>
11456
11457         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11458         here in the parent process, so we can return an error if it
11459         fails. Also, move some of the code into the child so the parent
11460         is less hosed if we fail midway through.
11461
11462         * bus/bus.c (bus_context_new): move pidfile detection further up
11463         in the function, before we start overwriting sockets and such.
11464
11465         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11466
11467         * configure.in: add --with-system-pid-file and --with-system-socket
11468
11469 2003-04-06  Colin Walters  <walters@verbum.org>
11470
11471         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11472
11473         * bus/system.conf.in: Declare a pidfile.
11474
11475         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11476         create one (if appropriate).
11477
11478         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11479         (struct BusConfigParser) [pidfile]: New.
11480         (element_type_to_name, merge_included, start_busconfig_child)
11481         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11482         (bus_config_parser_unref): Free it.
11483         (bus_config_parser_get_pidfile): New function.
11484
11485         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11486
11487         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11488
11489         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11490
11491         * dbus/dbus-sysdeps.h: Prototype it.
11492
11493 2003-04-06  Havoc Pennington  <hp@pobox.com>
11494
11495         * bus/bus.c (bus_context_new): print the address in here, rather
11496         than in main(), because we need to do it before forking the daemon
11497
11498         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11499         on the service nonexistent error
11500
11501         * bus/driver.c (bus_driver_handle_acquire_service): set the
11502         sender on the AcquireService reply
11503
11504         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11505         server also listen on a UNIX socket so services can connect to it.
11506
11507 2003-04-06  Havoc Pennington  <hp@pobox.com>
11508
11509         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11510         so it detects deadlocks and also we actually init threads when
11511         debugging.
11512
11513 2003-04-06  Havoc Pennington  <hp@pobox.com>
11514
11515         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11516         save the domain socket name, and unlink it when we disconnect the
11517         server. Means that at least when we exit normally, we won't leave
11518         a bunch of junk in /tmp
11519
11520         * dbus/dbus-transport-unix.c
11521         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11522         memory management). (I was making a real change here but then
11523         didn't)
11524
11525 2003-04-06  Havoc Pennington  <hp@pobox.com>
11526
11527         * bus/bus.c (bus_context_new): fix wrong handling of
11528         server_data_slot_unref() in the error case.
11529
11530         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11531         "(condition) != 0" to _dbus_real_assert so that
11532         "_dbus_assert (pointer)" doesn't cause a warning
11533
11534         * bus/main.c (main): accept --print-address option to print out
11535         the message bus address
11536
11537         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11538
11539         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11540         "tmpdir" option to unix: address on client side
11541
11542         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11543         to unix: address
11544
11545         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11546         we can use to create sockets in the test suite.
11547
11548         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11549         cleanly. To be used for testing.
11550
11551         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11552
11553         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11554
11555         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11556         handle trying to call this when there's no servers active
11557
11558 2003-04-05  Havoc Pennington  <hp@pobox.com>
11559
11560         * NEWS: update
11561
11562         * configure.in: 0.8
11563
11564 2003-04-05  Havoc Pennington  <hp@pobox.com>
11565
11566         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11567         crash on startup. Need to get "try starting the daemon"
11568         in the test suite I guess. ;-)
11569
11570         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11571         tracked the number of open connections; it's better done in
11572         application-specific code as you want it to span all servers etc.
11573
11574 2003-04-05  Havoc Pennington  <hp@pobox.com>
11575
11576         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11577         patch from Colin Walters
11578
11579 2003-04-05  Havoc Pennington  <hp@pobox.com>
11580
11581         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11582         reality; in fact multiple mechanisms are allowed.
11583
11584         * dbus/dbus-internals.c (_dbus_real_assert)
11585         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11586         _dbus_assert_not_reached() into functions, so that they don't show
11587         up in basic block counts for test coverage, and don't use up as
11588         much disk space. Does mean slower execution speed though, so
11589         assumes --disable-asserts is the normal production case.
11590
11591 2003-04-05  Havoc Pennington  <hp@pobox.com>
11592
11593         * test/Makefile.am (dist-hook): also dist *.in files
11594
11595         * NEWS: update
11596
11597         * configure.in: 0.7
11598
11599 2003-04-05  Havoc Pennington  <hp@pobox.com>
11600
11601         * dbus/dbus-string.c: docs warning
11602
11603         * dbus/dbus-spawn.c: missing docs
11604
11605         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11606
11607 2003-04-05  Havoc Pennington  <hp@pobox.com>
11608
11609         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11610         magic from GLib
11611
11612         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11613         to -1 once we've reaped the babysitter
11614         (_dbus_babysitter_handle_watch): do as much work as we can, not
11615         just one go of it
11616
11617         * bus/activation.c: add code using DBusBabysitter so that we
11618         handle it when a service fails to start up properly.
11619         (bus_activation_service_created): don't remove the activation
11620         entries as we go, just let them get removed when we free the pending
11621         activation. Unref reply messages after sending them.
11622
11623 2003-04-05  Havoc Pennington  <hp@pobox.com>
11624
11625         * test/decode-gcov.c (main): print per-directory stats in the report
11626
11627         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11628
11629 2003-04-05  Havoc Pennington  <hp@pobox.com>
11630
11631         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11632
11633         * test/decode-gcov.c: hack up a little program to suck data
11634         out of gcov files. Yes this is sort of silly.
11635
11636         * configure.in: define something in config.h and do an
11637         AM_CONDITIONAL when gcov is enabled
11638
11639 2003-04-04  Havoc Pennington  <hp@redhat.com>
11640
11641         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11642         return a "babysitter" object that is used to monitor the status of
11643         the spawned process and reap it when required.
11644
11645         * test/test-segfault.c, test/test-exit.c,
11646         test/test-sleep-forever.c: binaries that do various lame things,
11647         used in the test suite.
11648
11649         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11650
11651 2003-04-03  Havoc Pennington  <hp@pobox.com>
11652
11653         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11654         in preparation for modifying it, dbus-sysdeps is getting
11655         a bit unmanageable.
11656
11657 2003-04-03  Havoc Pennington  <hp@redhat.com>
11658
11659         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11660         have multiple ones
11661
11662         * bus/*.[hc]: adapt to mainloop change
11663
11664 2003-04-03  Havoc Pennington  <hp@redhat.com>
11665
11666         * bus/activation.c (load_directory): fix up memleaks
11667         (bus_activation_entry_free): free the entry
11668
11669         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11670         we get one from the message bus; fix memleaks.
11671
11672         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11673
11674 2003-04-03  Havoc Pennington  <hp@pobox.com>
11675
11676         * bus/config-parser.c (bus_config_parser_unref): free
11677         list of mechanisms, bug discovered by test suite enhancements
11678         (putting system.conf and session.conf into suite)
11679
11680         * test/Makefile.am, test/test-service.c: add placeholder for a
11681         test service that we'll activate as part of test suite. Doesn't
11682         do anything yet.
11683
11684         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11685         setting NULL value, and use system malloc not dbus_malloc()
11686         when we have unavoidable memleakage.
11687
11688         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11689         didn't work, and support DBUS_BUS_ACTIVATION.
11690
11691         * bus/activation.c (child_setup): pass our well-known bus type to
11692         the child
11693
11694         * bus/config-parser.c: support <type> to specify well-known type
11695
11696         * doc/dbus-specification.sgml: document the env variables to
11697         locate well-known buses and find service activator
11698
11699 2003-04-02  Havoc Pennington  <hp@redhat.com>
11700
11701         * test/Makefile.am (all-local): add a rule to copy tests to
11702         builddir, so we can have generated tests. Use this to remove the
11703         silly hack for testing system.conf and session.conf. Will use this
11704         shortly to generate .service files pointing to test binaries.
11705
11706 2003-04-02  Havoc Pennington  <hp@redhat.com>
11707
11708         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11709         current alloc and needed new length, not max of the doubled
11710         allocation and needed new length. Also, when building tests,
11711         don't do the double-allocation stuff, just realloc every time.
11712
11713 2003-04-02  Havoc Pennington  <hp@redhat.com>
11714
11715         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11716         in error messages
11717         (_dbus_string_get_dirname): new
11718         (_dbus_sysdeps_test): new
11719         (_dbus_directory_open): include dirnames in error messages
11720
11721         * bus/config-parser.c: interpret <include> and <includedir> and
11722         <servicedir> relative to config file location if the given
11723         filename is not absolute.
11724
11725         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11726
11727 2003-04-02  Havoc Pennington  <hp@redhat.com>
11728
11729         * bus/connection.c (bus_transaction_send_error_reply): set sender
11730         service for the error, and unref the reply on success
11731
11732         * bus/activation.c: convert to use BusTransaction so OOM can be
11733         handled correctly
11734         (bus_activation_service_created): set sender of the message
11735
11736 2003-04-01  Havoc Pennington  <hp@redhat.com>
11737
11738         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11739         <includedir> (at least mostly)
11740
11741         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11742         first, then the user ID
11743
11744 2003-04-01  Havoc Pennington  <hp@pobox.com>
11745
11746         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11747         function
11748
11749         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11750
11751         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11752
11753         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11754         socket 0777, and unlink any existing socket.
11755
11756         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11757         the configuration file so specifies; set up auth mechanism
11758         restrictions
11759
11760         * bus/config-parser.c (bus_config_parser_content): add support
11761         for <fork> option and fill in code for <auth>
11762
11763         * bus/system.conf.in: add <fork/> to default configuration,
11764         and limit auth mechanisms to EXTERNAL
11765
11766         * doc/config-file.txt (Elements): add <fork>
11767
11768         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11769         (_dbus_change_identity): new function
11770
11771 2003-03-31  Havoc Pennington  <hp@redhat.com>
11772
11773         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11774         (_dbus_listen_unix_socket): fix off-by-one error in null
11775         termination spotted by Nalin
11776
11777 2003-03-31  Havoc Pennington  <hp@redhat.com>
11778
11779         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11780         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11781         having a real home directory available.
11782
11783 2003-03-31  Havoc Pennington  <hp@redhat.com>
11784
11785         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11786
11787         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11788
11789         * configure.in: add support for specifying a style of init script
11790         to install
11791
11792 2003-03-31  Havoc Pennington  <hp@redhat.com>
11793
11794         Fix some annoying DBusString API and fix all affected code.
11795
11796         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11797         max_length argument
11798         (_dbus_string_get_data): change to return string instead of using
11799         an out param
11800         (_dbus_string_get_const_data): ditto
11801         (_dbus_string_get_data_len): ditto
11802         (_dbus_string_get_const_data_len): ditto
11803
11804 2003-03-31  Havoc Pennington  <hp@redhat.com>
11805
11806         * bus/main.c (main): fix up the command line arguments to be nicer
11807
11808 2003-03-31  Havoc Pennington  <hp@redhat.com>
11809
11810         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11811         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11812         final location that lands in the config file
11813
11814         * bus/config-loader-expat.c (bus_config_load): fix type of
11815         XML_Parser variable
11816
11817         * doc/TODO: remove TODO item for dbus_bus_get()
11818
11819         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11820
11821 2003-03-31  Havoc Pennington  <hp@pobox.com>
11822
11823         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11824         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11825         argument since they are always client side
11826
11827         * dbus/dbus-server.c (dbus_server_get_address): new function
11828
11829         * bus/main.c (main): take the configuration file as an argument.
11830
11831         * test/data/valid-config-files/debug-allow-all.conf: new file to
11832         use with dispatch.c tests for example
11833
11834         * bus/test-main.c (main): require test data dir
11835
11836         * bus/bus.c (bus_context_new): change this to take a
11837         configuration file name as argument
11838
11839         * doc/config-file.txt (Elements): add <servicedir>
11840
11841         * bus/system.conf, bus/session.conf: new files
11842
11843         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
11844         well-known socket if none set
11845
11846         * configure.in: create system.conf and session.conf
11847
11848 2003-03-30  Havoc Pennington  <hp@pobox.com>
11849
11850         * bus/config-parser.c: hacking
11851
11852         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
11853         to shut down, since it could cause weirdness with the DBusList
11854         lock
11855
11856         * dbus/dbus-list.c (_dbus_list_test): add tests for the
11857         link-oriented stack routines
11858         (alloc_link): free the mempool if the first alloc from it fails
11859
11860         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
11861
11862         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
11863         from GLib
11864         (_dbus_string_skip_white): new
11865
11866         * doc/config-file.txt (Elements): add <includedir>
11867
11868 2003-03-28  Havoc Pennington  <hp@pobox.com>
11869
11870         * dbus/dbus-string.c (_dbus_string_copy_data_len)
11871         (_dbus_string_copy_data): new functions
11872
11873 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
11874
11875         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
11876         * dbus/dbus-bus.h:
11877         Add dbus_bus_get.
11878
11879         * dbus/dbus-memory.c:
11880         Fix a doc comment.
11881
11882 2003-03-28  Havoc Pennington  <hp@pobox.com>
11883
11884         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
11885         I think it may have just been superstition. Not sure.
11886
11887         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
11888         failures that were not being handled.
11889
11890         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
11891
11892         * dbus/dbus-memory.c: add ability to set number of mallocs in a
11893         row that will fail on out-of-memory.
11894
11895         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
11896         function for testing out-of-memory handling.
11897
11898         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
11899         allocation functions, they do map exactly to the expat ones.
11900
11901 2003-03-27  Havoc Pennington  <hp@redhat.com>
11902
11903         * bus/config-loader-libxml.c (bus_config_load): add another error
11904         check
11905
11906 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11907
11908         * doc/TODO:
11909         Add note about automatic service activation.
11910
11911         * doc/dbus-specification.sgml:
11912         Rename the specification and clarify a few things.
11913
11914 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
11915
11916         * Doxyfile.in:
11917         * dbus/dbus-address.c:
11918         * dbus/dbus-dict.c:
11919         * dbus/dbus-marshal.c:
11920         * dbus/dbus-server-debug-pipe.c:
11921         * dbus/dbus-transport-unix.c:
11922         Fix documentation warnings.
11923
11924 2003-03-26  Havoc Pennington  <hp@pobox.com>
11925
11926         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
11927         after every test so it's quick and easy to see which leaked, and
11928         so we test multiple dbus_shutdown() calls
11929
11930         * configure.in: change configure.in XML stuff to also support
11931         expat
11932
11933         * config-loader-libxml.c: some hacking
11934
11935         * config-loader-expat.c: some hacking
11936
11937         * config-parser.c: some hacking, plus tests
11938
11939 2003-03-25  Havoc Pennington  <hp@redhat.com>
11940
11941         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
11942
11943         * configure.in: add --with-xml option to specify XML library,
11944         right now only libxml is supported.
11945
11946         * bus/config-loader-libxml.c, config-parser.c: sync some minor
11947         nonworking code between home and work, still just stubs
11948
11949 2003-03-24  Havoc Pennington  <hp@redhat.com>
11950
11951         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
11952         file
11953
11954         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
11955         NULL argument for "message" if the error is a well-known one,
11956         fill in a generic message in this case.
11957
11958         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
11959         favor of DBusError
11960
11961         * bus/test.c (bus_test_flush_bus): add
11962
11963         * bus/policy.c (bus_policy_test): test code stub
11964
11965 2003-03-24  Havoc Pennington  <hp@pobox.com>
11966
11967         * bus/connection.c (bus_connections_setup_connection): set up
11968         the "can this user connect" function, but it always returns
11969         TRUE until we have a config file parser so we can have a config
11970         file that allows connections.
11971
11972 2003-03-23  Havoc Pennington  <hp@pobox.com>
11973
11974         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
11975         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
11976         the mutex, so we can check for proper memory management
11977         and OOM handling.
11978
11979         * dbus/dbus-dataslot.c: remove the mutex from
11980         DBusDataSlotAllocator and lock it manually when using it,
11981         to simplify fitting it into the global slots framework.
11982
11983         * dbus/dbus-threads.c (init_static_locks): rework how we're
11984         handling global locks so they are easily shut down.
11985
11986         * bus/policy.c (bus_policy_append_rule): fix
11987
11988         * bus/test-main.c (main): check for memleaks
11989
11990         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
11991         test suite check for memleaks
11992
11993         * dbus/dbus-memory.c: add support in test mode for tracking
11994         number of outstanding blocks
11995
11996 2003-03-23  Havoc Pennington  <hp@pobox.com>
11997
11998         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
11999         policies code
12000
12001         * dbus/dbus-hash.h: add ULONG hash keys
12002
12003         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12004         (_dbus_get_group_id): new function
12005
12006 2003-03-20  Havoc Pennington  <hp@redhat.com>
12007
12008         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12009         new function
12010         (dbus_connection_get_unix_user): new function
12011
12012 2003-03-20  Havoc Pennington  <hp@pobox.com>
12013
12014         * bus/connection.c (bus_connection_send_oom_error): assert that
12015         message has a sender
12016         (connection_execute_transaction): ditto
12017         (bus_connection_preallocate_oom_error): fix to set the sender, and
12018         set recipient to the destination service, not the bus driver
12019
12020         * bus/policy.c: hacking
12021
12022         * dbus/dbus-message.c (dbus_message_service_is): new function
12023         (dbus_message_sender_is): new
12024
12025 2003-03-19  Havoc Pennington  <hp@redhat.com>
12026
12027         * bus/policy.c: start sketching code for policy restrictions on
12028         what connections can do.
12029
12030 2003-03-18  Havoc Pennington  <hp@redhat.com>
12031
12032         * doc/TODO: some notes on high-level todo items. Little nitpick
12033         stuff is all in @todo, so no need to add it here.
12034
12035         * doc/config-file.txt: some notes on how config file might look
12036
12037 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12038
12039         * configure.in: 0.6
12040
12041         * NEWS: Update.
12042
12043 2003-03-17  Havoc Pennington  <hp@redhat.com>
12044
12045         * dbus/dbus-internals.h: add gcc attributes so that
12046         our printf-style functions warn on bad arguments to
12047         format
12048
12049         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12050         format bug
12051
12052         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12053         printf format bug
12054
12055 2003-03-17  Havoc Pennington  <hp@redhat.com>
12056
12057         * bus/test-main.c (main): make it print something as it runs
12058         so make check doesn't look stuck
12059
12060         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12061         from CVS, now obsolete
12062
12063 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12064
12065         * bus/dispatch.c: (bus_dispatch):
12066         Refetch the service name since it may have been reallocated
12067         when dbus_message_set_sender was called.
12068
12069         * dbus/dbus-sysdeps.c: (_dbus_accept):
12070         Add address and address length variables and use them to stop
12071         valgrind from complaining.
12072
12073 2003-03-17  Havoc Pennington  <hp@pobox.com>
12074
12075         All tests pass, no memleaks, no valgrind complaints.
12076
12077         * bus/test.c: refcount handler_slot
12078
12079         * bus/connection.c (bus_connections_new): refcount
12080         connection_data_slot
12081
12082         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12083         bytes so that auth scripts pass.
12084
12085         * bus/dispatch.c: init message_handler_slot so it gets allocated
12086         properly
12087
12088         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12089
12090         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12091         dealloc server_pipe_hash when no longer used for benefit of
12092         leak checking
12093
12094         * dbus/dbus-auth.c (process_command): memleak fix
12095
12096         * bus/dispatch.c (check_hello_message): memleak fix
12097
12098 2003-03-16  Havoc Pennington  <hp@pobox.com>
12099
12100         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12101
12102 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12103
12104         * bus/activation.c (bus_activation_activate_service): Append
12105         the pending activation entry to the list of pending activations.
12106
12107 2003-03-16  Havoc Pennington  <hp@pobox.com>
12108
12109         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12110         connections
12111
12112         * dbus/dbus-address.c (create_entry): fix OOM handling when
12113         failing to alloc entry->method
12114
12115 2003-03-16  Havoc Pennington  <hp@pobox.com>
12116
12117         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12118         the watch
12119
12120         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12121         add some missing dbus_set_result
12122
12123         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12124         alloc the DBusMessageHandler
12125
12126         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12127         the transport here, since we call this from the finalizer; it
12128         resulted in a double-finalize.
12129
12130         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12131         where we tried to use transport->connection that was NULL,
12132         happened when transport was disconnected early on due to OOM
12133
12134         * bus/*.c: adapt to handle OOM for watches/timeouts
12135
12136         * dbus/dbus-transport-unix.c: port to handle OOM during
12137         watch handling
12138
12139         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12140         reference to unused bytes instead of a copy
12141
12142         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12143         out of memory
12144
12145         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12146         FALSE on OOM
12147
12148         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12149         of memory
12150
12151 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12152
12153         * doc/dbus-specification.sgml:
12154         Document reply message for ActivateService.
12155
12156 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12157
12158         * bus/activation.c: (bus_pending_activation_entry_free),
12159         (bus_pending_activation_free), (bus_activation_new),
12160         (bus_activation_unref), (bus_activation_service_created),
12161         (bus_activation_activate_service):
12162         * bus/activation.h:
12163         * bus/bus.c: (bus_context_new):
12164         * bus/desktop-file.c: (new_section):
12165         * bus/driver.c: (bus_driver_send_service_deleted),
12166         (bus_driver_handle_activate_service):
12167         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12168         * bus/services.h:
12169         * dbus/dbus-connection.c:
12170         (dbus_connection_send_with_reply_and_block):
12171         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12172         * dbus/dbus-protocol.h:
12173         Make activation work better. Now pending activations will be queued
12174         and the daemon won't try to activate services that are already registered.
12175
12176 2003-03-16  Havoc Pennington  <hp@pobox.com>
12177
12178         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12179         connection data
12180
12181         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12182         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12183
12184 2003-03-16  Havoc Pennington  <hp@pobox.com>
12185
12186         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12187         this. always run the test suite before commit...
12188
12189         * bus/*: adapt to DBusConnection API changes
12190
12191         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12192         requires renaming stuff to avoid dbus_connection_dispatch name
12193         conflict.
12194
12195         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12196         function
12197
12198         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12199         separate from _dbus_message_loader_return_buffer()
12200
12201         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12202         this, because it's now always broken to use; the number of
12203         messages in queue vs. the number still buffered by the message
12204         loader is undefined/meaningless. Should use
12205         dbus_connection_get_dispatch_state().
12206         (dbus_connection_dispatch): rename from
12207         dbus_connection_dispatch_message
12208
12209 2003-03-16  Havoc Pennington  <hp@pobox.com>
12210
12211         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12212         implementation
12213
12214 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12215
12216         * dbus/dbus-connection.c:
12217         (dbus_connection_send_with_reply_and_block):
12218         Decrease connection->n_incoming when removing an entry
12219         from the list.
12220         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12221         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12222         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12223         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12224         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12225         (dbus_dict_get_byte_array):
12226         Handle NULL arrays and strings. Also add support for byte arrays.
12227
12228         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12229         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12230         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12231         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12232         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12233         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12234         * dbus/dbus-marshal.h:
12235         Add support for marshalling and demarshalling empty arrays and strings.
12236
12237         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12238         (dbus_message_append_string_array),
12239         (dbus_message_iter_get_boolean),
12240         (dbus_message_iter_get_boolean_array),
12241         (dbus_message_iter_get_int32_array),
12242         (dbus_message_iter_get_uint32_array),
12243         (dbus_message_iter_get_double_array),
12244         (dbus_message_iter_get_byte_array),
12245         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12246         (check_message_handling):
12247         Add support for getting empty arrays and dicts.
12248
12249         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12250         Don't do any validation at all for now, that's better than just checking
12251         for ASCII.
12252
12253         * test/data/valid-messages/emptiness.message:
12254         New test message with lots of empty arrays.
12255
12256 2003-03-16  Havoc Pennington  <hp@pobox.com>
12257
12258         * dbus/dbus-connection.c
12259         (_dbus_connection_queue_received_message_link): new function that
12260         can't fail due to OOM
12261
12262         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12263         new function pops a message together with a list link
12264         containing it.
12265
12266         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12267         message queuing functions to avoid needing to alloc memory
12268
12269 2003-03-16  Havoc Pennington  <hp@pobox.com>
12270
12271         Oops - test code was only testing failure of around 30 of the
12272         mallocs in the test path, but it turns out there are 500+
12273         mallocs. I believe this was due to misguided linking setup such
12274         that there was one copy of dbus_malloc etc. in the daemon and one
12275         in the shared lib, and only daemon mallocs were tested. In any
12276         case, the test case now tests all 500+ mallocs, and doesn't pass
12277         yet, though there are lots of fixes in this patch.
12278
12279         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12280         this so that it doesn't need to allocate memory, since it
12281         has no way of indicating failure due to OOM (and would be
12282         annoying if it did).
12283
12284         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12285
12286         * bus/Makefile.am: rearrange to create two self-contained
12287         libraries, to avoid having libraries with overlapping symbols.
12288         that was resulting in weirdness, e.g. I'm pretty sure there
12289         were two copies of global static variables.
12290
12291         * dbus/dbus-internals.c: move the malloc debug stuff to
12292         dbus-memory.c
12293
12294         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12295         empty.
12296
12297         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12298
12299         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12300         on failure.
12301
12302         * bus/dispatch.c (bus_dispatch_add_connection): free
12303         message_handler_slot when no longer using it, so
12304         memory leak checkers are happy for the test suite.
12305
12306         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12307
12308         * bus/bus.c (new_connection_callback): disconnect in here if
12309         bus_connections_setup_connection fails.
12310
12311         * bus/connection.c (bus_connections_unref): fix to free the
12312         connections
12313         (bus_connections_setup_connection): if this fails, don't
12314         disconnect the connection, just be sure there are no side
12315         effects.
12316
12317         * dbus/dbus-string.c (undo_alignment): unbreak this
12318
12319         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12320         leaking
12321         (_dbus_auth_new): fix the order in which we free strings
12322         on OOM failure
12323
12324         * bus/connection.c (bus_connection_disconnected): fix to
12325         not send ServiceDeleted multiple times in case of memory
12326         allocation failure
12327
12328         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12329         get the base service name
12330         (dbus_bus_register_client): don't return base service name,
12331         instead store it on the DBusConnection and have an accessor
12332         function for it.
12333         (dbus_bus_register_client): rename dbus_bus_register()
12334
12335         * bus/dispatch.c (check_hello_message): verify that other
12336         connections on the bus also got the correct results, not
12337         just the one sending hello
12338
12339 2003-03-15  Havoc Pennington  <hp@pobox.com>
12340
12341         Make it pass the Hello handling test including all OOM codepaths.
12342         Now to do other messages...
12343
12344         * bus/services.c (bus_service_remove_owner): fix crash when
12345         removing owner from an empty list of owners
12346         (bus_registry_ensure): don't leave service in the list of
12347         a connection's owned services if we fail to put the service
12348         in the hash table.
12349
12350         * bus/connection.c (bus_connection_preallocate_oom_error): set
12351         error flag on the OOM error.
12352
12353         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12354         handle _dbus_transport_set_connection failure
12355
12356         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12357         to create watches up front and simply enable/disable them as
12358         needed.
12359         (unix_connection_set): this can now fail on OOM
12360
12361         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12362         of enabling/disabling a watch or timeout.
12363
12364         * bus/loop.c (bus_loop_iterate): don't touch disabled
12365         watches/timeouts
12366
12367         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12368
12369 2003-03-15  Havoc Pennington  <hp@pobox.com>
12370
12371         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12372         write useful test code, after all that futzing around ;-)
12373
12374         Test does not yet pass because we can't handle OOM in
12375         _dbus_transport_messages_pending (basically,
12376         dbus_connection_preallocate_send() does not prealloc the write
12377         watch). To fix this, I think we need to add new stuff to
12378         set_watch_functions, namely a SetEnabled function so we can alloc
12379         the watch earlier, then enable it later.
12380
12381         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12382         dbus-memory.c to the convenience lib
12383
12384         * bus/test.c: rename some static functions to keep them clearly
12385         distinct from stuff in connection.c. Handle client disconnection.
12386
12387 2003-03-14  Havoc Pennington  <hp@pobox.com>
12388
12389         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12390         transport, tests more of the real codepath. Set up clients
12391         with bus_setup_debug_client.
12392
12393         * bus/test.c (bus_setup_debug_client): function to set up debug
12394         "clients" on the main loop
12395
12396         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12397         support
12398
12399         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12400         server type
12401
12402         * dbus/dbus-server-debug.c: support a debug server based on pipes
12403
12404         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12405         (_dbus_close): new function
12406
12407         * configure.in: check for socketpair
12408
12409 2003-03-14  Havoc Pennington  <hp@redhat.com>
12410
12411         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12412         cheesy hack
12413
12414         * dbus/dbus-transport-debug.c: rework this a good bit to be
12415         less complicated. hopefully still works.
12416
12417         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12418         manually
12419
12420         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12421         after running it
12422
12423         * dbus/dbus-message.c (dbus_message_copy): rename from
12424         dbus_message_new_from_message, fix it up to copy
12425         all the message fields, add test case
12426
12427         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12428         not quite passing yet
12429
12430 2003-03-14  Havoc Pennington  <hp@pobox.com>
12431
12432         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12433         until no work remains" in test code. (the large diff here
12434         is just code movement, no actual changes)
12435
12436         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12437         1, no point waiting around for test code.
12438         (_dbus_server_debug_accept_transport): unref the timeout
12439         after adding it (right?)
12440
12441         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12442
12443 2003-03-13  Havoc Pennington  <hp@redhat.com>
12444
12445         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12446         out of memory
12447
12448         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12449         of memory
12450
12451         * dbus/dbus-connection.h: Make AddWatchFunction and
12452         AddTimeoutFunction return a bool so they can fail on out-of-memory
12453
12454         * bus/bus.c (bus_context_new): set up timeout handlers
12455
12456         * bus/connection.c (bus_connections_setup_connection): set up
12457         timeout handlers
12458
12459         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12460         can fail
12461
12462         * bus/bus.c (bus_context_new): adapt to changes
12463
12464         * bus/connection.c: adapt to changes
12465
12466         * test/watch.c: adapt to DBusWatch changes
12467
12468         * bus/dispatch.c (bus_dispatch_test): started adding this but
12469         didn't finish
12470
12471 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12472
12473         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12474
12475 2003-03-13  Havoc Pennington  <hp@pobox.com>
12476
12477         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12478         set up a test framework as for the library
12479
12480 2003-03-12  Havoc Pennington  <hp@pobox.com>
12481
12482         Throughout: purge global variables, introduce BusActivation,
12483         BusConnections, BusRegistry, etc. objects instead.
12484
12485         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12486         message bus object
12487
12488         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12489         going to redo this a bit differently I think
12490
12491 2003-03-12  Havoc Pennington  <hp@redhat.com>
12492
12493         Mega-patch that gets the message bus daemon initially handling
12494         out-of-memory. Work still needed. Also lots of random
12495         moving stuff to DBusError instead of ResultCode.
12496
12497         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12498
12499         * dbus/dbus-connection.c
12500         (dbus_connection_send_with_reply_and_block): use DBusError
12501
12502         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12503         DBusResultCode
12504
12505         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12506         code here, as the only failure possible is OOM.
12507
12508         * bus/connection.c (bus_connection_disconnect):
12509         rename bus_connection_disconnected as it's a notification only
12510
12511         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12512         "name" on get_args failure, should be done by get_args;
12513         don't disconnect client for bad args, just return an error.
12514         (bus_driver_handle_service_exists): ditto
12515
12516         * bus/services.c (bus_services_list): NULL-terminate returned array
12517
12518         * bus/driver.c (bus_driver_send_service_lost)
12519         (bus_driver_send_service_acquired): send messages from driver to a
12520         specific client to the client's unique name, not to the broadcast
12521         service.
12522
12523         * dbus/dbus-message.c (decode_header_data): reject messages that
12524         contain no name field
12525         (_dbus_message_get_client_serial): rename to
12526         dbus_message_get_serial and make public
12527         (_dbus_message_set_serial): rename from set_client_serial
12528         (_dbus_message_set_reply_serial): make public
12529         (_dbus_message_get_reply_serial): make public
12530
12531         * bus/connection.c (bus_connection_foreach): allow stopping
12532         iteration by returning FALSE from foreach function.
12533
12534         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12535         (dbus_connection_free_preallocated_send)
12536         (dbus_connection_preallocate_send): new API for sending a message
12537         without possibility of malloc failure.
12538         (dbus_connection_send_message): rename to just
12539         dbus_connection_send (and same for whole function family)
12540
12541         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12542
12543         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12544
12545         * bus/activation.c: handle/return errors
12546
12547         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12548
12549         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12550         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12551         (_dbus_result_from_errno): move to this file
12552
12553 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12554
12555         * dbus/dbus-marshal.c:
12556         (_dbus_marshal_set_string):
12557         Take a length argument so we can marshal the correct string
12558         length.
12559
12560         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12561         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12562         (_dbus_marshal_test):
12563         * dbus/dbus-marshal.h:
12564         Add support for marshalling and demarshalling dicts.
12565
12566         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12567         Add support for TYPE DICT.
12568
12569         * dbus/dbus-message.c: (set_string_field):
12570         Adjust header padding.
12571
12572         (dbus_message_append_args_valist), (dbus_message_append_dict),
12573         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12574         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12575         (check_message_handling), (check_have_valid_message):
12576         * dbus/dbus-message.h:
12577         Add functions for setting and getting dicts.
12578
12579         * dbus/dbus-protocol.h:
12580         Add DBUS_TYPE_DICT.
12581
12582         * dbus/dbus.h:
12583         Add dbus-dict.h
12584
12585         * doc/dbus-specification.sgml:
12586         Add information about how dicts are marshalled.
12587
12588         * test/data/invalid-messages/dict-with-nil-value.message:
12589         * test/data/invalid-messages/too-short-dict.message:
12590         * test/data/valid-messages/dict-simple.message:
12591         * test/data/valid-messages/dict.message:
12592         Add sample messages containing dicts.
12593
12594 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12595
12596         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12597
12598 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12599
12600         * dbus/Makefile.am:
12601         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12602         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12603         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12604         (dbus_dict_set_double), (dbus_dict_set_string),
12605         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12606         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12607         (dbus_dict_set_string_array), (_dbus_dict_test):
12608         * dbus/dbus-dict.h:
12609         Fix according to comments from Havoc.
12610
12611 2003-03-06  Michael Meeks  <michael@server.home>
12612
12613         * configure.in: if we don't have kde-config, disable have_qt.
12614
12615 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12616
12617         * dbus/Makefile.am:
12618         Add dbus-dict.[ch]
12619
12620         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12621         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12622         (dbus_dict_remove), (dbus_dict_get_value_type),
12623         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12624         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12625         (dbus_dict_put_double), (dbus_dict_put_string),
12626         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12627         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12628         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12629         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12630         (dbus_dict_get_double), (dbus_dict_get_string),
12631         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12632         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12633         (dbus_dict_get_string_array), (_dbus_dict_test):
12634         * dbus/dbus-dict.h:
12635         Add DBusDict implementation
12636
12637         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12638         * dbus/dbus-test.h:
12639         Add _dbus_dict_test
12640
12641 2003-03-04  Havoc Pennington  <hp@pobox.com>
12642
12643         * test/data/auth/*: adapt to changes
12644
12645         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12646         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12647         userid
12648
12649         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12650         more stuff from being in a context name, to make the protocol
12651         simpler to deal with
12652
12653         * dbus/dbus-errors.c (dbus_error_has_name): new function
12654         (dbus_error_is_set): new function
12655
12656         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12657         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12658
12659         * dbus/dbus-connection.c (dbus_connection_flush): also read
12660         messages during a flush operation
12661
12662         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12663
12664 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12665
12666         * configure.in: Check for gethostbyname on Solaris.
12667
12668         * dbus/dbus-transport.c: (_dbus_transport_open):
12669         Remove duplicate "tcp" entry.
12670
12671         * doc/dbus-specification.sgml:
12672         Clarify some things.
12673
12674 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12675
12676         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12677         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12678         (_dbus_keyring_test):
12679         * dbus/dbus-md5.c: (_dbus_md5_compute):
12680         * dbus/dbus-sha.c: (_dbus_sha_compute):
12681         Plug memory leaks.
12682
12683 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12684
12685         * README: Add some things.
12686
12687 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12688
12689         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12690         after case DBUS_TYPE_BOOELAN.
12691
12692 2003-03-02  Havoc Pennington  <hp@pobox.com>
12693
12694         * test/break-loader.c (randomly_set_extreme_ints): add test that
12695         sets really huge and small integers
12696
12697         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12698         that length of boolean array fits in the string, and that
12699         string has room for boolean value in single-bool case.
12700
12701         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12702         optional value to "ALIGN" command which is what to fill the
12703         alignment with.
12704
12705         * test/data/valid-messages/no-padding.message: add regression
12706         test for the message padding problem
12707
12708 2003-03-02  Havoc Pennington  <hp@pobox.com>
12709
12710         * dbus/dbus-message.c (decode_header_data): fix to always init
12711         message_padding, from Benjamin Dauvergne
12712
12713 2003-03-02  Havoc Pennington  <hp@pobox.com>
12714
12715         * configure.in: 0.5
12716
12717         * NEWS: Update.
12718
12719 2003-03-01  Joe Shaw  <joe@assbarn.com>
12720
12721         * configure.in: Check for "struct cmsgcred" and try to access its
12722         members for BSD-like unices.
12723
12724         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12725         _dbus_read_credentials_unix_socket().
12726         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12727         read() for reading the credential byte off the unix socket.  Use
12728         struct cmsgcred on systems that support it.
12729
12730 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12731
12732         * glib/Makefile.am:
12733         * configure.in:
12734         Make gthreads-2.0 dependency optional. Don't build thread test if
12735         its not found.
12736
12737 2003-02-27  Havoc Pennington  <hp@pobox.com>
12738
12739         * dbus/dbus-connection.c
12740         (dbus_connection_send_message_with_reply_and_block): fix doh!
12741         doh! doh! bug that resulted in never removing a reply from the
12742         queue, no wonder we called get_reply_serial so much ;-)
12743
12744         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12745         and client serial instead of demarshaling them every time
12746
12747 2003-02-27  Havoc Pennington  <hp@pobox.com>
12748
12749         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12750         more inlined, using dbus-string-private.h, speeds things up
12751         substantially
12752
12753         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12754         when freeing the string
12755         (_dbus_string_steal_data): fix for align offset
12756         (undo_alignment): new function
12757
12758 2003-02-26  Havoc Pennington  <hp@redhat.com>
12759
12760         All kinds of audit fixes from Owen, plus initial attempt to
12761         handle unaligned memory returned from malloc.
12762
12763         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12764         leave room for align_offset and nul byte
12765         (fixup_alignment): function to track an align_offset and
12766         ensure real->str is aligned
12767         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12768         to allow a nul byte plus align offset
12769         (_dbus_string_lock): fix overflow issue
12770         (_dbus_string_init_const_len): add assertions on sanity of len,
12771         assign allocated to be ALLOCATION_PADDING larger than len
12772         (set_length): fixup the overflow handling
12773         (_dbus_string_get_data_len): fix overflow in assertion
12774         (open_gap): detect overflow in size of gap to be opened
12775         (_dbus_string_lengthen): add overflow check
12776         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12777         (_dbus_string_append): add overflow check
12778         (_dbus_string_append_unichar): overflow
12779         (_dbus_string_delete): fix overflow in assertion
12780         (_dbus_string_copy_len): overflow in assertion
12781         (_dbus_string_replace_len): overflows in assertions
12782         (_dbus_string_find): change to implement in terms of
12783         _dbus_string_find_to
12784         (_dbus_string_find_to): assorted fixage
12785         (_dbus_string_equal_c_str): assert c_str != NULL,
12786         fix logic so the function works
12787         (_dbus_string_ends_with_c_str): fix overflow thingy
12788         (_dbus_string_base64_encode): overflow fix
12789         (_dbus_string_validate_ascii): overflow
12790         (_dbus_string_validate_nul): overflow
12791
12792 2003-02-26  Havoc Pennington  <hp@redhat.com>
12793
12794         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12795
12796 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12797
12798         * configure.in:
12799         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12800
12801         * dbus/dbus-connection.c:
12802         * dbus/dbus-connection.h:
12803         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12804         Add dbus_connection_set_wakeup_main_function and use it when queueing
12805         incoming and outgoing messages.
12806
12807
12808         * dbus/dbus-dataslot.c:
12809         Threadsafe usage of DBusDataSlotAllocator
12810
12811         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12812         dbus_new can fail.
12813
12814         * dbus/dbus-server-unix.c:
12815         Add todo comment
12816
12817         * glib/dbus-gmain.c:
12818         Implement the new wakeup functions for glib.
12819
12820         * glib/Makefile.am:
12821         * glib/test-thread-client.c:
12822         * glib/test-thread-server.c:
12823         * glib/test-thread.h:
12824         Initial cut at some thread test code. Not really done yet.
12825
12826 2003-02-26  Havoc Pennington  <hp@pobox.com>
12827
12828         * dbus/dbus-connection.c
12829         (dbus_connection_send_message_with_reply_and_block): fix crash
12830         where we ref'd the outgoing message instead of the returned reply
12831
12832         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12833         at the end of this function, so if we didn't need to read for
12834         authentication, we reinstall it for receiving messages
12835
12836         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12837         a NULL sender for peer-to-peer case
12838
12839         * dbus/dbus-transport-unix.c (check_read_watch): handle
12840         !authenticated case correctly
12841
12842         * glib/dbus-gmain.c: add support for DBusServer
12843
12844         * dbus/dbus-server.c: add data slot support
12845
12846         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
12847         return values and handle errors
12848
12849         * dbus/dbus-dataslot.c: factor out the data slot stuff from
12850         DBusConnection
12851
12852         * Doxyfile.in (INPUT): add glib subdir
12853
12854         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
12855         setup_with_g_main instead of hookup_with_g_main; write docs
12856
12857 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12858
12859         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
12860         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12861         * dbus/dbus-message.c: (dbus_message_append_boolean),
12862         (dbus_message_append_boolean_array),
12863         (dbus_message_get_args_valist), (_dbus_message_test):
12864         * dbus/dbus-message.h:
12865         * doc/dbus-specification.sgml:
12866         Various fixes as pointed out by Havoc.
12867
12868         * test/data/invalid-messages/bad-boolean-array.message:
12869         * test/data/invalid-messages/bad-boolean.message:
12870         Add invalid boolean value test cases.
12871
12872 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
12873
12874         * dbus/dbus-internals.c: (_dbus_type_to_string):
12875         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
12876         (_dbus_marshal_validate_arg):
12877         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12878         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12879         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
12880         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
12881         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
12882         (dbus_message_iter_get_double),
12883         (dbus_message_iter_get_boolean_array), (message_iter_test):
12884         * dbus/dbus-message.h:
12885         * dbus/dbus-protocol.h:
12886         * doc/dbus-specification.sgml:
12887         * test/data/valid-messages/lots-of-arguments.message:
12888         Add support for boolean and boolean array types.
12889
12890 2003-02-23  Havoc Pennington  <hp@pobox.com>
12891
12892         * dbus/dbus-keyring.c: finish most of this implementation and
12893         simple unit test
12894
12895         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
12896         these barf if the error isn't cleared to NULL
12897
12898         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
12899         (_dbus_create_directory): new function
12900
12901         * dbus/dbus-errors.c (dbus_set_error): fix warning
12902
12903         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
12904         (_dbus_string_hex_decode): new function
12905         (test_hex_roundtrip): test code
12906
12907         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
12908
12909         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
12910
12911         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
12912         the save-to-temp/rename trick to atomically write the new file
12913         (_dbus_string_parse_uint): new function
12914
12915 2003-02-22  Havoc Pennington  <hp@pobox.com>
12916
12917         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
12918
12919 2003-02-22  Havoc Pennington  <hp@pobox.com>
12920
12921         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
12922         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
12923
12924         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
12925
12926         * dbus/test/data/sha-1: add US government test suite for SHA-1
12927
12928 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12929
12930         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12931         Make string arrays NULL-terminated.
12932
12933         * dbus/dbus-memory.c: (dbus_free_string_array):
12934         * dbus/dbus-memory.h:
12935         New function for freeing NULL-terminated string arrays.
12936
12937         * dbus/dbus-message-builder.c: (append_quoted_string),
12938         (_dbus_message_data_load):
12939         Add support for array types.
12940
12941         * dbus/dbus-message.c: (check_message_handling):
12942         Add more types as test cases.
12943
12944         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
12945         (_dbus_string_parse_double):
12946         Add the start offset to the end offset.
12947
12948         * test/data/valid-messages/lots-of-arguments.message:
12949         New test message with lots of arguments.
12950
12951 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12952
12953         * dbus/dbus-message.c: (dbus_message_append_nil),
12954         (dbus_message_append_int32), (dbus_message_append_uint32),
12955         (dbus_message_append_double), (dbus_message_append_string),
12956         (dbus_message_append_int32_array),
12957         (dbus_message_append_uint32_array),
12958         (dbus_message_append_double_array),
12959         (dbus_message_append_byte_array),
12960         (dbus_message_append_string_array):
12961         Fix all out-of-memory handling in these functions.
12962
12963 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12964
12965         * dbus/dbus-message.c: (dbus_message_append_nil):
12966         Fix a silly.
12967
12968 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12969
12970         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12971         (dbus_message_append_nil), (dbus_message_append_int32_array),
12972         (dbus_message_append_uint32_array),
12973         (dbus_message_append_double_array),
12974         (dbus_message_append_byte_array),
12975         (dbus_message_append_string_array), (dbus_message_get_args_valist),
12976         (dbus_message_iter_get_int32_array),
12977         (dbus_message_iter_get_uint32_array),
12978         (dbus_message_iter_get_double_array),
12979         (dbus_message_iter_get_byte_array),
12980         (dbus_message_iter_get_string_array):
12981
12982         * dbus/dbus-message.h:
12983         Add functions for appending and getting arrays.
12984
12985 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
12986
12987         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
12988         element size at least 8 bytes, fixes mempool tests on
12989         64-bit machines.
12990
12991 2003-02-20  Alexander Larsson  <alexl@redhat.com>
12992
12993         * dbus/dbus-transport-unix.c (unix_do_iteration):
12994         Unlock the connection mutex during a blocking select call.
12995         Add todo about how we need a way to wake up the select.
12996
12997         * dbus/dbus-connection-internal.h:
12998         * dbus/dbus-connection.c:
12999         Add _dbus_connection_lock and _dbus_connection_unlock.
13000
13001 2003-02-19  Havoc Pennington  <hp@pobox.com>
13002
13003         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13004         Doxyfile.in, not Doxyfile
13005
13006         * dbus/dbus-keyring.c: do some hacking on this
13007
13008         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13009
13010         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13011         dbus_error_init
13012         (dbus_set_error): remove dbus_error_init, check for message ==
13013         NULL *before* we sprintf into it, and add @todo about including
13014         system headers in this file
13015
13016         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13017
13018         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13019
13020         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13021         get various bits of user information based on either username
13022         or user ID
13023         (_dbus_homedir_from_username): new function
13024
13025 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13026
13027         * configure.in:
13028         Add check for nonposix getpwnam_r
13029
13030         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13031         Align the pool element size to a sizeof (void *) boundary.
13032
13033         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13034         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13035         General Solaris fixes.
13036
13037         * test/data/valid-messages/simplest-manual.message:
13038         Explicitly state that we want little-endian packing.
13039
13040 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13041
13042         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13043
13044         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13045         Added to create a transport connecting using a tcp/ip socket.
13046
13047         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13048         to a tcp socket at given host and port.
13049         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13050         hostname and port.
13051
13052         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13053
13054         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13055         Added to create a server listening on a TCP/IP socket.
13056
13057 2003-02-19  Havoc Pennington  <hp@pobox.com>
13058
13059         Throughout: mop up all the Doxygen warnings and undocumented
13060         stuff.
13061
13062         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13063         to search any paths.
13064
13065         * dbus/dbus-threads.c: move global mutex initializers to
13066         dbus-internals.h, multiple prototypes was confusing doxygen
13067         besides being kind of ugly
13068
13069         * Doxyfile (PREDEFINED): have Doxygen define
13070         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13071         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13072         (do not abuse the feature! it's for stuff like the autogenerated
13073         macros in dbus-md5.c, not just for things you don't feel like
13074         documenting...)
13075
13076 2003-02-18  Havoc Pennington  <hp@pobox.com>
13077
13078         * dbus/dbus-string.c (_dbus_string_zero): new function
13079
13080         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13081         wrap it in some dbus-friendly API
13082
13083         * dbus/dbus-types.h: add 16-bit types
13084
13085 2003-02-18  Joe Shaw  <joe@assbarn.com>
13086
13087         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13088         credentials from our currently running process.
13089         (get_word): Fix a buglet where we were copying the entire length
13090         instead of relative to our position.
13091
13092         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13093         keys on the stack... it's 640k of data.
13094
13095         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13096         read the credentials byte off the socket, even if we don't have
13097         SO_PEERCRED.
13098         (_dbus_poll): Implement poll() using select() for systems which
13099         don't have it.
13100
13101         * glib/test-dbus-glib.c (main): Print out an error if no
13102         parameters are given.
13103
13104         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13105         can fallback to a secondary auth mechanism if the first fails.
13106
13107 2003-02-18  Havoc Pennington  <hp@pobox.com>
13108
13109         * AUTHORS: add Alex
13110
13111 2003-02-17  Havoc Pennington  <hp@pobox.com>
13112
13113         * doc/dbus-specification.sgml: lots of cosmetic
13114         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13115         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13116         s/server/bus/ (except in authentication section). Add a section
13117         "Message Bus Message Routing"
13118
13119 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13120
13121         Release 0.4
13122
13123         * NEWS: Update
13124
13125 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13126
13127         * doc/dbus-specification.sgml:
13128         Specification updates.
13129
13130 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13131
13132         * bus/activation.c: (bus_activation_init), (child_setup),
13133         (bus_activation_activate_service):
13134         * bus/activation.h:
13135         * bus/main.c: (main):
13136         Set DBUS_ADDRESS environment variable.
13137
13138         * dbus/dbus-errors.c: (dbus_set_error):
13139         Don't use va_copy since that's a C99 feature.
13140
13141         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13142         (_dbus_spawn_async):
13143         * dbus/dbus-sysdeps.h:
13144         Add child_setup_func to _dbus_spawn_async.
13145
13146         * doc/dbus-specification.sgml:
13147         Update specification.
13148
13149         * test/spawn-test.c: (setup_func), (main):
13150         Fix test.
13151
13152 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13153
13154         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13155         Added todo.
13156
13157 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13158
13159         * doc/.cvsignore:
13160         * doc/Makefile.am:
13161         * doc/dbus-test-plan.sgml:
13162         Add test plan document.
13163
13164         * test/Makefile.am:
13165         Fix distcheck.
13166
13167 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13168
13169         * dbus/dbus-message.c: (decode_header_data),
13170         (_dbus_message_loader_return_buffer):
13171         Set the header padding amount when loading a message.
13172
13173 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13174
13175         * bus/dispatch.c: (send_one_message):
13176         Only send broadcast messages to registered connections.
13177
13178         * dbus/dbus-message.c: (dbus_message_name_is):
13179         * dbus/dbus-message.h:
13180         New convenience function.
13181
13182         * dbus/dbus-transport-debug.c: (do_reading):
13183         Only dispatch one message per run.
13184
13185         * test/Makefile.am:
13186         * test/bus-test.c: (new_connection_callback), (die),
13187         (test_hello_client1_handler), (test_hello_client2_handler),
13188         (test_hello_replies), (main):
13189
13190         * test/bus-test-loop.[ch]:
13191         Add these.
13192
13193 2003-02-16  Havoc Pennington  <hp@pobox.com>
13194
13195         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13196         backward conditional
13197
13198 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13199
13200         * dbus/dbus-connection.c:
13201         Implement sent_message_with_reply. (with_reply_and block is still
13202         busted).
13203         Made dispatch_message not lose message if OOM.
13204
13205         * dbus/dbus-errors.h:
13206         Add NoReply error (for reply timeouts).
13207
13208 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13209
13210         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13211         Actually free keys and values when destroying hashtable.
13212
13213 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13214
13215         * dbus/dbus-auth.c: (client_try_next_mechanism):
13216         Plug a leak.
13217
13218         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13219         Return TRUE if there's no thread implementation around.
13220
13221         * glib/dbus-gmain.c: (free_source),
13222         (dbus_connection_hookup_with_g_main):
13223         Make sure to remove the GSource when the connection is finalized.
13224
13225 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13226
13227         * bus/dispatch.c: (bus_dispatch_message_handler):
13228         * dbus/dbus-errors.h:
13229         Return an error if someone tries to send a message to a service
13230         that doesn't exist.
13231
13232 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13233
13234         * bus/activation.c: (load_directory), (bus_activation_init),
13235         (bus_activation_activate_service):
13236         * bus/activation.h:
13237         * bus/driver.c:
13238         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13239         More work on the activation handling.
13240
13241         * dbus/dbus-errors.h:
13242         Add some error messages
13243
13244         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13245         * dbus/dbus-message.h:
13246         New function that creates an error message.
13247
13248         * dbus/dbus-protocol.h:
13249         Add ACTIVATE_SERVER message.
13250
13251         * dbus/dbus-server-unix.c: (unix_handle_watch),
13252         (_dbus_server_new_for_domain_socket):
13253         Call _dbus_fd_set_close_on_exec.
13254
13255         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13256         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13257         (_dbus_fd_set_close_on_exec):
13258         * dbus/dbus-sysdeps.h:
13259         Add _dbus_fd_set_close_on exec function. Also add function that checks
13260         that all open fds are set to close-on-exec and warns otherwise.
13261
13262         * dbus/dbus-transport-unix.c:
13263         (_dbus_transport_new_for_domain_socket):
13264         Call _dbus_fd_set_close_on_exec.
13265
13266 2003-02-16  Havoc Pennington  <hp@pobox.com>
13267
13268         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13269         allow people to avoid setting SIGPIPE to SIG_IGN
13270         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13271         we've been asked not to
13272
13273 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13274
13275         * dbus/dbus-list.c: (_dbus_list_append_link),
13276         (_dbus_list_prepend_link):
13277         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13278         (dbus_realloc):
13279         Warning fixes.
13280
13281 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13282
13283         * bus/Makefile.am:
13284         * bus/activation.c: (bus_activation_entry_free),
13285         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13286         * bus/activation.h:
13287         * bus/main.c: (main):
13288         Add simple activation support, doesn't work yet though.
13289
13290 2003-02-15   Zack Rusin  <zack@kde.org>
13291
13292         * qt/dbus-qthread.cpp:  small casting fix
13293
13294 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13295
13296         * dbus/dbus-errors.c: (dbus_set_error):
13297         * dbus/dbus-errors.h:
13298         Add a few errors and make dbus_set_error void.
13299
13300         * dbus/dbus-sysdeps.c:
13301         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13302         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13303         * dbus/dbus-sysdeps.h:
13304         Add _dbus_spawn_async.
13305
13306         * test/spawn-test.c: (main):
13307         Test for _dbus_spawn_async.
13308
13309 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13310
13311         * dbus/dbus-internals.h:
13312         Fix build without tests.
13313
13314         * dbus/dbus-list.c: (alloc_link):
13315         Fix a segfault when a malloc fails.
13316
13317         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13318         (dbus_malloc0), (dbus_realloc):
13319         Add support for malloc debugging.
13320
13321 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13322
13323         * dbus/dbus-threads.c:
13324         * dbus/dbus-threads.h:
13325         Add condvars. Remove static mutext from API.
13326         Implement static mutexes by initializing them from threads_init.
13327
13328         * glib/dbus-gthread.c:
13329         * qt/dbus-qthread.cpp:
13330         Update with the thread api changes.
13331
13332
13333         * dbus/dbus-list.c:
13334         * dbus/dbus-list.h:
13335         Turn StaticMutex into normal mutex + init function.
13336         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13337         _dbus_list_append_link, _dbus_list_prepend_link
13338
13339
13340         * dbus/dbus-sysdeps.c:
13341         * dbus/dbus-sysdeps.h:
13342         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13343         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13344
13345         * dbus/dbus-protocol.h:
13346         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13347
13348         * dbus/dbus-message.c:
13349         Make ref/unref atomic.
13350         Fix some docs.
13351
13352         * dbus/dbus-connection-internal.h:
13353         * dbus/dbus-connection.c:
13354         * dbus/dbus-connection.h:
13355         Make threadsafe.
13356         Change _peek to _borrow,_return & _steal_borrowed.
13357         Change disconnect callback to event.
13358         Make dbus_connection_dispatch_messages reentrant.
13359
13360         * dbus/dbus-transport.c:
13361         Don't ref the connection on calls to the transport
13362         implementation.
13363
13364         * dbus/dbus-message-handler.c:
13365         Make threadsafe.
13366
13367         * glib/dbus-gmain.c:
13368         Don't use peek_message anymore
13369
13370         * test/Makefile.am:
13371         * test/debug-thread.c:
13372         * test/debug-thread.h:
13373         Simple thread implementation that asserts() on deadlocks in
13374         single-threaded code.
13375
13376         * test/bus-test.c:
13377         (main) Call debug_threads_init.
13378
13379         * test/watch.c:
13380         Use disconnect message instead of disconnect callback.
13381
13382         * bus/connection.c:
13383         * bus/connection.h:
13384         Don't call dbus_connection_set_disconnect_function. Instead export
13385         bus_connection_disconnect.
13386
13387         * bus/dispatch.c:
13388         Call bus_connection_disconnect when we get a disconnected message.
13389
13390 2003-02-15  Havoc Pennington  <hp@pobox.com>
13391
13392         * dbus/dbus-message.c (dbus_message_new): fool around with the
13393         docs
13394
13395 2003-02-14  Havoc Pennington  <hp@pobox.com>
13396
13397         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13398
13399         * dbus/dbus-memory.c: fail if the debug functions indicate we
13400         should
13401
13402         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13403         (_dbus_decrement_fail_alloc_counter): debug functions to
13404         simulate memory allocation failures
13405
13406 2003-02-14  Havoc Pennington  <hp@pobox.com>
13407
13408         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13409         to DBusError
13410
13411 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13412
13413         * bus/driver.c: (bus_driver_handle_hello):
13414         * bus/driver.h:
13415         * bus/services.c: (bus_service_lookup):
13416         Reorder message sending so we get a more sane order.
13417
13418         * test/bus-test.c: (message_handler):
13419         Fix tyop.
13420
13421 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13422
13423         * bus/driver.c: (bus_driver_send_service_deleted),
13424         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13425         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13426         (bus_driver_send_welcome_message),
13427         (bus_driver_handle_list_services),
13428         (bus_driver_handle_acquire_service),
13429         (bus_driver_handle_service_exists):
13430         * dbus/dbus-bus.c: (dbus_bus_register_client),
13431         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13432         * dbus/dbus-errors.c: (dbus_result_to_string):
13433         * dbus/dbus-errors.h:
13434         * dbus/dbus-message.c: (dbus_message_append_args),
13435         (dbus_message_append_args_valist), (dbus_message_get_args),
13436         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13437         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13438         (dbus_message_iter_get_byte_array),
13439         (dbus_message_iter_get_string_array), (message_iter_test),
13440         (check_message_handling), (_dbus_message_test):
13441         * dbus/dbus-message.h:
13442         * test/bus-test.c: (main):
13443         Change fields to arguments in messages, so that they won't be
13444         confused with header fields.
13445
13446         * glib/test-dbus-glib.c: (main):
13447         Remove append_fields from hello message.
13448
13449 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13450
13451         * dbus/dbus-errors.c:
13452         * dbus/dbus-message.c:
13453         * dbus/dbus-string.c:
13454         Documentation fixes.
13455
13456 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13457
13458         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13459         (remove_timeout):
13460         Implement support for timeouts in dbus-glib.
13461
13462 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13463
13464         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13465         * dbus/dbus-message.c: (process_test_subdir):
13466         * test/break-loader.c: (find_breaks_based_on):
13467         Plug some memory leaks.
13468
13469 2003-02-13  Richard Hult  <rhult@codefactory.se>
13470
13471         * bus/main.c: Fix build.
13472
13473         * dbus/dbus-errors.h:
13474         * dbus/dbus-errors.c: Fix copyright for Anders.
13475
13476 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13477
13478         * bus/Makefile.am:
13479         Add utils.[ch]
13480
13481         * bus/connection.c: (bus_connection_foreach):
13482         Fix a warning.
13483
13484         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13485         (unescape_string), (new_section), (parse_section_start),
13486         (parse_key_value), (report_error), (bus_desktop_file_load),
13487         (bus_desktop_file_get_string):
13488         * bus/desktop-file.h:
13489         Use DBusError for error reporting.
13490
13491         * bus/dispatch.c: (send_one_message),
13492         (bus_dispatch_message_handler):
13493         * bus/driver.c: (bus_driver_send_service_deleted),
13494         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13495         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13496         (bus_driver_send_welcome_message),
13497         (bus_driver_handle_list_services),
13498         (bus_driver_handle_acquire_service),
13499         (bus_driver_handle_service_exists):
13500         * bus/loop.c: (bus_loop_run):
13501         * bus/main.c:
13502         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13503
13504         * bus/utils.c: (bus_wait_for_memory):
13505         * bus/utils.h:
13506         New files with general utility functions.
13507
13508         * dbus/dbus-internals.h:
13509         Remove _DBUS_HANDLE_OOM.
13510
13511 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13512
13513         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13514         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13515         * dbus/dbus-errors.h:
13516         Add DBusError structure.
13517
13518 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13519
13520         * test/data/valid-messages/standard-acquire-service.message:
13521         * test/data/valid-messages/standard-hello.message:
13522         * test/data/valid-messages/standard-list-services.message:
13523         * test/data/valid-messages/standard-service-exists.message:
13524         Add some standard messages.
13525
13526 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13527
13528         * bus/driver.c: (bus_driver_send_welcome_message),
13529         (bus_driver_handle_list_services),
13530         (bus_driver_handle_acquire_service),
13531         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13532         Update for API changes in libdbus.
13533
13534         * dbus/dbus-message.c: (dbus_message_new_reply):
13535         * dbus/dbus-message.h:
13536         Remove the name argument. The spec states that replies shouldn't
13537         have a name.
13538
13539 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13540
13541         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13542         (report_error), (bus_desktop_file_load), (lookup_section),
13543         (lookup_line), (bus_desktop_file_get_raw),
13544         (bus_desktop_file_get_string):
13545         * bus/desktop-file.h:
13546         Some fixes, and new functions for getting a key value from a section.
13547
13548 2003-02-13  Havoc Pennington  <hp@pobox.com>
13549
13550         * test/data/auth/fail-after-n-attempts.auth-script: new test
13551
13552         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13553         reject the client.
13554
13555 2003-02-13  Havoc Pennington  <hp@pobox.com>
13556
13557         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13558         dbus_credentials_match were backward
13559
13560         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13561         NO_CREDENTIALS and ROOT_CREDENTIALS
13562
13563         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13564         into here. Never process more commands after we've reached an
13565         end state; store further data as unused bytes.
13566
13567         * test/data/auth/*: add more auth tests
13568
13569         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13570         command to match exact string and EXPECT_UNUSED to match unused
13571         bytes
13572
13573         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13574
13575 2003-02-12  Havoc Pennington  <hp@pobox.com>
13576
13577         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13578         \r off of popped lines
13579
13580         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13581         scripts
13582
13583         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13584         SEND, append \r\n
13585
13586 2003-02-12  Havoc Pennington  <hp@pobox.com>
13587
13588         * dbus/Makefile.am: remove break-loader from the build, since it
13589         moved.
13590
13591         * configure.in: add --enable-gcov to turn on coverage profiling
13592         flags and disable optimization
13593
13594 2003-02-10  Havoc Pennington  <hp@pobox.com>
13595
13596         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13597         initial cut at test framework for DBusAuth from laptop.
13598         Doesn't quite work yet but it compiles and I need to get
13599         it off the 266mhz laptop. ;-)
13600
13601         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13602         fix a memleak in error case
13603
13604 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13605
13606         * bus/Makefile.am:
13607         * bus/desktop-file.c:
13608         * bus/desktop-file.h:
13609         Add a desktop file parser.
13610
13611 2003-02-11  Zack Rusin  <zack@kde.org>
13612
13613         * qt/message.[h|cpp]: sample implementation
13614         of the KDE wrapper for DBusMessage
13615
13616 2003-02-09  Zack Rusin  <zack@kde.org>
13617
13618         * test/bus-test.c: make_it_compile
13619         * doc/dbus-specification.sgml: minimal semantic fix
13620
13621 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13622
13623         Release 0.3
13624
13625         * NEWS: Update
13626
13627 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13628
13629         * dbus/Makefile.am:
13630         * dbus/dbus-break-loader.c:
13631         * test/Makefile.am:
13632         * test/break-loader.c:
13633         Move dbus-break-loader to test/ and rename it to break-loader.
13634
13635 2003-02-02  Havoc Pennington  <hp@pobox.com>
13636
13637         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13638         for code to manage cookies in your home directory
13639
13640         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13641
13642         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13643         to authenticate, then disconnect the client.
13644
13645 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13646
13647         * dbus/dbus-message.c (dbus_message_append_fields):
13648         Correct docs.
13649
13650 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13651
13652         * doc/dbus-specification.sgml:
13653         Update address format section.
13654
13655 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13656
13657         * test/Makefile.am:
13658         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13659         (message_handler), (new_connection_callback), (loop_quit),
13660         (loop_run), (main):
13661         Add bus test.
13662
13663 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13664
13665         * bus/driver.c: (bus_driver_handle_service_exists):
13666         Simplify the code a bit.
13667
13668         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13669         Fix a silly.
13670
13671 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13672
13673         * bus/Makefile.am:
13674         Add libdbus-daemon.la and link to it.
13675
13676 2003-02-01  James Willcox  <jwillcox@gnome.org>
13677
13678         * bus/driver.c: (bus_driver_handle_own_service):
13679         Actually include the service reply code in the message.
13680
13681 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13682
13683         * bus/driver.c: (bus_driver_handle_service_exists):
13684         Don't unref the incoming message.
13685
13686 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13687
13688         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13689
13690 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13691
13692         * dbus/dbus-server.c: (dbus_server_listen):
13693         * dbus/dbus-transport.c: (_dbus_transport_open):
13694         ifdef out the calls to the debug transport and server.
13695
13696 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13697
13698         * dbus/dbus-watch.c (dbus_watch_get_flags):
13699         Add note in the docs that ERROR or HANGUP won't be returned
13700         and are assumed always on.
13701
13702         * glib/dbus-gmain.c (add_watch):
13703         Always add IO_ERR | IO_HUP
13704
13705         * dbus/dbus-message.h:
13706         Add semicolon after dbus_message_iter_get_string_array().
13707         Makes qt code build again
13708
13709 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13710
13711         * bus/driver.c: (create_unique_client_name),
13712         (bus_driver_handle_hello):
13713         Don't take a name, just use a numeric id to identify
13714         each client.
13715
13716         * dbus/Makefile.am:
13717         * dbus/dbus-bus.c: (dbus_bus_register_client),
13718         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13719         * dbus/dbus-bus.h:
13720         Add new convenience functions for communicating with the bus.
13721
13722         * dbus/dbus-message.h:
13723
13724         * dbus/dbus-protocol.h:
13725         Fix a typo.
13726
13727 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13728
13729         * dbus/dbus-message.c (dbus_message_append_fields):
13730         Add some more doc comments.
13731
13732 2003-02-01  Havoc Pennington  <hp@pobox.com>
13733
13734         * dbus/dbus-break-loader.c (randomly_modify_length): change
13735         a 4-byte value in the message as if it were a length
13736
13737         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13738         execute bit on saved files
13739
13740 2003-02-01  Havoc Pennington  <hp@pobox.com>
13741
13742         * dbus/dbus-break-loader.c (main): new program to find messages
13743         that break the loader.
13744
13745         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13746         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13747
13748         * dbus/dbus-string.c (_dbus_string_set_byte): new
13749
13750 2003-01-31  Havoc Pennington  <hp@pobox.com>
13751
13752         * dbus/dbus-message.c: refactor the test code to be more general,
13753         in preparation for writing a "randomly permute test cases to
13754         try to break the loader" program.
13755
13756 2003-01-31  Havoc Pennington  <hp@pobox.com>
13757
13758         * doc/dbus-specification.sgml: work on the specification
13759
13760         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13761         the protocol version of the message.
13762
13763         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13764         no longer specifies that.
13765         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13766         1/2/3/4)
13767
13768         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13769         "break" for DBUS_TYPE_NIL, remove @todo
13770
13771 2003-01-31  Havoc Pennington  <hp@pobox.com>
13772
13773         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13774         just set_is_error/get_is_error as this is a commonly-used
13775         function, and write docs.
13776
13777 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13778
13779         * dbus/dbus-address.c: (dbus_address_entry_free):
13780         Free key and value lists.
13781
13782         * dbus/dbus-internals.c: (_dbus_type_to_string):
13783         Add the types we didn't have.
13784
13785         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13786         (_dbus_marshal_validate_arg):
13787         Add NIL types.
13788
13789         * dbus/dbus-message.c: (dbus_message_set_sender):
13790         Remove todo about being able to set sender to NULL.
13791
13792         (dbus_message_set_is_error_reply),
13793         (dbus_message_get_is_error_reply):
13794         * dbus/dbus-message.h:
13795         New functions.
13796
13797         * dbus/dbus-protocol.h:
13798         Add error reply flag.
13799
13800         * test/data/valid-messages/opposite-endian.message:
13801         Add NIL type to test.
13802
13803 2003-01-31  Havoc Pennington  <hp@pobox.com>
13804
13805         * doc/dbus-specification.sgml: fully specify the header.  Add
13806         flags and major protocol version, and change header/body len to
13807         unsigned.
13808
13809         * dbus/dbus-message-builder.c (append_saved_length): append length
13810         as uint32
13811
13812         * dbus/dbus-message.c (dbus_message_create_header): change header
13813         length and body length to unsigned. Add the new fields from the
13814         spec
13815         (_dbus_message_loader_return_buffer): unsigned header/body len
13816
13817 2003-01-30  Havoc Pennington  <hp@pobox.com>
13818
13819         * dbus/dbus-auth.c: rework to use only REJECTED, no
13820         MECHANISMS
13821
13822         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13823         use REJECTED, suggested by Mark McLoughlin
13824
13825 2003-01-30  Havoc Pennington  <hp@pobox.com>
13826
13827         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13828         a better way to report errors here. e.g.  "unix address lacks
13829         path" or something. also "no such file" when the path doesn't
13830         exist, etc.
13831
13832         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13833         leaking list nodes
13834         (dbus_parse_address): add @todo about documenting address format,
13835         and allowing , and ; to be escaped
13836
13837 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13838
13839         * dbus/Makefile.am:
13840         Add dbus-address.[ch]
13841
13842         * dbus/dbus-address.c: (dbus_address_entry_free),
13843         (dbus_address_entries_free), (create_entry),
13844         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
13845         (dbus_parse_address), (_dbus_address_test):
13846         * dbus/dbus-address.h:
13847         New files for dealing with address parsing.
13848
13849         * dbus/dbus-connection.c:
13850         Document timeout functions.
13851
13852         * dbus/dbus-message.c:
13853         Document dbus_message_new_from_message.
13854
13855         * dbus/dbus-server-debug.c:
13856         Document.
13857
13858         * dbus/dbus-server.c: (dbus_server_listen):
13859         Parse address and use correct server implementation.
13860
13861         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
13862         * dbus/dbus-string.h:
13863         New function with test.
13864
13865         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
13866         * dbus/dbus-test.h:
13867         Add address tests.
13868
13869         * dbus/dbus-transport-debug.c:
13870         Document.
13871
13872         * dbus/dbus-transport.c: (_dbus_transport_open):
13873         Parse address and use correct transport implementation.
13874
13875 2003-01-30  Havoc Pennington  <hp@pobox.com>
13876
13877         * dbus/dbus-message.c: use message->byte_order instead of
13878         DBUS_COMPILER_BYTE_ORDER throughout.
13879         (dbus_message_create_header): pad header to align the
13880         start of the body of the message to 8-byte boundary
13881
13882         * dbus/dbus-marshal.h: make all the demarshalers take const
13883         DBusString arguments.
13884
13885         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
13886         validate message args here, so we don't have to do slow validation
13887         later, and so we catch bad messages as they are incoming. Also add
13888         better checks on header_len and body_len. Also fill in
13889         message->byte_order
13890
13891         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
13892         implemented properly)
13893         (_dbus_string_validate_nul): new function to check all-nul
13894
13895         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
13896         get_arg_end_pos and remove all validation
13897         (_dbus_marshal_validate_arg): actually do validation here.
13898
13899 2003-01-29  Havoc Pennington  <hp@pobox.com>
13900
13901         * dbus/dbus-message.c (check_message_handling): fix assertion
13902         failure on set_client_serial
13903
13904 2003-01-28  Havoc Pennington  <hp@pobox.com>
13905
13906         * dbus/dbus-server-debug.c: Add doc section comments
13907
13908         * dbus/dbus-transport-debug.c: add doc section comments
13909
13910 2003-01-28  Havoc Pennington  <hp@redhat.com>
13911
13912         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
13913         the reverse order from how I had it
13914         (_dbus_string_base64_encode): reverse encoding order. I was
13915         basically byteswapping everything during encoding.
13916
13917 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
13918
13919         * dbus/dbus-connection-internal.h:
13920         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
13921         (_dbus_connection_remove_timeout):
13922         Add functions for adding and removing timeouts.
13923
13924         * dbus/dbus-message.c: (dbus_message_new_from_message):
13925         Add new function that takes a message and creates an exact
13926         copy of it, but with the refcount set to 1.
13927         (check_message_handling):
13928         Fix build error.
13929
13930         * dbus/dbus-server-protected.h:
13931         * dbus/dbus-server.c: (_dbus_server_init_base),
13932         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
13933         (dbus_server_set_timeout_functions):
13934         (_dbus_server_remove_timeout):
13935         New functions so that a server can add and remove timeouts.
13936
13937         (dbus_server_listen):
13938         Add commented out call to dbus_server_debug_new.
13939
13940         * dbus/dbus-timeout.c: (_dbus_timeout_new):
13941         Actually set the handler, doh.
13942
13943         * dbus/dbus-transport.c: (_dbus_transport_open):
13944         Add commented out call to dbus_transport_debug_client_new.
13945
13946         * dbus/Makefile.am:
13947         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
13948
13949 2003-01-28  Havoc Pennington  <hp@pobox.com>
13950
13951         * dbus/dbus-message.c (check_message_handling): function to check
13952         on the loaded message, iterates over it etc.
13953
13954 2003-01-28  Havoc Pennington  <hp@pobox.com>
13955
13956         * test/Makefile.am (dist-hook): fix make distdir
13957
13958         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
13959
13960 2003-01-27  Havoc Pennington  <hp@pobox.com>
13961
13962         * dbus/dbus-mempool.c (time_for_size): replace printf with
13963         _dbus_verbose
13964
13965         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
13966         empty lines; fix the SAVE_LENGTH stuff to be
13967         START_LENGTH/END_LENGTH so it actually works; couple other
13968         bugfixes
13969
13970         * test/Makefile.am (dist-hook): add dist-hook for .message files
13971
13972         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
13973         can be constant or locked.
13974         (_dbus_string_free): allow freeing a const string as
13975         documented/intended
13976
13977         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
13978
13979         * dbus/dbus-test-main.c (main): take an argument which is the
13980         directory containing test data
13981
13982         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
13983         argument to this and load all the messages in test/data/
13984         checking that they can be loaded or not loaded as appropriate.
13985
13986 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
13987
13988         * bus/dispatch.c: (bus_dispatch_message_handler):
13989         Dispatch messages sent to services.
13990
13991         * bus/driver.c: (bus_driver_send_service_deleted),
13992         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13993         (bus_driver_send_service_acquired):
13994         Add helper functions for sending service related messages.
13995
13996         (bus_driver_send_welcome_message):
13997         Send HELLO_REPLY instead of WELCOME.
13998
13999         (bus_driver_handle_list_services):
14000         Send LIST_SERVICES_REPLY instead of SERVICES.
14001
14002         (bus_driver_handle_own_service),
14003         (bus_driver_handle_service_exists):
14004         New message handlers.
14005
14006         (bus_driver_handle_message):
14007         Invoke new message handlers.
14008
14009         (bus_driver_remove_connection):
14010         Don't remove any services here since that's done automatically
14011         by bus_service_remove_owner now.
14012
14013         * bus/driver.h:
14014         New function signatures.
14015
14016         * bus/services.c: (bus_service_add_owner):
14017         Send ServiceAcquired message if we're the only primary owner.
14018
14019         (bus_service_remove_owner):
14020         Send ServiceAcquired/ServiceLost messages.
14021
14022         (bus_service_set_prohibit_replacement),
14023         (bus_service_get_prohibit_replacement):
14024         Functions for setting prohibit replacement.
14025
14026         (bus_service_has_owner):
14027         New function that checks if a connection is in the owner queue of
14028         a certain service.
14029
14030         * bus/services.h:
14031         Add new function signatures.
14032
14033         * dbus/dbus-list.c: (_dbus_list_test):
14034         Add tests for _dbus_list_remove_last and traversing the list backwards.
14035
14036         * dbus/dbus-list.h:
14037         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14038         go any further, so return NULL then.
14039
14040         * dbus/dbus-protocol.h:
14041         Add new messages, service flags and service replies.
14042
14043 2003-01-26  Havoc Pennington  <hp@pobox.com>
14044
14045         * dbus/dbus-message-builder.c: implement, completely untested.
14046
14047         * test/data/*: add data to be used in testing.
14048         ".message" files are our simple loadable text format.
14049         ".message-raw" will be binary dumps of messages.
14050
14051         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14052
14053 2003-01-26  Havoc Pennington  <hp@pobox.com>
14054
14055         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14056
14057         * dbus/dbus-errors.c (dbus_result_to_string): add
14058         file errors
14059
14060         * dbus/dbus-message-builder.c: new file, will contain code to load
14061         up messages from files. Not implemented yet.
14062
14063 2003-01-26  Havoc Pennington  <hp@pobox.com>
14064
14065         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14066         the sender by setting to NULL
14067
14068 2003-01-26  Havoc Pennington  <hp@pobox.com>
14069
14070         The unit tests pass, but otherwise untested.  If it breaks, the
14071         tests should have been better. ;-)
14072
14073         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14074         the connection.
14075
14076         * dbus/dbus-message.c: redo everything so we maintain
14077         message->header as the only copy of the various fields.
14078         This avoids the possibility of out-of-memory in some cases,
14079         for example dbus_message_lock() can't run out of memory anymore,
14080         and avoids extra copying. Figured I may as well go ahead and do
14081         this since it was busted for dbus_message_lock to not return
14082         failure on OOM, and dbus_message_write_header was totally
14083         unchecked for OOM. Also fixed some random other bugs.
14084
14085         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14086         that strings are nul-terminated. Also, end_pos can be equal
14087         to string length just not greater than, I think.
14088         (_dbus_marshal_set_int32): new function
14089         (_dbus_marshal_set_uint32): new function
14090         (_dbus_marshal_set_string): new function
14091
14092         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14093         a warning, init timeout_list to NULL
14094         (dbus_connection_send_message): don't use uninitialized variable
14095         "serial"
14096
14097         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14098
14099 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14100
14101         * bus/driver.c: (bus_driver_handle_hello),
14102         (bus_driver_send_welcome_message):
14103         Plug leaks
14104
14105 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14106
14107         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14108         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14109         (dbus_connection_unref):
14110         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14111         * dbus/dbus-message.c: (dbus_message_unref),
14112         Plug memory leaks.
14113
14114         (dbus_message_get_fields):
14115         Remove debugging printout.
14116
14117         (_dbus_message_loader_return_buffer):
14118         Don't store the header string.
14119
14120         (_dbus_message_test):
14121         Plug leaks.
14122
14123 2003-01-26  Richard Hult  <rhult@codefactory.se>
14124
14125         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14126         the file descriptor list, since it can change under us.
14127
14128 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14129
14130         * glib/dbus-gmain.c: (dbus_connection_prepare),
14131         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14132         (remove_watch), (dbus_connection_hookup_with_g_main):
14133         Rewrite the glib handling to use its own GSource instead of a
14134         GIOChannel so we can catch messages put in the queue while waiting
14135         for a reply.
14136
14137 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14138
14139         * bus/Makefile.am:
14140         * bus/connection.c: (connection_disconnect_handler),
14141         (connection_watch_callback), (bus_connection_setup):
14142         * bus/dispatch.c: (send_one_message),
14143         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14144         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14145         * bus/dispatch.h:
14146         * bus/driver.c: (bus_driver_send_service_deleted),
14147         (bus_driver_send_service_created), (bus_driver_handle_hello),
14148         (bus_driver_send_welcome_message),
14149         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14150         (bus_driver_handle_message):
14151         * bus/driver.h:
14152         Refactor code, put the message dispatching in its own file. Use
14153         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14154         is disconnected.
14155
14156 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14157
14158         * dbus/dbus-internals.h:
14159         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14160
14161         * dbus/dbus-message.c: (dbus_message_get_sender):
14162         * dbus/dbus-message.h:
14163         Implement dbus_message_get_sender.
14164
14165         * dbus/dbus-protocol.h:
14166         Add message and service defines.
14167
14168 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14169
14170         * dbus/dbus-connection.c: (dbus_connection_send_message):
14171         * dbus/dbus-message-internal.h:
14172         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14173         (dbus_message_write_header):
14174         Remove _dbus_messag_unlock and don't set the client serial on a
14175         message if one already exists.
14176
14177 2003-01-24  Havoc Pennington  <hp@pobox.com>
14178
14179         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14180         list_pool
14181
14182         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14183         on OOM
14184
14185 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14186
14187         * dbus/dbus-list.c: (alloc_link), (free_link):
14188         Use a memory pool for the links.
14189
14190 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14191
14192         * bus/connection.c: (bus_connection_foreach):
14193         * bus/connection.h:
14194         Add new bus_connection_foreach function.
14195
14196         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14197         Add function that broadcasts a message to all clients.
14198
14199         (bus_driver_send_service_created), (bus_driver_handle_hello),
14200         (bus_driver_send_welcome_message),
14201         (bus_driver_handle_list_services), (bus_driver_message_handler):
14202         Implement functions that take care of listing services, and notifying
14203         clients when new services are created.
14204
14205         * bus/services.c: (bus_services_list):
14206         * bus/services.h:
14207         Add new function that returns an array of strings with the currently
14208         registered services.
14209
14210         * glib/dbus-glib.h:
14211         * glib/dbus-gmain.c:
14212         Update copyright year.
14213
14214 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14215
14216         * dbus/dbus-connection.c: (dbus_connection_send_message):
14217         Unlock the message in case it was sent earlier.
14218
14219         (dbus_connection_send_message_with_reply_and_block):
14220         Remove the reply message from the list.
14221
14222         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14223         Set array_len and new_pos correctly.
14224
14225         (_dbus_marshal_test):
14226         Remove debug output.
14227
14228         * dbus/dbus-message-internal.h:
14229         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14230         New function that returns the reply serial.
14231
14232         (_dbus_message_unlock):
14233         New function that unlocks a message and resets its header.
14234
14235         (dbus_message_append_string_array),
14236         (dbus_message_get_fields_valist),
14237         (dbus_message_iter_get_field_type),
14238         (dbus_message_iter_get_string_array),
14239         (dbus_message_get_fields),
14240         (dbus_message_append_fields_valist):
14241         Handle string arrays.
14242
14243         (dbus_message_set_sender):
14244         Make this function public since the bus daemon needs it.
14245
14246         (decode_header_data):
14247         Set the reply serial to -1 initially.
14248
14249         * dbus/dbus-message.h:
14250         Add dbus_message_set_sender.
14251
14252 2003-01-24  Havoc Pennington  <hp@pobox.com>
14253
14254         * doc/dbus-specification.sgml: add some stuff
14255
14256 2003-01-22  Havoc Pennington  <hp@pobox.com>
14257
14258         * doc/dbus-specification.sgml: Start to document the protocol.
14259
14260 2003-01-22  Havoc Pennington  <hp@pobox.com>
14261
14262         * dbus/dbus-connection.c
14263         (dbus_connection_send_message_with_reply_and_block): add some @todo
14264
14265         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14266
14267 2003-01-21  Havoc Pennington  <hp@pobox.com>
14268
14269         (patch untested because can't compile)
14270
14271         * bus/driver.c (create_unique_client_name): make this function
14272         never recycle client names. Also, caller should initialize
14273         the DBusString.
14274
14275         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14276
14277 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14278
14279         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14280         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14281         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14282         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14283         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14284         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14285         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14286         * dbus/dbus-marshal.h:
14287         * dbus/dbus-protocol.h:
14288         Add support for marshalling and demarshalling integer, double
14289         and string arrays.
14290
14291 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14292
14293         * bus/Makefile.am:
14294         Add driver.[ch]
14295
14296         * bus/connection.c: (connection_disconnect_handler):
14297         Remove the connection from the bus driver's list.
14298
14299         (connection_watch_callback): Dispatch messages.
14300
14301         (free_connection_data): Free connection name.
14302
14303         (bus_connection_setup): Add connection to the bus driver's list.
14304         (bus_connection_remove_owned_service):
14305         (bus_connection_set_name), (bus_connection_get_name):
14306         Add functions for setting and getting the connection's name.
14307
14308         * bus/connection.h:
14309         Add function headers.
14310
14311         * bus/driver.c: (create_unique_client_name),
14312         (bus_driver_handle_hello_message),
14313         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14314         (bus_driver_add_connection), (bus_driver_remove_connection):
14315         * bus/driver.h:
14316         * bus/main.c:
14317         * bus/services.c: (bus_service_free):
14318         * bus/services.h:
14319         New file that handles communication and registreation with the bus
14320         itself.
14321
14322 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14323
14324         * dbus/dbus-connection.c: (dbus_connection_send_message):
14325         Add a new client_serial parameter.
14326
14327         (dbus_connection_send_message_with_reply):
14328         Remove a @todo since we've implemented the blocking function.
14329
14330         (dbus_connection_send_message_with_reply_and_block):
14331         New function that sends a message and waits for a reply and
14332         then returns the reply.
14333
14334         * dbus/dbus-connection.h:
14335         Add new functions.
14336
14337         * dbus/dbus-errors.c: (dbus_result_to_string):
14338         * dbus/dbus-errors.h:
14339         Add new DBUS_RESULT.
14340
14341         * dbus/dbus-message-internal.h:
14342         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14343         (_dbus_message_set_sender), (dbus_message_write_header),
14344         (dbus_message_new_reply), (decode_header_data),
14345         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14346         * dbus/dbus-message.h:
14347         Add new functions that set the reply serial and sender.
14348         Also marshal and demarshal them correctly and add test.
14349
14350         * dbus/dbus-protocol.h:
14351         Add new DBUS_MESSAGE_TYPE_SENDER.
14352
14353         * glib/dbus-glib.h:
14354         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14355         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14356         (dbus_connection_hookup_with_g_main):
14357         * glib/test-dbus-glib.c: (main):
14358         Rewrite to use GIOChannel and remove the GSource crack.
14359
14360         * test/echo-client.c: (main):
14361         * test/watch.c: (check_messages):
14362         Update for changed APIs
14363
14364 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14365
14366         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14367
14368         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14369         Create a DBusTimeoutList.
14370         (dbus_connection_set_timeout_functions): Add new function to
14371         set timeout callbacks
14372
14373         * dbus/dbus-connection.h: Add public DBusTimeout API.
14374
14375         * dbus/dbus-message.c: (dbus_message_get_service):
14376         * dbus/dbus-message.h:  New function.
14377
14378         * dbus/dbus-server.c: Fix small doc typo.
14379
14380         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14381
14382 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14383
14384         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14385         of the string, just as long as specified.
14386
14387 2003-01-19  Havoc Pennington  <hp@pobox.com>
14388
14389         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14390         new function
14391
14392         * dbus/dbus-server.c (dbus_server_set_max_connections)
14393         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14394         keep track of current number of connections, and add API for
14395         setting a max (but haven't implemented enforcing the max yet)
14396
14397 2003-01-18  Havoc Pennington  <hp@pobox.com>
14398
14399         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14400         reading/writing if read_watch != NULL or write_watch != NULL.
14401
14402         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14403         the message loader code to actually load message->header and
14404         message->body into the newly-created message.
14405
14406         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14407         in OOM case
14408
14409         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14410         (dbus_connection_get_max_message_size)
14411         (dbus_connection_set_max_live_messages_size)
14412         (dbus_connection_get_max_live_messages_size): implement some
14413         resource limitation functions
14414
14415         * dbus/dbus-resources.c: new file implementing some of the
14416         resource limits stuff
14417
14418         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14419         missing docs, add @todo to handle OOM etc.
14420
14421         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14422         docs
14423
14424 2003-01-18  Havoc Pennington  <hp@pobox.com>
14425
14426         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14427         connection if it hasn't been already.
14428
14429         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14430         replace with DisconnectFunction.
14431
14432 2003-01-18  Havoc Pennington  <hp@pobox.com>
14433
14434         Building --disable-verbose-mode --disable-asserts --disable-tests
14435         cuts the library from 112K to 45K or so
14436
14437         * configure.in: check for varargs macro support,
14438         add --enable-verbose-mode, --enable-asserts.
14439
14440         * dbus/dbus-internals.h (_dbus_assert): support
14441         DBUS_DISABLE_ASSERT
14442         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14443
14444 2003-01-18  Havoc Pennington  <hp@pobox.com>
14445
14446         * dbus/dbus-test.c: include config.h so that tests actually run
14447
14448         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14449         so the failure mode when that assumption fails will be plenty
14450         obvious.
14451
14452 2003-01-18  Havoc Pennington  <hp@pobox.com>
14453
14454         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14455
14456         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14457         the distribution
14458
14459         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14460         since we don't want to use those in make check
14461
14462 2003-01-15  Havoc Pennington  <hp@redhat.com>
14463
14464         Release 0.2
14465
14466         * NEWS: update
14467
14468 2003-01-15  Havoc Pennington  <hp@redhat.com>
14469
14470         * test/Makefile.am: fix so that test source code ends up in the
14471         distribution on make distcheck
14472
14473 2003-01-15  Havoc Pennington  <hp@redhat.com>
14474
14475         Release 0.1.
14476
14477         * NEWS: update
14478
14479 2003-01-15  Havoc Pennington  <hp@redhat.com>
14480
14481         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14482         fix build when --disable-tests
14483
14484         * Makefile.am (EXTRA_DIST): put HACKING in here
14485
14486         * HACKING: document procedure for making a tarball release.
14487
14488 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14489
14490         * bus/connection.c: (connection_error_handler),
14491         (bus_connection_setup):
14492         * bus/main.c: (main):
14493         Make sure that the DBusConnectionData struct is NULLed
14494         out to prevent a segfault.
14495
14496         * dbus/dbus-errors.c: (dbus_result_to_string):
14497         * dbus/dbus-errors.h:
14498         * dbus/dbus-message.c: (dbus_message_get_fields),
14499         (dbus_message_get_fields_valist), (_dbus_message_test):
14500         * dbus/dbus-message.h:
14501         Make dbus_message_get_fields return a result code so we can
14502         track invalid fields as well as oom.
14503
14504 2003-01-11  Havoc Pennington  <hp@pobox.com>
14505
14506         * configure.in: change --enable-test/--enable-ansi action-if-given
14507         to enable_foo=$enableval instead of enable_foo=yes
14508
14509 2003-01-08  Havoc Pennington  <hp@pobox.com>
14510
14511         * dbus/dbus-string.c (_dbus_string_align_length): new function
14512
14513         * dbus/dbus-test-main.c: move main() for test app here
14514         * dbus/dbus-test.c
14515         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14516         symbol to run tests, because dbus-test isn't in the main
14517         library
14518
14519         Code review nitpicks.
14520
14521         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14522         for people with narrow emacs ;-). Assert client_serial was filled
14523         in. Assert message->name != NULL.
14524         (dbus_message_append_fields): have "first_field_type" arg separate
14525         from va list, needed for C++ binding that also uses varargs IIRC
14526         and helps with type safety
14527         (dbus_message_new): add @todo about using DBusString to store
14528         service/name internally
14529         (dbus_message_new): don't leak ->service and ->name on OOM later
14530         in the function
14531         (dbus_message_unref): free the service name
14532         (dbus_message_get_fields): same change to varargs
14533         i.e. first_field_type
14534         (_dbus_message_loader_return_buffer): assert that the message data
14535         is aligned (if not it's a bug in our code). Put in verbose griping
14536         about why we set corrupted = TRUE.
14537         (decode_header_data): add FIXME that char* is evil.  Was going to
14538         add FIXME about evil locale-specific string.h strncmp, but just
14539         switched to wacky string-as-uint32 optimization. Move check for
14540         "no room for field name" above get_const_data_len() to avoid
14541         assertion failure in get_const_data_len if we have trailing 2
14542         bytes or the like. Check for service and name fields being
14543         provided twice. Don't leak service/name on error. Require field
14544         names to be aligned to 4 bytes.
14545
14546         * dbus/dbus-marshal.c: move byte swap stuff to header
14547         (_dbus_pack_int32): uscore-prefix
14548         (_dbus_unpack_int32): uscore-prefix
14549         (_dbus_unpack_uint32): export
14550         (_dbus_demarshal_string): add @todo complaining about use of
14551         memcpy()
14552         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14553         handling allowing corrupt data to go unchecked
14554
14555 2003-01-08  Havoc Pennington  <hp@redhat.com>
14556
14557         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14558         to the select() as needed for authentication. (should be using
14559         _dbus_poll() not select, but for another day)
14560
14561         * dbus/dbus.h: include dbus/dbus-protocol.h
14562
14563 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14564
14565         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14566         dbus-connection.h
14567
14568 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14569
14570         * dbus/dbus-internals.c: (_dbus_type_to_string):
14571         New function that returns a string describing a type.
14572
14573         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14574         * dbus/dbus-marshal.h:
14575         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14576         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14577         (dbus_message_iter_get_byte_array):
14578         * dbus/dbus-message.h:
14579         Add new convenience functions for appending and getting message fields.
14580         Also add demarshalling routines for byte arrays.
14581
14582 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14583
14584         * dbus/dbus-connection-internal.h:
14585         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14586         (_dbus_connection_get_next_client_serial),
14587         (dbus_connection_send_message):
14588         * dbus/dbus-internals.h:
14589         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14590         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14591         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14592         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14593         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14594         (_dbus_verbose_bytes), (_dbus_marshal_test):
14595         * dbus/dbus-marshal.h:
14596         * dbus/dbus-message-internal.h:
14597         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14598         (dbus_message_write_header), (_dbus_message_lock),
14599         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14600         (dbus_message_get_name), (dbus_message_append_int32),
14601         (dbus_message_append_uint32), (dbus_message_append_double),
14602         (dbus_message_append_string), (dbus_message_append_byte_array),
14603         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14604         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14605         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14606         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14607         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14608         (decode_header_data), (_dbus_message_loader_return_buffer),
14609         (message_iter_test), (_dbus_message_test):
14610         * dbus/dbus-message.h:
14611         * dbus/dbus-protocol.h:
14612         * dbus/dbus-test.c: (main):
14613         * dbus/dbus-test.h:
14614         * glib/test-dbus-glib.c: (message_handler), (main):
14615         * test/echo-client.c: (main):
14616         * test/watch.c: (check_messages):
14617         Make messages sendable and receivable for real.
14618
14619 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14620
14621         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14622         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14623         * dbus/dbus-message.c: (dbus_message_append_int32),
14624         (dbus_message_append_uint32), (dbus_message_append_double),
14625         (dbus_message_append_string), (dbus_message_append_byte_array):
14626         Handle OOM restoration.
14627
14628 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14629
14630         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14631         (_dbus_demarshal_string), (_dbus_marshal_test):
14632         * dbus/dbus-marshal.h:
14633         * dbus/dbus-message.c: (dbus_message_get_name),
14634         Document these functions.
14635
14636         (dbus_message_append_int32), (dbus_message_append_uint32),
14637         (dbus_message_append_double), (dbus_message_append_string),
14638         (dbus_message_append_byte_array):
14639         * dbus/dbus-message.h:
14640         Add functions for adding message fields of different types.
14641
14642         * dbus/dbus-protocol.h:
14643         Add the different types.
14644
14645 2003-01-05  Havoc Pennington  <hp@pobox.com>
14646
14647         * bus/connection.c: implement routines for handling connections,
14648         first thing is keeping a list of owned services on each connection
14649         and setting up watches etc.
14650
14651         * bus/services.c: implement a mapping from service names to lists
14652         of connections
14653
14654         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14655
14656         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14657         to use static mutexes for global data
14658
14659         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14660         collection of functions to set/get application-specific data
14661         on the DBusConnection.
14662
14663 2003-01-04  Havoc Pennington  <hp@pobox.com>
14664
14665         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14666         (_dbus_poll): new function
14667
14668         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14669         copied from GLib
14670
14671         * bus/loop.c: initial code for the daemon main loop
14672
14673 2003-01-04  Havoc Pennington  <hp@pobox.com>
14674
14675         * test/watch.c (error_handler): make it safe if the error handler
14676         is called multiple times (if we s/error handler/disconnect
14677         handler/ we should just guarantee it's called only once)
14678
14679         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14680         error handler on disconnect (it's quite possible we should
14681         just change the error handler to a "disconnect handler," I'm
14682         not sure we have any other meaningful errors)
14683
14684         * configure.in: check for getpwnam_r
14685
14686         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14687         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14688         mechanism as in SASL spec, using socket credentials
14689
14690         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14691         (_dbus_send_credentials_unix_socket): new function
14692
14693         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14694         dbus_accept()
14695         (_dbus_write): only check errno if <0 returned
14696         (_dbus_write_two): ditto
14697
14698 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14699
14700         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14701         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14702         (_dbus_marshal_test):
14703         * dbus/dbus-marshal.h:
14704         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14705         to _dbus_marshal_utf8_string. Also fix some tests.
14706
14707 2002-12-28  Harri Porten  <porten@kde.org>
14708
14709         * configure.in: added check for C++ compiler and a very cheesy
14710         check for the Qt integration
14711
14712         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14713
14714         * qt/Makefile.am: added
14715
14716         * qt/.cvsignore: added
14717
14718         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14719         latter, added #ifdef QT_THREAD_SUPPORT guard.
14720
14721         * dbus/Makefile.am: added missing headers for make dist
14722
14723 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14724
14725         * dbus/Makefile.am: fixup export-symbols-regex.
14726
14727 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14728
14729         * acinclude.m4: Add this file and put the
14730         PKG_CHECK_MODULE macro in it.
14731
14732 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14733
14734         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14735         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14736         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14737         (_dbus_marshal_test):
14738         Make the demarshalling routines align the pos argument.
14739         Add string marshalling tests and fix the obvious bugs
14740         discovered.
14741
14742 2002-12-26  Havoc Pennington  <hp@pobox.com>
14743
14744         * dbus/dbus-auth.c: fixes fixes fixes
14745
14746         * dbus/dbus-transport-unix.c: wire up support for
14747         encoding/decoding data on the wire
14748
14749         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14750         (_dbus_auth_decode_data): append to target string
14751         instead of nuking it.
14752
14753 2002-12-26  Havoc Pennington  <hp@pobox.com>
14754
14755         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14756         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14757         doh
14758
14759         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14760         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14761         now). Main point is because I wanted unpack_uint32 to implement
14762         _dbus_verbose_bytes
14763         (_dbus_verbose_bytes): new function
14764
14765         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14766
14767         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14768         mechanism to handle a corrupt message stream
14769         (_dbus_message_loader_new): fix preallocation to only prealloc,
14770         not prelengthen
14771
14772         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14773         (_dbus_string_test): enhance tests for copy/move and fix the
14774         functions
14775
14776         * dbus/dbus-transport-unix.c: Hold references in more places to
14777         avoid reentrancy problems
14778
14779         * dbus/dbus-transport.c: ditto
14780
14781         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14782         leak reference count in no-message case
14783
14784         * test/watch.c (do_mainloop): handle adding/removing watches
14785         during iteration over the watches. Also, ref the connection/server
14786         stored on a watch, so we don't try to mangle a destroyed one.
14787
14788         * dbus/dbus-transport-unix.c (do_authentication): perform
14789         authentication
14790
14791         * dbus/dbus-auth.c (get_state): add a state
14792         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14793         (_dbus_auth_get_unused_bytes): append the unused bytes
14794         to the passed in string, rather than prepend
14795
14796         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14797         the auth conversation DBusAuth
14798
14799         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14800         (_dbus_transport_new_for_domain_socket): when creating a
14801         transport, pass in whether it's a client-side or server-side
14802         transport so we know which DBusAuth to create
14803
14804 2002-12-03  Havoc Pennington  <hp@pobox.com>
14805
14806         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14807         _after_ finalizing the derived members
14808         (unix_connection_set): unref watch if we fail to add it
14809
14810         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14811         transport first, so that the connection owned by the
14812         transport will be valid as the transport finalizes.
14813
14814         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14815         if necessary, and remove watches from the connection.
14816
14817         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14818
14819 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14820
14821         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14822         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14823         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14824         (_dbus_marshal_test):
14825         * dbus/dbus-marshal.h:
14826         Add string marshal functions and have the demarshal functions
14827         return the new position.
14828
14829 2002-12-25  Havoc Pennington  <hp@pobox.com>
14830
14831         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14832         it is a simple protocol that just maps directly to SASL.
14833
14834         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14835         initial implementation, not actually used yet.
14836
14837         * dbus/dbus-string.c (_dbus_string_find): new function
14838         (_dbus_string_equal): new function
14839         (_dbus_string_base64_encode): new function
14840         (_dbus_string_base64_decode): new function
14841
14842 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14843
14844         * dbus/Makefile.am:
14845         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
14846         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14847         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14848         (_dbus_demarshal_uint32), (_dbus_marshal_test):
14849         * dbus/dbus-marshal.h:
14850         * dbus/dbus-protocol.h:
14851         * dbus/dbus-test.c: (main):
14852         * dbus/dbus-test.h:
14853         Add un-optimized marshalling/demarshalling routines.
14854
14855 2002-12-25  Harri Porten  <porten@kde.org>
14856
14857         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
14858
14859 2002-12-24  Zack Rusin  <zack@kde.org>
14860
14861         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
14862         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
14863         main loop stuff
14864
14865 2002-12-24  Havoc Pennington  <hp@pobox.com>
14866
14867         * glib/dbus-gthread.c: fix include
14868
14869         * glib/dbus-glib.h: rename DBusMessageHandler for now.
14870         I think glib API needs to change, though, as you don't
14871         want to use DBusMessageFunction, you want to use the
14872         DBusMessageHandler object. Probably
14873         dbus_connection_open_with_g_main_loop()
14874         and dbus_connection_setup_g_main_loop() or something like that
14875         (but think of better names...) that just create a connection
14876         that has watch/timeout functions etc. already set up.
14877
14878         * dbus/dbus-connection.c
14879         (dbus_connection_send_message_with_reply): new function just to
14880         show how the message handler helps us deal with replies.
14881
14882         * dbus/dbus-list.c (_dbus_list_remove_last): new function
14883
14884         * dbus/dbus-string.c (_dbus_string_test): free a string that
14885         wasn't
14886
14887         * dbus/dbus-hash.c: use memory pools for the hash entries
14888         (rebuild_table): be more paranoid about overflow, and
14889         shrink table when we can
14890         (_dbus_hash_test): reduce number of sprintfs and write
14891         valid C89. Add tests for case where we grow and then
14892         shrink the hash table.
14893
14894         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
14895
14896         * dbus/dbus-connection.c (dbus_connection_register_handler)
14897         (dbus_connection_unregister_handler): new functions
14898
14899         * dbus/dbus-message.c (dbus_message_get_name): new
14900
14901         * dbus/dbus-list.c: fix docs typo
14902
14903         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
14904         an object representing a handler for messages.
14905
14906 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14907
14908         * glib/dbus-glib.h:
14909         * glib/dbus-gthread.c: (dbus_gthread_init):
14910         Don't use the gdbus prefix for public functions.
14911
14912 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
14913
14914         * Makefile.am:
14915         * configure.in:
14916         Add GLib checks and fixup .pc files
14917
14918         * glib/Makefile.am:
14919         * glib/dbus-glib.h:
14920         * glib/dbus-gmain.c: (gdbus_connection_prepare),
14921         (gdbus_connection_check), (gdbus_connection_dispatch),
14922         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
14923         (dbus_connection_gsource_new):
14924         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
14925         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
14926         * glib/test-dbus-glib.c: (message_handler), (main):
14927         Add GLib support.
14928
14929 2002-12-15  Harri Porten  <porten@kde.org>
14930
14931         * autogen.sh: check for libtoolize before attempting to use it
14932
14933         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
14934         struct.
14935
14936         * .cvsignore: ignore more stamp files
14937
14938         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
14939
14940         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
14941         without make install.
14942
14943 2002-12-15  Havoc Pennington  <hp@pobox.com>
14944
14945         * dbus/dbus-threads.c: add thread stubs that a higher library
14946         layer can fill in. e.g. the GLib wrapper might fill them in with
14947         GThread stuff. We still need to use this thread API to
14948         thread-safe-ize the library.
14949
14950 2002-12-12  Havoc Pennington  <hp@pobox.com>
14951
14952         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
14953         below new interfaces and include fewer system headers.
14954
14955         * dbus/dbus-sysdeps.c (_dbus_read): new function
14956         (_dbus_write): new function
14957         (_dbus_write_two): new function
14958         (_dbus_connect_unix_socket): new function
14959         (_dbus_listen_unix_socket): new function
14960
14961         * dbus/dbus-message-internal.h: change interfaces to use
14962         DBusString
14963
14964 2002-12-11  Havoc Pennington  <hp@pobox.com>
14965
14966         * dbus/dbus-types.h: add dbus_unichar
14967
14968         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
14969
14970         * dbus/dbus-connection.c (dbus_connection_send_message): return
14971         TRUE on success
14972
14973         * dbus/dbus-transport.c: include dbus-watch.h
14974
14975         * dbus/dbus-connection.c: include dbus-message-internal.h
14976
14977         * HACKING: add file with coding guidelines stuff.
14978
14979         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
14980         handling here, for security purposes (as in vsftpd). Not actually
14981         using this class yet.
14982
14983         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
14984         system/libc usage here, as in vsftpd, for ease of auditing (and
14985         should also simplify portability). Haven't actually moved all the
14986         system/libc usage into here yet.
14987
14988 2002-11-25  Havoc Pennington  <hp@pobox.com>
14989
14990         * dbus/dbus-internals.c (_dbus_verbose): fix to not
14991         always print the first verbose message.
14992
14993 2002-11-24  Havoc Pennington  <hp@pobox.com>
14994
14995         * test/echo-client.c, test/echo-server.c: cheesy test
14996         clients.
14997
14998         * configure.in (AC_CHECK_FUNCS): check for writev
14999
15000         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15001         function
15002
15003         * dbus/dbus-list.c (_dbus_list_foreach): new function
15004
15005         * dbus/dbus-internals.c (_dbus_verbose): new function
15006
15007         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15008         representing a server that listens for connections.
15009
15010         * dbus/.cvsignore: create
15011
15012         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15013         public API for reporting errors
15014
15015         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15016         public object representing a connection that
15017         sends/receives messages. (Same object used for
15018         both client and server.)
15019
15020         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15021         Basic abstraction for different kinds of stream
15022         that we might read/write messages from.
15023
15024 2002-11-23  Havoc Pennington  <hp@pobox.com>
15025
15026         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15027         _DBUS_INT_MAX
15028
15029         * dbus/dbus-test.c (main): add list test, and include
15030         dbus-test.h as intended
15031
15032         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15033         (_dbus_hash_table_remove_int): return value indicates
15034         whether the entry existed to remove
15035
15036         * dbus/dbus-list.c: add linked list utility class,
15037         with docs and tests
15038
15039         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15040         array sometimes.
15041
15042 2002-11-23  Havoc Pennington  <hp@pobox.com>
15043
15044         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15045         DBUS_END_DECLS to nothing, that should fix this once and for all
15046
15047         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15048
15049         * dbus/dbus-message.c, dbus/dbus-hash.c:
15050         add some missing @brief
15051
15052 2002-11-23  Havoc Pennington  <hp@pobox.com>
15053
15054         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15055         to avoid confusing Doxygen
15056
15057         * dbus/dbus-hash.c: @} not }@
15058
15059         * dbus/dbus-message.c (struct DBusMessage): split out
15060         internals docs
15061
15062 2002-11-23  Havoc Pennington  <hp@pobox.com>
15063
15064         * configure.in: pile on more warning flags if using gcc
15065
15066         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15067         to document static functions
15068
15069         * configure.in: add summary to end of configure so it
15070         looks nice and attractive
15071
15072         * dbus/dbus-hash.c: finish implementation and write unit
15073         tests and docs
15074
15075         * configure.in: add --enable-tests to enable unit tests
15076
15077         * dbus/dbus-test.c: test program to run unit tests
15078         for all files in dbus/*, initially runs a test for
15079         dbus-hash.c
15080
15081         * dbus/dbus-internals.h: file to hold some internal utility stuff
15082
15083 2002-11-22  Havoc Pennington  <hp@redhat.com>
15084
15085         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15086         "ported" away from Tcl
15087
15088         * dbus/dbus-types.h: header for types such as dbus_bool_t
15089
15090 2002-11-22  Havoc Pennington  <hp@redhat.com>
15091
15092         * dbus/dbus.h: fixups for doc warnings
15093
15094         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15095         macros
15096         (QUIET): make it quiet so we can see warnings
15097
15098         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15099
15100 2002-11-22  Havoc Pennington  <hp@redhat.com>
15101
15102         * Makefile.am: include "Doxyfile" target in all-local
15103
15104         * configure.in: generate the Doxyfile
15105
15106         * Doxyfile.in: move Doxyfile here, so we can use
15107         configure to generate a Doxyfile with the right
15108         version number etc.
15109
15110 2002-11-22  Havoc Pennington  <hp@redhat.com>
15111
15112         * dbus/dbus-message.c: move inline docs into .c file
15113
15114         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15115         so all docs are under doc/
15116         (MAN_EXTENSION): generate man pages. Use extension
15117         ".3dbus" which matches ".3qt" on my system,
15118         I guess this is OK, I don't know really.
15119         (FILE_PATTERNS): look for .c files not .h, makes sense
15120         for plain C I think
15121
15122 2002-11-22  Havoc Pennington  <hp@pobox.com>
15123
15124         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15125         because any app can be a server, and any app can be a client,
15126         the bus is a special kind of server.
15127
15128 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15129
15130         * Doxyfile : adding. Still needs Makefile rules to be generated
15131         automatically (just run "doxygen" in the toplevel dir for now to
15132         generate docs)
15133
15134         * dbus/dbus-message.h : Adding sample docs (javadoc since
15135         resembles gtk-doc a little more)
15136
15137         * dbus/dbus.h : Adding sample docs
15138
15139 2002-11-21  Havoc Pennington  <hp@redhat.com>
15140
15141         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15142         so we can allow ourselves to include files directly,
15143         instead of having to use dbus.h
15144
15145         * dbus/dbus.h: fill in
15146
15147         * dbus/dbus-message.h: sketch out a sample header file.
15148         Include griping if you include it directly instead of
15149         via dbus.h
15150
15151         * dbus/dbus-macros.h: new file with macros for extern "C",
15152         TRUE/FALSE, NULL, etc.
15153
15154         * doc/file-boilerplate.c: put include guards in here
15155
15156 2002-11-21  Havoc Pennington  <hp@redhat.com>
15157
15158         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15159
15160         * COPYING: include the GPL as well, and license code
15161         under both AFL and GPL.
15162
15163 2002-11-21  Havoc Pennington  <hp@redhat.com>
15164
15165         * acconfig.h: get rid of this
15166
15167         * autogen.sh (run_configure): add --no-configure option
15168
15169         * configure.in: remove AC_ARG_PROGRAM to make
15170         autoconf complain less. add AC_PREREQ.
15171         add AC_DEFINE third arg.
15172
15173 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15174
15175         * doc/Makefile.am:
15176         Fix references so we can distcheck.
15177
15178 2002-11-21  Havoc Pennington  <hp@redhat.com>
15179
15180         * Initial module creation
15181