* bus/activation.c: (bus_activation_activate_service):
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * bus/activation.c: (bus_activation_activate_service):
4         fixed call to _dbus_spawn_async_with_babysitter().
5
6 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
7
8         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
9         added environment pointer as function parameter, used on win32.
10
11         * test/spawn-test.c: fixed call to above mentioned function.
12
13 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
14
15         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
16         added configure check for unistd.h.
17
18 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
19
20         * test/Makefile.am: fixed test data copy problem in 
21         out of source build, when sources came from svn or cvs. 
22
23 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
24
25         * dbus/*-win.*,bus/*-win.*: added win32 platform related
26         files. These files are only added to the cmake build system.  
27         The missing dbus-win32.patch file will be added later. 
28
29 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
30
31         * cmake: new directory, contains cmake build support.
32         See http://www.cmake.org for more informations.
33         Currently only unix will be buildable because some 
34         win32 required files are still missing. 
35
36 2007-03-03  Thiago Macieira  <thiago@kde.org>
37
38         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
39         output and add it to the DBusError message we return.
40
41         * tools/dbus-launch.1:
42         * tools/dbus-launch.c: Add option --close-stderr to, well,
43         close stderr before starting dbus-daemon.
44
45 2007-01-31  Havoc Pennington  <hp@redhat.com>
46
47         * bus/dbus-daemon.1.in: write a section in the man page on running
48         a test daemon for debugging purposes
49
50 2007-01-26  Havoc Pennington  <hp@redhat.com>
51
52         * bus/session.conf.in: override all the default limits with much
53         higher limits on the session bus, there is no reason the session
54         bus should have low limits
55
56         * bus/config-parser.c (bus_config_parser_new): increase default
57         limits so they are less likely to be hit; in particular the max
58         replies per connection was way too low
59
60 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
61
62         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
63         a pointer to the tutorial maintained as part of dbus-python
64
65 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
66
67         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
68         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
69         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
70
71 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
72
73         * tools/dbus-monitor.c: gettimeofday() is not available 
74         on windows so we have to provide our own. It's taken from 
75         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
76
77 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
78
79         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
80         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
81         is in dbus-sysdeps-win.c (not in this patch).
82
83         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
84         with InterlockedInc/Decrement. 
85         - Patches from Christian Ehrlicher
86         
87 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
88
89         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
90
91 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
92
93         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
94         fix mispaced const statement. - Patch from Peter Kümmel
95
96 2006-12-19  Ray Strode  <rstrode@redhat.com>
97
98         * bus/bus.c (process_config_every_time):
99         don't overwrite existing bus context activation object
100         until after we've checked that the new activation is
101         valid.
102
103         * bus/main.c 
104         (signal_handler), (handle_reload_watch):
105         don't call exit() on failure, instead make do and keep
106         going.
107         (close_reload_pipe): new function to turn off
108         hangup-causes-config-reload behavior if an unexpected
109         error occurs
110
111 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
112
113         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
114         correctness fix. - Patch from Christian Ehrlicher
115
116 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
117
118         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
119         we should also use it. - Patch from Christian Ehrlicher
120
121 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
122   
123         * dbus-sysdeps-util.c: added win32 related tests
124
125 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
126
127         * dbus/dbus-string.c (_dbus_string_pop_line),
128         bus/desktop-file.c (parse_section_start,
129         parse_comment_or_blank,parse_key_value,): uses
130         _dbus_string_find_eol() to support platform independent eol style.
131
132 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
133
134         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
135         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
136               _dbus_string_find_eol().
137         Approved by: Havoc Pennington.
138
139 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
140
141         * configure.in: Added switch to disable user_database caching.
142
143         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
144         be able disable user_dabase caching.
145
146 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
147
148         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
149         struct. It is unnecessary we have a global one already. Also remove 
150         bus_context_get_user_database function, it is no longer needed.
151         Flush the global database on reload.
152
153         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
154         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
155
156         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
157         Add _dbus_user_database_flush_system. 
158         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
159         Small unrelated change in _dbus_is_a_number: change 
160         _dbus_string_parse_int to _dbus_string_parse_uint. 
161
162         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
163         _dbus_groups_from_uid.
164
165         * bus/policy.c, bus/policy.h: Change call to 
166         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
167         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
168         needs it.
169
170 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
171
172         * bus/signal.c: Fix match_rule_equal errata
173         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
174         <kimmo.hamalainen@nokia.com>)
175
176 2006-11-19  Thiago Macieira  <thiago@kde.org>
177
178         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
179         _dbus_pthread_condvar_wait,
180         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
181         pthread_self() after coming back from a conditional variable
182         wait as well as in one codepath where it was forgotten.
183         Approved by: Havoc Pennington.
184
185 2006-11-17  Havoc Pennington  <hp@redhat.com>
186
187         * update-dbus-docs.sh: allow setting fd.org username via env
188         variable. Make it run autogen with --enable-xml-docs=yes
189         --enable-doxygen-docs=yes so configure will fail if the required
190         tools are missing.
191
192 2006-11-17  Havoc Pennington  <hp@redhat.com>
193
194         * doc/dbus-faq.xml: minor FAQ tweaks
195
196 2006-11-14  Havoc Pennington  <hp@redhat.com>
197         
198         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
199         dbus_get_local_machine_id() to its own file, no substantive
200         changes. There are a couple other things we might want to add that
201         are "misc" so moving out of dbus-connection.[hc] which is big
202         enough already.
203         
204 2006-11-14  Havoc Pennington  <hp@redhat.com>
205
206         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
207         UUID had the timestamp last, but the implementation had it first;
208         move it to last since I think it's a tiny bit nicer (easier to
209         compare at a glance, faster to sort, less code), and will not
210         cause any practical compatibility problems. Also, always convert
211         the timestamp to big endian.
212
213         * doc/dbus-specification.xml: Clean up the docs on the UUID.
214
215         * tools/dbus-uuidgen.1: more prominently say it is not suitable
216         as a replacement for regular uuidgen/RFC4122.
217
218 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
219
220         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
221         the correct value so we don't assert when initalizing recursive threads
222
223         * test/name-test/test-thread-init.c: call dbus_threads_init_default
224         instead of _dbus_threads_init_debug since it is more of a real world
225         test
226
227 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
228
229         * Released 1.0.0
230
231 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
232
233         * AUTHORS: added Peter and Tor of windows porting fame
234
235 2006-11-08  Havoc Pennington  <hp@redhat.com>
236
237         * doc/dbus-specification.xml: add a note about protocol stability
238
239         * doc/TODO: Remove "important for 1.0" section, replace with
240         "important for 1.2" section
241         
242 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
243
244         * README: remove some of the out of date flags
245
246         * doc/TODO: Remove todo items which are done
247
248 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
249
250         * tools/dbus-monitor.c: Handle sigint so we flush stdout
251         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
252
253 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
254
255         * tools/dbus-monitor.1: update the manpage for dbus-monitor
256         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
257
258 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
259
260         * AUTHORS: Update with all people listed in the ChangeLog
261
262 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
263
264         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
265         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
266
267 2006-11-07  Havoc Pennington  <hp@redhat.com>
268
269         * HACKING: Update release instructions to include stuff about
270         stable releases, branching, etc. May not be totally correct,
271         please fix if needed, but keep instructions up-to-date so we do
272         each stable release consistently in the future.
273
274 2006-11-07  Havoc Pennington  <hp@redhat.com>
275
276         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
277         documentation updates. Bump faq/spec versions (not to 1.0; I don't
278         think the spec will be "finished"/1.0 when we ship the 1.0 library).
279
280 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
281
282         * bus/bus.c: Missed patch - pass in the context to the directory watch
283
284 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
285
286         * Released D-Bus 1.0 RC 3(0.95)
287
288 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
289
290         * bus/activation.c (bus_activation_new): don't fail if we can not read
291         the directory as it may not exist
292
293 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
294
295         * bus/config-parser.c (service_dirs_find_dir): use 
296         _dbus_list_get_next_link so we don't get stuck in an infinite loop
297         (start_busconfig_child): move processing of standard_session_servicedirs
298         tags here because they have no content
299         (bus_config_parser_content): check we don't have content in 
300         standard_session_servicedirs tag
301
302 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
303
304         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
305         Packagers need to own this directory
306
307 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
308
309         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
310         <standard_session_servicedirs> tag with a <sevicedir> tag that
311         points to the test service directory
312
313 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
314
315         * configure.in: Add a check for DIR *dirp->dd_fd
316
317         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
318         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
319         of both Solaris and Irix
320
321 2006-11-01  Havoc Pennington  <hp@redhat.com>
322
323         * bus/dbus-daemon.1.in: document standard_session_servicedirs
324
325 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
326
327         * configure.in: expose DBUS_DATADIR
328         
329         * bus/config-parser.c: add the standard_session_servicedirs element
330         to the parser
331         (bus_config_parser_content): process the standard_session_servicedirs
332         element by getting the standard directories from sysdeps and merging
333         them into the service directory list
334         (test_default_session_servicedirs): make sure we get what we expect
335
336         * bus/session.conf.in: replace the servicedir tag with the 
337         standard_session_servicedirs tag
338
339         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
340         dbus-sysdeps.h to avoid circular header dependencies
341
342         * dbus/dbus-sysdeps.h: add the typedef of DBusList
343
344         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
345         which takes a string of directories delimited by colons, parses them 
346         out, appends a suffix and puts them in a list ignoring empty elements
347         (_dbus_get_standard_session_servicedirs): returns the standard 
348         directories for a session bus to look for service activation files
349         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
350         DBUS_DATADIR directories
351
352         * test/data/valid-config-files/many-rules.conf: add the 
353         standard_session_servicedirs tag to the valid config file tests
354
355 2006-10-30  Havoc Pennington  <hp@redhat.com>
356
357         * tools/dbus-launch.1, doc/TODO: capture intent to change the
358         command line options of dbus-launch a bit post 1.0
359
360 2006-10-27  Havoc Pennington  <hp@redhat.com>
361         
362         * dbus/dbus-connection.c (dbus_connection_open_private): document
363         how to choose shared vs. private connections
364
365 2006-10-27  Havoc Pennington  <hp@redhat.com>
366
367         * dbus/dbus-test.c: enclose more of the file in the
368         DBUS_BUILD_TESTS check.
369
370         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
371         DBUS_DISABLE_ASSERT case.
372
373         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
374         that it only works on the server side
375
376         * dbus/dbus-bus.c: add a global lock covering the BusData we
377         attach to each connection
378         (internal_bus_get): lock our access to the BusData
379         (dbus_bus_register): lock the entire registration process
380         with _DBUS_LOCK(bus_datas). If we get the lock and 
381         registration is already complete, silently return (vs. previous
382         behavior of aborting).
383         (dbus_bus_set_unique_name): lock the BusData
384         (dbus_bus_get_unique_name): lock the BusData
385
386 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
387
388         * bus/config-parser.c (service_dirs_find_dir, 
389         service_dirs_append_unique_or_free, 
390         service_dirs_append_link_unique_or_free): New static methods
391         for only appending unique service directory names into
392         the service directory list
393         (merge_included, bus_config_parser_content): Only add unique
394         service directory names into the list
395
396 2006-10-27  Havoc Pennington  <hp@redhat.com>
397
398         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
399         variables volatile, suggested by Thiago. Document struct fields.
400         (PTHREAD_CHECK): remove pthread error checking if assertions are
401         disabled, should reduce the no-assertions case to the bare
402         minimum code.
403
404 2006-10-26  Havoc Pennington  <hp@redhat.com>
405         
406         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
407         to be recursive
408         (_dbus_pthread_mutex_unlock): make it recursive
409         (_dbus_pthread_condvar_wait): save/restore the recursion count
410         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
411
412 2006-10-26  Havoc Pennington  <hp@redhat.com>
413
414         * doc/dbus-specification.xml: clarify the UUID text slightly
415
416         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
417         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
418         in preparation for being able to extend them for e.g. recursive
419         mutexes.
420
421 2006-10-26  Havoc Pennington  <hp@redhat.com>
422
423         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
424         condition variables relate to recursive mutexes.
425         
426         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
427         dbus/dbus-threads.c: Split the platforms-specific thread 
428         implementations into their own files.
429         
430         * dbus/dbus-sysdeps-pthread.c
431         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
432         was backward. Not that anything uses it.
433
434 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
435
436         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
437         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
438         needs to be cleaned up more.
439
440         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
441         up the CREDS issue.
442
443 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
444
445         * configure.in, dbus-1.pc.in: Check to see if thread methods 
446         are in glibc or libpthread and add -lpthread to the link stage 
447         if it is the latter
448
449 2006-10-26  Thiago Macieira  <thiago@kde.org>
450
451         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
452         bug 8780: the connection lock is only required while recording
453         the shared connection, so protect only that code
454         section. Don't require connection_lookup_shared to return a
455         locked connection.
456
457 2006-10-26  Thiago Macieira  <thiago@kde.org>
458
459         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
460         check if get_machine_uuid() returns NULL before proceeding any
461         further: we can't init the X atoms or create a session file
462         name if there is no machine ID.
463         This solves a crash reported by some users if
464         --exit-with-session was used without --autolaunch=<machine-id>
465
466 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
467
468         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
469         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
470
471         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
472         before we run dbus-launch
473
474         * configure.in: define TEST_BUS_BINARY to be the full path to 
475         dbus-daemon in the build root 
476
477 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
478
479         * dbus/Makefile.am:
480         * tools/Makefile.am:
481         * toos/dbus-uuidgen.1:
482                 Move the machine-id file to /var/lib/dbus 
483
484 2006-10-24  David Zeuthen  <davidz@redhat.com>
485
486         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
487         _dbus_assert (thread_init_generation != _dbus_current_generation)
488         not _dbus_assert (thread_init_generation == _dbus_current_generation)
489
490 2006-10-24  Thiago Macieira  <thiago@kde.org>
491
492         * dbus/dbus-sysdeps.h:
493         * dbus/dbus-sysdeps-unix.c: Add function
494         _dbus_make_file_world_readable that chmods a file to 0644.
495
496         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
497         Avoid writing to the static "argv" array, thereby avoiding a
498         COW on the child process.
499
500         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
501         call _dbus_make_file_world_readable on the created file.
502
503 2006-10-23  David Zeuthen  <davidz@redhat.com>
504
505         * dbus/dbus-memory.c: Use atomic variable to protect
506         n_blocks_outstanding otherwise OOM will be reported using SMP on
507         some arches
508         
509         * bus/dispatch.c: Add missing end of line characters
510
511         * bus/desktop-file.c (parse_section_start, parse_key_value) 
512         (bus_desktop_file_load): Propertly handle OOM
513
514         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
515         thread_init_generation equals _dbus_current_generation, not 0
516
517 2006-10-22  Havoc Pennington  <hp@redhat.com>
518
519         * dbus/dbus-connection-internal.h: move prototype of
520         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
521         it isn't in a public header and doesn't end up in the DBusBus
522         group in Doxygen
523
524 2006-10-21  Havoc Pennington  <hp@redhat.com>
525
526         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
527         the tarball if packagers want to run it
528
529         * cleanup-man-pages.sh: Add a script which munges all the internal
530         API man pages out of the Doxygen output. This reduces the size of
531         the installed man pages from 7 to 2 megs, and avoids
532         namespace-polluting pages. Right now (like Doxygen) this script
533         isn't in the build, it's something packagers can do manually.
534
535 2006-10-21  Havoc Pennington  <hp@redhat.com>
536
537         * dbus/dbus-connection.h: don't include the watch/timeout
538         functions in connection section
539
540 2006-10-21  Havoc Pennington  <hp@redhat.com>
541
542         * Documentation! Whee! Doxygen now 100% silent. If you make it
543         angry again, you will be punished.
544         
545 2006-10-21  Havoc Pennington  <hp@redhat.com>
546
547         * More documentation - all public API now documented according to
548         Doxygen
549
550 2006-10-21  Havoc Pennington  <hp@redhat.com>
551
552         * Document a bunch of undocumented stuff
553         
554 2006-10-21  Havoc Pennington  <hp@redhat.com>
555
556         * Clean up Doxygen group markers for public API so Doxygen finds
557         everything (not comprehensively fixed for private API).
558         Means all remaining Doxygen warnings are just about missing docs
559         and thus pretty simple to resolve.
560         
561 2006-10-21  Havoc Pennington  <hp@redhat.com>
562         
563         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
564
565         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
566         as DBUS_GNUC_DEPRECATED
567
568 2006-10-21  Havoc Pennington  <hp@redhat.com>
569
570         * Move all private API into the private Doxygen group sections of
571         the files, so they don't show up in the public API docs
572         
573 2006-10-21  Havoc Pennington  <hp@redhat.com>
574
575         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
576         dbus_message_iter_get_array_len().
577
578         * throughout: documentation improvements.
579
580 2006-10-20  Havoc Pennington  <hp@redhat.com>
581
582         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
583         matter, and the message-loader-breaker thing since nobody is going
584         to do it.  Add an item to 1.0 about supporting recursive locks
585         in dbus_threads_init_default() though, since it should be easy.
586
587         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
588         Fix this in the !dispatch case to avoid busy-looping after
589         disconnection
590
591         * More misc docs improvements
592
593 2006-10-19  Havoc Pennington  <hp@redhat.com>
594
595         * more Doxygen-related fixes (lots of moving things from the
596         public to internal section in dbus-connection.c)
597
598 2006-10-19  Havoc Pennington  <hp@redhat.com>
599
600         * Fix a pile of Doxygen warnings and missing docs
601
602 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
603
604         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
605         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
606         instead of a void *.  kqueue uses this to get the context's loop
607         while the other modules ignore the parameter.  This allows us to
608         avoid platform conditionals
609
610         * bus/bus.c (process_config_postinit): Pass in the context to the 
611         watch
612
613 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
614
615         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
616         when starting the system bus
617
618 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
619
620         * configure.in: More fixups for cross compile (Patch from 
621         Marco Pracucci <development at pracucci dot com>)
622
623 2006-10-17  Havoc Pennington  <hp@redhat.com>
624
625         * tools/dbus-send.c (main): don't close shared connection, fix
626         from Timo Hoenig
627
628 2006-10-17  Havoc Pennington  <hp@redhat.com>
629
630         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
631
632         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
633         since realistically it doesn't look like we'll be changing it
634         anymore.
635
636 2006-10-17  Havoc Pennington  <hp@redhat.com>
637
638         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
639         be used for return_if_fail type warnings; prefixes the pid, and
640         fatal by default.
641
642 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
643
644         * configure.in: Released 1.0 RC 2(0.94)
645         Add check for -fPIC and enable it if available
646
647 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
648
649         * doc/TODO: Remove the check TODO item
650
651 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
652
653         * dbus-transport-socket.c (exchange_credentials):
654         Print out more detailed errors if reading or sending
655         credentials fail (Patch from Julio M. Merino Vidal 
656         <jmmv at NetBSD dot org>)
657
658 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
659
660         * configure.in: when checking for posix getpwnam_r assume true
661         for cross compiles
662
663 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
664
665         * configure.in: Check for gethostbyname first before we check for it
666         in libnsl.  On gnu systems it is implemeneted 
667
668 2006-10-13  Havoc Pennington  <hp@redhat.com>
669
670         * dbus/dbus-connection.c
671         (dbus_connection_send_with_reply_and_block): fix to handle closed
672         connections, from Tambet Ingo bug #8631
673
674 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
675
676         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
677
678 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
679
680         * test/name-test/Makefile.am: don't link against both libdbus and
681         libdbus-convenience
682
683 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
684
685         * configure.in: check for dirfd even if it is a macro
686         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
687
688 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
689
690         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
691         avoid using dirfd on systems that don't have dirfd 
692         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
693
694 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
695
696         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
697         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
698
699         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
700         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
701         macro because _dbus_abort calls it
702
703         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
704         works
705
706 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
707
708         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
709         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
710
711 2006-10-02  Thiago Macieira  <thiago@kde.org>
712
713         * tools/dbus-launch.c (main): make it complain and abort
714         execution in case an unknown option is given. Also, process
715         the '--' argument as the end of arguments.
716
717 2006-10-01  Havoc Pennington  <hp@redhat.com>
718
719         * tools/dbus-launch.c (print_variables): if no syntax is given,
720         don't print something that's sort-of-half-sh-syntax, just print
721         a plain key-value pairs thing.
722
723         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
724         the local machine representation (but still have the hostname in
725         the display). Remove the hostname from the display if it is
726         localhost. Change session files to be named
727         ~/.dbus/session-bus/machine-display. Change X atoms to be
728         underscore-prefixed so nobody whines about ICCCM compliance.
729         Otherwise name them the same as the env variables.
730         Change session file format to include key-value pairs and an
731         explanatory comment. Keys are the same as the env variables.
732         (set_address_in_x11): X property format can't depend on
733         sizeof(pid_t) on a particular machine, fix to always be 32 bits
734
735         * tools/dbus-launch.c: make --autolaunch take a machine id
736         argument. If --autolaunch is used with a program to run, complain
737         for now (but add a FIXME). Also, don't look for existing bus if 
738         there's a program to run (but add a FIXME).
739
740         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
741         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
742         just to get this, and avoids duplicating uuid-reading code).
743
744         * tools/dbus-launch.1: clarify various things
745         
746 2006-10-01  Havoc Pennington  <hp@redhat.com>
747
748         * test/test-service.c (path_message_func): remove broken extra
749         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
750
751         * test/test-shell-service.c (path_message_func): same fix
752         
753         * dbus/dbus-connection.c
754         (_dbus_connection_get_dispatch_status_unlocked): break up the
755         function a little for clarity and fix the notification of
756         dbus-bus.c to not require dispatch to be complete
757
758         * dbus/dbus-connection.c (dbus_connection_unref): improve the
759         warning when you try to finalize an open connection.
760         
761 2006-10-01  Havoc Pennington  <hp@redhat.com>
762
763         * dbus/dbus-bus.c
764         (internal_bus_get): only weak ref the connection; this means 
765         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
766         called safely in any context
767         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
768         unref
769
770         * dbus/dbus-connection.c
771         (_dbus_connection_get_dispatch_status_unlocked): move
772         _dbus_bus_notify_shared_connection_disconnected_unlocked here
773         when queuing Disconnected instead of when the Disconnected message
774         arrives, so dbus_bus_get() won't return closed connections.
775         
776 2006-10-01  Havoc Pennington  <hp@redhat.com>
777
778         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
779         Add a hack to make DBusNewConnectionFunction work right.
780
781         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
782         the hack here. Also, fix the todo about refcount leak.
783         
784         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
785         and use the hack here
786         
787         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
788         "shareable" flag; this was completely broken, since it meant 
789         dbus_connection_open() returned a connection of unknown
790         shared-ness. Now, we always hold a ref on anything opened 
791         as shareable.
792
793         Move the call to notify dbus-bus.c into
794         connection_forget_shared_unlocked, so libdbus consistently forgets
795         all its knowledge of a connection at once. This exposed numerous
796         places where things were totally broken if we dropped a ref inside
797         get_dispatch_status_unlocked where
798         connection_forget_shared_unlocked was previously, so move
799         connection_forget_shared_unlocked into
800         _dbus_connection_update_dispatch_status_and_unlock. Also move the
801         exit_on_disconnect here.
802
803         (shared_connections_shutdown): this assumed weak refs to the
804         shared connections; since we have strong refs now, the assertion 
805         was failing and stuff was left in the hash. Fix it to close
806         still-open shared connections.
807         
808         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
809         debug pipe connections
810         
811         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
812         dbus-bus.c if the closed connection is in fact shared
813         (_dbus_connection_close_possibly_shared): rename from 
814         _dbus_connection_close_internal
815         (dbus_connection_close, dbus_connection_open,
816         dbus_connection_open_private): Improve docs to explain the deal
817         with when you should close or unref or both
818
819         * dbus/dbus-bus.c
820         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
821         from _dbus_bus_check_connection_and_unref_unlocked and modify to
822         loop over all connections
823
824         * test/test-utils.c (test_connection_shutdown): don't try to close
825         shared connections.
826
827         * test/name-test/test-threads-init.c (main): fix warnings in here
828
829         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
830         env variable to cause blocking waiting for gdb; drop
831         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
832         unconditionally.
833
834         * configure.in: add -export-dynamic to libtool flags if assertions enabled
835         so _dbus_print_backtrace works.
836
837         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
838         instead of _dbus_verbose to print the backtrace, and diagnose lack 
839         of -rdynamic/-export-dynamic
840         
841 2006-09-30  Havoc Pennington  <hp@redhat.com>
842
843         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
844         (internal_bus_get): fix screwy code formatting. whoever committed
845         that was not paying attention!
846
847 2006-09-30  Havoc Pennington  <hp@redhat.com>
848
849         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
850         reflect addition of interfaces.
851
852         * doc/dbus-specification.xml: describe a new
853         org.freedesktop.DBus.Peer.GetMachineId method
854
855         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
856         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
857         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
858         at end of skip_white
859         (_dbus_string_chop_white): new function
860
861         * bus/connection.c (bus_connections_setup_connection): call
862         dbus_connection_set_route_peer_messages.
863
864         * dbus/dbus-connection.c
865         (_dbus_connection_peer_filter_unlocked_no_update): modify to
866         support a GetMachineId method.
867
868         Also, support a new flag to let the bus pass peer methods through
869         to apps on the bus, which can be set with
870         dbus_connection_set_route_peer_messages.
871
872         Finally, handle and return an error for anything unknown on the
873         Peer interface, which will allow us to extend the Peer interface
874         in the future without fear that we're now intercepting something
875         apps were wanting to see.
876         
877         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
878         dbus/dbus-uuidgen.c
879
880         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
881         binary here, since most of the code is already in libdbus
882
883         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
884         uuid from the system config file
885
886         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
887         (_dbus_read_uuid_file_without_creating) 
888         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
889         uuid-related functions, partly factored out from dbus-server.c
890
891         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
892         DBUS_ERROR_FILE_EXISTS instead of EEXIST
893
894         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
895
896         * tools/dbus-cleanup-sockets.1: explain what the point of this
897         thing is a bit more
898
899         * autogen.sh (run_configure): add --config-cache to default
900         configure args
901
902         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
903         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
904
905         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
906         don't try to save address, fixes crash in make check
907         
908 2006-09-30  Thiago Macieira  <thiago@kde.org>
909
910         * configure.in: add DBUS_BINDIR as a #define to C source code.
911
912         * tools/dbus-launch.c
913         * tools/dbus-launch.h
914         * tools/dbus-launch-x11.c:
915         * tools/dbus-launch.1: Add the --autolaunch option to
916         dbus-launch, which makes it scan for an existing session
917         started with --autolaunch. With that option, it also creates
918         an X11 window and saves the bus address and PID to it.
919
920         * dbus/dbus-sysdeps.h:
921         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
922         a function that runs "dbus-launch --autolaunch" to retrieve
923         the running D-Bus session address (or start one if none was running)
924
925         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
926         address protocol, which tries to get the running session from
927         dbus-launch.
928
929         * dbus/dbus-bus.c:
930         * dbus/dbus-internals.h: Make "autolaunch:" be the default
931         D-Bus session bus address.
932
933         * dbus/dbus-connection.c: Fix horrible typo in error message.
934
935 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
936
937         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
938
939 2006-09-17  Havoc Pennington  <hp@redhat.com>
940
941         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
942         fix so that if unix_user_function is set on windows, we still
943         do the default check that the auth identity matches the bus identity
944
945 2006-09-16  Havoc Pennington  <hp@redhat.com>
946
947         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
948         to _dbus_transport_open_platform_specific,
949         _dbus_transport_open_socket,
950         and _dbus_transport_open_debug_pipe
951
952         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
953
954 2006-09-16  Havoc Pennington  <hp@redhat.com>
955
956         Attempt auditing public API to remove all cases where a Unix
957         function returns weird emulated goo to Windows. This probably 
958         breaks the bus daemon on Windows, to fix it again we may 
959         need to stop processing unix-specific config options on Windows,
960         and may need to add Windows-specific public API or config options.
961         
962         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
963         to reflect added interfaces; should not break soname.
964         
965         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
966         not invoke unix user function on Windows. Kind of a hacky fix, but 
967         we don't want a "unix uid" leaking out on Windows.
968
969         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
970         to get the socket fd on Windows or UNIX
971         (dbus_connection_get_unix_fd): make this always fail on Windows
972
973 2006-09-16  Havoc Pennington  <hp@redhat.com>
974
975         * dbus/dbus-server.c (dbus_server_listen): change how this works
976         to be able to delegate to a set of handlers that can succeed,
977         fail, or choose not to handle. Allows us to have 
978         dbus_server_listen_platform_specific.
979
980         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
981         factor out the tcp socket stuff to be used on windows, leaving
982         unix domain socket only in dbus-socket-unix.c
983
984         * dbus/dbus-transport-socket.c
985         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
986         stuff to be used on windows, leaving unix domain socket only 
987         in dbus-transport-unix.c
988
989         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
990         temporary hack to be sure this fails on windows
991         (dbus_connection_get_unix_process_id): ditto
992
993 2006-09-16  Havoc Pennington  <hp@redhat.com>
994
995         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
996         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
997         _dbus_open_socket so the domain/type/protocol from system headers
998         are not required. This is kind of pointless though unless we move
999         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1000         sysdeps-unix.c, which would mean adding a wrapper around
1001         bind/listen/etc.
1002         Also, add DBusError to the socket-opening functions so they 
1003         don't require use of errno.
1004
1005 2006-09-16  Havoc Pennington  <hp@redhat.com>
1006
1007         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1008         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1009
1010         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1011         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1012         functions specifically for sockets only, and move generic 
1013         read/write/open/close into unix-specific code.
1014
1015 2006-09-14  Havoc Pennington  <hp@redhat.com>
1016
1017         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1018         complaint about accessing revents when poll returns 0, from Julian Seward.
1019
1020 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1021
1022         * Released 1.0 RC 1 (0.93) 
1023
1024 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1025
1026         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1027         use _dbus_close instead of close
1028
1029 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1030
1031         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1032         credentials.  Fixes "external" authentication under e.g. NetBSD
1033         which does not support any other socket credentials mechanism.
1034         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1035
1036 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1037
1038         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1039         dbus_threads_init and be used by the dbus mutex functions to
1040         avoid deadlocks.
1041
1042         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1043
1044 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1045
1046         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1047         use threadsafe readdir_r instead of readdir
1048
1049 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1050
1051         * dbus-threads.c (dbus_threads_init_default): New method for
1052         initializing the internal thread implementation (Patch from
1053         Alexander Larsson <alexl at redhat dot com>)
1054
1055 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1056
1057         * remove a bunch of todo items from the 1.0 list
1058
1059 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1060
1061         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1062         key not found
1063
1064 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1065
1066         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1067         complex debugging code
1068
1069         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1070         between the test suite ifdefs
1071         (_dbus_verbose_bytes): return if verbosity is not enabled 
1072
1073 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1074
1075         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1076         remove DBusMark
1077
1078 2006-09-10  Havoc Pennington  <hp@redhat.com>
1079
1080        patch mostly by Peter Kümmel, bug #8211
1081         
1082         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1083         unix-specific stuff in dbus-sysdeps.c
1084
1085         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1086         and move unix-specific stuff to dbus-sysdeps-unix.c
1087
1088         * configure.in: check HAVE_ERRNO_H
1089         
1090 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1091
1092         * bus/test-main.c (main): Initialize threading during tests
1093
1094         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1095         Unlock connection on error
1096         (generate_local_error_message): static method for generating
1097         an error message when we don't have a message to reply to
1098         (_dbus_connection_block_pending_call): Send a disconnect error
1099         instead of just a timeout (NULL) when the bus gets disconnected
1100         while blocking for a reply.
1101         
1102 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1103
1104         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1105         filters (Patch from Kimmo Hämäläinen 
1106         <kimmo dot hamalainen at nokia dot com>)
1107
1108 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1109
1110         * dbus/dbus-connection-internal.h: Add prototype for 
1111         _dbus_connection_test_get_locks to remove warning
1112
1113 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1114
1115         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1116         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1117         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1118
1119 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1120
1121         * Clean up close calls to use _dbus_close (Patch from 
1122         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1123
1124 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1125
1126         * doc/TODO:
1127         - Remove pending call locking todo item
1128         - dbus_connection_open now holds hard ref.  Remove todo item
1129         - do proper locking on _dbus_bus_check_connection_and_unref
1130           and handle DBUS_BUS_STARTER. Remove todo item
1131         - Warn on closing of a shared connection.  Remove todo item
1132
1133         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1134         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1135         so we don't get the warning when closing shared connections
1136
1137         * test/test-service.c, test/test-shell-service.c: Applications
1138         don't close shared connections themselves so we unref instead of
1139         close
1140
1141         * test/test-utils.c (test_connection_shutdown): Close the connection
1142
1143         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1144         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1145         method on a locked connection.  
1146         Make sure we call _dbus_connection_unref_unlocked instead of 
1147         dbus_connection_unref also.
1148         Handle DBUS_BUS_STARTER correctly
1149
1150         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1151         Mark as shared and hard ref the connection
1152         (connection_forget_shared_unlocked): Remove the hard ref from the 
1153         connection
1154         (_dbus_connection_close_internal_and_unlock):  New internal function
1155         which takes a locked connection and unlocks it after closing it
1156         (_dbus_connection_close_internal): New internal function which acts
1157         like the origonal dbus_connection_close method by grabbing a connection
1158         lock and calling _dbus_connection_close_internal_and_unlock
1159         (dbus_connection_close): Public close method, warns when the app
1160         trys to close a shared connection
1161
1162 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1163
1164         * bus/driver.c:
1165         (bus_driver_generate_introspect_string): New method for populating
1166         a DBusString with the introspect data
1167         (bus_driver_handle_introspect): Move introspect generation code to 
1168         bus_driver_generate_introspect_string
1169
1170         * bus/main.c:
1171         (introspect): New function which prints out the intropect data and
1172         exits
1173         (main): Add a --introspect switch
1174
1175 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1176
1177         * doc/TODO: Removed dtd publishing item.  
1178         It seems the dtd has already been added at
1179         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1180
1181 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1182
1183         * doc/TODO, various source files: Audited todo's and FIXME's and
1184         prepended the ones we should be looking at with 1.0.  Those
1185         prepended with 1.0? need clerification or might not be needed
1186         for 1.0
1187
1188 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1189
1190         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1191         NULL in the public API (Patch from Kimmo Hämäläinen 
1192         <kimmo dot hamalainen at nokia dot com>)
1193
1194 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1195
1196         * configure.in: Fix for OS-X compile time endian issues (patch from
1197         Benjamin Reed <ranger at befunk dot com>)
1198
1199 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1200
1201         * configure.in: Check for no-common compiler flag (OS-X fix from
1202         Benjamin Reed <ranger at befunk dot com>)
1203
1204 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1205
1206         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1207         <fcrozat at mandriva dot com>)
1208
1209 2006-08-29  Havoc Pennington  <hp@redhat.com>
1210
1211         * test/test-service.c (path_message_func): fix lack of return value
1212
1213         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1214         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1215         any more sense than on anything else in this file.
1216         (_dbus_get_tmpdir): add const to return value, and keep the
1217         results of the various getenv around in a static variable.
1218
1219 2006-08-29  Havoc Pennington  <hp@redhat.com>
1220
1221         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1222         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1223
1224 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1225
1226         * test/Makefile.am: change find to use syntax that works with non
1227         gnu versions of find
1228
1229 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1230
1231         * dbus/dbus-transport.c: fix invalid deref when checking if
1232         a vtable method exists (Patch from Christian Ehrlicher 
1233         <ch dot ehrlicher at gmx dot de>)
1234
1235 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1236
1237         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1238         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1239         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1240         <bernard at brenda-arkle dot demon dot co dot uk>)
1241
1242 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1243
1244         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1245         default case
1246
1247 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1248
1249         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1250         it works on any system providing this interface, not only FreeBSD.
1251         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1252
1253 2006-08-20  Havoc Pennington  <hp@redhat.com>
1254
1255         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1256         the docs
1257
1258 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1259
1260         * Released 0.92 
1261
1262 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1263
1264         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1265         to reflect the init late change
1266
1267         * bus/bus.c (bus_context_new): Check user before we fork so we can
1268         print out an error message a user will be able to see
1269
1270 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1271
1272         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1273
1274         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1275         Add two more global locks for use on windows platforms.  These are
1276         unused on non-windows platforms but are not ifdefed out to avoid
1277         potential bugs (i.e. the few bytes lost does not warrent the extra
1278         maintanence and complexity that having seperate sets of locks would
1279         cause)
1280
1281 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1282
1283         * bus/services.c (bus_registry_acquire_service): Return an error
1284         when an application tries to register the org.freedesktop.DBus Bus Name
1285
1286         * bus/services.c (bus_registry_release_service): Return an error
1287         when an application tries to release the org.freedesktop.DBus Bus Name
1288
1289 2006-08-17  Alp Toker  <alp@atoker.com>
1290
1291         * doc/dbus-specification.xml: Fix some minor typos.
1292
1293 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1294
1295         * configure.in: use $with_init_scripts instead of $operating_system
1296         to determine where to store the pid since the init scripts manipulate 
1297         the pid file (patch from Marcelo Ricardo Leitner 
1298         <marcelo dot leitner at terra dot com dot br>.  
1299
1300 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1301
1302         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1303         static DBusList *uninitialized_condvar_list to support new late 
1304         initialization threading model.  In this model threads can be initialized
1305         even after the D-Bus API has been used but still needs to be initialized 
1306         before the second thread has been started.  Mutexes and condvar addresses
1307         are stored in the two static lists and are replaced with actuall locks
1308         when threads are initalized.
1309         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1310         the location into the static list
1311         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1312         from the static list and freeing the mutex
1313         (_dbus_condvar_new_at_location): New method for creating a conditional 
1314         variable and placing the location into the static list
1315         (_dbus_condvar_free_at_location): New method for removing a conditional
1316         variable location from the static list and freeing the conditional variable 
1317         (init_uninitialized_locks): Atomic method which goes through the static 
1318         lists of mutex and condvar location and updates them with actuall locks
1319         (init_global_locks): changed to init_locks
1320         
1321         * dbus/dbus-connection.c:
1322         (_dbus_connection_test_get_locks): New method for tests to check connections
1323         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1324         condvar API
1325         (dbus_connection_allocate_data_slot): Pass in the global lock address
1326         to _dbus_data_slot_allocator_alloc
1327
1328         * dbus/dbus-dataslot.c:
1329         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1330         instead of the mutex itself
1331
1332         * dbus/dbus-message.c:
1333         (dbus_message_allocate_data_slot): Pass in the global lock address
1334         to _dbus_data_slot_allocator_alloc
1335
1336         * dbus/dbus-pending-call.c:
1337         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1338         to _dbus_data_slot_allocator_alloc
1339
1340         * dbus/dbus-server.c:
1341         (_dbus_server_init_base): Use the new at_location mutex API
1342         (dbus_server_allocate_data_slot): Pass in the global lock address
1343         to _dbus_data_slot_allocator_alloc
1344
1345         * test/name-test/test-threads-init.c: New test case for late thread
1346         initialization
1347
1348 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1349
1350         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1351         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1352         causes compile problems when asserts are turned off
1353         Keeping _dbus_warn for printing out the message so even if
1354         asserts are turned off the user gets the messages that something is 
1355         wrong 
1356
1357 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1358
1359         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1360
1361         * bus/services.c (bus_service_list_queued_owners):
1362         Add a pointer cast to fix compiler warning
1363
1364         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1365         return a NULL instead of FALSE since the return type
1366         is not expecting a boolean
1367
1368         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1369         Remove unused variable
1370
1371         * dbus/dbus-marshal-recursive-util.c (node_new):
1372         return a NULL instead of FALSE since the return type
1373         is not expecting a boolean
1374
1375         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1376         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1377         because we are expecting a pointer not a boolean
1378
1379         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1380         add void as the parameter so some compilers
1381         don't complain
1382
1383         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1384           _dbus_transport_new_for_tcp_socket):
1385         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1386         because we are expecting a pointer not a boolean
1387
1388         * test/shell-test.c (test_command_line):
1389         cast the second argument to _dbus_list_append to avoid compiler
1390         warnings
1391
1392         * test/test-names.c (main): remove unused variable
1393
1394         * test/test-service.c (check_hello_from_self_reply):
1395         Initialize echo_message and echo_reply to NULL
1396         
1397         * test/test-shell-service.c (handle_echo):
1398         Remove unused variable and cast the third parameter passed to
1399         dbus_connection_get_object_path_data to avoid compiler warrnings
1400
1401         * test/name-test/test-names.c (clear_message_queue):
1402         Remove unused function
1403
1404         * test/name-test/test-pending-call-dispatch.c:
1405         Fix format string in printf
1406
1407
1408 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1409
1410         * dbus/dbus-bus.c:
1411         * test/name-test/test-names.c:
1412         Remove test method dbus_bus_connection_get_unique_name because 
1413         we already have public method dbus_bus_get_unique_name that 
1414         does the exact same thing
1415
1416 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1417
1418         * dbus/dbus-signature.c:
1419         fix typos in Julio's previous patch which cause make check to fail
1420
1421 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1422
1423         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1424         In any case it was wrong since this is a test checking to see if
1425         address parsing is correct.  There was no need to get the true
1426         tmp directory.  
1427
1428 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1429
1430         * dbus/dbus-macros.h: Revert the addition of stddef.h
1431         as we should not be adding it to library headers 
1432
1433 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1434
1435         * dbus/dbus-signature.c:
1436         Fix the unit tests so that they work if assertions are not enabled.
1437         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1438
1439 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1440
1441         * tools/run-with-tmp-session-bus.sh:
1442         * test/name-test/run-test.sh:
1443         Remove bashisms (patch from Julio M. Merino Vidal
1444         <jmmv at NetBSD dot org>)
1445
1446 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1447
1448         * configure.in: add a version (>= 2.6.0) check for libxml2
1449
1450 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1451
1452         * configure.in: make sure the compiler supports -Wfloat-equal
1453         
1454         * bus/dir-watch-dnotify.c: move functional code after 
1455         variable declerations (C99 fix)  (patches from Jens Granseuer
1456         <jensgr at gmx dot net>
1457
1458 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1459
1460         * dbus/dbus-macros.h:
1461         add #include <stddef.h> so that Sun compilers don't complain about
1462         the defining NULL
1463
1464 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1465
1466         * dbus/dbus-sysdeps.c:
1467         * dbus/dbus-address.c:
1468         * bus/activation.c:
1469         * test/shell-test.c:
1470         don't hardcode tmp directory (patch from Dave Meikle 
1471         <dmk at davemeikle dot co dot uk>)
1472
1473 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1474
1475         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1476         Change an assert to a detailed warning and abort.  
1477         When allocator->lock != mutex it indicates that the user has failed
1478         to initalize threads before using the D-Bus library.  This warning
1479         helps the user identify the issue and fix their app.
1480
1481 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1482
1483         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1484         with cleanups of bugs found from Coverity reports:
1485
1486         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1487         close the file on error to avoid a leak
1488
1489         * bus/expirelist.c (bus_expire_list_test):
1490         Check for NULL on dbus_new0
1491
1492         * bus/activation.c (update_directory):
1493         remove dead code
1494
1495         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1496         Fix some leaks
1497
1498         * bus/bus.c (process_config_every_time):
1499         Fixed a leak
1500
1501         * bus/desktop-file.c (parse_key_value):
1502         Fixed leak
1503
1504         * bus/selinux.c (bus_selinux_id_table_insert):
1505         Fixed leak
1506
1507 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1508
1509         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1510         remove dead code
1511
1512 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1513
1514         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1515         #!/bin/bash
1516
1517 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1518
1519         * Doxyfile.in: fix the INPUT line so we can generate docs 
1520         when sourcedir != builddir (patch from Cygwin Ports maintainer
1521         <yselkowitz at users dot sourceforge dot net>
1522
1523 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1524
1525         * dbus/dbus-sysdeps.h:
1526         * dbus/dbus-sysdeps.c: 
1527         * dbus/dbus-string.c: 
1528         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1529         GLib's function which does the same thing
1530
1531         * configure.in:
1532         * bus/Makefile.am:
1533         * bus/dir-watch-default.c:
1534         * bus/dir-watch-dnotify.c:
1535         * bus/dir-watch-kqueue.c:
1536         Add kqueue directory watching for freebsd and split the directory
1537         watching code into seperate files per method/arch
1538         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1539
1540 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1541
1542         * configure.in:
1543         * tools/Makefile.am:
1544         * tools/dbus-launch.c:
1545         * bus/Makefile.am:
1546         allow --with-dbus-daemondir switch to be used to make the
1547         daemon install to a seperate bindir like /usr/libexec
1548         (patch from Brian Cameron <brian dot cameron at sun dot com)
1549
1550 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1551
1552         * bus/Makefile.am (install-data-hook): removed the slash after 
1553         $(DESTDIR) so we don't get the double slash which does not work
1554         in windows (patch from Andras Porjesz 
1555         <andras dot porjesz at siemens dot com>)
1556
1557 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1558
1559         * dbus/dbus-sysdeps.h:
1560         * dbus/dbus-sysdeps.c: 
1561           add _dbus_printf_length (patch from Peter Kümmel 
1562           <syntheticpp at gmx dot net>)
1563
1564 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1565
1566         * dbus/dbus-internals.c: unistd.h is not used 
1567         (_dbus_verbose_real): only enable verbose printing 
1568         if DBUS_VERBOSE environment var is set to '1'
1569         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1570
1571 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1572
1573         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1574         so we still compile on older gcc (patch from Frederic Peters 
1575         <fpeters at 0d dot be>
1576
1577 2006-08-04  Havoc Pennington  <hp@redhat.com>
1578
1579         * configure.in: add -Wdeclaration-after-statement
1580
1581         * dbus/dbus-connection.c: change all the pending call stuff to
1582         reflect the fact that pending call operations use the connection
1583         lock
1584
1585         * dbus/dbus-pending-call.c: add locking here
1586
1587         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1588         field const consistent with how message field is done
1589
1590 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1591
1592         * s/D-BUS/D-Bus/g
1593
1594 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1595
1596         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1597         <in7y118 at public.uni-hamburg dot de> - fix invalid
1598         read/write reported by valgrind
1599
1600 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1601
1602         * Released 0.91
1603
1604 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1605
1606         * dbus/dbus-connection.c:
1607         (_dbus_connection_attach_pending_call_unlocked):
1608         (connection_timeout_and_complete_all_pending_calls_unlocked):
1609         Make sure we set timeout_added on pending calls to FALSE when
1610         we remove the timeout from the connection
1611
1612 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1613
1614         * Removed some extra bindings stuff lingering around (thanks timo)
1615         * dbus-pendingcall.c (_dbus_pending_call_new): 
1616         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1617         when we tried to take a lock on an already locked connection
1618
1619 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1620
1621         * Released 0.90
1622
1623 2006-07-17  Havoc Pennington  <hp@redhat.com>
1624
1625         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1626         ints, reported by Owen Taylor
1627
1628 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1629
1630         * doc/TODO:
1631         * dbus/dbus-bus.c:
1632         * dbus-errors.c:
1633         * dbus/dbus-marshal-validate.c:
1634           Removed TODO items which were fixed or are no longer relevent
1635
1636 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1637
1638         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1639         Remove stray files from the stripped bindings
1640
1641 2006-07-16  Havoc Pennington  <hp@redhat.com>
1642
1643         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1644         Improve the error message on reply timeout
1645
1646 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1647
1648         * Remove all bindings
1649
1650 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1651
1652         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1653         and set pending_reply out arg to NULL is connection is disconnected
1654         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1655         static method for cleaning up pending calls on disconnect
1656         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1657         calls queued timeouts on disconnect 
1658
1659          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1660         Remove 
1661
1662 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1663
1664         * bus/activation.[ch] (bus_activation_list_services): new function to 
1665         get the list of services that can be activated
1666
1667         * bus/dispatch.c: test coverage for the new bus method
1668         ListActivatableNames
1669
1670         * bus/driver.c: new bus method ListActivatableNames to get the list of
1671         services that can be activated
1672
1673         * doc/dbus-specification.xml: ListActivatableNames method documentation
1674
1675 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1676         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1677         source files
1678
1679 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1680         * dbus/dbus-message-factory.c:
1681         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1682
1683 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1684         * dbus/dbus-connection-internal.h:
1685         * dbus/dbus-connection.c:
1686         * file dbus/dbus-pending-call.c:
1687         * dbus/dbus-pending-call.h:
1688         Make DBusPendingCall an opaque type even to D-Bus internals
1689
1690 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1691
1692         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1693         connection_close
1694
1695         * dbus/dbus-connection.c: include dbus-bus.h
1696         (_dbus_connection_read_write_dispatch): make static
1697
1698 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1699
1700         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1701         function
1702         (dbus_connection_dispatch): On disconnect unref any shared connections
1703
1704         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1705         for cleaning up shared connections on disconnect
1706         (internal_bus_get): get a hard refrence to shared connections when
1707         they are created
1708         
1709         * doc/TODO: Remove items which are no longer relevent or have been fixed
1710         Split 1.0 todo items with a 0.90 freeze todo list
1711  
1712 2006-06-14  Ross Burton  <ross@openedhand.com>
1713
1714         * glib/dbus-gobject.c:
1715         Free a leaking GArray (surely not!) in dbus_g_method_return.
1716
1717 2006-06-14  Ross Burton  <ross@openedhand.com>
1718
1719         * tools/Makefile.am:
1720         * tools/dbus-monitor.c:
1721         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1722         Habacker).
1723         
1724 2006-06-14  Ross Burton  <ross@openedhand.com>
1725
1726         * tools/dbus-print-message.c:
1727         Also print the object path when outputting signals or method calls.
1728
1729 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1730
1731         * qt/src/Makefile.am: install the qdbus.h header.
1732         This allows people to actually use the installed code.
1733
1734 2006-06-12  Ross Burton  <ross@openedhand.com>
1735
1736         * glib/dbus-gproxy.c:
1737         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1738
1739 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1740
1741         * Released 0.62
1742
1743 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1744
1745         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1746         break pedantic builds. Closes bug 6043 (patch approved by
1747         Havoc back in February).
1748
1749 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1750
1751         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1752         that took a QDBusMessage parameter.
1753         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1754         * qt/tools/dbus.cpp: Don't use automatic call because we might
1755         be calling an async method: request a reply.
1756
1757 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1758
1759         * test/qt/*: Update the testcases, including testing the new
1760         functionality of sending null QByteArray and QString over the
1761         bus. Add new headertest test and restore the old
1762         qdbusxmlparser test.
1763
1764 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1765
1766         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1767         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1768
1769         * qt/examples/Makefile.am:
1770         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1771         form.
1772
1773         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1774         QByteArray() (nulls) over the bus.
1775         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1776         the one that has the signature suffix stripped.
1777         * qt/src/qdbusreply.h: Make some methods const.
1778
1779 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1780
1781         Patch from Timo Hoenig <thoenig@suse.de>.
1782
1783         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1784         required during build to EXTRA_DIST.
1785         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1786         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1787         * configure.in: Fix "make dist", take care that the Makefile for
1788         qt/dbus is being generated.
1789
1790 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1791
1792         * bus/bus.c: Fix eavesdropping on method calls
1793
1794 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1795
1796         * configure.in:
1797         * dbus/dbus-userdb-util.c:
1798         Add Solaris console owner patch from Artem Kachitchkine
1799
1800 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1801
1802         * qt/Makfile.am:
1803         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1804         reorganisation. Thanks to Timo Hoenig for pointing this out.
1805
1806 2006-06-06  Robert McQueen  <robot101@debian.org>
1807
1808         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1809           call to dbus_g_type_get_struct.
1810
1811 2006-06-06  Robert McQueen  <robot101@debian.org>
1812
1813         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1814           pointers were put into a GPtrArray-based specialised collection, and
1815           then freed along with the array. GValues which you add into
1816           collections or maps which have the NOCOPY flag set are assumed to not
1817           belong to the caller, so rather than the existing pointer-stealing
1818           semantics, they are copied instead. Given that the main consumers of
1819           this abstraction are the bindings themselves, I don't think this is
1820           too bad, but others should watch their choice of take vs set_static.
1821
1822 2006-06-06  Robert McQueen  <robot101@debian.org>
1823
1824         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1825           of g_slist_prepend not being used. Fixed copying of slist-based
1826           specialised collections, then wrote a test case and found that it was
1827           all broken. Went on to fix iterating and appending too. Good thing
1828           nobody uses this code yet.
1829
1830 2006-06-06  Robert McQueen  <robot101@debian.org>
1831
1832         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1833           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1834           are discarded without unsetting, so it makes no difference whether
1835           we take or set_static). Remove cases for G_TYPE_POINTER because
1836           there really is nothing useful we can do with them in our
1837           specialised types - we *need* boxed copy/free functions at the very
1838           least.
1839
1840 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1841
1842         * qt/dbus: Add directory. I had forgotten to add this
1843         yesterday after the move...
1844
1845         * qt/examples/Makefile.am:
1846         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1847
1848         * qt/tools/Makefile.am:
1849         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1850         Added feature to get and set properties.
1851         Added validation of service, object path and interface names.
1852
1853         * qt/tools/dbusidl2cpp.cpp: Two new features:
1854         1) Allow specifying both the header and the source file names,
1855         by separating them with a colon.
1856         2) Don't write an interface output if the -p switch wasn't
1857         given, but the -a was.
1858
1859         * qt/src/*: Fix usage of Iterators and ConstIterators.
1860         Fix shadowing of variables by other variables (-Wshadow).
1861         Fix keyword-cleanliness in headers.
1862         Fix ASCII-cast (QLatin1String, QLatin1Char).
1863         Fix validation of member names.
1864         Add extra checking of introspection data during XML parsing.
1865         Various bug fixes.
1866
1867 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1868
1869         * dbus/Makefile.am:
1870         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1871         qt/dbus/qdbus.h now.
1872
1873 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1874
1875         * configure.in: Make --disable-qt actually do
1876           something. Patch inspired by Zack Rusin.
1877
1878 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1879
1880         * qt/: Update to Subversion r548032.
1881         This includes a big reorganisation of the files inside the
1882         subdir.
1883
1884 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1885
1886         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1887         clear:  
1888         "Failed to connect to socket <host>:<port> <error>" instead of
1889         "Failed to connect to socket <host>: <error>:<port>"
1890
1891         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1892         for a tcp transport. 
1893
1894 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1895
1896         * qt/*: Update the QtDBus bindings up to revision 546310 in
1897         Subversion.
1898         This adds the dbuscpp2xml tool, that parses a C++ header and
1899         outputs a D-BUS Introspection XML.
1900
1901 2006-05-21  Havoc Pennington  <hp@redhat.com>
1902
1903         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1904         is not NULL when it shouldn't be. Also a couple of possible fixes
1905         for #4637 though I don't understand why the bug happens, to be
1906         honest... also the object constructor has an assert name != NULL
1907         and the name is only currently NULL for peer-to-peer proxies that 
1908         I don't think anyone uses? So it should be asserting.
1909         Anyway, for now at least see if we get an earlier assertion failure.
1910
1911         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1912         apparently broken code to be sure the tests fail and someone 
1913         will fix them...
1914
1915 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1916
1917         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1918         and arrays when they had a single element: has_next returns
1919         false, even before you read the element. So, instead, check
1920         the array length.
1921
1922 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1923
1924         * qt/qdbusmessage.cpp:
1925         * qt/qdbustypehelper_p.h:
1926         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1927         the list is a const-reference
1928
1929 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1930
1931         * Adding old doc patch that never got applied
1932         
1933         * dbus/bus.c (dbus_bus_add_match): Add documentation
1934
1935         * doc/dbus-specification.xml: Add documentation for the match rules
1936           and the AddMatch and RemoveMatch methods
1937
1938 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1939
1940         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1941         call (r535506)
1942
1943         * qt/dbusidl2cpp.cpp:
1944         * qt/qdbusabstractadaptor.cpp:
1945         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1946         sibling of the QDBusAbstractAdaptor objects instead of the
1947         parent. (r535848)
1948
1949         * qt/dbusidl2cpp.cpp:
1950         * qt/qdbusabstractinterface.cpp:
1951         * qt/qdbusabstractinterface.h:
1952         * qt/qdbusabstractinterface_p.h:
1953         * qt/qdbusinterface.cpp: Make properties in interfaces
1954         actually work. The code that was generated would not compile,
1955         due to moc calls to functions that did not exist. They now
1956         shall. (r536571)
1957
1958 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1959
1960         * Makefile.am:
1961         * configure.in:
1962         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1963         Thanks to Brad Hards for providing the patch
1964
1965 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1966
1967         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1968         call. (r535506)
1969
1970 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1971
1972         * qt/examples/dbus.cpp: Enhance error messages and use
1973         QDBusInterfacePtr.
1974
1975 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1976
1977         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1978         and disable the copy operators. (r533772, r534746)
1979
1980         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1981
1982         * qt/qdbusabstractinterface.cpp:
1983         * qt/qdbusabstractinterface.h: Change the default call mode to
1984         not use the event loop. Add convenience call() methods that
1985         take a CallMode parameter. (r534042)
1986
1987         * qt/qdbusconnection.h: Change the default call mode to not
1988         use the event loop. (r534042)
1989
1990         * qt/qdbusinterface.cpp:
1991         * qt/qdbusinterface.h: Add a method to tell us if the
1992         interface is valid (since we don't return a null pointer
1993         anymore) (r534099)
1994
1995         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1996         (r534101)
1997
1998         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1999         function in two so taht we get the chance to introspect
2000         without having a QDBusMessage (r534102)
2001
2002         * qt/qdbusbus.h:
2003         * qt/qdbusconnection.cpp:
2004         * qt/qdbusconnection_p.h:
2005         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2006         avoid a round-trip to the server when attempting to introspect
2007         one of our own objects. Also make sure the filter functions
2008         match the empty interface as well. (r534108)
2009         Don't keep the connection names. Instead, trust the unique
2010         connection name (r534111)
2011         Remove event loop usage (r534112)
2012
2013 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2014
2015         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2016         Brad Hards.
2017
2018 2006-04-28  Robert McQueen  <robot101@debian.org>
2019
2020         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2021         any order, making it easier for people who inherit from this
2022         object.
2023
2024 2006-04-28  Robert McQueen  <robot101@debian.org>
2025
2026         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2027         of memory from within pointer arrays and lists. Fixes bug #6300.
2028
2029 2006-04-28  Robert McQueen  <robot101@debian.org>
2030
2031         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2032         generating struct signatures. Fixes bug #6083.
2033
2034 2006-04-28  Robert McQueen  <robot101@debian.org>
2035
2036         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2037         to qdbusconnection_p.moc.
2038
2039 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2040
2041         * README, INSTALL: Doc fixes
2042         Patch from Brad Hards <bradh at frogmouth.net>
2043
2044 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2045
2046         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2047         the dynamic meta object. No need to guess which interface to
2048         call.
2049
2050 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2051
2052         * qt/qdbusconnection_p.h:
2053         * qt/qdbusmetaobject.cpp:
2054         * qt/qdbusmetaobject_p.h:
2055         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2056         for the dynamic meta object. No need to guess which
2057         interface to call.
2058         * qt/qdbusabstractinterface_p.h:
2059         * qt/qdbusconnection.cpp:
2060         * qt/qdbusintegrator.cpp:
2061         * qt/qdbusinterface.cpp:
2062         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2063         Add a QDBusRef that looks and behaves like DCOPRef.
2064
2065 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2066
2067         * dbus/dbus-connection.c: Interfaces are optional in method
2068         calls, so don't give up if the interface parameter is NULL.
2069         Patch reviewed by Havoc Pennington.
2070
2071 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2072
2073         * qt/qdbusreply.h: Add default constructor and operator=
2074           (r532625)
2075         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2076           in public headers (r532952)
2077         * qt/qdbusabstractinterface.cpp:
2078         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2079           make it the default (r532951)
2080
2081 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2082
2083         * dbus/dbus-connection.c: Fix asserts
2084         Patch from Tim Moloney <t.moloney at verizon.net>
2085
2086 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2087
2088         * mono/Connection.cs, mono/Message.cs: Check Target type
2089         Patch from Aaron Bockover (abockover at novell.com)
2090
2091 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2092
2093         * INSTALL: fine-tune the requirements for the Qt4 binding.
2094
2095 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2096
2097         * tools/dbus-print-message.c: Added support for printing of all 
2098           remaining data types. Fixed logic for indentation of compound
2099           data types.
2100         
2101 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2102
2103         * INSTALL: fill out content of file providing DBus specific
2104           build installations, followed by generic Auto* INSTALL file
2105           content
2106         
2107 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2108
2109         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2110           Patch by Stefan Eilers. (r529537)
2111
2112 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2113
2114         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2115           contents (r528208)
2116
2117 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2118
2119         * qt/Makefile.am: fix the dependency for
2120           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2121           not in qdbusconnection.cpp.
2122           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2123           spotting this.
2124
2125 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2126
2127         * qt/examples/listnames.cpp:
2128         * qt/examples/Makefile.am: Three ways to list the names on the
2129           bus.
2130
2131 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2132
2133         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2134           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2135
2136 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2137
2138         Merge from Subversion:
2139         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2140           something that exists (r526315)
2141         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2142           slots/signals (r526316)
2143         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2144           also return an unknown-method error if the parameters don't
2145           match for org.freedesktop.DBus.Properties. (r526842)
2146         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2147         * qt/qdbusintegrator.cpp: Restore the proper order of
2148           delivery: don't make method returns be delivered on priority
2149           (r528150)
2150
2151 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2152
2153         * configure.in qt/Makefile.am: add qt/examples
2154         * qt/examples: Add QtDBus example programs:
2155           - hello: Hello, World
2156           - ping: Simple method-calling program
2157           - pong: Simple object-exporting program (not using adaptors)
2158           - complexping: Interactive method-calling program 
2159                 (also gets and sets properties).
2160           - complexpong: Sample program exporting methods, signals and
2161                 properties, using adaptors.
2162           - dbus: Simple implementation of a generic method-calling
2163                 program, similar to 'dbus-send', but with semantics
2164                 similar to 'dcop'.
2165           - chat: Simplistic chat program, implemented using signals
2166                 and the system bus. Looks like IRC.
2167
2168 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2169
2170         * configure.in: Detect QtGui (necessary for one of the
2171           example programs). Note: this increases the minimum required
2172           version of Qt to 4.1.3.
2173
2174 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2175
2176         * test/qt/*: Sync with KDE Subversion revision 523647.
2177         Update the testcases to the new API. Remove testcases for
2178         classes that are no longer public or have been removed.
2179
2180 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2181
2182         * qt/*: 
2183         * dbus/qdbus.h: Sync with KDE Subversion revision
2184         523647. Hopefully, this will be the last of the
2185         source-incompatible changes. Documentation has been improved;
2186         support for QList<basic-types> has been added; QDBusObject is
2187         gone; QDBus(Abstract)Interface is now a QObject with
2188         auto-generated meta-object; QDBusIntrospection is marked
2189         private, since QMetaObject can be used now; lots of bugfixes.
2190
2191 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2192
2193         Patch from Milosz Derezynski <internalerror at gmail.com>
2194         
2195         * configure.in:
2196         Output the service directory in the configure summary
2197
2198         * dbus-1.pc.in:
2199         Add session_bus_services_dir
2200
2201 2006-03-10  Ross Burton  <ross@openedhand.com>
2202
2203         * tools/dbus-print-message.c:
2204         Add support for object paths and signatures.
2205
2206 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2207
2208         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2209         config reload.
2210         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2211         information caches
2212         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2213         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2214         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2215         * dbus/dbus-userdb.h: Add function to flush all user/group information
2216         caches.
2217
2218 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2219
2220         * qt/dbusidl2cpp.cpp:
2221         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2222         for dcopidl2cpp, found in the KDE installations (or the more
2223         modern kalyptus): generate Qt4 C++ code for the input XML
2224         introspection. Currently no IDL parsing.
2225
2226 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2227
2228         * test/qt/*: Update the self-tests.
2229
2230 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2231
2232         * qt/*: 
2233         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2234         represents the first feature-complete version of the Qt4
2235         bindings since I took ove maintainership.
2236
2237 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2238
2239         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2240         dir. This is C++, so we can't use the DBus ones.
2241
2242 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2243
2244         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2245         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2246
2247 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2248
2249         * dbus/dbus-connection.c: 
2250         (_dbus_connection_block_pending_call):
2251         Check to see if our data has already been read off the connection
2252         by another blocking pending call before we block in poll.
2253         (check_for_reply_and_update_dispatch_unlocked):
2254         Code taken from _dbus_connection_block_pending_call - checks for
2255         an already read reply and updates the dispatch if there is one.
2256
2257         * test/name-test/test-pending-call-dispatch.c:
2258         New test for making sure we don't get stuck polling a 
2259         dbus connection which has no data on the socket when
2260         blocking out of order on two or more pending calls.
2261
2262 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2263
2264         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2265         make/automake don't detect that we're talking about the same
2266         .lo file if I specify the full path to the source files.
2267
2268 2006-02-26  Havoc Pennington  <hp@redhat.com>
2269
2270         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2271
2272         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2273         session bus variable is unset, suggest "man dbus-launch" and "man
2274         dbus-daemon" to figure out how to fix the problem
2275
2276 2006-02-25  Havoc Pennington  <hp@redhat.com>
2277
2278         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2279         should make this thing use the new glib options parser
2280
2281 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2282
2283         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2284         .lo files taking moc sources.
2285
2286 2006-02-25  Havoc Pennington  <hp@redhat.com>
2287
2288         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2289         and install it as a public header
2290
2291 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2292
2293         * Released 0.61
2294
2295 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2296         
2297         * proxies.py: Fix the callchain
2298
2299 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2300         
2301         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2302
2303         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2304         dbus/dbus-sysdeps.c
2305
2306         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2307         call _dbus_group_info_free_allocated which causes infinite loop,
2308         correctly call _dbus_group_info_free
2309
2310 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2311
2312         * qt/qdbusinterface_p.h:
2313         * qt/qdbusinterface.cpp: Use the standard
2314         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2315         calls instead of creating one for us.
2316
2317         * qt/qdbusconnection_p.h:
2318         * qt/qdbusintegrator.cpp: Remove debugging code.
2319
2320         * qt/qdbusintegrator.cpp:
2321         * qt/qdbusmessage.cpp:
2322         * qt/qdbusmessage_p.h:
2323         * qt/qdbusmessage.h: Change the behaviour of automatic
2324         reply-sending: now a reply is always sent, unless the caller
2325         didn't request one or if the user slot has already sent one.
2326
2327 2006-02-16  Robert McQueen  <robot101@debian.org>
2328
2329         * configure.in: Patch from Debian packages by Sjoerd Simons
2330         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2331         arguments so it's possible to build both bindings in the
2332         same tree.
2333
2334         * qt/Makefile.am: Fix truncated value so that make dist works.
2335
2336 2006-02-16  Robert McQueen  <robot101@debian.org>
2337
2338         * acinclude.m4, configure.in: Patch from Brad Hards
2339         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2340         improving quoting, re-ordering a few checks, and a few other
2341         aesthetic tidy-ups.
2342
2343 2006-02-16  Robert McQueen  <robot101@debian.org>
2344
2345         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2346         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2347         assertion that the next element to read from the iter is fixed in
2348         size. This is not the case when you are at the end of the iter,
2349         because the next element type is INVALID.
2350
2351         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2352         a bogus assert which means that you may not initialise a 0-length
2353         string unless you provide a non-NULL pointer. This prevented
2354         you from marshalling messages containing zero-length arrays in
2355         some cases.
2356
2357         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2358         from Rob to correct bogus asserts when trying to demarshal an
2359         array and get_fixed_array got you 0 elements. Append nothing to
2360         the GArray in this case.
2361
2362         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2363         an empty array via the glib bindings. Without all of the above
2364         patches, this new test fails.
2365
2366 2006-02-16  Robert McQueen  <robot101@debian.org>
2367
2368         * glib/dbus-gmain.c: Make the previous commit compile.
2369
2370         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2371         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2372         specify sender_keyword="foo", path_keyword="bar" when adding
2373         a signal listener, so that you can bind to signals generically
2374         but still do something useful in your callback.
2375
2376         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2377         chars so that they're not cast to chars and made negative. Thanks
2378         to Jakub Stachowski for reporting this and testing the fix.
2379
2380 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2381
2382         * dbus/dbus-glib.h:
2383         * glib/dbus-gmain.h:
2384         (dbus_g_connection_open): new method for openning
2385         a connection to an arbitrary address in the glib bindings
2386
2387         * ChangeLog: checkin last entry which doesn't seem to be commited
2388
2389 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2390
2391         * tools/dbus-launch.c: Fixed sh syntax output
2392
2393 2006-02-13  Robert McQueen  <robot101@debian.org>
2394
2395         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2396         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2397         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2398         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2399         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2400         missing piece of the glib bindings jigsaw puzzle. This modifies
2401         the existing specialised types to have N type parameters (rather
2402         than the current 1 or 2 for arrays and dictionaries respectively).
2403         You can then use this to get a glib type to represent any arbitrary
2404         D-Bus struct type using dbus_g_type_get_struct. The only
2405         implementation of these types is with GValueArrays as before,
2406         but it's now possible to store these in arrays, emit them in
2407         signals, etc.
2408
2409 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2410
2411         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2412         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2413         <thiago.macieira at trolltech.com>
2414
2415 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2416
2417         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2418         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2419
2420 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2421
2422         * bus/connection.c (bus_connections_expect_reply): Make
2423         pending reply limit not common to all connections (Bug #5416)
2424         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2425
2426 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2427
2428         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2429
2430 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2431
2432         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2433         patch from Doug Goldstein <cardoe at gentoo.org>
2434
2435 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2436
2437         * mono/Arguments.cs: Fix a magic number in the mono bindings
2438         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2439
2440 2006-01-27  Robert McQueen  <robot101@debian.org>
2441
2442         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2443         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2444         when generating the client-side methods, instead of overloading
2445         CSymbol which broke everything horribly. My apologies.
2446
2447 2006-01-27  Robert McQueen  <robot101@debian.org>
2448
2449         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2450         by me and Rob Taylor to add a simple_free function to D-Bus map
2451         and collection types, which allows those types which can be freed
2452         with a GDestroyNotify (such as GHashTables and GArrays, but not
2453         GPtrArrays) to be stored as the values in hashtables.
2454
2455         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2456         Patch by Rob Taylor to add nested dicts to the glib tests to check
2457         the above code works, and appears not to leak when called repeatedly.
2458
2459 2006-01-27  Robert McQueen  <robot101@debian.org>
2460
2461         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2462         to free a D-Bus allocated string with dbus_free () instead of
2463         g_free ().
2464
2465 2006-01-27  Iain Holmes  <iain@openedhand.com>
2466
2467         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2468         method from being called multiple times.
2469
2470 2006-01-19  Robert McQueen  <robot101@debian.org>
2471
2472         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2473         <rob.taylor@collabora.co.uk> to add support for generating bindings
2474         to arrays that are represented as GPtrArrays rather than GArrays (ie
2475         size-variable things, such as strings, objects, structs, etc).
2476
2477 2006-01-05  Robert McQueen  <robot101@debian.org>
2478
2479         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2480         <ricardo.kekki@movial.fi> to make it possible to inherit from
2481         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2482         a private part, and moving the setting of the DBusGProxyManager into a
2483         connection property, allowing proper GObject construction.
2484
2485 2006-01-05  Robert McQueen  <robot101@debian.org>
2486
2487         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2488         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2489         annotations when generating glib client bindings.
2490
2491 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2492
2493         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2494
2495         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2496
2497 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2498
2499         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2500
2501 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2502
2503         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2504
2505 2005-12-19  Ross Burton  <ross@openedhand.com>
2506
2507         * doc/dbus-tutorial.xml:
2508         Document the Glib client-side bindings, and list all possible annotations.
2509
2510 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2511
2512         * dbus/bus.c (dbus_bus_release_name): Add documentation
2513
2514 2005-12-06  Robert McQueen  <robot101@debian.org>
2515
2516         * python/service.py: s/sucessful/successful/ so we're allocating to
2517         and reading from the same variable. Oops.
2518
2519 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2520
2521         * Released 0.60
2522
2523 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2524
2525         * test/qt/Makefile.am: build from srcdir
2526
2527         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2528         Note - this code is wrong and needs to be fixed by the Qt binding
2529         developers.  The flags should be treated as bitfields and not enums.
2530
2531         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2532
2533 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2534
2535         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2536           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2537           in production code
2538
2539 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2540
2541         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2542         method for getting messages off the bus in the absence of a
2543         mainloop.  This method is much like 
2544         dbus_connection_read_write_dispatch except it does not dispatch
2545         the messages to a registered filter function.  Instead it
2546         allows a developer to process messages by directly popping
2547         them off the bus.
2548
2549 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2550
2551         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2552         the parser to continue instead of returning error
2553         (bus_desktop_file_load): Do not free parser data when
2554         parse_section_start or parse_key_value fails because it was 
2555         already freed by parser_free (patch from Carlos Garcia Campos  
2556         <carlosgc at gnome.org>)
2557
2558 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2559
2560         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2561         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2562         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2563         test/test-segfault.c, test/test-utils.c,
2564         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2565         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2566         Various cleanup of dead code and compiler warnings (patch from
2567         Kjartan Maraas <kmaraas at gnome.org>) 
2568
2569 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2570
2571         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2572         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2573
2574 2005-11-27  Robert McQueen  <robot101@debian.org>
2575
2576         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2577         part of the preceding one. Oops. Merge patch by Johan Hedberg
2578         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2579         on big-endian platforms.
2580
2581         * test/python/test-client.py: Add some 16-bit integers to the test
2582         values.
2583
2584 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2585
2586         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2587         method return message for property getters
2588
2589 2005-11-27  Robert McQueen  <robot101@debian.org>
2590
2591         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2592         with type v of an instance of dbus.Variant(foo, type='x') caused
2593         it to be boxed twice before sending over the bus.
2594
2595         * python/dbus_bindings.pyx, python/service.py,
2596         test/python/test-client.py: Update the constants for the new
2597         request_name flags, and update comments/test cases now that queueing
2598         is the default action.
2599
2600 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2601
2602         * configure.in:
2603         - Change version to 0.60 for impending release
2604         - upped the sonames because of ABI and API breakage
2605
2606 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2607
2608         * configure.in: Add test/name-test/Makefile to the generated
2609         Makefile list
2610
2611         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2612         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2613         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2614         not to queue an ower if it can't be the primary owner
2615
2616         * bus/bus.h: Add new internal BusOwner struct
2617
2618         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2619         to bus_registry_ensure and don't set the prohibit_replacement flag
2620         since they are now set per BusOwner and not per name.
2621         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2622         that returns the list of connections in a name's connection queue
2623         
2624         * bus/services.c (struct BusService): remove prohibit_replacement field
2625         (struct BusOwner): new struct for keeping track of queued connections
2626         and their associated flags for the queue
2627         (struct BusRegistry): add a BusOwner memory pool
2628         (bus_registry_new): initialize the BusOwner memory pool
2629         (bus_registry_unref): free the BusOwner memory pool
2630         (_bus_service_find_owner_link): new internal method for
2631         searching the queue for a specific connection
2632         (bus_owner_set_flags): new method for adding setting the flags on a
2633         bus owner
2634         (bus_owner_new): new method that creates a BusOwner object from the
2635         pool and sets its flags
2636         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2637         (bus_registry_ensure): Add the flags parameter
2638         (bus_registry_acquire_service): Switch from using raw connections to
2639         using the BusOwner struct
2640         Add new state machine for dealing with the new set of flags
2641         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2642         cancel_ownership, free_ownership_cancel_data, 
2643         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2644         restore_ownership, free_ownership_restore_data, 
2645         add_restore_ownership_to_transaction): Switch to using BusOwner 
2646         instead of raw connections
2647         (bus_service_add_owner): Add flags parameter
2648         Switch to using BusOwner instead of raw connections
2649         Add state machine for dealing with the new set of flags
2650         (bus_service_swap_owner): Swaps the first and second owners in the
2651         queue.  Used to make sure proper signals are sent when a service looses 
2652         or gains primary ownership.  We never insert an owner at the top of the
2653         queue.  Instead we insert it in the second position and then swap.
2654         (bus_service_remove_owner): Remove the owner from the queue sending
2655         out the NameLost and NameOwnerChanged signals if the we were the 
2656         primary owner
2657         (bus_service_get_primary_owners_connection): New method that extracts
2658         the connection from the primary owner
2659         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2660         connection
2661         (bus_service_get_allow_replacement): Changed from the old 
2662         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2663         primary owner and returns if it can be replaced or not
2664         (bus_service_set_prohibit_replacement): removed
2665         (bus_service_has_owner): returns TRUE if and owner with
2666         the specified connection exists in the queue
2667         
2668         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2669         method that only compiles if tests are enabled.  Allows us to get the 
2670         unique name of a connection so we can check it against the queue when
2671         doing regression tests
2672
2673         * bus/activation.c (bus_activation_send_pending_auto_activate),
2674         bus/dispatch.c (bus_dispatch),  
2675         bus/driver.c (bus_driver_handle_get_service_owner, 
2676         bus_driver_handle_get_connection_unix_user, 
2677         bus_driver_handle_get_connection_unix_process_id,
2678         bus_driver_handle_get_connection_selinux_security_context),
2679         bus/signals.c (connection_is_primary_owner): 
2680         use bus_service_get_primary_owners_connection instead of
2681         bus_service_get_primary_owner
2682
2683         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2684         _dbus_listen_unix_socket): Calculate the length of the socket
2685         path and use that instead of using a fixed length which was
2686         causing socket names to contain many trailing Nul bytes.
2687
2688         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2689         (dbus_g_method_get_sender): New method for extracting the sender 
2690         from a DBusGMethodInvocation
2691         (dbus_g_method_return_get_reply): changed name to 
2692         dbus_g_method_get_reply
2693         (dbus_g_method_return_send_reply): changed name to
2694         dbus_g_method_send reply
2695
2696         * doc/dbus-specification.xml: New docs that describe how the new
2697         queueing system works and talks about the changes to the how
2698         we specify socket names
2699
2700         * glib/examples/example-service.c, 
2701         glib/examples/example-signal-emitter.c,
2702         glib/examples/statemachine/statemachine-server.c:
2703         Changed the RequestName flags to the new system
2704
2705         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2706         regression test suite for testing various states of the new
2707         queueing system
2708         
2709 2005-11-15  Robert McQueen  <robot101@debian.org>
2710
2711         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2712         Taylor to add two methods, dbus_g_method_return_get_reply and
2713         dbus_g_method_return_send_reply, to allow you to get the reply
2714         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2715         and send it. The GLib bindings can't marshal a return value of
2716         something like a(s) if the array is empty - ultimately they should be
2717         made to heed the signature of the out arguments as the Python bindings
2718         now can, but this is a workable interim solution which might have
2719         other applications.
2720
2721 2005-11-15  Robert McQueen  <robot101@debian.org>
2722
2723         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2724         method to org.freedesktop.DBus to release a bus name or give up
2725         waiting in the queue for it.
2726
2727         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2728         dbus_bus_release_name method to send the ReleaseName method calls.
2729         Add constants for the return values to dbus/dbus-shared.h.
2730
2731         * doc/dbus-specification.xml: Document the new ReleaseName method
2732         in the specification.
2733
2734         * python/dbus_bindings.pyx: Add a low-level python binding for the
2735         release name method.
2736
2737         * python/exceptions.py, python/service.py: Make freeing BusName
2738         objects release the name. Add a NameExistsException, and fix a
2739         bug with creating UnknownMethodException.
2740
2741         * test/python/test-client.py: Add tests for freeing BusName
2742         objects causing names to be released.
2743
2744 2005-11-14  Robert McQueen  <robot101@debian.org>
2745
2746         * python/service.py: Include the traceback in the error reply when we
2747         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2748
2749 2005-11-14  David Zeuthen  <davidz@redhat.com>
2750
2751         Patch from Timo Hoenig <thoenig@suse.de>.
2752
2753         * bus/bus.c: I've recently investigated why the automatic reload
2754         of configuration files does not work as expected.
2755
2756         Currently, reloading configuration files does only work when
2757         running dbus-daemon with --nodaemon.  If we are running as daemon
2758         we're hitting a dnotify bug once we fork the process.
2759
2760         We're initializing the dnotify fds before calling fork().  Once
2761         the child process forked it does still have the fds (and they
2762         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2763         getting SIGIO as changes are made to the configuration files.
2764
2765         The attached patch moves the initialization of the dnotify fds to
2766         process_config_postinit().  This is safe for all current code
2767         paths and solves the dnotify disfunction.  If we're running
2768         dbus-daemon as daemon the fds for dnotify are now being
2769         initialized after fork() for the child process.
2770
2771         * configure.in: The current configure.in check for dnotify probes
2772         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2773         match for 'xlinux', too. Additionally I have adapted the configure
2774         option's style to match with the others.
2775
2776 2005-11-14  Robert McQueen  <robot101@debian.org>
2777
2778         * python/decorators.py, python/service.py: Add a new argument to the
2779         dbus.service.method decorator called sender_keyword, which if set,
2780         specifies the name of an argument which will be provided the bus
2781         name of the method caller.
2782
2783         * test/python/test-client.py, test/python/test-service.py: Add a
2784         method and test to check the sender_keyword functionality.
2785
2786 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2787
2788         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2789         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2790         Simons <sjoerd at luon.net>)
2791
2792         * AUTHORS: Add Robert McQueen for his work on the Python
2793         Bindings and other parts of D-Bus
2794
2795 2005-11-07  Robert McQueen  <robot101@debian.org>
2796
2797         * python/decorators.py: Change emit_signal function to use the
2798         signature annotation of the signal when marhsalling the arguments from
2799         the service. Fix a bug where the code checking signature length
2800         against argument length referenced the wrong variable.
2801
2802         * python/introspect_parser.py: Avoid adding the type signature of
2803         signal arguments to any methods which occur after them in the
2804         introspection data (!) by making the parser a little more careful
2805         about its current state.
2806
2807         * python/service.py: Remove debug prints from last commit (again :D).
2808
2809         * test/python/test-client.py, test/python/test-service.py: Add test
2810         signals with signature decorators to test the strict marshalling code
2811         gives errors at the right time. Could do with checking the signals
2812         actually get emitted too, given that the test does nothing with
2813         signals at the moment...
2814
2815 2005-11-07  Robert McQueen  <robot101@debian.org>
2816
2817         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2818         instances to stop madness of creating new instances representing
2819         the same bus connection all the time, rendering any tracking of
2820         match rules and bus names quite meaningless. Caught a bug where
2821         the private argument to SessionBus() and friends was being passed
2822         in as use_default_mainloop by mistake. Still some problems with
2823         multiple dbus_binding.Connection instances representing the same
2824         low-level connection (eg when you use both SessionBus() and
2825         StarterBus() in same process), but it's a lot better now than it
2826         was.
2827
2828         * python/dbus_bindings.pyx: Add constants with the return values
2829         for bus_request_name().
2830
2831         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2832         and retrieve the same instances for the same name, so deletion can be
2833         done with refcounting. Also now throws some kind of error if you
2834         don't actually get the name you requested, unlike previously...
2835
2836         * test/python/test-client.py: Add tests for instance caching of buses
2837         and bus name objects.
2838
2839 2005-11-04  Robert McQueen  <robot101@debian.org>
2840
2841         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2842         marshalling of boolean values. Add some booleans to the values in
2843         the test client.
2844
2845         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2846         argument to the dbus.service.method decorator, which allows you to
2847         name arguments to take two callback functions for replying with
2848         return values or an exception.
2849
2850         * test/python/test-client.py, test/python/test-service.py: Add test
2851         case using asynchronous method reply functions, both return values and
2852         errors, and from within both the function itself and from a mainloop
2853         callback.
2854
2855         * python/decorators.py, python/service.py: Perform checking that the
2856         number of method/signal arguments matches the number of types in the
2857         signature at class loading time, not when you first introspect the
2858         class.
2859
2860         * python/service.py: Remove debug print left by the last commit.
2861
2862 2005-11-03  Robert McQueen  <robot101@debian.org>
2863
2864         * python/service.py: Heavy refactoring of method invocation, with
2865         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2866         in favour of a new _message_cb that uses seperate functions for
2867         looking up the method to call, marshalling the return values, and
2868         sending exceptions as errors, and is easier to follow as a
2869         consequence.  Fixes some corner cases about returning things that
2870         don't match your declared out_signature, allows exceptions to define
2871         _dbus_error_name and have it be sent over the bus as the error name,
2872         and paves the way for cool stuff like heeding the message no reply
2873         flag, asynchronous method implementations, informing the method of the
2874         sender, and including backtraces in the error messages.
2875
2876         * test/python/test-client.py: Catch and print exceptions thrown in the
2877         async callback tests, rather than passing them to the low-level
2878         bindings to be ignored in a noisy and frustrating manner.
2879
2880 2005-11-03  Robert McQueen  <robot101@debian.org>
2881
2882         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2883         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2884         tweak others to be consistent.
2885
2886         * test/python/test-client.py: Tweak output of testInheritance.
2887
2888 2005-10-29  Robert McQueen  <robot101@debian.org>
2889
2890         * python/service.py: Major changes to allow multiple inheritance
2891         from classes that define D-Bus interfaces:
2892         
2893          1. Create a new Interface class which is the parent class of
2894             Object, and make the ObjectType metaclass into InterfaceType.
2895         
2896          2. Patch written with Rob Taylor to replace use of method_vtable
2897             with code that walks the class's __MRO__ (method resolution order)
2898             to behave like Python does when invoking methods and allow
2899             overriding as you'd expect. Code is quite tricky because
2900             we have to find two methods, the one to invoke which has the
2901             right name and isn't decorated with the /wrong/ interface,
2902             and the one to pick up the signatures from which is decorated
2903             with the right interface.
2904         
2905             The same caveats apply as to normal multiple inheritance -
2906             this has undefined behaviour if you try and inherit from two
2907             classes that define a method with the same name but are
2908             decorated with different interfaces. You should decorate
2909             your overriding method with the interface you want.
2910         
2911          3. Replace grungy introspection XML generation code in the metaclass
2912             with dictionaries that cope correctly with multiple inheritance
2913             and the overriding of methods. This also uses the signature
2914             decorations to provide correct introspection data, including
2915             the debut appearance of the types of your return values. :D
2916
2917         * test/python/test-client.py, test/python/test-service.py: Add a test
2918         case to try invoking an method that overrides one inherited from a
2919         D-Bus interface class.
2920
2921 2005-10-29  Robert McQueen  <robot101@debian.org>
2922
2923         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2924         Add checking for the end of struct character when marshalling a
2925         struct in MessageIter.append_strict.
2926
2927         * python/examples/example-service.py,
2928         python/examples/gconf-proxy-service.py,
2929         python/examples/gconf-proxy-service2.py: Update to use gobject
2930         mainloop directly rather than appearing to depend on gtk.
2931
2932         * python/test/test-client.py, python/test/test-server.py: Remove
2933         obsolete and broken test scripts for old bindings. We have up to date
2934         and working tests in test/python/.
2935
2936 2005-10-29  Robert McQueen  <robot101@debian.org>
2937
2938         * python/decorators.py: Add optional arguments to the method and
2939         signal decorators to allow you to specify the signature of arguments
2940         and return values. Preserve the doc strings of signal functions in the
2941         decorated version, for pydoc and friends.
2942
2943         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2944         parse_signature_block function with an iterable dbus.Signature()
2945         type. Fix a bug in MessageIter.append_strict where you could append
2946         anything by claiming it was a string.
2947
2948         * python/service.py: Use the out_signature decoration on methods to
2949         marshal return values, meaning you no longer require dbus.Array()
2950         or dbus.Dictionary() to indicate the type when returning empty
2951         arrays or dictionaries. Fix a bug where exceptions which are defined
2952         in __main__ are not turned into error replies.
2953
2954         * test/python/test-client.py, test/python/test-service.py: Add test
2955         for correct marshalling of return values according to out_signature.
2956         Fix a bug in the async call test where the error_handler is missing a
2957         self argument.
2958
2959 2005-10-29  Robert McQueen  <robot101@debian.org>
2960
2961         * glib/Makefile.am, glib/examples/Makefile.am,
2962         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2963         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2964
2965         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2966
2967         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2968         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2969         the command line.
2970
2971 2005-10-27  Ross Burton  <ross@openedhand.com>
2972
2973         * dbus/dbus-marshal-header.c:
2974         Remove dead code.
2975
2976         * glib/dbus-gobject.c:
2977         Stop compiler warning.
2978
2979 2005-10-25  Ross Burton  <ross@openedhand.com>
2980
2981         * dbus/dbus-auth.c:
2982         * dbus/dbus-server-unix.c:
2983         * dbus/dbus-transport-unix.c:
2984         * glib/dbus-gmain.c:
2985         * glib/dbus-gobject.c:
2986         Add some const keywords.
2987
2988 2005-10-25  Ross Burton  <ross@openedhand.com>
2989
2990         * doc/dbus-specification.xml:
2991         Document the NoReply annotation.
2992
2993         * glib/dbus-binding-tool-glib.h:
2994         * glib/dbus-binding-tool-glib.c:
2995         Respect the NoReply annotation.
2996
2997 2005-10-24  Robert McQueen <robot101@debian.org>
2998
2999         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3000         derive from unicode instead of str, and encode/decode UTF-8 when
3001         marshalling/unmarshalling bus messages
3002
3003         * python/introspect_parser.py: encode introspection data as UTF-8
3004         before passing the buffer into libxml2
3005
3006         * test/python/test-client.py: add unicode test strings
3007
3008         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3009         ignore generated python test files
3010
3011 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3012
3013         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3014         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3015         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3016
3017         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3018         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3019         when constructing struct signatures
3020
3021         * python/_dbus.py (Bus): handle private connections using the
3022         private keyword in the constructor. defaults to private=False
3023         (Bus::close): new method to close a connection to the bus
3024
3025         * python/dbus_bindings.pyx (Connection::close): renamed method
3026         was previously called disconnect
3027         (bus_get): now supports getting a private connection
3028
3029         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3030         keyword is set to True.  if it is, execute the method without waiting
3031         for a reply
3032         (ProxyObject::_introspect_execute_queue): new method for executing
3033         all the pending methods that were waiting for the introspect to
3034         finish.  this is called when introspect either succeeds or fails
3035         (ProxyObject::_introspect_error_handler): call queued methods
3036
3037 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3038
3039         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3040         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3041
3042         * python/service.py (Object::_message_cb): handle exceptions correctly
3043         by sending them over the wire to the calling app.  This makes sure
3044         the client returns immediately instead of waiting the 15 seconds to
3045         timeout.
3046
3047         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3048         Add a test to benchmark how long it takes to introspect a service and 
3049         call a method which returns a large element (pretty fast)
3050
3051         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3052         method which pushes a lot of data
3053
3054 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3055
3056         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3057         reclaim memory outside of the loop and use del istead of just setting
3058         the key to None
3059
3060 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3061
3062         * python/service.py (ObjectType::_reflect_on_signal): Always close
3063         signal tag even when there are no arguments
3064
3065 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3066
3067         * configure.in: Set mono, mono-docs and Qt3 to default
3068         to no instead of auto when building.  These bindings do not
3069         have full time maintainers and will not be supported for the
3070         1.0 release.
3071
3072 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3073
3074         patches from Michael Krivoruchko <misha at sun.com>: 
3075         
3076         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3077         _dbus_connection_message_sent, 
3078         _dbus_connection_send_preallocated_unlocked_no_update, 
3079         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3080         is NULL when calling _dbus_verbose
3081
3082         * configure.in: check for functions getpeerucred and getpeereid
3083
3084         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3085         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3086         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3087         Patch was only tested on Solaris 10 x86 so it might be issues
3088         with other platforms (i.e. BSDs and MacOSX)
3089         
3090
3091 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3092
3093         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3094         instead of marshal basic so we can handle recursive types in a variant
3095
3096         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3097         in variants
3098
3099         * test/glib/test-service-glib.c, test-service-glib.xml
3100         (my_object_echo_variant [EchoVariant], 
3101         my_object_process_variant_of_array_of_ints123
3102         [ProcessVariantOfArrayOfInts123]): 
3103         Add two test methods
3104
3105         * python/introspect_parser.py: New module for parsing introspect
3106         data.
3107
3108         * python/dbus_bindings.pyx:
3109         (various places): when throwing errors fix to use errormsg instead 
3110         of message local variable because Pyrex can get confused with other 
3111         message variables (initial patch by Robert McQueen 
3112         <robert.mcqueen at collabora.co.uk>)
3113         (MessageIter::parse_signature_block): new method for getting the next
3114         block in a signiture.
3115         (MessageIter::append_strict): new method for appending values strictly
3116         using the passed in signature instead of guessing at the type
3117         (MessageItter:: append_dict, append_struct, append_array): use 
3118         signatures to marshal children if the signature is available
3119         
3120         * python/exceptions.py (IntrospectionParserException): new exception
3121
3122         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3123         introspected signatures if available, else we fall back to the
3124         old way of doing things.
3125         (ProxyObject::_introspect_reply_handler ): parse introspection data
3126         
3127         * python/service.py (ObjectType::_reflect_on_method): Properly
3128         terminate <method> if there are no args in the reflection data
3129
3130         * test/python/test-client.py: add tests for talking with the GLib
3131         test server.  This gives us better coverage for introspection since
3132         python to python will always generate arguments as variants.  It also
3133         allows us to test the robustness of the GLib bindings and interlanguage
3134         communications.
3135
3136         
3137 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3138
3139         * bus/driver.c (bus_driver_handle_introspect): Add signals
3140         to the introspect data. (patch from Daniel P. Berrange 
3141         <dan at berrange.com>)
3142
3143         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3144         
3145         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3146         _dbus_connection_run_builtin_filters): Changed these to
3147         be unlock_no_update functions and call 
3148         _dbus_connection_send_unlocked_no_update instead of
3149         dbus_connection_send to avoid locking errors.
3150         
3151         * doc/TODO: Removed the make Ping test TODO
3152         
3153 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3154
3155         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3156         We now copy the message from a DBusError and then free 
3157         the error object befor throwing the error
3158
3159         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3160         DBusBindingOutputMode enum which was causing a warning.
3161         #include <time.h> so using time_t is explicitly defined
3162
3163 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3164
3165         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3166         - dbus/dbus-bus.c
3167         (internal_bus_get): new method that take over the heavy lifting
3168         of dbus_bus_get and adds the ability to get a private connection
3169         to the bus
3170         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3171         interface as in previous versions
3172         (dbus_bus_get_private): new method that is a wrapper to 
3173         internal_bus_get to get a private connection to the bus
3174
3175         - dbus/dbus-bus.h
3176         (dbus_bus_get_private): add as a public libdbus interface
3177
3178         - dbus-1.pc.in: output system_bus_default_address and 
3179         sysconfdir variables so apps can use them when compiling
3180
3181 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3182         * dbus/qt: New Qt bindings
3183
3184 2005-09-12  Waldo Bastian  <bastian@kde.org>
3185
3186         * dbus/dbus-marshal-validate.c,
3187         doc/dbus-specification.xml, test/Makefile.am,
3188         test/test-names.c: allow hyphens in bus names.
3189
3190 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3191
3192         * test/data/auth/fallback.auth-script: we don't
3193         retry the EXTERNAL method when we know its going
3194         to fail anymore.
3195
3196 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3197
3198         * dbus/dbus-connection-internal.h: rename
3199         (add|remove|toggle)_(watch|timeout) to unlocked()
3200         
3201         * dbus/dbus-connection.c: ditto.
3202         
3203         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3204         Update some callers for the renaming.
3205
3206 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3207
3208         * dbus/dbus-auth.c: (record_mechanisms): don't
3209         retry the first auth mechanism because we know
3210         we're just going to get rejected again.
3211         
3212         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3213         Fix thinko ... and what a nasty little bugger to
3214         track down you were ...
3215
3216         * dbus/dbus-connection.c:
3217         (_dbus_connection_add_watch),
3218         (_dbus_connection_remove_watch): add note about
3219         these needing the connection to be locked.
3220         (_dbus_connection_get_dispatch_status_unlocked):
3221         set status to DATA_REMAINS when we queue the
3222         disconnected message.
3223         
3224         * bus/dispatch.c:
3225         (bus_dispatch): fix warning.
3226         (check_existent_service_no_auto_start):
3227         Expect ChildSignaled error too.
3228         (check_existent_hello_from_self): fix another
3229         couple of warnings.
3230         
3231 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3232
3233         Patches from James Willcox <snorp@snorp.net>
3234
3235         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3236
3237         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3238         support array "out" parameters.
3239
3240         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3241         for 16-bit int support.
3242
3243 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3244
3245         * Released 0.50
3246
3247         * Patch from Steve Grubb:
3248         - bus/activation.c (bus_activation_service_reload_test): clean up
3249         some indentation
3250         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3251         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3252         buffer overflows in the test suite.  This is non critical because
3253         it can not be exploited and this code is only run when doing a 
3254         make check.
3255
3256         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3257         - configure.in: Don't check and link against kdecore, only qt headers
3258         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3259         - gcj/org/freedesktop/dbus/Makefile.am:
3260         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3261         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3262         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3263         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3264         - tools/Makefile.am: Add platform extentions to binaries 
3265         (i.e. .exe on windows)
3266
3267         * configure.in: 
3268         - Make it so if no suitable version of python is found we only 
3269         disable building python instead of exiting the configure script
3270         - Require version 2.4 of glib for glib bindings
3271         - Up version to 0.50
3272
3273         * python/__init__.py: Sync version with libdbus to (0,50,0)
3274         
3275 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3276
3277         * dbus/dbus-object-tree.c (find_subtree_recurse):
3278         a couple of optimizations (bug #710):
3279         - do a binary search in the tree
3280         - insert a new child at the right place directly, no need for
3281           qsort anymore
3282         - do the "double alloc" thing when allocating children
3283
3284 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3285
3286         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3287
3288         * python/dbus_bindings.pyx: Memory management foo
3289         (global): remove hacky _user_data_references global list
3290         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3291         tuples. Unref user_data
3292         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3293         (Connection::__del__): Remove and replace with __dealloc__ method
3294         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3295         to keep tuple from being deallocated instead of the global var hack
3296         (Connection::register_object_path): Stuff user_data into a tuple.
3297         Use Py_INCREF to keep tuple from being deallocated instead of the 
3298         global var hack
3299         (Connection::register_fallback): Stuff user_data into a tuple.
3300         Use Py_INCREF to keep tuple from being deallocated instead of the 
3301         global var hack
3302         (GIL_safe_pending_call_notification): Don't unref the message
3303         because it gets unreffed when going out of scope.  Py_XDECREF
3304         the user_data
3305         (PendingCall::__del__): Remove and replace with __dealloc__ method
3306         (PendingCall::set_notify): ref the pending call because we will
3307         need it to stick around for when the notify callback gets called
3308         (Message::__del__): Remove and replace with __dealloc__ method
3309
3310         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3311         gthreads_init to match up with the dbus call
3312
3313         * python/glib.py (init_threads): Changed to threads_init to match
3314         up with gobject.threads_init().  init_threads is kept for backwards
3315         compat but will most likely be deprecated in the future
3316
3317         * test/python/test-client.py: 
3318         - revamp to use Python's unittest functionality
3319         - add async call tests
3320         - setup threads in glib and dbus so we make sure locks are working
3321         
3322 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3323
3324         * python/dbus_bindings.pyx 
3325         (_pending_call_notification, cunregister_function_handler, 
3326         cmessage_function_handler): All callback functions have been rearranged 
3327         to workaround a bug in Pyrex when working with the GIL which is Python's 
3328         global lock when dealing with threads.  They have been split into
3329         a wrapper function (which assumes the name of the old function) and
3330         a _GIL_safe_<function name> function which contains the functionality
3331         of the old function.  This ensures that Pyrex does not write code
3332         the lock is released.
3333         
3334
3335 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3336
3337         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3338         GIL global lock when calling back into Python
3339
3340 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3341
3342         * Release 0.36.2
3343
3344         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3345
3346         * bus/policy.c (bus_policy_allow_user): change default "user is
3347         allowed" to be "user has same uid as the bus itself"; any
3348         allow/deny rules will override.
3349
3350         * bus/session.conf.in: don't allow all users, since now by default
3351         the user that ran the bus can connect.
3352
3353 2005-08-26  Colin Walters  <walters@verbum.org>
3354
3355         * tools/dbus-print-message.c (print_message): Flush stdout
3356         after printing a message, so that redirecting to a file, then
3357         hitting Ctrl-C works.
3358
3359 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3360
3361         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3362         (EmptyMessage): new class that subclasses Message.  This is a workaround
3363         to a Pyrex bug that fails to call __del__ when the Message object goes out
3364         of scope.  For some reason subclassing Message fixes this bug
3365         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3366         - s/Message(_create=0)/EmptyMessage everywhere else
3367         
3368         * test/python/test-{server|client}.py: add the python/.libs directory
3369         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3370         get picked up from the system
3371
3372 2005-08-25  Colin Walters  <walters@verbum.org>
3373
3374         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3375         to Ryan Lortie for the suggestion.
3376
3377 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3378
3379         * test/python: Add python regression test
3380
3381         * configure.in: Add test/python/Makefile
3382
3383         * test/Makefile.am: Add the python directory to SUBDIRS
3384
3385 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3386
3387         * Release 0.36.1
3388
3389         * python/_dbus.py: 
3390         (Interface::connect_to_signal): propigate keywords for match on args
3391         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3392
3393         * python/proxies.py (ProxyObject::connect_to_signal):
3394         propigate keywords for match on args
3395
3396         * Makefile.am: point everything to pyexecdir since python borks
3397         on multilib
3398
3399 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3400
3401         * Release 0.36
3402
3403 2005-08-23  Colin Walters  <walters@verbum.org>
3404
3405         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3406
3407 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3408
3409         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3410         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3411         of defining DBusConnection ourselves.
3412
3413 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3414
3415         * python/dbus.pth: New path file to fix up problems when installing
3416         c libraries to lib64 and python files to lib.
3417
3418         * python/Makefile.am: install dbus.pth in the correct spot
3419
3420 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3421         * ChangeLog: clean up my last entry a bit
3422
3423         * doc/introspect.xsl: New stylesheet for converting introspection data
3424         into browser renderable xhtml. Contributed by Lennart Poettering.
3425
3426         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3427         Poettering.
3428
3429         * doc/dbus-tutorial.xml: 
3430         - Add Colin Walter to the Authors section for authoring the GLib
3431         section
3432         - Add descriptions of the new signature and type functionality
3433         in the Python complex type mapping section
3434         - Add a sidenote on the new args matching functionality in 
3435         the Python bindings
3436         - Fixed up some of the examples to use the gobject.MainLoop
3437         instead of gtk.main
3438         
3439         * python/_dbus.py:
3440         (Bus::_create_args_dict): New. Converts a hash of arg matches
3441         to a more useable format
3442         (Bus::add_signal_receiver): add a **keywords parameter for catching
3443         arg match parameters
3444         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3445         arg match parameters
3446         
3447         * python/matchrules.py:
3448         (MatchTree::exec_matches): Check for arg matches
3449         (SignalMatchRule::add_args_match): New method
3450         (SignalMatchRule::execute): Added args_list parameter as an optimization
3451         so we don't have to marshal the args more than once
3452         (SignalMatchRule::match_args_from_list): New method that checks to see
3453         if the rule's arg matches match an argument list.  Only arguments
3454         set in the rule are checked.
3455         (SignalMatchRule::match_args_from_rule): New method that checks to see
3456         if the rule's arg matches match another rule's.  All args have to match
3457         in order for this method to return true.  If either rule has more args
3458         then it is not a match.
3459         (SignalMatchRule::is_match): Add args match
3460         (SignalMatchRule::repr): Add args to the final output if they exist
3461
3462 2005-08-17  Ross Burton  <ross@burtonini.com>
3463
3464         * glib/dbus-gproxy.c:
3465         (dbus_g_proxy_call_no_reply): unref the message once sent.
3466         (dbus_g_proxy_call): protect against NULL proxy.
3467
3468 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3469
3470         * python/__init__.py: Version updated (0, 43, 0)
3471         
3472         * python/dbus_bindings.pyx: 
3473         - Fixed type objects to have self passed into __init__
3474         - Added the Variant type
3475         - Add the ability to specify types or signatures for Array, Variant 
3476         and Dictionary
3477         (Connection::send_with_reply_handlers): return a PendingCall object
3478         (_pending_call_notification): handle the case when an error is returned 
3479         without an error message in the body
3480         (MessageIter::get_boolean): return True or False instead of an integer
3481         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3482         and add checks for objects with embeded signatures or types (Array, 
3483         Variant and Dictionary)
3484         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3485         (MessageIter::append_dict): handle embeded types or signatures
3486         (MessageIter::append_array): handle embeded types or signatures
3487         (MessageIter::append_variant): new method
3488         
3489         * python/proxies.py:
3490         (DeferedMethod): New. Dummy executable object used when queuing calls 
3491         blocking on introspection data
3492         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3493         or shorter timeouts for method calls
3494         (ProxyObject): Add first pass at an introspection state machine
3495         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3496         introspection. 
3497         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3498         the usual mechanisms for sending messages.  This is to avoid a deadlock
3499         where the Intospect call would be queued waiting for the Introspect 
3500         call to finish ;-)
3501         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3502         when introspection returns with no error
3503         (ProxyObject::_introspect_error_handler): New.  This method is called 
3504         when introspection encounters an error
3505         (ProxyObject::__getattr__): Code to handle different introspection 
3506         states.  Queue async calls or block blocking calls if we are 
3507         introspecting.  Pass through as normal if we are not or are done with 
3508         introspecting.
3509         
3510         * python/service.py: Import signal and method from decorators.py
3511
3512         * python/types.py: Add Variant type
3513
3514 2005-08-16  Colin Walters  <walters@verbum.org>
3515
3516         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3517         DBusError message is NULL.
3518
3519 2005-08-09  Havoc Pennington  <hp@redhat.com>
3520
3521         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3522         malloc'd copy of the name parameter
3523
3524 2005-08-09  Havoc Pennington  <hp@redhat.com>
3525
3526         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3527         warning if the reply serial is set to 0
3528
3529 2005-08-04  Colin Walters  <walters@verbum.org>
3530
3531         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3532         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3533         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3534         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3535         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3536         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3537         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3538         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3539         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3540         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3541         
3542         Prefix name with _ to ensure they're not exported.  All callers
3543         updated.
3544
3545         * glib/dbus-gvalue.c (typecode_to_gtype)
3546         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3547         (signature_iter_to_g_type_dict)
3548         (signature_iter_to_g_type_array)
3549         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3550         (dbus_gtypes_from_arg_signature):
3551         Move to dbus-gsignature.c.
3552
3553         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3554         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3555         (dbus_binding_tool_output_glib_client): Ditto.
3556
3557         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3558         and dbus-gsignature.h
3559
3560         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3561         unused variable.
3562
3563 2005-08-03  Colin Walters  <walters@verbum.org>
3564
3565         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3566         catch any incompatible changes accidentally made.
3567
3568 2005-08-03  Havoc Pennington  <hp@redhat.com>
3569
3570         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3571         typo, from Julien Puydt
3572
3573         * bus/connection.c (bus_connection_disconnected): we were always
3574         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3575
3576 2005-08-01  Colin Walters  <walters@verbum.org>
3577
3578         Patch from Joe Markus Clarke:   
3579         
3580         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3581         use-after-free.
3582
3583 2005-08-01  Colin Walters  <walters@verbum.org>
3584         
3585         Patch from Joe Markus Clarke:   
3586         
3587         * tools/dbus-send.c (main): 
3588         
3589         Don't use C99 style initializers (bug #3933).
3590         
3591 2005-08-01  Colin Walters  <walters@verbum.org>
3592
3593         Patch from Joe Markus Clarke:   
3594
3595         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3596         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3597         * glib/dbus-gobject.c (write_interface):
3598
3599         Don't use C99 style initializers (bug #3933).
3600
3601 2005-07-31  Havoc Pennington  <hp@redhat.com>
3602
3603         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3604         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3605
3606 2005-07-30  Havoc Pennington  <hp@redhat.com>
3607
3608         * fix a bunch of Doxygen warnings and mistakes
3609
3610 2005-07-30  Havoc Pennington  <hp@redhat.com>
3611
3612         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3613         DBUS_BUILD_TESTS since it's now used in production code
3614
3615 2005-07-29  Havoc Pennington  <hp@redhat.com>
3616
3617         * test/glib/test-profile.c (write_junk): initialize the junk
3618         buffer so valgrind doesn't have a breakdown
3619
3620 2005-07-29  Havoc Pennington  <hp@redhat.com>
3621
3622         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3623         (match_rule_matches): remove unused arg
3624         (test_matching): add tests for match_rule_matches()
3625
3626         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3627         do arg0='foo' arg5='bar' in the match rules
3628         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3629
3630         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3631
3632 2005-07-29  Ross Burton  <ross@openedhand.com>
3633
3634         * dbus/dbus-connection.c:
3635         Don't create a DBusCondVar which is never used.
3636
3637 2005-07-27  Ross Burton  <ross@openedhand.com>
3638
3639         * dbus/dbus-message.c:
3640         Reduce the size of the maximum cached message to 10K.
3641
3642 2005-07-25  Ross Burton  <ross@openedhand.com>
3643
3644         * glib/dbus-gproxy.c:
3645         Remove matches when all proxies are unregistered.
3646
3647 2005-07-24  Colin Walters  <walters@verbum.org>
3648
3649         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3650         typedata; recursive arrays won't have it.
3651
3652         * test/glib/test-dbus-glib.c:
3653         * test/glib/test-service-glib.c:
3654         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3655         
3656 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3657
3658         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3659         proxies.py, service.py: Cleanup of code after running it through the
3660         pyflakes code checker mostly dealing with undefined names.  
3661         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3662
3663 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3664
3665         * NEWS: Update to 0.35.2
3666
3667 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3668
3669         * python/_dbus.py: Remove import of the dbus.services
3670         module as it no longer exists (patch from Dimitur Kirov)
3671
3672         * python/service.py (Object::__init__): Fixed typo
3673         s/name/bus_name (patch from Dimitur Kirov)
3674
3675         * python/examples/example-signal-emitter.py: import dbus.glib
3676         to get the main loop and use glib mainloop instead of gtk so
3677         X doesn't have to be running.
3678
3679         * python/examples/example-signal-recipient.py: import dbus.glib
3680         to get the main loop and use glib mainloop instead of gtk so
3681         X doesn't have to be running. Import the decorators module
3682         directly.
3683
3684         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3685         didn't pick up on but are needed to build
3686
3687         * configure.in: upped version to 0.35.2
3688
3689         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3690         added Colin Walters' SELinux API rename patch from head 
3691         s/unix sercurity context/selinux security context/
3692
3693 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3694
3695         * python/Makefile.am: dbus_binding.pxd.in should be included 
3696         in EXTRA_DIST not dbus_binding.pxd
3697         fix up $(srcdir) hopefully for the last time
3698
3699         * NEWS: Update to 0.35.1
3700
3701 2005-07-16  Colin Walters  <walters@verbum.org>
3702
3703         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3704         from bus_driver_handle_get_connection_unix_security_context.  Update for
3705         error usage.
3706         (message_handlers): Update for renames.
3707
3708         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3709         _dbus_string_init failure correctly.
3710         (bus_selinux_append_context): Convert SID to context.  Append it
3711         as a byte array.
3712         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3713         hasn't been called.
3714
3715         * bus/selinux.h: Update prototype.
3716
3717         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3718         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3719
3720 2005-07-15  Colin Walters  <walters@verbum.org>
3721
3722         * doc/TODO: Add note about convenience wrappers.
3723
3724 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3725
3726         * NEWS: Update to 0.35
3727
3728 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3729
3730         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3731         so distcheck doesn't fail
3732
3733         * glib/examples/Makefile.am: Add example-service.xml and 
3734         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3735
3736         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3737         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3738
3739         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3740         compiler looks in the right places during distcheck
3741
3742 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3743
3744         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3745         to fail
3746
3747 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3748
3749         * python/examples/example-service.py,
3750         python/examples/example-signal-emitter.py: Fixed up examples
3751         for API changes
3752
3753 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3754
3755         * python/__init__.py: Upped to version (0,42,0) because of
3756         the API change
3757
3758 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3759
3760         * ChangeLog: fix date in last entry
3761
3762         * configure.in, bus/system.conf.in: add the ability to configure 
3763         the system bus user at compiletime with the --with-dbus-user flag
3764         (patch from Kristof Vansant)
3765
3766 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3767
3768         * bus/dispatch.c, test/test-service.c: Add testcase
3769         for sending messages to oneself (TODO item).
3770
3771         * python/service.py (class Object): Swap ordering of bus_name 
3772         and object_path parameters to better support inheritance.
3773
3774         * doc/dbus-tutorial.xml: change Python docs to reflect change
3775         in parameter ordering and fix the inheritance section.
3776
3777         * doc/TODO: remove sending message to oneself TODO item
3778
3779 2005-07-15  Ross Burton  <ross@openedhand.com>
3780
3781         * glib/dbus-gproxy.c:
3782         Fix a leak when calling methods via the proxy.
3783
3784 2005-07-15  Colin Walters  <walters@verbum.org>
3785
3786         * bus/selinux.c (bus_selinux_append_context): Wrap in
3787         HAVE_SELINUX.
3788
3789 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3790
3791         * python/_dbus.py (Bus::remove_signal_receiver):
3792         don't add a callback to the match if none has been passed in
3793         
3794         * python/matchrules.py (SignalMatchTree::remove): if the rule
3795         being matched does not have a callback treat it as a wildcard
3796         fix matching logic
3797
3798         * doc/dbus-tutorial.xml: Add Python tutorial
3799
3800 2005-07-14  Colin Walters  <walters@verbum.org>
3801
3802         * bus/driver.c
3803         (bus_driver_handle_get_connection_unix_security_context): New function.
3804         (message_handlers): Add.
3805
3806         * bus/selinux.c (bus_selinux_append_context): New function; appends
3807         security context to message.
3808
3809         * bus/selinux.h: Prototype.
3810
3811         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3812
3813 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3814
3815         * bus/activation.c: clean up all tabs to be 8 spaces 
3816         (bus_activation_activate_service): make sure we clean up
3817         if activation fails
3818
3819         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3820         (check_shell_fail_service_auto_start): New function
3821         tests to make sure we get fail properly when trying to auto start a service
3822         with a faulty command line
3823         (check_shell_service_success_auto_start): New function tests to make sure
3824         auto started services get the arguments on the command line
3825
3826         * test/test-shell-service.c: Added service for testing auto-starting with 
3827         command line arguments
3828
3829         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3830         test/data/valid-service-files/debug-shell-echo-success.service.in:
3831         Added service files for testing auto-starting with command line arguments
3832
3833         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3834
3835 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3836
3837         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3838         
3839         * dbus/Makefile.am: added new files to build.
3840
3841         * bus/activation.c (bus_activation_activate_service): support
3842         activation commands with parameters.
3843
3844         * test/shell-test.c: added test program for the shell parsing
3845         code.
3846
3847 2005-07-13  David Zeuthen  <davidz@redhat.com>
3848
3849         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3850         64 bit signed and unsigned parameters
3851
3852 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3853
3854         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3855
3856         * python/service.py (class Name): renamed BusName to make it clearer
3857         what the object is for (a name on the bus)
3858
3859         * python/examples/example-service.py,
3860         python/examples/example-signal-emitter.py: change the Name object to
3861         BusName
3862
3863 2005-07-12  Colin Walters  <walters@verbum.org>
3864
3865         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3866
3867         * tools/dbus-launch.c: Include sys/select.h.
3868
3869 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3870         * python/dbus_bindings.pyx.in: removed
3871
3872         * python/dbus_bindings.pyx: Added.
3873         - Fixed some memleaks (patch from 
3874         Sean Meiners <sean.meiners@linspireinc.com>)
3875         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3876         own pxd file (Pyrex definition)
3877         - Broke out glib dependancies into its own pyx module
3878         
3879         * python/dbus_bindings.pdx: Added.
3880         - Defines C class Connection for exporting to other modules
3881
3882         * python/dbus_glib_bindings.pyx: Added.
3883         - New module to handle lowlevel dbus-glib mainloop integration
3884
3885         * python/glib.py: Added.
3886         - Registers the glib mainloop when you import this module
3887
3888         * python/services.py: Removed (renamed to service.py)
3889         
3890         * python/service.py: Added.
3891         - (class Server): renamed Name
3892
3893         * python/__init__.py: Bump ro version (0,41,0)
3894         -don't import the decorators or service module
3895         by default.  These now reside in the dbus.service namespace
3896
3897         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3898         setup function on creation 
3899
3900         * python/examples/example-service.py,
3901         python/examples/example-signal-emitter.py: update examples
3902
3903         * python/examples/gconf-proxy-service.py,
3904         python/examples/gconf-proxy-service2.py: TODO fix these up
3905
3906         * doc/TODO: Addition
3907         - Added a Python Bindings 1.0 section
3908         - added "Add match on args or match on details to match rules"
3909
3910
3911 2005-07-12  Colin Walters  <walters@verbum.org>
3912
3913         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3914         (statemachine-glue.h): 
3915         * glib/examples/Makefile.am (example-service-glue.h) 
3916         (example-signal-emitter-glue.h): 
3917         * glib/Makefile.am (dbus-glib-error-switch.h): 
3918         Add libtool --mode=execute so we use the built library instead
3919         of any installed one.
3920
3921 2005-07-11  Colin Walters  <walters@verbum.org>
3922
3923         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3924         (dbus_g_value_types_init): Remove assertion.
3925         (dbus_g_value_get_g_type, dbus_g_value_open)
3926         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3927         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3928         functions related to DBusGValue.  Now we marshal/demarshal
3929         structures as GValueArray.
3930         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3931         structures.
3932         (signature_iter_to_g_type_array): Don't call
3933         signature_iter_to_g_type_struct.
3934         (signature_iter_to_g_type_struct): Delete.
3935         (dbus_gvalue_to_signature): Delete.
3936         (dbus_gvalue_to_signature): New function with same name as other
3937         one; we can convert structures to signatures.
3938         (demarshal_valuearray): New function.
3939         (get_type_demarshaller): Use it.
3940         (demarshal_recurse): Delete.
3941         (marshal_proxy): New function.
3942         (marshal_map): Warn if we can't determine signature from type.
3943         (marshal_collection_ptrarray): Ditto.
3944         (marshal_collection_array): Ditto.
3945         (get_type_marshaller): Use marshal_valuearray.
3946         (marshal_recurse): Delete.
3947         (_dbus_gvalue_test): Add some tests.
3948
3949         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3950         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3951         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3952         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3953         (dbus_g_value_free): Remove prototypes.
3954
3955         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3956         G_TYPE_VALUE_ARRAY.
3957
3958         * glib/examples/example-service.c:
3959         * glib/examples/example-client.c: Implement GetTuple.
3960
3961         * test/glib/test-dbus-glib.c:
3962         * test/glib/test-service-glib.c:
3963         * test/glib/test-service-glib.xml: Add structure tests.
3964
3965 2005-07-10  Colin Walters  <walters@verbum.org>
3966
3967         * doc/TODO: Knock off some GLib items with this patch.
3968
3969         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3970         (_dbus_gvalue_signals_error): New functions.
3971
3972         * glib/dbus-gvalue-utils.h: Prototype them.
3973
3974         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3975         and change to not output const/retval flags for input args.  All
3976         callers updated.
3977         (invoke_object_method): Refactor to handle return values.  Add
3978         some more comments in various places.  Remove debug g_print.
3979
3980         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3981
3982         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3983         Handle G_TYPE_NONE.
3984         (compute_gsignature): New function; refactored from code from
3985         compute_marshaller and compute_marshaller_name.  Enhance to
3986         handle return values and async ops more cleanly.  Update for
3987         async ops returning NONE instead of BOOLEAN.
3988         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3989         and output appropriate string.
3990         (generate_glue): Handle return value annotation.  Also don't dump
3991         constness flag for input arguments.
3992
3993         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3994         files shared between installed library and utilities.
3995         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3996         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3997         binding tool can access gtype utility functions.
3998
3999         * test/glib/test-service-glib.c: 
4000         * test/glib/test-service-glib.xml: 
4001         * test/glib/test-dbus-glib.c: Add some tests for return values.
4002
4003 2005-07-09  Colin Walters  <walters@verbum.org>
4004
4005         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4006         argument if available, not method.
4007
4008         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4009         (invoke_object_method): First, remove some redundant
4010         GValues (object_value, error_value) in favor of working on
4011         array directly.  Second, rework constness to be less buggy.
4012         Now we iterate directly over the argument metadata instead
4013         of parallel iterating over output signature and metadata.
4014
4015         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4016
4017         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4018         annotation on input args.
4019         
4020 2005-07-09  Colin Walters  <walters@verbum.org>
4021
4022         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4023         Define.
4024
4025         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4026         annotation.
4027
4028         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4029         (method_dir_signature_from_object_info): Handle arg_iterate change.
4030         (write_interface): Ditto.
4031         (lookup_object_info): Don't barf if format_version is > 0.
4032         (invoke_object_method): Handle arg constness.
4033
4034         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4035         (arg_info_new): Create.
4036         (arg_info_unref): Destroy.
4037         (arg_info_get_annotations, arg_info_get_annotation) 
4038         (arg_info_add_annotation): New functions.
4039
4040         * glib/dbus-gidl.h: Prototype them.
4041
4042         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4043         args, disallow them in properties.
4044         (parse_annotation): Handle arg annotations.
4045
4046         * test/glib/test-service-glib.xml: 
4047         * test/glib/test-service-glib.c: Update to make some methods
4048         const.
4049
4050 2005-07-08  Colin Walters  <walters@verbum.org>
4051
4052         * test/glib/test-service-glib.xml: 
4053         * test/glib/test-service-glib.c:
4054         * test/glib/test-dbus-glib.c: Test a{sv}.
4055
4056         * glib/examples/statemachine/statemachine.c:
4057         * glib/examples/statemachine/statemachine-server.c:
4058         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4059         add progress bar, etc.
4060
4061         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4062         needed anymore due to generic array/map marshalling.
4063         (dbus_g_value_types_init): Don't register basic arrays or the
4064         string/string hash.
4065         (dbus_gtype_from_signature_iter): Don't try to recurse into
4066         variants.
4067         (dbus_gtype_to_signature): Check collection/map before type
4068         metadata.
4069         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4070         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4071         generic map creation/append functions instead of hash table
4072         specifically.
4073         (get_type_demarshaller): Handle maps.
4074         (demarshal_collection): Dispatch on collection type to either
4075         demarshal_collection_ptrarray or demarshal_collection_array.
4076         (get_type_marshaller): Handle maps.
4077         (marshal_collection): Dispatch collection type to either
4078         marshal_collection_ptrarray or marshal_collection_array.
4079         (_dbus_gvalue_test): New test.
4080
4081         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4082         (hash_free_from_gtype): Use it to free GValues.
4083         (hashtable_append): New function.
4084         (ptrarray_append): Fix prototype.
4085         (slist_append): Ditto.
4086         (_dbus_gvalue_utils_test): Extend tests.
4087
4088         * glib/dbus-gtype-specialized.c
4089         (dbus_g_type_specialized_init_append): Renamed from
4090         dbus_g_type_specialized_collection_init_append.  Remove const from
4091         value, since we steal it.
4092         (dbus_g_type_specialized_map_append): New function.
4093
4094         * glib/dbus-gtype-specialized.h: Update prototypes.
4095         Add DBusGTypeSpecializedMapAppendFunc.
4096
4097         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4098         _dbus_gvalue_test.
4099         
4100         * glib/dbus-gtest.h: Prototype it.
4101
4102 2005-07-08  Ross Burton  <ross@openedhand.com>
4103
4104         * dbus/dbus-glib.h:
4105         Add DBysGAsyncData for the async bindings.
4106
4107         * glib/dbus-binding-tool-glib.c:
4108         Re-enable the async bindings.
4109
4110         * test/glib/test-dbus-glib.c:
4111         Add a test for the generated async bindings.
4112
4113 2005-07-08  Colin Walters  <walters@verbum.org>
4114
4115         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4116         connection concept.
4117         
4118 2005-07-08  Colin Walters  <walters@verbum.org>
4119         
4120         * tools/Makefile.am: Kill of print-introspect in favor of using
4121         dbus-send --print-reply=literal.
4122
4123         * test/glib/test-service-glib.xml: 
4124         * test/glib/test-service-glib.c (my_object_get_objs): New test
4125         for "ao".
4126
4127         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4128         (main): Test GetObjs.
4129
4130         * glib/examples/statemachine/Makefile.am:
4131         * glib/examples/statemachine/sm-marshal.list:
4132         * glib/examples/statemachine/statemachine-client.c:
4133         * glib/examples/statemachine/statemachine-server.c:
4134         * glib/examples/statemachine/statemachine-server.xml:
4135         * glib/examples/statemachine/statemachine.c:
4136         * glib/examples/statemachine/statemachine.h:
4137         * glib/examples/statemachine/statemachine.xml:
4138
4139         New example.
4140
4141         * glib/examples/example-service.c (main): Move invocation
4142         of dbus_g_object_type_install_info earlier, to emphasize it
4143         should only be done once.
4144
4145         * glib/examples/example-signal-emitter.c (main): Ditto.
4146
4147         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4148
4149         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4150         (dbus_gvalue_marshal): Update prototypes.
4151
4152         * glib/dbus-gvalue.c: Update all marshalling functions to take
4153         const GValue instead of GValue.
4154         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4155         types.
4156         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4157         change.
4158         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4159         Return a newly-allocated string.
4160         (demarshal_proxy, demarshal_object_path, demarshal_object)
4161         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4162         we get the wrong types from message.
4163         (get_type_demarshaller): New function, extracted from
4164         dbus_gvalue_demarshal.
4165         (demarshal_collection): New function, demarshals generic
4166         collection.
4167         (dbus_gvalue_demarshal): Just invoke result of
4168         get_type_demarshaller.  Throw error if we don't have one.
4169         (marshal_garray_basic): Abort on OOM.
4170         (get_type_marshaller): New function, extracted from
4171         dbus_gvalue_marshal.
4172         (collection_marshal_iterator, marshal_collection): New functions;
4173         implements generic marshalling for an iteratable specialized
4174         collection.
4175         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4176
4177         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4178         G_TYPE_STRING.
4179         (ptrarray_value_from_gvalue): Ditto.
4180         (ptrarray_append, ptrarray_free): New functions.
4181         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4182         (slist_append, slist_end_append, slist_free): New functions.
4183         (dbus_g_type_specialized_builtins_init): Add append fuctions
4184         for GPtrArray and GSList.  Register GSList.
4185         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4186
4187         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4188         New.
4189         (dbus_g_type_specialized_collection_init_append)
4190         (dbus_g_type_specialized_collection_append)
4191         (dbus_g_type_specialized_collection_end_append): Prototype.
4192         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4193         end_append_func.
4194
4195         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4196         (dbus_g_type_specialized_collection_append) 
4197         (dbus_g_type_specialized_collection_end_append): New functions.
4198         (dbus_g_type_map_value_iterate): Take const GValue.
4199         (dbus_g_type_collection_value_iterate): Ditto.
4200
4201         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4202         _dbus_gvalue_utils_test.
4203         
4204         * glib/dbus-gtest.h: Prototype it.
4205
4206         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4207         using uninitialized owner_list.
4208         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4209         public API.
4210         (dbus_g_proxy_end_call_internal): Update to use error set
4211         from dbus_gvalue_demarshal instead of setting it here.
4212         (dbus_g_proxy_begin_call): Move return_if_fail here.
4213
4214         * glib/dbus-gobject.c (write_interface): Update for
4215         dbus_gtype_to_signature returning new string.
4216
4217         * configure.in: Add glib/examples/statemachine.
4218
4219 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4220
4221         * configure.in: Add a configure option, --with-console-auth-dir
4222         
4223         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4224         new setting.  Patch from Kay Sievers.
4225
4226 2005-07-06  Colin Walters  <walters@verbum.org>
4227
4228         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4229         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4230         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4231         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4232         Delete in favor of dbus_g_proxy_begin_call and
4233         dbus_g_proxy_cancel_call.
4234         (DBusGProxyCall, DBusGProxyCallNotify): New.
4235         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4236         data, and destroy function.  This replaces
4237         dbus_g_pending_call_set_notify.
4238         (dbus_g_proxy_cancel_call): Prototype.
4239         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4240
4241         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4242         pending_calls map.
4243         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4244         internal proxy for calls to the bus. Remove
4245         pending_nameowner_calls, now the internal proxy keeps track.
4246         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4247         pending_nameowner_calls.
4248         (got_name_owner_cb): Update prototype, and use
4249         dbus_g_proxy_end_call.
4250         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4251         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4252         favor of using internal proxy.
4253         (dbus_g_proxy_manager_unregister): Update to use
4254         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4255         (dbus_g_proxy_init): Initialize pending calls map.
4256         (dbus_g_proxy_constructor): New.
4257         (dbus_g_proxy_class_init): Add get/set property functions,
4258         constructor, and add NAME, PATH, and INTERFACE properties.
4259         (cancel_pending_call): New function.
4260         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4261         cancel them.
4262         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4263         (GPendingNotifyClosure): New structure.
4264         (d_pending_call_notify, d_pending_call_free): Moved here from
4265         dbus-glib.c.
4266         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4267         ordering.
4268         (manager_begin_bus_call): New internal function for talking to
4269         internal bus proxy.
4270         (dbus_g_proxy_new): Construct object using GObjet properties.
4271         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4272         Create closure of same, and insert call into map of pending calls.
4273         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4274         call.  Look up pending call in current set.  Remove it when we've
4275         completed.
4276         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4277         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4278         and destroy function directly.
4279         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4280         (dbus_g_proxy_call): Invoke with NULL callback.
4281         (dbus_g_proxy_cancel_call): New function, replaces
4282         dbus_g_pending_call_cancel.
4283
4284         * glib/dbus-gparser.c (validate_signature): Fix call to
4285         dbus_set_g_error.
4286
4287         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4288         New quark for attaching metadata to GType.
4289         (info_hash): Delete.
4290         (lookup_object_info): Look up using quark.
4291         (dbus_g_object_type_install_info): Check that a type is classed,
4292         not that it's an object.  Also just install type data using quark
4293         instead of using global hash.
4294
4295         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4296         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4297         (GPendingNotifyClosure): Delete.
4298         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4299         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4300
4301         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4302         client method generation until we can fix it...
4303         
4304         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4305         (load_from_service_thread_func): Ditto.
4306
4307         * tools/dbus-names-model.c (struct NamesModel): Hold
4308         DBusGProxyCall.
4309         (have_names_notify): Update prototype, use
4310         dbus_g_proxy_cancel_call.
4311         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4312
4313         * tools/dbus-monitor.c (filter_func): Update for print_message
4314         API change.
4315
4316         * test/glib/test-dbus-glib.c: Add more tests for async
4317         invocations.  Update many begin_call/end_call pairs to just use
4318         dbus_g_proxy_call.
4319
4320         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4321         allows us to dump print-introspect.c.
4322
4323         * tools/dbus-print-message.h (print_message): Add literal argument
4324         to print_message which is intended to allow printing arguments without
4325         metadata like "string=".
4326
4327         * tools/dbus-print-message.c (print_iter): Add literal argument.
4328         (print_message): Allow printing string messages literally.
4329
4330 2005-07-05  Colin Walters  <walters@verbum.org>
4331
4332         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4333         Remove value refcount leak, original patch from Jorn Baayen
4334         <jorn@openedhand.com>.  Also remove useless extra value in favor
4335         of prepending to value array directly.
4336
4337 2005-07-02  Colin Walters  <walters@verbum.org>
4338
4339         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4340
4341 2005-07-01  Colin Walters  <walters@verbum.org>
4342
4343         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4344         
4345         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4346         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4347         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4348         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4349
4350 2005-06-30  Colin Walters  <walters@verbum.org>
4351
4352         * test/glib/test-dbus-glib.c:
4353         * test/glib/test-service-glib.c:
4354         * test/glib/test-service-glib.xml: Update tests for new error
4355         setting bits, also add async tests (patch from Ross Burton).
4356
4357         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4358         DBUS_GLIB_THREADS_LIBS.
4359
4360         * glib/dbus-gproxy.c (get_name_owner)
4361         (dbus_g_pending_call_end_valist): Ditto.
4362
4363         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4364         domain (GQuark) to DBusGErrorInfo.  
4365         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4366         quark in error_metadata.  Take message interface as default
4367         error message interface.
4368         (gerror_to_dbus_error_message): Pass message interface.
4369         (dbus_set_g_error): Resurrected.
4370         (dbus_g_error_info_free): New function.
4371         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4372         of _peek to actually create the object class if it hasn't been
4373         created yet.
4374         (dbus_g_error_domain_register): New function.
4375
4376         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4377
4378         * glib/dbus-gparser.c (validate_signature): Ditto.
4379
4380         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4381         (dbus_g_error_domain_register): Prototype.
4382
4383         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4384         Update tests.
4385
4386 2005-06-29  Colin Walters  <walters@verbum.org>
4387
4388         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4389         DBUS_TYPE_G_OBJECT_PATH.
4390
4391         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4392         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4393         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4394         (dbus_g_object_path_get_g_type): New function.
4395         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4396         to DBUS_TYPE_G_OBJECT_PATH by default.
4397         (demarshal_proxy): Remove unused name variable.
4398         (demarshal_object_path, marshal_object_path): New functions.
4399         (demarshal_proxy_array, marshal_proxy_array): Delete.
4400         
4401         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4402         DBUS_TYPE_G_OBJECT_PATH to char *.
4403         (dbus_g_type_get_lookup_function): Map builtin
4404         DBUS_TYPE_G_OBJECT_PATH.
4405
4406         * test/glib/test-dbus-glib.c
4407         * test/glib/test-service-glib.c (my_object_objpath): 
4408         Adapt tests to new object path marshalling.
4409
4410 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4411
4412         * configure.in: force check for Python >= 2.4
4413
4414 2005-06-29  Colin Walters  <walters@verbum.org>
4415         
4416         Patch from Ross Burton <ross@openedhand.com>
4417         
4418         * glib/dbus-gobject.c (invoke_object_method): Unset object
4419         value in all cases, not only in async case.
4420
4421 2005-06-29  Colin Walters  <walters@verbum.org>
4422
4423         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4424         name_call for keeping track of any outgoing GetNameOwner call.
4425         Also add for_owner and associated.
4426         (struct _DBusGProxyManager): Add owner_names, which is hash table
4427         that maps a base name to a list of names it owns (that we're
4428         interested in).  Add pending_nameowner_calls which is a list of
4429         all outstanding GetNameOwner; avoids us having to iterate over
4430         every proxy.  Add unassociated_proxies which keeps track of name
4431         proxies with no associated name owner.
4432         (dbus_g_proxy_manager_unref): Destroy owner_names.
4433         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4434         name refcounts.
4435         (find_name_in_info, name_owner_foreach)
4436         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4437         (dbus_g_proxy_manager_monitor_name_owner)
4438         (dbus_g_proxy_manager_unmonitor_name_owner)
4439         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4440         New functions; they manipulate the owner_names mapping.
4441         (got_name_owner_cb): New function.
4442         (get_name_owner): New function, extracted from
4443         dbus_g_proxy_new_for_name_owner.
4444         (dbus_g_proxy_manager_register): For now we need to keep track of
4445         all NameOwnerChanged.  Also if the proxy is for a name, if we
4446         don't already know the name owner, queue a new GetNameOwner
4447         request and add it to our list of unassociated proxies.  Otherwise
4448         inc the refcount.
4449         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4450         cancel any pending GetNameOwner call, etc.
4451         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4452         the owner_names mapping to look up the current names for the
4453         signal source, and dispatch to any proxies for that name.
4454         (dbus_g_proxy_new): Initialize new members.
4455         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4456         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4457         (dbus_g_pending_call_end_valist): New function, extracted from
4458         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4459         but want to use the GLib infrastructure.  Also note how many
4460         arguments in reply were over.
4461         (dbus_g_pending_call_end): New function, just call
4462         dbus_g_pending_call_end_valist.
4463         (dbus_g_proxy_end_call_internal): Just call
4464         dbus_g_pending_call_end_valist.
4465
4466         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4467         of builtin marshaller for STRING_STRING_STRING.
4468
4469         * test/glib/test-dbus-glib.c: 
4470         * test/glib/test-service-glib.c:
4471         * test/glib/test-service-glib.xml:
4472         Extend tests to cover name proxies, destruction of owner proxies,
4473         etc.
4474         
4475         * glib/examples/example-signal-recipient.c
4476         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4477         
4478         * tools/dbus-send.c (main): Print D-BUS error name in addition
4479         to message.
4480
4481 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4482
4483         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4484         cmessage_function_handler): Patch from 
4485         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4486         by using the Py_GILState_Ensure/Release to synchronize with the
4487         python runtime.
4488         
4489 2005-06-28  Ray Strode  <rstrode@redhat.com>
4490
4491         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4492         babysitter helper process on last unref, bug #2813.
4493
4494 2005-06-27  Colin Walters  <walters@verbum.org>
4495
4496         * test/glib/test-dbus-glib.c: 
4497         * test/glib/test-service-glib.c:
4498         * test/glib/test-service-glib.xml:
4499         Test hash table signal emitting.
4500
4501         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4502         types to their fundamental basis types, since this is what
4503         marshallers operate on.  Also add an entry for VOID__BOXED.
4504         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4505
4506 2005-06-26  Havoc Pennington  <hp@redhat.com>
4507
4508         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4509         from Don Park
4510
4511 2005-06-26  Colin Walters  <walters@verbum.org>
4512
4513         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4514         (dbus_g_error_set): New public function from its ashes; used by
4515         both service-side method implementation and GLib bindings
4516         internals.
4517         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4518         (_dbus_glib_test): Add some tests.
4519
4520         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4521
4522         * test/glib/test-service-glib.c (my_object_throw_error): Use
4523         dbus_g_error_set.
4524
4525         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4526         errors thrown by dbus_g_error_set.
4527
4528         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4529
4530         * glib/dbus-gparser.c (validate_signature): Ditto.
4531
4532         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4533         (dbus_g_proxy_end_call_internal): Ditto.
4534
4535         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4536         converts DBUS_ERROR_x to DBUS_GERROR_x.
4537         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4538
4539         * doc/TODO: Remove error TODO.
4540
4541         * doc/dbus-tutorial.xml: Update with documentation about error
4542         handling.
4543
4544         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4545         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4546         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4547
4548 2005-06-22  Colin Walters  <walters@verbum.org>
4549         
4550         Patch from Ross Burton <ross@openedhand.com>
4551
4552         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4553
4554 2005-06-20  Colin Walters  <walters@verbum.org>
4555
4556         * configure.in: Add glib/examples.
4557
4558         * glib/Makefile.am: Add examples/
4559
4560         * glib/examples/.cvsignore
4561         * glib/examples/Makefile.am
4562         * glib/examples/example-client.c
4563         * glib/examples/example-service.c
4564         * glib/examples/example-service.xml
4565         * glib/examples/example-signal-emitter.c
4566         * glib/examples/example-signal-emitter.xml
4567         * glib/examples/example-signal-recipient.c:
4568         New files; GLib binding examples, ported from
4569         python/examples.
4570
4571 2005-06-20  Colin Walters  <walters@verbum.org>
4572
4573         * dbus/dbus-glib.h: 
4574         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4575         dbus_g_proxy_call.
4576
4577         * glib/dbus-binding-tool-glib.c: 
4578         * doc/dbus-tutorial.xml: 
4579         * test/glib/test-dbus-glib.c: Update for rename.
4580         
4581 2005-06-20  Colin Walters  <walters@verbum.org>
4582
4583         Patch suggested by Ross Burton <ross@openedhand.com>
4584
4585         * glib/dbus-gobject.c (export_signals): Free signal name.
4586         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4587         memory leak.  Add a bit of documentation.
4588         (dbus_g_method_return_error): Free context, and note we do
4589         so.
4590
4591 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4592
4593         * dbus/dbus-glib.h:
4594         * glib/dbus-gobject.c:
4595         * glib/dbus-gproxy.c:
4596         * glib/dbus-gvalue.c: Predeclare structs as 
4597         typedef struct _Something Something instead of 
4598         typedef struct Something Something, so we can 
4599         redeclare the prototypes. Other GNOME libraries 
4600         do this already.
4601
4602 2005-06-17  Colin Walters  <walters@verbum.org>
4603
4604         * tools/dbus-names-model.c (have_names_notify): Fix call
4605         to dbus_g_proxy_end_call.
4606         
4607 2005-06-17  Colin Walters  <walters@verbum.org>
4608
4609         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4610         spew warnings if we get malformed remote signals.
4611
4612         * glib/dbus-gobject.c (propsig_iterate): New function.
4613         (lookup_object_info): New function, extracted from
4614         lookup_object_and_method.
4615         (introspect_properties, introspect_signals): Delete; these
4616         are merged into write_interface.
4617         (write_interface): Write out signals and properties here;
4618         dump the org.gtk.object stuff and use the interface given
4619         in the introspection data blob.  Also fix up property XML.
4620         (lookup_values): New function.
4621         (introspect_interfaces): Gather a mapping from interface to a
4622         list of its methods, signals, and properties, then write out
4623         each interface.
4624         (lookup_object_and_method): Use lookup_object_info.
4625         (struct DBusGSignalClosure): Add interface.
4626         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4627         we can just use the constant data.
4628         (dbus_g_signal_closure_finalize): Don't free signal name.
4629         (signal_emitter_marshaller): Use interface from signal closure.
4630         (export_signals): Only export signals mentioned in introspection
4631         blob.
4632         (dbus_g_connection_register_g_object): Warn if we have no
4633         introspection data for an object.
4634         (funcsig_equal): Remove unused variable.
4635         (dbus_g_object_register_marshaller): Take varargs instead of
4636         list.
4637         (dbus_g_object_register_marshaller_array): New function,
4638         extracted from old dbus_g_object_register_marshaller.
4639
4640         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4641         signals and property data.
4642         (write_quoted_string): New function, extracted from generate_glue.
4643         (generate_glue): Write signals and properties to introspection
4644         blob.
4645
4646         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4647         exported_signals and exported_properties.
4648         (dbus_g_object_register_marshaller): Update prototype.
4649         (dbus_g_object_register_marshaller_array): Prototype.
4650         
4651         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4652
4653         * test/glib/test-service-glib.c: Add new test signals and method
4654         to emit them.
4655
4656         * test/glib/test-service-glib.xml: Add some test signals.
4657
4658         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4659         and my-object-marshal.h
4660         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4661         my-object-marshal.c.
4662         (my-object-marshal.c, my-object-marshal.h): Implement.
4663
4664         * test/glib/.cvsignore: Update.
4665
4666         * doc/TODO: Remove two GLib TODO items fixed by this
4667         patch.
4668
4669 2005-06-16  Colin Walters  <walters@verbum.org>
4670
4671         * doc/TODO: Update for GLib bindings.
4672         
4673 2005-06-16  Colin Walters  <walters@verbum.org>
4674
4675         * glib/dbus-binding-tool-glib.c:
4676         * glib/dbus-gobject.c:
4677         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4678         from Ross Burton, for his GLib bindings work.
4679
4680 2005-06-16  Colin Walters  <walters@verbum.org>
4681
4682         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4683         to iterate instead of walking to G_TYPE_INVALID.
4684
4685         Patch based on a patch from Ryan Gammon.
4686
4687 2005-06-16  Colin Walters  <walters@verbum.org>
4688
4689         * bus/bus.c (bus_context_new): Set parser to NULL
4690         after we unref it (Patch from Chris Boscolo, #2174).
4691         
4692 2005-06-16  Colin Walters  <walters@verbum.org>
4693
4694         * python/dbus_bindings.pyx.in: Import size_t,
4695         __int64_t, __uint64_t, and __signed.
4696
4697         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4698         Define cmsg struct, output it.
4699         (_dbus_read_credentials_unix_socket):
4700         Use cmsg struct.
4701         
4702         Patch from Joe Markus Clarke for FreeBSD support.
4703         
4704 2005-06-16  Colin Walters  <walters@verbum.org>
4705
4706         * tools/dbus-send.c (append_array): Use strtok.
4707         (append_dict): New function.
4708         (type_from_name): New function, extracted from main.
4709         (main): Handle sending dicts.
4710
4711         * tools/dbus-print-message.c (print_iter): Print dict
4712         entries.
4713         
4714 2005-06-16  Colin Walters  <walters@verbum.org>
4715
4716         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4717         values as the empty string (#2948).
4718         
4719 2005-06-16  Colin Walters  <walters@verbum.org>
4720
4721         * dbus/Makefile.am:
4722         * mono/doc/Makefile.am:
4723         * test/glib/Makefile.am:
4724
4725         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4726
4727 2005-06-16  Colin Walters  <walters@verbum.org>
4728
4729         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4730         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4731
4732         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4733         Increment pointer after swapping fixed array.  Add assertion
4734         for array length.
4735                 
4736 2005-06-15  Colin Walters  <walters@verbum.org>
4737
4738         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4739         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4740         
4741 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4742
4743         * NEWS: Update to 0.34
4744
4745 2005-06-15  David Zeuthen  <davidz@redhat.com>
4746
4747         * configure.in (LT_CURRENT): Revert back to 1 as the library
4748         hasn't changed and we've certainly not committed to protocol
4749         stability yet.  All this does is to break ABI. See commit note
4750         from hp@redhat.com 2005-05-05 for details.
4751         
4752 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4753
4754         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4755         (_dbus_connection_run_builtin_filters): New method
4756         (dbus_connection_dispatch): Run the builtin filters which in turn
4757         runs the peer filter which handles Ping messages.
4758
4759         * doc/TODO: 
4760          - Ping isn't handled: This patch fixes it
4761          
4762          - Add a test case for the Ping message: added TODO item
4763
4764 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4765
4766         * dbus/dbus-message.c:
4767         (dbus_message_has_path): New method
4768         (dbus_message_has_interface): New method
4769         (dbus_message_has_member): New method
4770
4771         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4772         New method
4773
4774         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4775         the keyring directory is private to the user
4776
4777         * doc/TODO:
4778          - The convenience functions in dbus-bus.h should perhaps have
4779          the signatures that they would have if they were autogenerated
4780          stubs. e.g. the acquire service function. We should also evaluate
4781          which of these functions to include, in light of the fact that
4782          GLib/Qt native stubs will probably also exist.: Punted
4783
4784          - add dbus_message_has_path(), maybe has_member/interface:
4785          fixed in this patch
4786
4787          - in dbus-keyring.c, enforce that the keyring dir is not
4788          world readable/writable: Fixed in this patch
4789
4790 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4791
4792         * dbus/dbus-marshal-validate.h: Added a new validation
4793         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4794         out of memory errors when validating signitures
4795
4796         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4797         in places where we previously used DBUS_VALID and a FALSE return 
4798         value to indicate OOM
4799         
4800         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4801         Use a stack to track the number of elements inside containers.  The 
4802         stack values are then used to validate that dict entries have only two
4803         elements within them.
4804         (validate_body_helper): check the reason for failure when validating
4805         varients
4806         
4807         * dbus/dbus-message.c (load_message): use 
4808         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4809         DBUS_VALID and a FALSE return value to indicate OOM
4810
4811         * doc/TODO: remove "- validate dict entry number of fields" as this
4812         patch fixes it
4813
4814 2005-06-14  David Zeuthen  <davidz@redhat.com>
4815
4816         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4817         watches (if applicable) and add new watches
4818
4819         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4820         (main): Setup SIGIO signal handler if using D_NOTIFY
4821
4822         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4823
4824         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4825         (merge_included): Also merge conf_dirs list
4826         (bus_config_parser_unref): Clear conf_dirs list
4827         (include_dir): Add directory to conf_dirs list
4828         (bus_config_parser_get_conf_dirs): New function
4829
4830         * bus/dir-watch.[ch]: New files
4831
4832         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4833
4834         * configure.in: Add checks for D_NOTIFY on Linux
4835
4836 2005-06-14  Colin Walters  <walters@verbum.org>
4837
4838         * glib/dbus-binding-tool-glib.c:
4839         * glib/dbus-gobject.c:
4840         * glib/dbus-gvalue.c: Fix indentation and brace style.
4841         
4842 2005-06-14  Ross Burton <ross@openedhand.com>.
4843
4844         * glib/dbus-glib.h: Make DBusGMethodInvocation
4845         a private structure.  Rearrange prototypes a bit.
4846         
4847         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4848         documentation for first_arg_type.
4849         
4850         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4851         here, add documentation.  Move dbus_g_method_return
4852         and dbus_g_method_return_error into public API
4853         section.
4854
4855 2005-06-14  Colin Walters  <walters@verbum.org>
4856
4857         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4858         Add missing return statements, noticed by Ross Burton.
4859         
4860 2005-06-13  Ross Burton <ross@openedhand.com>.
4861
4862         * glib/dbus-gobject.c: Handle errors on message
4863         demarshalling by sending error message back.
4864         * glib/dbus-gvalue.c: Initialize return variables.
4865
4866 2005-06-13  Colin Walters  <walters@verbum.org>
4867
4868         * glib/Makefile.am: Fix thinko in last patch.
4869
4870 2005-06-13  Colin Walters  <walters@verbum.org>
4871
4872         * glib/Makefile.am: Move dbus-gtype-specialized.c
4873         and dbus-gtype-specialized.h into a _HEADERS variable,
4874         install them.
4875
4876 2005-06-12  Colin Walters  <walters@verbum.org>
4877
4878         Async signals and various bugfixes and testing by
4879         Ross Burton <ross@openedhand.com>.
4880
4881         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4882         (dbus_gvalue_genmarshal_name_from_type)
4883         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4884         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4885         (dbus_g_value_types_init, dbus_gtype_from_signature)
4886         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4887         (dbus_gtypes_from_arg_signature): New function prototypes.
4888         (dbus_gvalue_demarshal): Take context and error arguments.
4889         (dbus_gvalue_demarshal_variant): New function.
4890         (dbus_gvalue_demarshal_message): New function.
4891         (dbus_gvalue_store): Delete.
4892
4893         * glib/dbus-gvalue.c:
4894
4895         File has been almost entirely rewritten; now we special-case
4896         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4897         hash tables correctly, etc.  Full support for recursive values
4898         is not yet complete.
4899
4900         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4901         argument of signal to G_TYPE_POINTER since we now pass a
4902         structure.
4903         (lookup_g_marshaller): Delete in favor of
4904         _dbus_gobject_lookup_marshaller.
4905         (marshal_dbus_message_to_g_marshaller): Use
4906         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4907         to handle remote signal callbacks.
4908         (dbus_g_proxy_new_from_proxy): New function; creates a new
4909         DBusGProxy by copying an existing one.
4910         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4911         (dbus_g_proxy_get_path): New functions.
4912         (dbus_g_proxy_marshal_args_to_message): New function;
4913         factored out of existing code.
4914         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4915         from a varargs array.
4916         (dbus_g_proxy_begin_call_internal): New function.
4917         (dbus_g_proxy_end_call_internal): New function.
4918         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4919         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4920         after collecting args into value array.
4921         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4922         invoke dbus_g_proxy_end_call_internal.
4923         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4924         end_call_internal.
4925         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4926         types.
4927         (array_free_all): New function.
4928         (dbus_g_proxy_add_signal): Take GTypes.
4929
4930         * glib/dbus-gobject.h:
4931         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4932         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4933         Prototype.
4934
4935         * glib/dbus-gobject.c: Add a global marshal_table hash which
4936         stores mappings from type signatures to marshallers.  Change lots
4937         of invocations of dbus_gtype_to_dbus_type to
4938         dbus_gtype_to_signature.
4939         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4940         (introspect_signals): Fix test for query.return_type.
4941         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4942         (invoke_object_method): Many changes.  Handle asynchronous
4943         invocations.  Convert arguments with
4944         dbus_gvalue_demarshal_message.  Handle errors.  Use
4945         DBusSignatureIter instead of strlen on args. Handle all arguments
4946         generically.  Special-case variants.
4947         (dbus_g_method_return, dbus_g_method_return_error): New function.
4948         (DBusGSignalClosure): New structure, closes over signal
4949         information.
4950         (dbus_g_signal_closure_new): New function.
4951         (dbus_g_signal_closure_finalize): New function.
4952         (signal_emitter_marshaller): New function; is special marshaller
4953         which emits signals on bus.
4954         (export_signals): New function; introspects object signals and
4955         connects to them.
4956         (dbus_g_object_type_install_info): Take GType instead of
4957         GObjectClass.
4958         (dbus_g_connection_register_g_object): Invoke export_signals.
4959         (dbus_g_connection_lookup_g_object): New function.
4960         (DBusGFuncSignature) New structure; used for mapping type
4961         signatures to marshallers.
4962         (funcsig_hash): New function; hashes DBusGFuncSignature.
4963         (funcsig_equal): New function; compares DBusGFuncSignature.
4964         (_dbus_gobject_lookup_marshaller): New function.
4965         (dbus_g_object_register_marshaller): New function; used to
4966         register a marshaller at runtime for a particular signature.
4967
4968         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4969
4970         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4971         which notes a server method implementation should be
4972         asynchronous.
4973
4974         * glib/dbus-binding-tool-glib.c
4975         (dbus_binding_tool_output_glib_server): Call
4976         dbus_g_value_types_init.
4977         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4978         variants specially.
4979         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4980         of a lookup function.
4981         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4982         (write_untyped_out_args): New method; write output arguments.
4983         (write_formal_declarations_for_direction): Function for
4984         writing prototypes.
4985         (write_formal_parameters_for_direction): Function for
4986         writing implementations.
4987         (write_typed_args_for_direction): Function for writing
4988         arguments prefixed with GTypes.
4989         (write_async_method_client): Write out async version
4990         of method.
4991
4992         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4993         (dbus_g_type_get_marshal_name): Move mapping from GType
4994         to marshal name into here.
4995         (dbus_g_type_get_c_name): Move into here.
4996         (compute_marshaller): Convert signature to type with
4997         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4998         (compute_marshaller_name): Ditto.
4999         (compute_marshaller): Handle async signal annotations.
5000         (gather_marshallers): Return if we don't have a known
5001         prefix.
5002         (generate_glue): Collect introspection blob here, and
5003         write all of the blob at the end.  This allows an object
5004         with multiple interfaces to work.
5005         Mark async methods in introspection blob.
5006
5007         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5008         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5009         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5010
5011         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5012         avoids people accidentally using DBUS_TYPE_* which should
5013         not be necessary anymore.
5014         Do include dbus-gtype-specialized.h, which are utilities
5015         for GLib container types.
5016         Add various #defines for types such as
5017         DBUS_TYPE_G_BOOLEAN_ARRAY.
5018         (DBusGValueIterator, DBusGValue): Define, not fully used
5019         yet.
5020         (dbus_g_value_get_g_type): Type for recursive value.
5021         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5022         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5023         (dbus_g_value_free): Prototypes.
5024         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5025         (dbus_g_proxy_set_interface): Prototype.
5026         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5027         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5028         types.
5029         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5030         Accessors.
5031         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5032         doing async invocations.
5033         (dbus_g_method_return, dbus_g_method_return_error):
5034         Prototypes.
5035         * doc/dbus-tutorial.xml: Update GLib section.
5036         
5037         * tools/dbus-viewer.c (load_child_nodes): Update
5038         for new invocation type of dbus_g_proxy_end_call.
5039         (load_from_service_thread_func): Ditto.
5040
5041         * tools/print-introspect.c (main): Ditto.
5042
5043         * tools/dbus-names-model.c (have_names_notify)
5044         (names_model_reload, names_model_set_connection)
5045         Use GTypes.
5046
5047         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5048         needed since Python bindings use GLib bindings.
5049
5050         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5051         Add --prefix argument.
5052
5053         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5054         unneeded --ignore-unsupported arg.
5055         
5056         * test/glib/test-service-glib.c: 
5057         * test/glib/test-service-glib.xml:
5058         * test/glib/test-dbus-glib.c: Add many more tests.
5059
5060 2005-06-06  David Zeuthen  <davidz@redhat.com>
5061
5062         * doc/TODO: Add item about need to remove deprecated functions.
5063
5064         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5065
5066         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5067         to repair the ABI which was broken with the last commit.
5068
5069 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5070
5071         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5072         (dbus_connection_disconnect): renamed to dbus_connection_close 
5073         for API symmetry with dbus_connection_open
5074         (_dbus_connection_open_internal): 
5075         s/dbus_connection_disconnect/dbus_connection_close
5076
5077         * dbus/dbus-bus.c (dbus_bus_get):
5078         s/dbus_connection_disconnect/dbus_connection_close
5079
5080         * bus/connection.c (bus_connections_unref, 
5081         bus_connections_setup_connection, bus_connections_expire_incomplete):
5082         s/dbus_connection_disconnect/dbus_connection_close
5083
5084         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5085         kill_client_connection_unchecked, check_hello_connection):
5086         s/dbus_connection_disconnect/dbus_connection_close
5087
5088         * bus/bus.c (new_connection_callback):
5089         s/dbus_connection_disconnect/dbus_connection_close
5090
5091         * tools/dbus-send.c (main):
5092         s/dbus_connection_disconnect/dbus_connection_close
5093
5094         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5095         s/dbus_connection_disconnect/dbus_connection_close
5096         
5097         * test/test-service.c (path_message_func, filter_func):
5098         s/dbus_connection_disconnect/dbus_connection_close
5099         
5100         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5101         
5102 2005-05-25  Colin Walters  <walters@verbum.org>
5103
5104         * dbus/dbus-protocol.h: Move various bus service #defines such
5105           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5106           dbus/dbus-shared.h.
5107         * dbus/dbus-shared.h: Various defines moved here.
5108         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5109
5110 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5111
5112         * python/__init__.py: Python bindings deserve a minor version
5113         update.  Upped to (0, 40, 2)
5114
5115 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5116
5117         * python/decorators.py: add explicitly_pass_message decorator
5118         for passing in the dbus message as keyword for edge case signal
5119         handling
5120
5121         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5122         to conform with what dbus expects for match rules
5123         (SignalMatchRule.execute): add the dbus message as a keyword
5124         if the signal handler has requested it
5125
5126         * python/examples/example/signal-recipient.py: added some more
5127         examples on how to hook up to signals
5128
5129 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5130
5131         * python/decorators.py: import dbus_bindings
5132
5133         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5134         SignalMatchNode): new classes that implement wildcard signal
5135         callback matching using a tree lookup. Heavily modified from a
5136         patch sent by Celso Pinto (fd.o bug #3241)
5137
5138         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5139         use new match classes to handle signals.
5140
5141 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5142         
5143         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5144
5145 2005-05-18  Havoc Pennington  <hp@redhat.com>
5146
5147         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5148         gettext. Not really worth requiring yet perhaps, but any
5149         production quality 1.0 would require it so we should go ahead and
5150         get things set up. We do have a couple token calls to
5151         bindtextdomain in the code already.
5152
5153 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5154
5155         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5156         when using recursive g_main_loops
5157
5158         * python/_dbus.py (class Bus): add the ProxyObjectClass
5159         alias for ProxyObject to make it easier for the Twisted 
5160         networking framework to integrate dbus.
5161
5162         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5163         alias for ProxyMethod to make it easier for the Twisted 
5164         networking framework to integrate dbus. 
5165
5166 2005-05-11  Ross Burton  <ross@openedhand.com>
5167
5168         * glib/dbus-glib-tool.c: Add --prefix argument.
5169         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5170         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5171         Add prefix argument.
5172         (generate_glue): Pass prefix argument down.
5173         (dbus_binding_tool_output_glib_server): Pass prefix to
5174         glib-genmarshal.
5175         
5176 2005-05-11  Colin Walters  <walters@verbum.org>
5177
5178         * tools/dbus-send.c (append_array): New function.
5179         (append_arg): Broken out from main.
5180         (main): Add cheesy hack to send arrays and variants.
5181         (usage): Update.
5182         * tools/dbus-print-message.c (print_iter): Broken out
5183         from main.
5184
5185 2005-05-11  Colin Walters  <walters@verbum.org>
5186
5187         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5188         New function, returns signature string for signature iter.
5189         * dbus/dbus-signature.h: Prototype it.
5190         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5191         New function, returns signature string for message iter.
5192         (dbus_message_iter_get_array_len): New function, returns
5193         length of array.
5194         (dbus_message_iter_get_fixed_array): Fix assertion; this
5195         function should be used when the iter is pointing to the
5196         contents of an array
5197         * dbus/dbus-message.h: Prototypes.
5198         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5199         New function; returns length of an array.
5200         * dbus/dbus-marshal-recursive.h: Prototype it.
5201         
5202 2005-05-11  Colin Walters  <walters@verbum.org>
5203
5204         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5205         compilation error.
5206         
5207 2005-05-08  Havoc Pennington  <hp@redhat.com>
5208
5209         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5210         daemon's pid, not the parent's pid, to the file descriptor.
5211         Reported by Taj Morton.
5212
5213 2005-05-05  Havoc Pennington  <hp@redhat.com>
5214
5215         * configure.in (LT_*): add notes on how the libtool versioning
5216         works to save thinking. Increment soname to indicate protocol
5217         breakage (though really the library interface hasn't changed I
5218         guess)
5219
5220         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5221         verify the GUID received from server matches what we were
5222         expecting, if we had an expectation
5223
5224         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5225         (_dbus_auth_get_guid_from_server): new function
5226         (send_begin): parse the OK args
5227
5228         * doc/dbus-specification.xml: add GUID to the auth protocol
5229
5230 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5231
5232         * Fix my name in previous changelog ;)
5233
5234         * python/proxies.py (ProxyObject.__getattr__): add further patch
5235         from Anthony Baxter to throw an AttributeError when python 
5236         __special__ functions are called instead of marshling them over 
5237         the bus (Bug#1685 comment 3).
5238
5239 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5240
5241         * python/Makefile.am: changed to use pyexecdir for the binding
5242         shared libraries (Bug#2494)
5243
5244         * python/exceptions.py: bring exceptions over from the bindings
5245         so they can be used in applications (Bug#2036)
5246         Make all exceptions derive from DBusException
5247
5248         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5249         of classes so that print obj doesn't throw an exception (Bug #1685)
5250
5251 2005-05-03  Ross Burton  <ross@openedhand.com>
5252
5253         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5254         Return if we get an error during registration.  Set up a
5255         weak reference on object to unregister if object is destroyed.
5256         (unregister_gobject): New function.
5257         
5258 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5259
5260         * python/dbus_bindings.pyx.in: 
5261         - added new type classes for hinting to the marashaler what type 
5262         to send over the wire
5263         - added int16 and uint16 marshalers
5264         - Fixed a bug in the type constants that caused int32 to go out
5265         as uint16 over the wire
5266         * python/dbus.py: split up into different files and renamed _dbus.py
5267         * python/__init__.py, python/_util.py, python/decorators.py, 
5268         python/exceptions.py, python/proxies.py, python/services.py,
5269         python/types.py: new files split off from dbus.py
5270         * python/Makefile.am: Add new files, remove dbus.py and 
5271         install all python files to <python module dir>/dbus
5272         * python/examples/*: Added #!/usr/bin/env python to the top of
5273         every example.  Patch provided by Tatavarty Kalyan
5274
5275 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5276
5277         * NEWS: Update to 0.33
5278
5279 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5280
5281         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5282         method for doing async calls
5283         (_pending_call_notification): New C function for handling pendning call
5284         callbacks
5285         (set_notify): New method for setting pending call notification
5286         
5287         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5288         Async capabilities added to remote method calls
5289         (Sender): class removed
5290         (RemoteService): class removed
5291         (ObjectTree): class removed for now
5292         (RemoteObject): Renamed to ProxyObject
5293         (RemoteMethod): Renamed to ProxyMethod
5294         (method): Decorator added for decorating python methods as dbus methods
5295         (signal): Decorator added for decorating python methods as signal emitters
5296         (ObjectType): Metaclass added for generating introspection data and the
5297         method callback vtable
5298         (Interface): Wrapper class added to wrap objects in a dbus interface
5299         (Object): Uses ObjectType as its metaclass and exports Introspect
5300         of the org.freedesktop.DBus.Introspectable interface
5301         (ValidationException, UnknownMethodException): new exceptions
5302
5303         * python/examples/*: Modified to fit with the new bindings
5304
5305 2005-04-23  Havoc Pennington  <hp@redhat.com>
5306
5307         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5308         reported by Tony Houghton
5309
5310         * test/test-service.c (main): test
5311         dbus_connection_get_object_path_data()
5312
5313         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5314         the exact_match
5315         (_dbus_object_tree_get_user_data_unlocked): new function used by
5316         dbus_connection_get_object_path_data()
5317         (do_register): add assertion test for get_user_data_unlocked
5318         (object_tree_test_iteration): more tests
5319
5320         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5321         new function from Dan Reed to let you get the user data from 
5322         dbus_connection_register_object_path()
5323
5324 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5325
5326         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5327         in numerous places that did not account for the NULL terminator
5328         (signature_from_seed): changed the manual string copy loop to 
5329         just use strcpy instead
5330         make check should now pass
5331
5332 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5333
5334         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5335         so that it allows messages that are not signals to pass in 
5336         NULL as the interface.
5337
5338 2005-04-18  David Zeuthen  <davidz@redhat.com>
5339
5340         * glib/dbus-gmain.c (io_handler_destroy_source): 
5341         (timeout_handler_destroy_source, connection_setup_free): 
5342         Also unref the source to avoid memory leaks.
5343
5344 2005-04-13  David Zeuthen  <davidz@redhat.com>
5345
5346         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5347         more reasonable, yet still totally arbitrary, value :-). 
5348
5349 2005-04-13  David Zeuthen  <davidz@redhat.com>
5350
5351         * doc/TODO: Added an "important for 1.0" item about selinux
5352         allow/deny messages
5353
5354 2005-04-13  David Zeuthen  <davidz@redhat.com>
5355
5356         * bus/selinux.c: Add c-file-style to top of file
5357         (log_audit_callback): Don't free the data here anymore
5358         (bus_selinux_check): Don't take spid and tpid since appending
5359         that to auxdata may OOM.
5360         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5361         to the caller if we are OOM by taking an error object.
5362         (bus_selinux_allows_send): -do-
5363
5364         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5365         and bus_selinux_allows_send
5366
5367         * bus/bus.c (bus_context_check_security_policy): Pass error and
5368         pass on OOM thrown by bus_selinux_allows_send()
5369
5370         * bus/services.c (bus_registry_acquire_service): Pass error and
5371         pass on OOM thrown by bus_selinux_allows_acquire_service()
5372
5373 2005-04-13  Havoc Pennington  <hp@redhat.com>
5374
5375         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5376         message at a time to avoid monopolizing the main loop, bug 
5377         #2953 from Benjamin Otte
5378
5379 2005-04-09  Havoc Pennington  <hp@redhat.com>
5380
5381         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5382         possible overlap, fix from Daniel Reed
5383         (fixup_alignment): fix signedness warnings
5384         (_dbus_string_append_unichar): ditto
5385
5386 2005-04-09  Havoc Pennington  <hp@redhat.com>
5387
5388         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5389
5390         * glib/dbus-glib-tool.c (main): fix warning
5391
5392         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5393
5394         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5395         add a new function that can be used in simple applications that
5396         don't have a main loop and are willing to block
5397
5398 2005-04-05  David Zeuthen  <davidz@redhat.com>
5399
5400         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5401
5402         * glib/dbus-gmain.c:
5403         (io_handler_destroy_source): Remove from list of IO handlers
5404         of the ConnectionSetup object
5405         (timeout_handler_destroy_source): -do- for timeout handlers
5406         (io_handler_source_finalized): Don't remove from list since
5407         we now do that in io_handler_destroy_source(). Renamed from
5408         io_handler_source_destroyed
5409         (timeout_handler_source_destroyed): -do- for timeout handlers
5410         (connection_setup_free): It is now safe to iterate over all
5411         IO and timeout handlers as the _destroy_source removes them
5412         from the list synchronously
5413
5414 2005-03-30  Havoc Pennington  <hp@redhat.com>
5415
5416         * configure.in: change check to gtk 2.4
5417
5418         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5419         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5420         to 2.4
5421
5422 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5423
5424         * News: Update 0.32
5425
5426         * HACKING: Fixed realease instructions.  configure.in should be updated to
5427           the next release by the person who made the last release.
5428
5429 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5430
5431         * python/lvalue_cast_post_process.py - removed.  Patch has been
5432           submitted to Pyrex maintainers that fixes gcc4.0 errors
5433
5434         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5435
5436 2005-03-24  Daniel Reed  <n@ml.org>
5437
5438         * tools/Makefile.am: Make print-introspect and
5439         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5440
5441 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5442
5443         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5444
5445         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5446           had in Red Hat packages for a while but for some reason never 
5447           got merged upstream
5448           (_dbus_is_a_number): New checks if a string
5449           can be converted to a number and does the conversion if it can
5450           (_dbus_user_database_lookup): Add check to see if the given username
5451           is a udi.  This allows udi's to be used instead of usernames in the
5452           config file.
5453           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5454           is a gdi.  This allows gdi's to be used instead of groupnames in the
5455           config file.
5456
5457 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5458
5459         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5460           code so that it compiles with gcc4.0
5461
5462         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5463           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5464           results back to dbus_binding.c
5465
5466 2005-03-20  Colin Walters  <walters@verbum.org>
5467
5468         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5469
5470         * configure.in: Require GTK+ 2.6.
5471         
5472 2005-03-20  Colin Walters  <walters@verbum.org>
5473
5474         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5475
5476 2005-03-17  Tom Parker  <palfrey@tevp.net>
5477
5478         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5479         print DBUS_UID_UNSET; instead print passed username.  Also
5480         be sure to actually use gid looked up in cache.
5481         
5482         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5483         for DBUS_GID_UNSET and groupname.
5484
5485 2005-03-17  Colin Walters  <walters@verbum.org>
5486
5487         * bus/print-introspect.c: Move to tools/.
5488         * bus/run-with-tmp-session-bus.sh: Ditto.
5489         
5490         * glib/Makefile.am (dbus-glib-bindings.h): Move
5491         generation to tools/Makefile.am.
5492
5493         * test/glib/run-test.sh: Update to handle move
5494         of run-with-tmp-session-bus.sh.
5495
5496         * test/glib/test-service-glib.c: Update to handle
5497         move of dbus-glib-bindings.h.
5498
5499         * tools/print-introspect.c: Moved here
5500         from bus/, and ported to GLib bindings.
5501
5502         * tools/run-with-tmp-session-bus.sh: Moved here
5503         from bus/.
5504
5505         * tools/Makefile.am: Generate dbus-glib-bindings.h
5506         and dbus-bus-introspect.xml here.
5507
5508         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5509         Update.
5510
5511 2005-03-17  Colin Walters  <walters@verbum.org>
5512
5513         * bus/driver.c (write_args_for_direction): Use
5514         _dbus_string_get_const_data to retrieve string;
5515         _dbus_string_get_const_data_len doesn't actually return
5516         a NULL-terminated substring.
5517
5518         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5519         (main): Change to use org_freedesktop_DBus_request_name
5520         instead of using g_proxy_begin_call/end_call.
5521
5522 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5523
5524         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5525         generating the finalizer.  Fixes from Ben Maurer.
5526
5527 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5528
5529         * mono/BusDriver.cs: Update method names: ListServices
5530         becomes ListNames; GetOwner becomes GetNameOwner.
5531
5532         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5533         onto the eval stack when removing the delegate.
5534
5535 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5536
5537         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5538         LT_CURRENT.  Set it to the autoconf variable.
5539                                                                                 
5540         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5541         classes that disconnects the signal handler delegate from the
5542         service object.  Fixes a big leak of proxy objects on the
5543         client side of things.  Patch from Ben Maurer
5544         <bmaurer@ximian.com>
5545
5546 2005-03-12  Colin Walters  <walters@verbum.org>
5547
5548         * bus/driver.c (write_args_for_direction): New function,
5549         parses a type signature into arguments and outputs to
5550         XML.
5551         (bus_driver_handle_introspect): Use it instead of
5552         hardcoding XML for certain signatures.
5553         
5554         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5555         dependency on dbus-daemon.
5556
5557         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5558         argument, pass it to dbus_binding_tool_output_glib_client.
5559
5560         * glib/dbus-binding-tool-glib.c
5561         (generate_client_glue): Protect against multiple inclusion.
5562         (dbus_binding_tool_output_glib_client): Add
5563         G_BEGIN_DECLS/G_END_DECLS.
5564
5565         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5566         Change to just take iface prefix directly.
5567         (write_formal_parameters): Clarify error message.
5568         (check_supported_parameters): New function; checks to see type
5569         signatures of method parameters are supported.
5570         (generate_client_glue): Handle ignore_unsupported flag.
5571         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5572         parameter.
5573
5574         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5575         --ignore-unsupported by default until glib bindings
5576         support arrays.
5577
5578 2005-03-11  Colin Walters  <walters@verbum.org>
5579
5580         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5581         install it.
5582
5583         * bus/print-introspect.c: New file; prints introspection
5584         data for a given name and object path.
5585
5586         * bus/run-with-tmp-session-bus.sh: New file, refactored
5587         from test/glib/run-test.sh.  Creates a temporary session
5588         bus and runs another program.
5589
5590         * test/glib/run-test.sh: Refactor to invoke
5591         run-with-tmp-session-bus.sh.
5592
5593         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5594         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5595         macros instead of hardcoding.
5596
5597         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5598
5599 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5600
5601         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5602         this unref; it doesn't match up evenly in some codepaths.
5603         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5604         this evenly matches with the ref near the top of this function.
5605
5606 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5607
5608         * dbus/dbus-object-tree.c
5609         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5610         and we try to unregister a path that's not registered, still go
5611         through the process of unlocking and don't just return.
5612
5613 2005-03-09  Colin Walters  <walters@verbum.org>
5614
5615         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5616         to this are generated for client-side wrappers.  Invokes a
5617         D-BUS method and returns reply values.  
5618
5619         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5620         function; writes signature string for argument direction.
5621         (write_args_for_direction): Change to pass input values directly
5622         instead of via address, and fix indentation.
5623         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5624         make generated wrappers inlineable.
5625
5626         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5627         note about using dbus_type_is_fixed.
5628
5629         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5630         dbus/dbus-signature.c as dbus_type_is_fixed.
5631
5632         All callers updated.
5633
5634         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5635         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5636
5637         * dbus/dbus-signature.h: Prototype.
5638
5639         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5640         error printf code.
5641
5642         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5643         appropriate instead of just freeing it.
5644         (main): Free returned strings using g_free.
5645
5646         * test/glib/Makefile.am (test-service-glib-glue.h)
5647         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5648
5649         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5650         simply maps a simple D-BUS type to GType.
5651         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5652         GType.
5653         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5654         initialize the value with it.
5655         (dbus_gvalue_binding_type_from_type): Unused, delete.
5656         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5657         various types instead of unmarshalling to value data directly.
5658         Remove can_convert boolean.
5659         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5660         returning directly instead of using can_convert boolean.
5661         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5662         Stores a GValue in a pointer to a value of its corresponding C
5663         type.
5664
5665         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5666         add dbus_gvalue_store.
5667
5668 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5669
5670         Fix a bunch of lifecycle and memory management problems
5671         in the mono bindings.
5672
5673         * mono/Arguments.cs (Arguments): Implement IDisposable
5674
5675         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5676         strictly a static class.
5677
5678         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5679         delegates into this file.
5680         (Connection): Implement IDisposable.
5681         (Dispose): Disconnect the connection and set the raw connection
5682         pointer to IntPtr.Zero.
5683         (~Connection): Call Dispose().
5684         (RegisterObjectPath): Added.  Manages the registration of object
5685         paths so we can cleanly disconnect them at dispose/finalize time.
5686         (UnregisterObjectPath): Ditto.
5687         (set_RawConnection): Unregister all of the object paths when
5688         changing the underlying DBusConnection.  Add them back onto the
5689         new connection, if any.
5690
5691         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5692         more unmanaged resources anymore, so it's not necessary.  Move all
5693         the DBusObjectPathVTable stuff out of here.
5694         (Handler): Save references to our delegates so that they don't get
5695         finalized.  Call Connection.RegisterObjectPath() instead of
5696         dbus_connection_register_object_path() directly.
5697         (Message_Called): Dispose the message after we're finished with
5698         it.
5699
5700         * mono/Message.cs (Message): Implement IDisposable.
5701         (Dispose): Dispose the Arguments, and set the RawMessage to
5702         IntPtr.Zero.
5703         (SendWithReplyAndBlock): We own the ref to the reply that comes
5704         back from dbus_connection_send_with_reply_and_block() so add a
5705         comment about that and unref it after we've constructed a managed
5706         MethodReturn class around it.  Fixes a big, big leak.
5707
5708         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5709         method.
5710         (BuildSignalHandler): After we've sent the Signal message, dispose
5711         of it.
5712         (BuildMethod): Dispose of the method call and reply messages after
5713         we've sent the message and extracted the data we want from the
5714         reply.
5715
5716         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5717         anymore.
5718         (Service_FilterCalled): Dispose of the message after we're
5719         finished with it.
5720
5721 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5722
5723         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5724         After we attach our pending call to the connection, unref
5725         it.  Fixes a leak.
5726  
5727         * mono/Connection.cs (set_RawConnection): Disconnect our
5728         filter and match callbacks from the old connection and
5729         reconnect them to the new connection, if any.
5730
5731         * mono/DBusType/Array.cs: "Code" is a static member, so
5732         don't use "this" to refer to it.  Fix for stricter checking
5733         in Mono 1.1.4.
5734  
5735         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5736         object path that we pass into unmanaged code.
5737  
5738         * mono/DBusType/String.cs (Append): Don't leak the string
5739         that we pass into unmanged code.
5740
5741 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5742         * NEWS: Update for 0.31
5743
5744         * configure.in: Release 0.31
5745         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5746
5747         * qt/Makefile.am: fixed build
5748
5749         * dbus/Makefile.am: soname bump for libdbus
5750
5751         * glib/Makefile.am: soname bump for libdbus-glib
5752
5753 2005-03-05  Havoc Pennington  <hp@redhat.com>
5754
5755         * dbus/dbus-sysdeps.c:
5756         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5757         value
5758         (_dbus_generate_random_bytes_buffer): fix return value
5759
5760         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5761         checks actually work, from Tom Parker <fdo@tevp.net>
5762
5763 2005-03-01  Colin Walters  <walters@verbum.org>
5764
5765         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5766         functions copied from dbus-glib-tool.c.
5767         (main): Convert lots of error code to use them.
5768         Also add some testing for introspection bits.
5769
5770 2005-03-01  Colin Walters  <walters@verbum.org>
5771         
5772         * doc/TODO: Remove introspection signature TODO.
5773
5774 2005-02-27  Colin Walters  <walters@verbum.org>
5775
5776         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5777         Change return value to const char * instead of int so we can do
5778         full signatures.
5779         (struct PropertyInfo, struct ArgInfo): Store char *.
5780         (property_info_new, arg_info_new): Update parameters, strdup.
5781         (property_info_unref, arg_info_unref): Free.
5782
5783         * glib/dbus-gidl.h: Update prototypes.
5784
5785         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5786         (validate_signature): New function, just validates signature and
5787         sets GError.
5788         (parse_property, parse_arg): Invoke validate_signature.  Store
5789         signature instead of just type code.
5790
5791         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5792         function to return a primary type for a signature, dropping
5793         information about types in container types.
5794         (dbus_gvalue_genmarshal_name_from_type)
5795         (dbus_gvalue_binding_type_from_type)
5796         (dbus_gvalue_ctype_from_type): Update to take full signature
5797          instead of type code.
5798         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5799
5800         * glib/dbus-gvalue.h: Update prototypes for above.
5801
5802         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5803         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5804         (introspect_properties, introspect_signals, write_interface):
5805         Update to handle signatures, and remove usage of
5806         _dbus_gutils_type_to_string.
5807         (handle_introspect): Print out type codes instead of e.g. "string"
5808         in hardcoded introspection XML; also use x_AS_STRING constants
5809         instead of hardcoding in string.
5810
5811         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5812         to string.  Remove usage of _dbus_gutils_type_to_string.
5813
5814         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5815
5816         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5817         deletion.
5818         
5819         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5820         (compute_marshaller_name, generate_glue): Handle signature change
5821         to string.
5822         (write_formal_parameters, write_args_for_direction): Ditto, and
5823         remove FIXME.
5824
5825         * tools/dbus-tree-view.c (type_to_string): Delete.
5826         (info_set_func_text): Update to print full signatures.
5827
5828         * test/glib/test-service-glib.xml: Change types to new
5829         introspection format.
5830
5831 2005-02-26  Havoc Pennington  <hp@redhat.com>
5832
5833         * doc/TODO: remove the "guid" item
5834
5835         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5836         (with_bus_thread_func): use open_private
5837
5838         * dbus/dbus-connection.c (dbus_connection_open_private): new
5839         function that works like the old dbus_connection_open()
5840         (dbus_connection_open): now returns an existing connection if
5841         possible
5842
5843         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5844         through the GUID to the transport
5845
5846         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5847         GUID in hex-encoded form.
5848
5849         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5850         pass GUID argument in to the transport
5851
5852         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5853         guid argument
5854
5855         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5856
5857         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5858
5859 2005-02-25  Havoc Pennington  <hp@redhat.com>
5860
5861         * doc/dbus-specification.xml: document the GUID thing
5862
5863         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5864         globally unique ID for the server, and put a "guid=hexencoded"
5865         field in the address
5866
5867         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5868
5869         * dbus/dbus-message.c: ditto
5870
5871         * dbus/dbus-dataslot.c: ditto
5872
5873         * dbus/dbus-list.c: ditto
5874
5875         * dbus/dbus-internals.h: wait, just include
5876         dbus-threads-internal.h here
5877         
5878         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5879         use in main library
5880
5881         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5882
5883 2005-02-24  Colin Walters  <walters@verbum.org>
5884
5885         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5886
5887 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5888
5889         * glib/Makefile.am: added dbus-gobject.h to sources list
5890         so distcheck doesn't fail
5891         
5892 2005-02-24  Havoc Pennington  <hp@redhat.com>
5893
5894         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5895         you must disconnect before unref, since locking and other things
5896         are screwed up otherwise. Fix assorted other locking stuff.
5897
5898         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5899         fix compilation
5900
5901         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5902         into a private header and don't export from the library
5903
5904         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5905
5906 2005-02-24  Colin Walters  <walters@verbum.org>
5907         
5908         * dbus/dbus-signature.c: New file; implements various functions
5909         related to type signatures.  Includes an interator for parsing,
5910         validation functions.
5911         (dbus_type_is_basic): Moved here from
5912         dbus-marshal-basic.c:_dbus_type_is_basic.
5913         (dbus_type_is_container): Moved here from
5914         dbus-marshal-basic.c:_dbus_type_is_container.
5915
5916         All callers of _dbus_type_is_container and _dbus_type_is_basic
5917         updated, and include dbus-signature.h.
5918
5919         * dbus/dbus-signature.h: New file; prototypes for the above.
5920
5921         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5922         dbus-signature.h.
5923
5924         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5925         function factored out of _dbus_first_type_in_signature.
5926         (_dbus_first_type_in_signature_c_str): New function; returns first
5927         type code for a type signature character.
5928
5929         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5930         handle function moves.
5931
5932         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5933
5934         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5935         function; skips to next complete type in type signature.
5936         Implemented using previous skip_one_complete_type.  Now
5937         skip_one_complete_type just delegates to
5938         _dbus_type_signature_next.
5939
5940         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5941         to dbus-signature.c
5942         (_dbus_type_is_container): Ditto.
5943
5944         * doc/dbus-specification.xml: Update introspection sample to
5945         use real type signatures.
5946
5947         * dbus/dbus-test.h: Prototype signature test.
5948
5949         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5950         signature tests.
5951
5952         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5953
5954 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5955
5956         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5957         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5958
5959 2005-02-21  Colin Walters  <walters@verbum.org>
5960
5961         * dbus/dbus-test-main.c (main): Take optional specific test
5962         argument.
5963
5964         * dbus/dbus-test.c (run_test): New function, runs a test function
5965         with no data directory.
5966         (run_data_test): Like above, but takes data directory.
5967         (dbus_internal_do_not_use_run_tests): Take
5968         specific test argument.  Replace lots of cut n' paste code
5969         with run_test and run_data_test.
5970
5971         * dbus/dbus-test.h: Update prototype for
5972         dbus_internal_do_not_use_run_tests.
5973
5974 2005-02-20  Havoc Pennington  <hp@redhat.com>
5975
5976         Fix bugs reported by Daniel P. Berrange
5977         
5978         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5979         (protected_change_watch): new function
5980         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5981         (_dbus_server_add_watch): change to work like the
5982         dbus-connection.c equivalents; like those, probably kind of
5983         busted, but should at least mostly work for now
5984         (dbus_server_disconnect): drop the lock if we were already
5985         disconnected, patch from Daniel P. Berrange
5986
5987         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5988         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5989         same stuff
5990
5991         * doc/TODO: todo about unscrewing this mess
5992
5993 2005-02-19  Colin Walters  <walters@verbum.org>
5994
5995         * glib/dbus-binding-tool-glib.c
5996         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5997
5998         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5999         as errno.h and sys/stat.h.
6000         (lose): New function, prints error with
6001         newline and exits.
6002         (lose_gerror): Similar, but takes GError for message.
6003         (main): Add --output argument to specify output file to write to,
6004         instead of always printing to stdout.  In this mode, determine
6005         timestamps on source files to see whether any are newer than the
6006         target file.  If not, exit.  Also convert a number of error
6007         messages to use lose (since it's shorter), and switch to using
6008         g_io_channel_shutdown.
6009
6010 2005-02-19  Havoc Pennington  <hp@redhat.com>
6011
6012         * glib/dbus-gobject.c
6013         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6014
6015         * glib/dbus-glib.c: fix doxygen warnings
6016
6017         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6018         is found on an <arg>
6019
6020 2005-02-17  Colin Walters  <walters@verbum.org>
6021
6022         * glib/dbus-gobject.h: Don't export
6023         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6024         
6025         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6026         (invoke_object_method): Handle it.
6027
6028         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6029         Handle rename.
6030         
6031 2005-02-17  Colin Walters  <walters@verbum.org>
6032
6033         * bus/.cvsignore, doc/.cvsignore
6034         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6035         Update.
6036
6037 2005-02-17  Colin Walters  <walters@verbum.org>
6038         
6039         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6040         Rename to DBUS_SERVICE_DBUS.
6041         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6042         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6043         Change the value from "org.freedesktop.Local"
6044         to "org.freedesktop.DBus.Local".
6045         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6046         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6047         DBUS_INTERFACE_INTROSPECTABLE.
6048         Change the value from "org.freedesktop.Introspectable"
6049         to "org.freedesktop.DBus.Introspectable".
6050         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6051         DBUS_INTERFACE_PROPERTIES.
6052         Change the value from "org.freedesktop.Properties"
6053         to "org.freedesktop.DBus.Properties".
6054         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6055         DBUS_INTERFACE_PEER.
6056         Change the value from "org.freedesktop.Peer"
6057         to "org.freedesktop.DBus.Peer".
6058         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6059         DBUS_INTERFACE_LOCAL.
6060         Change the value from "org.freedesktop.Local"
6061         to "org.freedesktop.DBus.Local".
6062
6063         All other users of those constants have been changed.
6064
6065         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6066
6067         * glib/dbus-gobject.c (handle_introspect): Use constants.
6068
6069         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6070
6071 2005-02-17  Colin Walters  <walters@verbum.org>
6072
6073         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6074         (parse_node, parse_interface, parse_method, parse_signal)
6075         (parse_property, parse_annotation): Lose if we're currently in an
6076         annotation.
6077         (parse_annotation): New function.
6078         (parser_start_element, parser_end_element): Handle annotation.
6079         (parse_method, parse_interface): Remove support for c_name attribute,
6080         switch to annotations.
6081
6082         * glib/dbus-gidl.h (interface_info_get_binding_names)
6083         (method_info_get_binding_names)
6084         (interface_info_get_binding_name, method_info_get_binding_name)
6085         (interface_info_set_binding_name, method_info_set_binding_name):
6086         Remove.
6087         (interface_info_get_annotations, method_info_get_annotations)
6088         (interface_info_get_annotation, method_info_get_annotation)
6089         (interface_info_add_annotation, method_info_add_annotation):
6090         Prototype.
6091
6092         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6093         for "bindings".
6094         (struct MethodInfo): Ditto.
6095         Straightfoward conversion of binding methods into annotation methods
6096         as prototyped.
6097
6098         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6099
6100         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6101
6102         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6103         Use new annotation API.
6104
6105         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6106         annotation element.
6107         
6108         * doc/dbus-specification.xml: Discuss introspection annotations,
6109         include list of well-known annotations.
6110
6111         * test/glib/test-service-glib.xml: Make validate against new DTD.
6112
6113 2005-02-17  Colin Walters  <walters@verbum.org>
6114
6115         This patch is based on initial work from
6116         Paul Kuliniewicz <kuliniew@purdue.edu>.
6117
6118         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6119         initialization of GValue from dbus type to here.
6120         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6121         for the "glib-genmarshal" program from a DBus type.
6122         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6123         into the C name for it we use in the glib bindings.
6124         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6125         glib C type (not GValue).
6126         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6127
6128         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6129         from dbus-gobject.c.
6130
6131         * glib/dbus-gutils.h: Prototype it.
6132
6133         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6134         (marshal_dbus_message_to_g_marshaller): Use new shared function
6135         dbus_glib_marshal_dbus_message_to_gvalue_array.
6136
6137         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6138         Will be changed once we have annotations.
6139
6140         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6141         GStaticRWLock.  Callers updated.
6142         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6143         (string_table_next): New function for iterating over zero-terminated
6144         string value array.
6145         (string_table_lookup): New function; retrieves specific entry in
6146         array.
6147         (get_method_data): New function; look up method data in object data chunk.
6148         (object_error_domain_prefix_from_object_info)
6149         (object_error_code_from_object_info): New functions, but not implemented yet.
6150         (method_interface_from_object_info): New function; retrieve interface name.
6151         (method_name_from_object_info): New function; retrieve method name.
6152         (method_arg_info_from_object_info): New function; retrieve argument data.
6153         (arg_iterate): New function; iterates over serialized argument data.
6154         (method_dir_signature_from_object_info): New function; returns a
6155         GString holding type signature for arguments for just one
6156         direction (input or output).
6157         (method_input_signature_from_object_info)
6158         (method_output_signature_from_object_info): New functions.
6159         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6160         converts dbus message arguments into a GValue array.  Used for both
6161         signal handling and method invocation.
6162         (struct DBusGlibWriteIterfaceData): New utility structure.
6163         (write_interface): New function; generate introspection XML for
6164         an interface.
6165         (introspect_interfaces): New function; gathers all interface->methods,
6166         generates introspection XML for them.
6167         (handle_introspect): Invoke introspect_interfaces.
6168         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6169         (lookup_object_and_method): New function; examines an incoming message
6170         and attempts to match it up (via interface, method name, and argument
6171         signature) with a known object and method.
6172         (gerror_domaincode_to_dbus_error_name): New function; converts a
6173         GError domain and code into a DBus error name.  Needs GError data
6174         added to object introspection to work well.
6175         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6176         GError.
6177         (invoke_object_method): New function to invoke an object method
6178         looked up via lookup_object_and_method.  Parses the incoming
6179         message, turns it into a GValue array, then invokes the marshaller
6180         specified in the DBusGMethodInfo.  Creates a new message with
6181         either return values or error message as appropriate.
6182         (gobject_message_function): Invoke lookup_object_and_method and
6183         invoke_object_method.
6184
6185         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6186         (enum DBusBindingOutputMode): New enum for binding output modes.
6187         (pretty_print): Print binding names.
6188         (dbus_binding_tool_error_quark): GError bits.
6189         (version): Fix typo.
6190         (main): Create GIOChannel for output.  Parse new --mode argument,
6191         possible values are "pretty-print", "glib-server", "glib-client".
6192         Use mode to invoke appropriate function.
6193         
6194         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6195
6196         * glib/dbus-glib-tool.h: New header, just includes GError bits
6197         for now.
6198
6199         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6200         maps binding style to name.
6201         (struct MethodInfo): Ditto.
6202         (get_hash_keys, get_hash_key): Utility function, returns keys for
6203         a GHashTable.
6204         (interface_info_new, method_info_new): Initialize bindings.
6205         (interface_info_unref, method_info_unref): Destroy bindings.
6206         (method_info_get_binding_names, method_info_get_binding_name)
6207         (interface_info_get_binding_names, interface_info_get_binding_name):
6208         Functions for retrieving binding names.
6209         (method_info_set_binding_name, interface_info_set_binding_name):
6210         Functions for setting binding names.
6211
6212         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6213         for glib binding generation.
6214
6215         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6216         and client-side glib glue generation.
6217
6218         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6219         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6220         dbus-glib-tool.h.
6221
6222         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6223         of using GClosureMarshal directly.
6224         (struct DBusGObjectInfo): Add n_infos member.
6225
6226         * test/glib/test-service-glib.xml: New file; contains introspection data
6227         for MyTestObject used in test-service-glib.c.
6228
6229         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6230         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6231         (my_object_uppercase, my_object_many_args): New test methods.
6232         (main): Use dbus_g_object_class_install_info to include generated object
6233         info.
6234
6235         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6236         as well as client-side bindings.
6237
6238         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6239         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6240         using both the dbus_gproxy stuff directly as well as the generated bindings.
6241
6242 2005-02-15  Havoc Pennington  <hp@redhat.com>
6243
6244         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6245         complete a pending call, don't run filters first.
6246
6247         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6248         dbus_pending_call_steal_reply
6249
6250         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6251         _dbus_connection_block_pending_call
6252         (dbus_pending_call_get_reply): change to steal_reply and return a
6253         ref
6254
6255         * dbus/dbus-connection.c
6256         (dbus_connection_send_with_reply_and_block): port to work in terms
6257         of DBusPendingCall
6258         (_dbus_connection_block_pending_call): replace block_for_reply
6259         with this
6260
6261 2005-02-14  Havoc Pennington  <hp@redhat.com>
6262
6263         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6264         properly handle looking up group information by name; fix 
6265         from j@bootlab.org
6266
6267 2005-02-13  Havoc Pennington  <hp@redhat.com>
6268
6269         * dbus/dbus-connection.c (dbus_connection_return_message) 
6270         (dbus_connection_borrow_message): hold dispatch lock while message
6271         is outstanding
6272         (_dbus_connection_block_for_reply): hold dispatch lock while we
6273         block for the reply, so nobody steals our reply
6274         (dbus_connection_pop_message): hold the dispatch lock while we
6275         pluck the message
6276
6277 2005-02-13  Havoc Pennington  <hp@redhat.com>
6278
6279         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6280         (_dbus_connection_release_dispatch)
6281         (_dbus_connection_acquire_io_path)
6282         (_dbus_connection_release_io_path): make the mutex and condvar
6283         control access to the "acquired" flag. Drop the connection lock
6284         while waiting on the condvar. Hopefully these are baby steps in
6285         roughly the right direction.
6286
6287 2005-02-13  Havoc Pennington  <hp@redhat.com>
6288
6289         * dbus/dbus-connection.c: use separate mutexes for the condition
6290         variables; this is some kind of baseline for sanity, but the
6291         condition variables still aren't used correctly afaict
6292
6293 2005-02-13  Havoc Pennington  <hp@redhat.com>
6294
6295         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6296         fix a double-unlock
6297
6298         * dbus/dbus-connection.c
6299         (_dbus_connection_detach_pending_call_unlocked): add this
6300
6301         Initial semi-correct pass through to fix thread locking; there are
6302         still some issues with the condition variable paths I'm pretty
6303         sure
6304         
6305         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6306         lock/unlock calls
6307
6308         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6309         rename to add _unlocked
6310         (struct DBusConnection): move "dispatch_acquired" and
6311         "io_path_acquired" to use only one bit each.
6312         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6313         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6314         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6315         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6316         (_dbus_connection_remove_timeout) 
6317         (_dbus_connection_toggle_timeout): drop lock when calling out to
6318         user functions; done in a hacky/bad way.
6319         (_dbus_connection_send_and_unlock): add a missing unlock
6320         (_dbus_connection_block_for_reply): add a missing unlock
6321
6322         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6323         drop lock in a hacky probably unsafe way to call out to user
6324         function
6325
6326 2005-02-12  Havoc Pennington  <hp@redhat.com>
6327
6328         * tools/dbus-tree-view.c (info_set_func_text): display more
6329         details on args
6330
6331         * bus/driver.c (bus_driver_handle_list_services): list the bus
6332         driver
6333
6334         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6335
6336         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6337         (method_info_get_n_args): new function
6338
6339 2005-02-12  Havoc Pennington  <hp@redhat.com>
6340
6341         * bus/driver.c (bus_driver_handle_introspect): add introspection
6342         for bus driver
6343
6344 2005-02-12  Havoc Pennington  <hp@redhat.com>
6345
6346         * bus/driver.c: put the signature of each bus driver method in the
6347         table of handlers and check it on incoming calls; this isn't
6348         really useful, but going to add introspect support in a minute.
6349
6350 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6351
6352         * mono/Connection.cs: The unpredictability of finalizers in mono
6353         prevents us from deterministically disconnecting the filters from
6354         the Service class's finalizer, so move tracking of filters and
6355         matches here.  Add API for that.
6356
6357         * mono/Service.cs: Remove the code, add code which calls the
6358         methods now on the Connection class.
6359
6360 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6361
6362         * python/dbus.py (class Sender): added to support dbus signals better
6363         (Bus::add_signal_receiver): added expand_args parameter which defaults
6364         to True.  When expand args is True the signal handler will pass the 
6365         message arguments as parameters to the signal handler.  If False
6366         revert to previous behavior where the signal handler must get the
6367         argument list from the message.  This is to help port applications
6368         like HAL that have a tendancy to send variable length argument lists.
6369         self._match_rule_to_receivers is now a dict of dicts.
6370         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6371         removing it from a list
6372         (Bus::_signal_func): change signal handlers so that interface,
6373         signal_name, service, path and message are packed into a Sender
6374         object and that is passed to the handler.  If expand_args is True
6375         extract the args list from the message and append it to the parameter
6376         list
6377         
6378         * python/dbus_bindings.pyx.in (class Signature): added to support 
6379         signiature types
6380         (MessageIter::__init__): changed iteration limit to match D-BUS
6381         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6382         STRUCT and VARIENT type support
6383         (MessageIter::python_value_to_dbus_sig): made recursive to support
6384         recursive types
6385         (MessageIter::append*): added Signature, dict, tuple 
6386         support
6387
6388         * python/examples/example-client.py: added examples of getting tuples
6389         and dicts
6390
6391         * python/examples/example-service.py: added examples of sending tuples
6392         and dicts
6393
6394         * python/examples/example-signal-recipient.py: Fixed to handle new
6395         signal callback format
6396
6397 2005-02-10  Havoc Pennington  <hp@redhat.com>
6398
6399         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6400         (call dbus_g_proxy_add_signal)
6401
6402         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6403         escape the hostname
6404         (_dbus_server_new_for_domain_socket): escape the path
6405
6406         * dbus/dbus-address.c (dbus_address_escape_value): new
6407         (dbus_address_unescape_value): new
6408         (dbus_parse_address): unescape values
6409
6410         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6411
6412         * doc/dbus-specification.xml: explain how to escape values in
6413         addresses
6414
6415 2005-02-10  Havoc Pennington  <hp@redhat.com>
6416
6417         * dbus/dbus-message-factory.c (generate_special): modify test to
6418         avoid using a non-basic dict key
6419
6420         * dbus/dbus-marshal-validate-util.c: add test for the below
6421
6422         * doc/dbus-specification.xml: require that dict keys are a basic
6423         type
6424
6425         * dbus/dbus-marshal-validate.c
6426         (_dbus_validate_signature_with_reason): require that dict key is a
6427         basic type
6428
6429 2005-02-10  Havoc Pennington  <hp@redhat.com>
6430
6431         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6432         change to be _and_unlock instead of _unlocked
6433
6434         * dbus/dbus-connection.c
6435         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6436         have no_update so we can find this bug quickly in future
6437
6438 2005-02-10  Havoc Pennington  <hp@redhat.com>
6439
6440         * dbus/dbus-message-util.c (verify_test_message): tests for string
6441         array
6442
6443         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6444         support for arrays of string/signature/path
6445
6446 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6447
6448         * dbus/dbus-connection.c
6449         (_dbus_connection_queue_received_message_link,
6450         _dbus_connection_message_sent): Add the path to
6451         the verbose output.
6452         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6453         _dbus_connection_send_preallocated_unlocked(), updated the
6454         dispatch status, and unlocks.  Fixes a bug where certain
6455         situations (like a broken pipe) could cause a Disconnect message
6456         to not be sent, tricking the bus into thinking a service was still
6457         there when the process had quit.
6458         (_dbus_connection_send_preallocated): Call
6459         _dbus_connection_send_preallocated_and_unlock().
6460         (_dbus_connection_send_and_unlock): Added.  Calls
6461         _dbus_connection_send_preallocated_and_unlock().
6462         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6463         (dbus_connection_send_with_reply): Update the dispatch status and
6464         unlock.
6465
6466         * mono/Service.cs (~Service): Added.  Removes the filter so that
6467         we don't get unmanaged code calling back into a GCed delegate.
6468         (RemoveFilter); Added.
6469
6470 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6471
6472         * dbus/dbus-message.c (dbus_message_iter_open_container):
6473         - Removed check for iterator type being an array because
6474         get_arg_type does not work with writer iterators
6475         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6476
6477 2005-02-07  Havoc Pennington  <hp@redhat.com>
6478
6479         * doc/dbus-specification.xml: some more language cleanups; add
6480         stuff about how to deal with invalid protocol and extension
6481         points; add _ to allowed chars in auth commands; add EXTENSION_
6482         auth command prefix
6483
6484 2005-02-06  Havoc Pennington  <hp@redhat.com>
6485
6486         * s/expected/required/ in a couple places for clarity
6487
6488 2005-02-07  Colin Walters  <walters@verbum.org>
6489
6490         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6491         sender or proposed_recipient.
6492
6493 2005-02-06  Havoc Pennington  <hp@redhat.com>
6494
6495         * dbus/dbus-message-factory.c (generate_special): more tests
6496
6497         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6498         array length that exceeds the maximum
6499
6500 2005-02-05  Havoc Pennington  <hp@redhat.com>
6501
6502         * dbus/dbus-message-factory.c (generate_special): more test cases,
6503         increasing coverage
6504
6505         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6506         reason why a signature was invalid
6507
6508         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6509         skip the length of the string before we look at it in validation
6510
6511         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6512         equal_substring
6513
6514         * dbus/dbus-message.c (_dbus_message_loader_new): default
6515         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6516
6517 2005-02-05  Havoc Pennington  <hp@redhat.com>
6518
6519         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6520         if the signature of a variant was empty
6521         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6522         struct with no element type)
6523
6524         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6525         mangled messages to break things
6526
6527 2005-02-04  Havoc Pennington  <hp@redhat.com>
6528
6529         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6530         g_quark_try_string() so it actually can return 0
6531         (dbus_g_proxy_connect_signal): ditto
6532
6533 2005-02-04  Havoc Pennington  <hp@redhat.com>
6534
6535         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6536         bogus warning
6537         (tristring_from_message): assert cleanly on null path/interface
6538         (should not be possible though I decided later)
6539         (dbus_g_proxy_dispose): move proxy manager unregistration here
6540         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6541         g_return_if_fail() checks
6542
6543 2005-02-04  Havoc Pennington  <hp@redhat.com>
6544
6545         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6546
6547         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6548         (with some minor changes)
6549
6550         * doc/dbus-specification.xml: add deprecated attribute to
6551         introspection format
6552
6553 2005-01-31  Havoc Pennington  <hp@redhat.com>
6554
6555         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6556         think it's sort of right
6557
6558 2005-01-30  Havoc Pennington  <hp@redhat.com>
6559
6560         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6561
6562 2005-01-30  Havoc Pennington  <hp@redhat.com>
6563
6564         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6565
6566         * autogen.sh: change to autotools 1.9
6567
6568         * glib/dbus-gproxy.c: completely change how signals work
6569         (dbus_g_proxy_add_signal): new function to specify signature of a
6570         signal
6571         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6572         and g_warning if the incoming message has the wrong signature.
6573
6574 2005-01-30  Havoc Pennington  <hp@redhat.com>
6575
6576         * tools/dbus-names-model.c (have_names_notify): fix this
6577
6578         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6579         up the string array handling a bit 
6580
6581 2005-01-30  Havoc Pennington  <hp@redhat.com>
6582
6583         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6584         (dbus_g_pending_call_cancel): new function
6585
6586         * dbus/dbus-glib.h: move GType decls for connection/message here;
6587         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6588         here, just kind of rationalizing how we handle all that
6589
6590         * tools/dbus-names-model.c: new file for a tree model listing the
6591         services on a bus
6592
6593         * tools/dbus-tree-view.c (model_new): use proper typing on the
6594         model rows
6595
6596 2005-01-30  Havoc Pennington  <hp@redhat.com>
6597
6598         * glib/dbus-gmain.c: add a custom GSource back that just checks
6599         whether the message queue has anything in it; otherwise, there are 
6600         cases where we won't see messages in the queue since there was no 
6601         IO visible to the glib main loop
6602
6603         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6604         increase default message timeout to 25 seconds
6605
6606 2005-01-30  Havoc Pennington  <hp@redhat.com>
6607
6608         * test/glib/test-profile.c (no_bus_stop_server): remove the
6609         warning about the g_warning that I just fixed
6610
6611         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6612         custom source, seems to be a lot easier to understand and work
6613         better.
6614
6615 2005-01-30  Havoc Pennington  <hp@redhat.com>
6616
6617         I think this main loop thing is conceptually broken, but here are 
6618         some band aids. I'll maybe rewrite it in a minute.
6619         
6620         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6621         custom GSource, so don't pass it in; confusing
6622         (gsource_server_finalize, gsource_connection_finalize): add
6623         finalize handlers that remove all the watches.  
6624
6625 2005-01-30  Havoc Pennington  <hp@redhat.com>
6626
6627         * glib/dbus-gobject.c (introspect_properties): fix the XML
6628         generated
6629
6630         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6631         which effectively detects the use of freed messages
6632
6633         * glib/dbus-gobject.c (handle_introspect): modify and return the
6634         reply message instead of the incoming message
6635
6636         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6637         gee, maybe it should SEND THE XML instead of just making a string
6638         and freeing it again ;-)
6639
6640         * tools/dbus-print-message.c (print_message): improve printing of
6641         messages
6642
6643         * configure.in: add debug-glib.service to the output
6644
6645 2005-01-30  Havoc Pennington  <hp@redhat.com>
6646
6647         dbus-viewer introspected and displayed the bus driver
6648         
6649         * dbus/dbus-object-tree.c 
6650         (object_tree_test_iteration): add tests for a handler registered on "/"
6651
6652         * dbus/dbus-object-tree.c
6653         (_dbus_decompose_path): fix to handle path "/" properly
6654         (run_decompose_tests): add tests for path decomposition
6655         
6656         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6657         properly
6658
6659         * glib/dbus-gobject.c (handle_introspect): fix quotes
6660
6661         * test/glib/run-test.sh: support launching the bus, then running
6662         dbus-viewer
6663
6664         * test/glib/test-service-glib.c (main): put in a trivial gobject
6665         subclass and register it on the connection
6666
6667         * bus/driver.c (bus_driver_handle_introspect): implement
6668         introspection of the bus driver service
6669
6670         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6671         identifiers, doctype decl
6672
6673         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6674         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6675         returning the service unchanged.
6676         (bus_driver_handle_message): remove old check for reply_serial in
6677         method calls, now the message type deals with that
6678         (bus_driver_handle_message): handle NULL interface
6679
6680         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6681
6682         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6683         -1 for len
6684
6685         * tools/dbus-viewer.c: add support for introspecting a service on
6686         a bus
6687
6688         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6689         (dbus_g_pending_call_unref): add
6690
6691 2005-01-29  Havoc Pennington  <hp@redhat.com>
6692
6693         * tools/dbus-tree-view.c: add support for displaying properties.
6694         (run dbus-viewer with an introspect xml file as arg, then resize
6695         the window so the tree elements show up, not sure what that is)
6696
6697         * glib/dbus-gobject.c (handle_introspect): return
6698         org.freedesktop.Properties and org.freedesktop.Introspectable
6699         interfaces when we are introspected.
6700
6701         * doc/dbus-specification.xml: allow empty interface name when 
6702         Get/Set a property
6703
6704 2005-01-29  Havoc Pennington  <hp@redhat.com>
6705
6706         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6707         though it uses glib, it could be extended for any binding in
6708         principle
6709
6710         * glib/dbus-gobject.c (gobject_message_function): change to the
6711         new way properties work
6712
6713         * dbus/dbus-protocol.h: add the new interfaces
6714
6715         * doc/dbus-specification.xml: document the introspection format,
6716         Introspectable interface, and add an org.freedesktop.Properties
6717         interface.
6718
6719         * glib/dbus-gparser.c: add support for a <property> element
6720
6721         * glib/dbus-gidl.c: add PropertyInfo
6722
6723         * glib/dbus-gobject.c (handle_introspect): put the outermost
6724         <node> outside the signal and property descriptions.
6725         (introspect_properties): export properties as <property> rather
6726         than as method calls
6727
6728 2005-01-28  Havoc Pennington  <hp@redhat.com>
6729
6730         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6731         related to authentication protocol
6732
6733 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6734
6735         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6736                 - BUS_ACTIVATION -> BUS_STARTER
6737                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6738                 - class MessageIter (__init__): Added recursion checking 
6739                 so we throw a nice error instead of just disconnecting from the
6740                 bus.
6741                 (get): Added arg_type parameter for recursion.
6742                 Removed the nil type
6743                 Added signiture type placeholder (not implemented)
6744                 Added struct type placeholder (not implemented)
6745                 Added varient type placeholder (not implemented)
6746                 Commented out dict type for now     
6747                 (get_element_type): renamed from get_array_type
6748                 (get_*): changed to use the dbus_message_iter_get_basic API
6749                 (get_*_array): removed in favor of recursive get_array method
6750                 (get_array): new recursive method which calls get to marshal
6751                 the elements of the array
6752                 (value_to_dbus_sig): New method returns the corrasponding
6753                 dbus signiture to a python value
6754                 (append): Comment out dict handling for now
6755                 Handle lists with the new recursive API
6756                 Comment out None handling for now
6757                 (append_nil): removed
6758                 (append_*): changed to use dbus_message_iter_append_basic API
6759                 (append_*_array): removed in favor of recursive append_array 
6760                 method
6761                 (__str__): Make it easier to print out recursive iterators
6762                 for debugging
6763                 - class Message (__str__): moved type inspection to the
6764                 MessageIter class' __str__ method
6765                 (get_iter): Added an append parameter wich defaults to False
6766                 If True use the new API's to create an append iterator
6767
6768         * python/dbus.py: Update to use new bindings API
6769                 - TYPE_ACTIVATION -> TYPE_STARTER
6770                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6771                 - class ActivationBus -> class StarterBus
6772                 - class RemoteObject (__call__): get an append iterator
6773                 - (_dispatch_dbus_method_call): get an append iterator
6774                 - class Object (emit_signal): get an append iterator
6775
6776         * python/examples/: Fixed up the examples to work with the new API
6777                 
6778 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6779
6780         * configure.in: Bump version up to 0.30.
6781
6782         * HACKING: Add a release item to bump the version number up after 
6783         a release.
6784
6785 2005-01-28  Havoc Pennington  <hp@redhat.com>
6786
6787         * doc/dbus-specification.xml: update to describe 16-bit types and
6788         dict entries
6789
6790         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6791         assertion
6792
6793         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6794         type
6795
6796         * dbus/dbus-marshal-recursive.c: implement
6797
6798 2005-01-27  Havoc Pennington  <hp@redhat.com>
6799
6800         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6801
6802         * configure.in: find the right type for 16 and 32 bit ints as well
6803         as 64
6804
6805         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6806         the 16-bit types so people don't have to stuff them in 32-bit or
6807         byte arrays.
6808
6809 2005-01-27  Havoc Pennington  <hp@redhat.com>
6810
6811         * dbus/dbus-message.c: byteswap the message if you init an
6812         iterator to read/write from it
6813         
6814         * dbus/dbus-marshal-byteswap.c: new file implementing 
6815         _dbus_marshal_byteswap()
6816
6817         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6818
6819 2005-01-26  Havoc Pennington  <hp@redhat.com>
6820         
6821         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6822         build, apparently - nobody noticed?)
6823         
6824 2005-01-26  Havoc Pennington  <hp@redhat.com>
6825
6826         * dbus/dbus-marshal-recursive.h: remove todo comment
6827
6828 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6829
6830         * Land the mono binding changes to conform to the new APIs.
6831
6832         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6833         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6834
6835         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6836         type code as a string.
6837         (InitAppending): Rename dbus_message_append_iter_init() to
6838         dbus_message_iter_init_append().
6839
6840         * mono/BusDriver.cs: Rename ServiceEventHandler to
6841         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6842         Rename ServiceOwnerChanged to NameOwnerChanged.
6843
6844         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6845         underlying C call.
6846
6847         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6848
6849         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6850         dbus_bus_acquire_service() to dbus_bus_request_name().
6851
6852         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6853         of Type.UnderlyingSystemType to get the correct element type for
6854         the array.
6855         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6856         dbus_message_get_{element|arg}_type() instead of
6857         dbus_message_iter_init_array_iterator().
6858         (Append): Replace dbus_message_iter_append_array() with
6859         dbus_message_iter_open_container() and
6860         dbus_message_iter_close_container().
6861
6862         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6863         types have been removed.
6864         
6865         * mono/DBusType/*.cs: Replace calls of
6866         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6867         but specify the type in the DllImport extern declaration.  Ditto
6868         for dbus_message_iter_append_[type]() ->
6869         dbus_message_iter_append_basic().
6870
6871         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6872         NameOwnerChangedHandler.
6873
6874 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6875
6876         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6877                 - get_base_service -> get_unique_name
6878                 - bus_get_base_service -> bus_get_unique_name
6879                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6880                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6881                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6882                 - bus_activate_service -> bus_start_service_by_name
6883                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6884                 - bus_acquire_service -> bus_request_name
6885                 - dbus_bus_acquire_service -> dbus_bus_request_name
6886                 - bus_service_exists -> bus_name_has_owner
6887                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6888
6889         * python/dbus.py: Rename of methods
6890                 - activate_service -> start_service_by_name
6891                 - bus_acquire_service -> bus_request_name
6892                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6893                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6894
6895         
6896 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6897
6898         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6899         signature for the method that can't be found.
6900
6901         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6902         the message has any arguments, we need to call
6903         _dbus_type_reader_get_current_type(), not
6904         _dbus_type_reader_has_next().
6905
6906 2005-01-24  Havoc Pennington  <hp@redhat.com>
6907
6908         * dbus/dbus-message-factory.c: more testing of message validation
6909
6910         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6911         header
6912
6913 2005-01-23  Havoc Pennington  <hp@redhat.com>
6914
6915         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6916         get this all working, not many tests in the framework yet though
6917
6918 2005-01-22  Havoc Pennington  <hp@redhat.com>
6919
6920         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6921         tutorial, based on work from David Wheeler.
6922
6923 2005-01-21  Havoc Pennington  <hp@redhat.com>
6924
6925         * dbus/dbus-bus.c: add more return_if_fail checks
6926
6927         * dbus/dbus-message.c (load_message): have the "no validation"
6928         mode (have to edit the code to toggle the mode for now though)
6929
6930         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6931         skips all validation; I want to use this at least for benchmark
6932         baseline, I'm not sure if it should be a publicly-available switch.
6933
6934 2005-01-21  Havoc Pennington  <hp@redhat.com>
6935
6936         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6937         toplevel doxygen group as the low-level API stuff
6938
6939         * dbus/dbus.h: note that libdbus is the low-level API
6940
6941 2005-01-20  Havoc Pennington  <hp@redhat.com>
6942
6943         * update-dbus-docs.sh: script to update docs on the web site, only
6944         works for me though. neener.
6945
6946 2005-01-20  Havoc Pennington  <hp@redhat.com>
6947
6948         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6949         code can reveal bugs in it
6950
6951 2005-01-20  Havoc Pennington  <hp@redhat.com>
6952
6953         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6954         select() version, patches from Tor Lillqvist
6955
6956 2005-01-20  Havoc Pennington  <hp@redhat.com>
6957
6958         * doc/dbus-tutorial.xml: replace > with &gt;
6959
6960         * bus/services.c (bus_registry_acquire_service): validate the name
6961         and return a better error if it's no good.
6962
6963         * doc/dbus-specification.xml: note NO_AUTO_START change
6964
6965         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6966         from AUTO_START, we're toggling the default
6967
6968         * bus/dispatch.c: adapt the tests to change of auto-start default
6969
6970 2005-01-18  Havoc Pennington  <hp@redhat.com>
6971
6972         * rename dbus-daemon-1 to dbus-daemon throughout
6973
6974 2005-01-18  Havoc Pennington  <hp@redhat.com>
6975
6976         * Throughout, grand renaming to strip out the use of "service",
6977         just say "name" instead (or "bus name" when ambiguous).  Did not
6978         change the internal code of the message bus itself, only the
6979         programmer-facing API and messages.
6980         
6981         * doc/dbus-specification.xml: further update the message bus section
6982         
6983         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6984         in error case
6985
6986 2005-01-17  Havoc Pennington  <hp@redhat.com>
6987
6988         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6989         ever
6990
6991         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6992         "invalid name character" not only non-ASCII
6993
6994         * doc/dbus-specification.xml: further update spec, message bus 
6995         parts are still out-of-date but the marshaling etc. stuff is now
6996         accurate-ish
6997
6998 2005-01-17  Havoc Pennington  <hp@redhat.com>
6999
7000         * doc/dbus-specification.xml: partially update spec
7001
7002 2005-01-17  Havoc Pennington  <hp@redhat.com>
7003
7004         * Throughout, align variant bodies according to the contained
7005         type, rather than always to 8. Should save a fair bit of space in
7006         message headers.
7007         
7008         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7009         fix handling of case where p == end
7010
7011         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7012
7013 2005-01-17  Havoc Pennington  <hp@redhat.com>
7014
7015         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7016
7017         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7018         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7019         are marshaling/unmarshaling a boolean.
7020
7021 2005-01-16  Havoc Pennington  <hp@redhat.com>
7022
7023         This is about it on what can be disabled/deleted from libdbus
7024         easily, back below 150K anyhow. Deeper cuts are more work than 
7025         just turning the code off as I've done here.
7026         
7027         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7028         signed int convenience funcs
7029
7030         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7031         verbose mode
7032
7033         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7034         things out of libdbus
7035
7036         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7037         
7038         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7039         tests-enabled-only, though it should probably be deleted)
7040
7041         * dbus/dbus-message-util.c: same stuff
7042
7043         * dbus/dbus-auth-util.c: same stuff
7044
7045 2005-01-16  Havoc Pennington  <hp@redhat.com>
7046
7047         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7048
7049         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7050         way for stripping down dbus-userdb.c stuff included in libdbus.
7051         Rename _dbus_parse_uid for consistency.
7052
7053 2005-01-16  Havoc Pennington  <hp@redhat.com>
7054
7055         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7056         name the assertion failed in
7057
7058         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7059         (_dbus_return_val_if_fail): assert that the name of the function
7060         containing the check doesn't start with '_', since we only want to 
7061         use checks on public functions
7062         
7063         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7064         checks to assertions
7065
7066         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7067         change checks to asserts for private function
7068
7069         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7070         to asserts for private function
7071
7072         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7073         broken assertion that was breaking make check
7074         (_dbus_type_reader_array_is_empty): remove this rather than fix
7075         it, was only used in assertions
7076
7077 2005-01-16  Havoc Pennington  <hp@redhat.com>
7078
7079         * test/unused-code-gc.py: hacky script to find code that's used
7080         only by the bus (not libdbus) or used only by tests or not used at
7081         all. It has some false alarms, but looks like we can clean up a
7082         lot of size from libdbus.
7083
7084         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7085         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7086         
7087 2005-01-16  Havoc Pennington  <hp@redhat.com>
7088
7089         * Add and fix docs according to Doxygen warnings throughout
7090         source.
7091         
7092         * dbus/dbus-marshal-recursive.c
7093         (_dbus_type_reader_array_is_empty): change this to just call
7094         array_reader_get_array_len() and make it static
7095
7096         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7097         from get_array_type
7098         (dbus_message_iter_init_append): rename from append_iter_init
7099
7100         * dbus/dbus-marshal-recursive.c
7101         (_dbus_type_reader_get_element_type): rename from
7102         _dbus_type_reader_get_array_type
7103
7104 2005-01-15  Havoc Pennington  <hp@redhat.com>
7105
7106         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7107
7108         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7109         when DBUS_DISABLE_ASSERT
7110         (_dbus_marshal_set_basic): be sure we align for the string length
7111
7112         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7113         this look faster
7114
7115         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7116         inline macro version
7117         (_dbus_string_set_byte): provide inline macro version
7118
7119 2005-01-15  Havoc Pennington  <hp@redhat.com>
7120
7121         * Land the new message args API and type system.
7122
7123         This patch is huge, but the public API change is not 
7124         really large. The set of D-BUS types has changed somewhat, 
7125         and the arg "getters" are more geared toward language bindings;
7126         they don't make a copy, etc.
7127
7128         There are also some known issues. See these emails for details
7129         on this huge patch:
7130         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7131         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7132         
7133         * dbus/dbus-marshal-*: all the new stuff
7134
7135         * dbus/dbus-message.c: basically rewritten
7136
7137         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7138         freed blocks to be all non-nul bytes so using freed memory is less
7139         likely to work right
7140
7141         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7142         DBUS_FAIL_MALLOC=N environment variable, so you can do
7143         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7144         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7145         thorough.
7146
7147         * qt/message.cpp: port to the new message args API
7148         (operator<<): use str.utf8() rather than str.unicode()
7149         (pretty sure this is right from the Qt docs?)
7150
7151         * glib/dbus-gvalue.c: port to the new message args API
7152
7153         * bus/dispatch.c, bus/driver.c: port to the new message args API
7154
7155         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7156         "locked" flag to TRUE and align_offset to 0; I guess we never
7157         looked at these anyhow, but seems cleaner.
7158
7159         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7160         move allocation padding macro to this header; use it to implement
7161         (_DBUS_STRING_STATIC): ability to declare a static string.
7162
7163         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7164         change to return TRUE if the interface is not set.
7165
7166         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7167         to dbus-marshal-validate.[hc]
7168
7169         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7170         dbus-internals.c
7171
7172         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7173         to dbus-marshal-*.[hc]
7174
7175         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7176         function here from dbus-marshal.c
7177
7178 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7179
7180         * NEWS: Update for 0.23.
7181
7182         * configure.in: Release 0.23.
7183
7184 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7185
7186         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7187         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7188         behind.
7189
7190         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7191         uninstall"
7192
7193         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7194         is an enum, get the enum's underlying type.  Another mono
7195         1.1.3 fix.
7196
7197 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7198
7199         Patch from Sjoerd Simons <sjoerd@luon.net>
7200
7201         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7202         DESTDIR.  It breaks stuff.
7203
7204 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7205
7206         Patch from Tambet Ingo <tambet@ximian.com>
7207
7208         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7209         calling type.GetElementType().  The code previously depended on
7210         broken Mono behavior, which was fixed in Mono 1.1.3.
7211
7212         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7213         Activator.CreateInstance() so that the class's constructor is
7214         called with the right parameters.
7215
7216 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7217
7218         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7219
7220         * dbus/dbus-connection.c
7221         (_dbus_connection_queue_received_message_link): Call
7222         _dbus_connection_remove_timeout() instead of the _locked()
7223         variant, since it's always called from
7224         _dbus_connection_handle_watch(), which handles the locking.
7225         Removed the _locked() variant since it's no longer used.
7226
7227 2005-01-03  Havoc Pennington  <hp@redhat.com>
7228
7229         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7230         return
7231         
7232 2004-12-26  Havoc Pennington  <hp@redhat.com>
7233
7234         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7235
7236 2005-01-03  Havoc Pennington  <hp@redhat.com>
7237
7238         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7239         floating point
7240
7241         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7242
7243 2005-01-02  Havoc Pennington  <hp@redhat.com>
7244
7245         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7246
7247 2005-01-01  Havoc Pennington  <hp@redhat.com>
7248
7249         * configure.in: add -Wfloat-equal
7250
7251 2005-01-01  Havoc Pennington  <hp@redhat.com>
7252
7253         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7254         for a variety of reasons '==' doesn't do this.
7255
7256 2004-12-31  Havoc Pennington  <hp@redhat.com>
7257
7258         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7259         I keep wishing I had
7260
7261 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7262
7263         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7264
7265 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7266
7267         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7268         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7269         dbus-protocol.h.  Because they are defines and not enums they are not
7270         autogenerated.
7271
7272 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7273
7274         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7275         dbus_bus_activate_service
7276
7277         * python/dbus.py (Bus.activate_service): activate a service on the
7278         bus.
7279
7280 2004-12-24  Havoc Pennington  <hp@redhat.com>
7281
7282         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7283         file format has also changed and I haven't adapted to that yet
7284         
7285         * Makefile.am: load .gcno files from latest gcc
7286
7287 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7288         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7289
7290         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7291         lowlevel binding
7292
7293         * python/dbus.py (get_unix_user): Added binding to 
7294         call dbus_bindings.bus_get_unix_user
7295
7296         * python/extract.py: Modified the proto_pat regex to
7297         handle unsigned long
7298
7299 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7300
7301         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7302         better POSIX compliance.
7303
7304 2004-12-19  Havoc Pennington  <hp@redhat.com>
7305
7306         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7307         (_dbus_string_insert_8_aligned): new functions
7308
7309         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7310
7311 2004-12-18  Havoc Pennington  <hp@redhat.com>
7312
7313         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7314         macro
7315
7316         * dbus/dbus-message.c: fix a comment, and add a still-unused
7317         not-implemented function
7318
7319         * dbus/dbus-marshal.h: fix comment
7320
7321         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7322
7323 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7324
7325         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7326         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7327         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7328         Type.UnderlyingSystemType to get the actual system type
7329         underneath.  This code previously depended on the broken Mono
7330         behavior, which was fixed in 1.1.3.
7331
7332 2004-11-27  Havoc Pennington  <hp@redhat.com>
7333
7334         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7335         are disabled
7336         (_dbus_string_get_const_data): inline when asserts are disabled
7337
7338         * dbus/dbus-message.c: record the _dbus_current_generation of
7339         creation so we can complain if dbus_shutdown() is used improperly.
7340         Do this only if checks are enabled.
7341
7342         * dbus/dbus-connection.c: ditto
7343         
7344 2004-11-26  Havoc Pennington  <hp@redhat.com>
7345
7346         * test/glib/test-profile.c: add with_bus mode to profile echoes
7347         that go through the bus.
7348
7349         * test/glib/run-test.sh: add ability to run test-profile
7350
7351         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7352         config file reload.
7353
7354 2004-11-26  Havoc Pennington  <hp@redhat.com>
7355
7356         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7357         thing was implemented
7358
7359 2004-11-26  Havoc Pennington  <hp@redhat.com>
7360
7361         * test/glib/test-profile.c: tweak a bit, add support for some
7362         made-up minimal malloc overhead with plain sockets, since in 
7363         real life some sort of buffers are unavoidable thus we could 
7364         count them in the theoretical best case
7365
7366 2004-11-26  Havoc Pennington  <hp@redhat.com>
7367
7368         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7369         where I was trying to cache one too many messages
7370
7371 2004-11-26  Havoc Pennington  <hp@redhat.com>
7372
7373         * dbus/dbus-message.c: reimplement message cache as an array which 
7374         makes the cache about twice as fast and saves maybe 1.5% overall
7375
7376 2004-11-26  Havoc Pennington  <hp@redhat.com>
7377
7378         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7379         message cache lock here
7380
7381 2004-11-26  Havoc Pennington  <hp@redhat.com>
7382
7383         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7384         the "char byte_order" next to each other to save 4 bytes
7385         (dbus_message_new_empty_header): reduce preallocation, since the
7386         message cache should achieve a similar effect
7387         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7388         message cache that keeps a few DBusMessage around in a pool,
7389         another 8% speedup or so.
7390
7391         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7392
7393 2004-11-25  Havoc Pennington  <hp@redhat.com>
7394
7395         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7396         to write, without reading or blocking, try it before the poll()
7397         and skip the poll() if nothing remains to write. This is about a
7398         3% speedup in the echo client/server
7399
7400 2004-11-25  Havoc Pennington  <hp@redhat.com>
7401
7402         The primary change here is to always write() once before adding
7403         the write watch, which gives us about a 10% performance increase.
7404         
7405         * dbus/dbus-transport-unix.c: a number of modifications to cope
7406         with removing messages_pending
7407         (check_write_watch): properly handle
7408         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7409         messages_pending stuff
7410         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7411         AUTHENTICATED cases
7412         (unix_handle_watch): after writing, see if the write watch can be
7413         removed
7414         (unix_do_iteration): assert that write_watch/read_watch are
7415         non-NULL rather than testing that they aren't, since they 
7416         aren't allowed to be NULL. check_write_watch() at the end so 
7417         we add the watch if we did not finish writing (e.g. got EAGAIN)
7418
7419         * dbus/dbus-transport-protected.h: remove messages_pending call,
7420         since it resulted in too much inefficient watch adding/removing; 
7421         instead we now require that the transport user does an iteration 
7422         after queueing outgoing messages, and after trying the first
7423         write() we add a write watch if we got EAGAIN or exceeded our 
7424         max bytes to write per iteration setting
7425
7426         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7427         function
7428
7429         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7430         freed and then accessed, valgrind flagged this bug, fix it
7431
7432         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7433         as the last valid field plus 1, where really it is equal to the
7434         last valid field. Corrects some message corruption issues.
7435
7436         * dbus/dbus-mainloop.c: verbosity changes
7437
7438         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7439         instead of aborting in one of the test codepaths
7440
7441         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7442         caused not printing the pid ever again if a verbose was missing
7443         the newline at the end
7444         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7445
7446         * dbus/dbus-connection.c: verbosity changes; 
7447         (dbus_connection_has_messages_to_send): new function
7448         (_dbus_connection_message_sent): no longer call transport->messages_pending
7449         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7450         try to write() immediately, so we can avoid the write watch. This
7451         is the core purpose of this patchset
7452         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7453         dump the outgoing message queue, so nobody will get confused
7454         trying to send them or thinking stuff is pending to be sent
7455
7456         * bus/test.c: verbosity changes
7457
7458         * bus/driver.c: verbosity/assertion changes
7459
7460         * bus/dispatch.c: a bunch of little tweaks to get it working again
7461         because this patchset changes when/where you need to block.
7462
7463 2004-11-23  Havoc Pennington  <hp@redhat.com>
7464
7465         * test/glib/test-profile.c: modify to accept a plain_sockets
7466         argument in which case it will bench plain sockets instead of
7467         libdbus, for comparison purposes.
7468
7469 2004-11-22  Havoc Pennington  <hp@redhat.com>
7470
7471         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7472         threads for more time, so sysprof can get a grip on it.
7473
7474         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7475         pointless variable
7476
7477 2004-11-13  Havoc Pennington  <hp@redhat.com>
7478
7479         * test/glib/test-profile.c: fix this thing up a bit
7480
7481         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7482         preallocation sizes by a fair bit; not sure if this will be an
7483         overall performance win or not, but it does reduce reallocs.
7484
7485         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7486         the test hack that forced constant realloc if asserts are
7487         disabled, so we can profile sanely. Sprinkle in some
7488         _DBUS_UNLIKELY() which are probably pointless, but before I
7489         noticed the real performance problem I put them in.
7490         (_dbus_string_validate_utf8): micro-optimize this thing a little
7491         bit, though callgrind says it didn't help; then special-case
7492         ascii, which did help a lot; then be sure we detect nul bytes as
7493         invalid, which is a bugfix.
7494         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7495         superstition; use memset to nul the padding instead of a manual
7496         loop.
7497         (_dbus_string_get_length): inline this as a
7498         macro; it showed up in the profile because it's used for loop
7499         tests and so forth
7500
7501 2004-11-10  Colin Walters  <walters@verbum.org>
7502
7503         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7504         for extra paranoia.
7505
7506 2004-11-09  Colin Walters  <walters@verbum.org>
7507
7508         * dbus/dbus-string.c (_dbus_string_get_length): New
7509         function, writes DBusString to C buffer.
7510
7511         * dbus/dbus-string.h: Prototype it.
7512
7513         * dbus/dbus-message.c (dbus_message_type_to_string): New
7514         function, converts message type into C string.
7515
7516         * dbus/dbus-message.h: Prototype it.
7517
7518         * bus/selinux.c (bus_selinux_check): Take source pid,
7519         target pid, and audit data.  Pass audit data to
7520         avc_has_perm.
7521         (log_audit_callback): New function, appends extra
7522         audit information.
7523         (bus_selinux_allows_acquire_service): Also take
7524         service name, add it to audit data.
7525         (bus_selinux_allows_send): Also take message
7526         type, interface, method member, error name,
7527         and destination, and add them to audit data.
7528         (log_cb): Initialize func_audit.
7529         
7530         * bus/selinux.h (bus_selinux_allows_acquire_service)
7531         (bus_selinux_allows_send): Update prototypes 
7532
7533         * bus/services.c (bus_registry_acquire_service): Pass
7534         service name to bus_selinux_allows_acquire_service.
7535
7536         * bus/bus.c (bus_context_check_security_policy): Pass
7537         additional audit data.  Move assignment of dest
7538         to its own line.
7539
7540 2004-11-07  Colin Walters  <walters@verbum.org>
7541
7542         * dbus/dbus-transport-unix.c (do_authentication): Always
7543         initialize auth_completed.
7544         
7545 2004-11-07  Colin Walters  <walters@verbum.org>
7546
7547         * bus/bus.c (load_config): Break into three
7548         separate functions: process_config_first_time_only,
7549         process_config_every_time, and process_config_postinit.
7550         (process_config_every_time): Move call of
7551         bus_registry_set_service_context_table into
7552         process_config_postinit.
7553         (process_config_postinit): New function, does
7554         any processing that needs to happen late
7555         in initialization (and also on reload).
7556         (bus_context_new): Instead of calling load_config,
7557         open config parser here and call process_config_first_time_only
7558         and process_config_every_time directly.  Later, after
7559         we have forked but before changing UID,
7560         invoke bus_selinux_full_init, and then call
7561         process_config_postinit.
7562         (bus_context_reload_config): As in bus_context_new,
7563         load parse file inside here, and call process_config_every_time
7564         and process_config_postinit.
7565
7566         * bus/services.h, bus/services.c
7567         (bus_registry_set_service_context_table): Rename
7568         from bus_registry_set_sid_table.  Take string hash from config
7569         parser, and convert them here into SIDs.
7570
7571         * bus/config-parser.c (struct BusConfigParser): Have
7572         config parser only store a mapping of service->context
7573         string.
7574         (merge_service_context_hash): New function.
7575         (merge_included): Merge context string hashes instead
7576         of using bus_selinux_id_table_union.
7577         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7578         simply create a new string hash.
7579         (bus_config_parser_unref): Unref it.
7580         (start_selinux_child): Simply insert strings into hash,
7581         don't call bus_selinux_id_table_copy_over.
7582
7583         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7584         (bus_selinux_id_table_copy_over): Delete.
7585
7586 2004-11-03  Colin Walters  <walters@verbum.org>
7587
7588         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7589         variables.
7590         
7591 2004-11-03  Colin Walters  <walters@verbum.org>
7592
7593         * bus/test-main.c (test_pre_hook): Fix test logic,
7594         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7595
7596 2004-11-02  Colin Walters  <walters@redhat.com>
7597
7598         * bus/selinux.c (bus_selinux_init): Split into two functions,
7599         bus_selinux_pre_init and bus_selinux_post_init.
7600         (bus_selinux_pre_init): Just determine whether SELinux is
7601         enabled.
7602         (bus_selinux_post_init): Do everything else.
7603
7604         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7605         config file, and bus_selinux_post_init after.  This ensures that
7606         we don't lose the policyreload notification thread that
7607         bus_selinux_init created before forking previously.
7608         
7609         * bus/test-main.c (test_pre_hook): Update for split.
7610
7611 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7612
7613         Patch from Johan Fischer <linux@fischaz.com>
7614         
7615         * mono/doc/Makefile.am (install-data-local): Added directory
7616         install for DESTDIR
7617
7618 2004-10-29  Colin Walters  <walters@redhat.com>
7619
7620         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7621         parameter for fd to write pid to.       
7622
7623         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7624         
7625         * bus/bus.c (bus_context_new): Pass print_pid_fd
7626         to _dbus_become_daemon (bug #1720)
7627
7628 2004-10-29  Colin Walters  <walters@redhat.com>
7629
7630         Patch from Ed Catmur <ed@catmur.co.uk>
7631
7632         * mono/doc/Makefile.am (install-data-local): Handle
7633         DESTDIR.
7634
7635 2004-10-29  Colin Walters  <walters@redhat.com>
7636
7637         * bus/.cvsignore, qt/.cvsignore: Update.
7638
7639 2004-10-29  Colin Walters  <walters@redhat.com>
7640
7641         Patch from Kristof Vansant <de_lupus@pandora.be>
7642
7643         * configure.in: Detect Slackware.
7644         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7645         * bus/rc.messagebus.in: New file.
7646
7647 2004-10-29  Colin Walters  <walters@redhat.com>
7648
7649         * tools/dbus-monitor.c (filter_func): Return
7650         DBUS_HANDLER_RESULT_HANDLED in filter function
7651         for now.  See:
7652         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7653
7654 2004-10-29  Colin Walters  <walters@redhat.com>
7655
7656         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7657
7658         * bus/services.c (bus_registry_acquire_service): 
7659         Correctly retrieve service name from DBusString
7660         for printing.
7661
7662 2004-10-29  Colin Walters  <walters@redhat.com>
7663
7664         * dbus/dbus-glib.h: Update documentation to not
7665         refer to internal APIs.
7666
7667 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7668
7669         * mono/Arguments.cs (GetDBusTypeConstructor):
7670         type.UnderlyingSystemType will return "System.Byte" if you do it
7671         on "byte[]", which is not what we want.  So check the type.IsArray
7672         property and use System.Array instead.
7673
7674 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7675
7676         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7677         the DBusUserInfo structure since this is passed into the function.
7678         This would cause a double free when the function that allocated
7679         the structure would try to free it when an error occured.
7680
7681         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7682         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7683         for service activation to avoid 32bit/64bit parallel install issues
7684
7685 2004-10-21  Colin Walters  <walters@verbum.org>
7686
7687         * AUTHORS: Fix my email address, the @gnu.org one
7688         has been bouncing for some time.  Also add J5.
7689         
7690 2004-10-21  Colin Walters  <walters@verbum.org>
7691
7692         * dbus/dbus-transport-unix.c (do_authentication): Return
7693         authentication status to callers.
7694         (unix_handle_watch): If we completed authentication this round,
7695         don't do another read.  Instead wait until the next iteration,
7696         after we've read any pending data in the auth buffer.
7697         (unix_do_iteration): Ditto.
7698         (unix_handle_watch): Updated for new do_authentication prototype.
7699
7700 2004-10-18  Colin Walters  <walters@verbum.org>
7701
7702         * bus/selinux.c (bus_selinux_enabled): Handle
7703         --disable-selinux case.
7704         
7705 2004-10-18  Colin Walters  <walters@verbum.org>
7706
7707         * bus/selinux.h: Add bus_selinux_enabled.
7708         
7709         * bus/selinux.c (bus_selinux_enabled): Implement it.
7710         
7711         * bus/config-parser.c (struct include): Add
7712         if_selinux_enabled member.
7713         (start_busconfig_child): Parse if_selinux_enabled
7714         attribute for include.
7715         (bus_config_parser_content): Handle it.
7716
7717         * bus/session.conf.in, bus/system.conf.in: Add
7718         inclusion of context mapping to default config files;
7719         conditional on SELinux being enabled.
7720         
7721         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7722         
7723         * test/data/invalid-config-files/badselinux-1.conf, 
7724         test/data/invalid-config-files/badselinux-2.conf:
7725         Test files for bad syntax.
7726         
7727 2004-10-17  Colin Walters  <walters@verbum.org>
7728
7729         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7730         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7731         format specifier mismatches.
7732
7733 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7734
7735         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7736         format string.
7737
7738         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7739         pointer (bug #1540, Leonardo Boiko).
7740
7741 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7742
7743         * mono/BusDriver.cs: Changed BusDriver struct to remove
7744         the ServiceCreated and ServiceDeleted events and replace them
7745         with the new ServiceOwnerChanged event.
7746
7747         * mono/example/BusListener.cs: Added a new example program,
7748         which listens for and reports any ServiceOwnerChanged events
7749         on the bus driver.
7750
7751         * mono/example/Makefile.am (DESTDIR): Build changes for the
7752         new BusListener.cs example.
7753
7754 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7755
7756         * bus/signals.c (bus_match_rule_parse): validate the components of
7757         match rules (bug #1439).
7758
7759         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7760
7761 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7762
7763         * doc/dbus-specification.xml: document ServiceOwnerChanged
7764         signal.
7765         
7766         * bus/driver.c, bus/driver.h, bus/services.c: Use
7767         ServiceOwnerChanged signal instead of ServiceCreated and
7768         ServiceDeleted.
7769         
7770         * bus/dispatch.c: update testcase for the new signal.
7771
7772 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7773
7774         Patch from Nat Friedman <nat@novell.com>
7775
7776         * mono/Makefile.am: A number of small build fixes to allow "make
7777         distcheck" to succeed.
7778
7779         * mono/example/Makefile.am: "make distcheck" fixes.
7780
7781         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7782         key in @srcdir@.
7783
7784         * test/Makefile.am: "make distcheck" fixes.
7785
7786 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7787
7788         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7789
7790         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7791
7792         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7793         messages after the first one (bug #1389).
7794         
7795         * bus/dispatch.c (check_double_hello_message): add a test case for
7796         the double hello message bug.
7797         (check_existent_service_activation): fix check of spawning error.
7798         
7799 2004-09-16  David Zeuthen  <david@fubar.dk>
7800
7801         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7802
7803 2004-09-12  David Zeuthen  <david@fubar.dk>
7804
7805         Patch from Kay Sievers <kay.sievers@vrfy.org>
7806
7807         * bus/bus.c (bus_context_new):
7808         * bus/bus.h:
7809         * bus/main.c (usage)
7810         (main):
7811         Add commandline option --nofork to override configuration file
7812         setting.
7813
7814 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7815
7816         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7817         compilers don't like it (bug #974).
7818
7819 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7820
7821         * qt/connection.*: Applied patch by Jérôme Lodewyck
7822         <lodewyck@clipper.ens.fr> to integrate an existing
7823         connection into the Qt eventloop
7824
7825 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7826
7827         * mono/BusDriver.cs: Added.  This is a class for interacting with
7828         the org.freedesktop.DBus service.
7829
7830         * mono/Message.cs: Added a mechanism to expose the message that is
7831         currently being dispatched via the static Message.Current
7832         property.  Added Message.Sender and Message.Destination
7833         properties.
7834
7835         * mono/Handler.cs: Expose the dispatched message via
7836         Message.Current when handling method calls.
7837
7838         * mono/Service.cs: Expose the dispatched message via
7839         Message.Current when handling signal emissions.
7840         
7841         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7842         Connection.BaseService property.
7843
7844 2004-08-28  Havoc Pennington  <hp@redhat.com>
7845
7846         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7847
7848         More fixes from Steve Grubb
7849         
7850         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7851         (_dbus_listen_tcp_socket): fix fd leak
7852
7853         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7854         EINTR to a bit lower in the code
7855
7856 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7857
7858         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7859         TRUE if we are inquiring about the existence of the built-in
7860         org.freedesktop.DBus service.
7861
7862 2004-08-25  John Palmieri  <johnp@redhat.com>
7863         * bus/config-parser.c:
7864         (struct PolicyType): Add POLICY_CONSOLE
7865         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7866         (start_busconfig_child): Sets up console element when
7867         <policy at_console=""> is encountered in a policy file
7868         (append_rule_from_element): Convert console elements to console
7869         rules.
7870
7871         * bus/policy.c: 
7872         (bus_policy_create_client_policy): Add console rules to the client
7873         policy based on if the client is at the console
7874         (bus_policy_append_console_rule): New function for adding a
7875         console rule to a policy
7876         (bus_policy_merge): Handle console rule merging
7877
7878         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7879         where we check for console user files
7880         
7881         * dbus/dbus-sysdeps.c:
7882         (_dbus_file_exists): New function which checks if the given
7883         file exists
7884         (_dbus_user_at_console): New function which does the system
7885         specific process of checking if the user is at the console
7886
7887         * dbus/dbus-userdb.c:
7888         (_dbus_is_console_user): New function converts a UID to user name
7889         and then calls the system specific _dbus_user_at_console to 
7890         see if the user is at the console and therefor a console user
7891
7892 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7893
7894         * bus/config-parser.c (set_limit):
7895         * bus/dbus-daemon-1.1.in:
7896         * test/data/valid-config-files/many-rules.conf: set the
7897         max_match_rules_per_connection limt from the config file. 
7898
7899         * doc/busconfig.dtd: update the DTD.
7900
7901         * bus/driver.c: remove some unused variables.
7902
7903 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7904
7905         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7906         it's been replaced by dbus_g_bus_get
7907
7908 2004-08-23  Colin Walters  <walters@redhat.com>
7909
7910         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7911
7912         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7913
7914         * bus/selinux.c: Create a thread for policy reload notification.
7915         (bus_selinux_get_policy_root): Implement.
7916
7917         * bus/config-parser.c (start_busconfig_child)
7918         (bus_config_parser_content): Support SELinux-root relative
7919         inclusion.
7920
7921         * configure.in <HAVE_SELINUX>: Add -lpthread.
7922         
7923         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7924         (test_post_hook): Move memory checking into here.
7925         (test_pre_hook, test_post_hook): Move SELinux checks in
7926         here, but conditional on a DBUS_TEST_SELINUX environment
7927         variable.  Unfortunately we can't run the SELinux checks
7928         as a normal user, since they won't have any permissions
7929         for /selinux.  So this will have to be tested manually
7930         for now, until we have virtualization for most of
7931         libselinux.
7932         
7933 2004-08-23  Havoc Pennington  <hp@redhat.com>
7934
7935         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7936         drop supplementary groups, suggested by Steve Grubb
7937
7938 2004-08-20  Colin Walters  <walters@redhat.com>
7939
7940         * bus/config-parser.c (start_busconfig_child): Remove some unused
7941         variables.
7942         
7943         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7944         warning.
7945
7946 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7947
7948         * configure.in: If --enable-mono is passed in, if we can't find
7949         mono error out.
7950
7951         * mono/Makefile.am: Use /gacutil to install assemblies into the
7952         GAC and not /root.
7953
7954 2004-08-12  Havoc Pennington  <hp@redhat.com>
7955
7956         * NEWS: update for 0.22
7957
7958         * configure.in: release 0.22
7959
7960 2004-08-11  Colin Walters  <walters@redhat.com>
7961
7962         * tools/dbus-send.c (main, usage): Add --reply-timeout
7963         argument.
7964
7965 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7966
7967         * bus/bus.c (process_config_first_time_only): get rid of an unused
7968         DBusError that was causing a memoy leak (bug #989).
7969
7970         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7971         fix compilation on Solaris/Forte C (bug #974)
7972
7973         * bus/main.c (main): plug two minuscule memleaks.
7974
7975 2004-08-10  Havoc Pennington  <hp@redhat.com>
7976
7977         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7978
7979 2004-08-09  Havoc Pennington  <hp@redhat.com>
7980
7981         * COPYING: switch to Academic Free License version 2.1 instead of
7982         2.0, to resolve complaints about patent termination clause.
7983
7984 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7985
7986         * README: added documentation for the --enable-python 
7987         configure switch.
7988
7989 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7990
7991         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7992         _unref in the SELinux support.
7993
7994         * doc/busconfig.dtd: update DTD for SELinux support.
7995
7996         * bus/config-loader-libxml.c: fix error handler and parser
7997         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7998
7999         * configure.in: remove the warning about libxml2.
8000
8001         * dbus/dbus-bus.c: silence doxygen warning.
8002
8003 2004-07-31  Colin Walters  <walters@redhat.com>
8004
8005         * configure.in: Move #error in SELinux check to its own line.
8006
8007 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8008
8009         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8010         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8011         dbus_error_set.
8012
8013         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8014         broken by the change in the _SET_OOM macros.
8015
8016 2004-07-31  Colin Walters  <walters@redhat.com>
8017
8018         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8019         BUS_SET_OOM.
8020
8021 2004-07-31  Colin Walters  <walters@redhat.com>
8022
8023         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8024         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8025         AC_MSG_CHECKING.
8026
8027 2004-07-24  Havoc Pennington  <hp@redhat.com>
8028
8029         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8030
8031         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8032         functionality
8033
8034         * configure.in: add --enable-selinux
8035         
8036         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8037
8038         * bus/main.c (main): initialize and shut down selinux
8039
8040         * bus/connection.c: store SELinux ID on each connection, to avoid 
8041         repeated getting of the string context and converting it into 
8042         an ID
8043
8044         * bus/bus.c (bus_context_get_policy): new accessor, though it
8045         isn't used
8046         (bus_context_check_security_policy): check whether the security
8047         context of sender connection can send to the security context of
8048         recipient connection
8049
8050         * bus/config-parser.c: add parsing for <selinux> and <associate>
8051         
8052         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8053         implement dbus_connection_get_unix_fd()
8054
8055         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8056         function, used by the selinux stuff
8057         
8058 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8059
8060         * bus/config-loader-libxml.c: complete the implementation of
8061         libxml backend for config file loader. Doesn't work with full OOM
8062         test yet. 
8063         
8064         * configure.in: change error when selecting libxml into a warning.
8065         
8066         * test/data/invalid-config-files: add two non-well-formed XML
8067         files. 
8068         
8069         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8070         
8071         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8072         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8073         be necessary to read all the buffer. (bug #894)
8074
8075         * bus/activation.c (bus_activation_activate_service): fix a
8076         potential assertion failure (bug #896). Small optimization in the
8077         case of auto-activation messages.
8078
8079         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8080         add test case for byte-through-vararg bug (#901). patch by Kimmo
8081         Hämäläinen. 
8082
8083 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8084
8085         * python/dbus.py:
8086         * python/dbus_bindings.pyx.in:
8087         Add dbus.init_gthreads (), allow emit_signal to pass
8088         arguments to the signal.
8089         
8090 2004-07-24  Havoc Pennington  <hp@redhat.com>
8091
8092         * AUTHORS: add some people, not really comprehensively, let me
8093         know if I missed you
8094
8095 2004-07-24  Havoc Pennington  <hp@redhat.com>
8096
8097         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8098         Owen
8099
8100         * test/Makefile.am (DIST_SUBDIRS): here also
8101
8102 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8103
8104         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8105         breaking build on Solaris, reported by Farhad Saberi on the ML.
8106
8107         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8108         va_arg invocation to account for integer promotion in the case of
8109         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8110
8111         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8112         _dbus_list_get_first_link, not _dbus_list_get_first.
8113
8114         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8115
8116         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8117         handler functions so that the asserts in _dbus_object_subtree_unref
8118         do not fail.
8119
8120         * dbus/dbus-transport-unix.c (do_reading):
8121         _dbus_transport_queue_messages return value is of type
8122         dbus_bool_t, not DBusDispatchStatus.
8123         
8124 2004-07-19  David Zeuthen  <david@fubar.dk>
8125
8126         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8127
8128         * bus/dispatch.c:
8129         (check_get_connection_unix_user): Debug says GetProperty; but the
8130         method is called GetConnectionUnixUser
8131         (check_get_connection_unix_process_id): New function
8132         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8133         also call check_get_connection_unix_process_id()
8134         
8135         * bus/driver.c:
8136         (bus_driver_handle_get_connection_unix_process_id): New function,
8137         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8138         interface
8139         
8140         * dbus/dbus-auth.c:
8141         (handle_server_data_external_mech): Set pid from the credentials
8142         obtained from the socket
8143         
8144         * dbus/dbus-connection.c:
8145         (dbus_connection_get_unix_process_id): New function
8146         
8147         * dbus/dbus-connection.h: 
8148         Add prototype for dbus_connection_get_unix_process_id
8149         
8150         * dbus/dbus-transport.c:
8151         (_dbus_transport_get_unix_process_id): New function
8152         
8153         * dbus/dbus-transport.h:
8154         Add prototype for _dbus_transport_get_unix_process_id
8155         
8156 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8157
8158         * dbus/dbus-message.c: Message counter fix, patch by Christian
8159         Hammond <chipx86@gnupdate.org>
8160
8161 2004-07-18  Seth Nickell  <seth@gnome.org>
8162
8163         * python/dbus.py:
8164         * python/dbus_bindings.pyx.in:
8165         * python/tests/test-client.py:
8166
8167         Add dbus.ByteArray and dbus_bindings.ByteArray
8168         types so that byte streams can be passed back.
8169
8170         Give jdahlin the heaps of credit that are so
8171         rightfully his.
8172         
8173 2004-07-12  Seth Nickell  <seth@gnome.org>
8174
8175         * python/dbus.py:
8176
8177         Add message argument to the default object_method_handler
8178         function.
8179         
8180         * python/dbus_bindings.pyx.in:
8181
8182         Automatically return NIL when passed an empty list
8183         (we can't pass back a list since lists are typed
8184         and we don't have any idea what type the the client
8185         intended the list to be... :-( )
8186         
8187 2004-07-10  Seth Nickell  <seth@gnome.org>
8188
8189         * python/examples/Makefile.am:
8190
8191         Fix distcheck breakage caused by new examples.
8192
8193 2004-07-10  Seth Nickell  <seth@gnome.org>
8194
8195         * python/dbus.py:
8196
8197         Add "message" argument to service-side dbus.Object
8198         methods. This will break existing services written
8199         using the python bindings, but will allow extraction
8200         of all the message information (e.g. who its from).
8201
8202         Add improved "object oriented" signal handling/emission.
8203         
8204         * python/examples/example-service.py:
8205
8206         Nix this example.
8207         
8208         * python/examples/example-signal-emitter.py:
8209         * python/examples/example-signal-recipient.py:
8210
8211         Two new examples that show how to emit and receive
8212         signals using the new APIs.
8213         
8214         * python/examples/example-signals.py:
8215         * python/examples/gconf-proxy-service.py:
8216         * python/examples/gconf-proxy-service2.py:
8217
8218         Add "message" argument to service methods.
8219
8220 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8221
8222         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8223         * dbus/bus.c (dbus_bus_get_unix_user)
8224         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8225         method of org.freedesktop.DBus interface.
8226
8227         * bus/dispatch.c: test case
8228
8229 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8230
8231         * python/Makefile.am: switched include directory from glib/ to dbus/
8232         since dbus-glib.h moved
8233  
8234 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8235
8236         * configure.in: prevent building the gcj stuff and libxml loader
8237         since they are broken.
8238
8239 2004-06-20  Havoc Pennington  <hp@redhat.com>
8240
8241         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8242         codes from the dbus error names
8243         
8244         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8245         as dbus/dbus-glib.h and that breakage is now visible due to 
8246         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8247         
8248         * glib/dbus-glib.h: s/gproxy/g_proxy/
8249
8250         * dbus/dbus-shared.h: new header to hold stuff shared with
8251         binding APIs
8252         
8253         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8254         than dbus-errors.h
8255
8256         * glib/dbus-glib.h (dbus_set_g_error): move to
8257         dbus-glib-lowlevel.h
8258
8259         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8260         of stuff to enable this
8261
8262         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8263
8264         * a bunch of other changes with the same basic "separate glib 
8265         bindings from dbus.h" theme
8266         
8267 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8268
8269         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8270
8271         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8272
8273 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8274
8275         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8276         the reply value of the ServiceExists message.
8277
8278 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8279
8280         * python/dbus_bindings.pyx.in: No longer need to parse path
8281         elements and pass them as arrays of strings.  The C API now
8282         accepts plain path strings.
8283         (_build_parsed_path): removed 
8284
8285 2004-06-07  Havoc Pennington  <hp@redhat.com>
8286
8287         * doc/TODO: remove auto-activation item since it's done; sort
8288         items by importance/milestone
8289
8290 2004-06-07  Havoc Pennington  <hp@redhat.com>
8291
8292         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8293         random signature when using REQUIRED_FIELDS (this hack won't work
8294         in the long term)
8295
8296         * dbus/dbus-message.c: change the signature to be a header field,
8297         instead of message->signature special-case string. Incremental
8298         step forward. Then we can fix up code to send the signature in the
8299         message, then fix up code to validate said signature, then fix up
8300         code to not put the typecodes inline, etc.
8301         (load_one_message): don't make up the signature after the fact
8302         (decode_header_data): require signature field for the known
8303         message types
8304
8305         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8306
8307         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8308
8309 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8310
8311         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8312
8313         * mono/Handler.cs: Updated to follow new path argument for
8314         (un-)registering objects.
8315
8316         * mono/example/Makefile.am:
8317         * mono/Makefile.am:
8318         * configure.in: Bumped required version for mono and use new -pkg
8319         syntax for deps
8320
8321 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8322
8323         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8324         registration functions take the path argument as char* instead of
8325         char**.
8326
8327         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8328         split off the path decompostion part of
8329         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8330         warnings. 
8331
8332         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8333         
8334 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8335  
8336         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8337         machine approach.  A state is implemented as a function that
8338         handles incoming events as specified for that state.
8339         
8340         * doc/dbus-specification.xml: Update auth protocol state machine
8341         specification to match implementation.  Remove some leftover
8342         base64 examples.
8343
8344 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8345
8346         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8347         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8348         quiet doxygen.
8349
8350         * Doxyfile.in: remove deprecated options.
8351
8352         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8353         glib/test-thread.h, glib/test-thread-client.c,
8354         glib/test-thread-server.c, glib/test-profile.c,
8355         glib/test-dbus-glib.c: remove these unused files.
8356
8357 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8358
8359         * dbus/dbus-object-tree.c
8360         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8361         non-fallback handlers (bug #684).
8362         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8363         (find_subtree_recurse): report wether the returned subtree is an
8364         exact match or a "fallback" match higher up in the tree.
8365         (object_tree_test_iteration): update test case.
8366
8367 2004-06-01  Seth Nickell  <seth@gnome.org>
8368
8369         * python/dbus_bindings.pyx.in:
8370         * python/tests/test-client.py:
8371
8372         Round off basic type support. Add dicts (yay!), and 
8373         remaining array types.
8374
8375         Make MessageIter more general so it works for dicts too.
8376
8377         Mark all loop variables as C integers.
8378         
8379 2004-05-31  Havoc Pennington  <hp@redhat.com>
8380
8381         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8382         "in" before "out"
8383
8384         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8385
8386         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8387         option that runs the tests, and start filling in some code
8388         including for starters just dumping the interfaces to stdout
8389
8390         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8391
8392         * test/data/valid-introspection-files/lots-of-types.xml: test of
8393         an example introspection file
8394
8395         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8396         "node" (I think...)
8397
8398 2004-05-31  Seth Nickell  <seth@gnome.org>
8399
8400         * python/dbus_bindings.pyx.in:
8401         * python/tests/test-client.py:
8402
8403         Test Suite: 1
8404         Python Bindings: 0
8405
8406         Fix string array memory trashing bug... oops...
8407
8408 2004-05-30  Seth Nickell  <seth@gnome.org>
8409
8410         * python/dbus.py:
8411
8412         Add a nicer-but-less-flexible alternate API for handling 
8413         calls to virtual objects in dbus.ObjectTree.
8414
8415         Screw up the argument order to the dbus.Object constructor
8416         for consistency with dbus.ObjectTree (and to make dbus_methods
8417         optional for future extension)
8418         
8419         * python/examples/Makefile.am:
8420         * python/examples/gconf-proxy-service.py:
8421         * python/examples/gconf-proxy-service2.py:
8422
8423         Alternate implementation of gconf-proxy-service using the
8424         nicer dbus.ObjectTree API.
8425         
8426         * python/examples/example-service.py:
8427         * python/tests/test-server.py
8428
8429         Reverse the argument order to deal with dbus.Object constructor
8430         changes.
8431         
8432 2004-05-30  Seth Nickell  <seth@gnome.org>
8433
8434         * python/examples/example-client.py:
8435         * python/examples/example-service.py:
8436
8437         Take it back. Lists seem to work but they're broken
8438         in the test suite. Make the base examples use
8439         lists (works fine).
8440
8441 2004-05-30  Seth Nickell  <seth@gnome.org>
8442
8443         * python/dbus_bindings.pyx.in:
8444         * python/tests/test-client.py:
8445
8446         Add some more tests and fix errors that crop up.
8447         Unfortunately, currently it seems like marshalling
8448         and unmarshalling of lists is completely broken :-(
8449
8450 2004-05-30  Seth Nickell  <seth@gnome.org>
8451
8452         * python/dbus_bindings.pyx.in:
8453
8454         Add support for ObjectPath type.
8455
8456         * python/dbus.py:
8457
8458         Refactor message handling code to a common function.
8459         
8460         * python/tests/test-client.py:
8461         * python/tests/test-server.py:
8462
8463         Add tests that check to make sure values of all types
8464         can be echoed from a service w/o mangling.
8465         
8466 2004-05-29  Seth Nickell  <seth@gnome.org>
8467
8468         * python/dbus.py:
8469
8470         Add ObjectTree class which allows implementation
8471         of trees of "virtual" objects. Basically the python
8472         wrapper for "register_fallback".
8473         
8474         * python/examples/Makefile.am
8475         * python/examples/gconf-proxy-client.py:
8476         * python/examples/gconf-proxy-service.py:
8477
8478         Implement a simple GConf proxy service that supports
8479         get/set on string and int GConf keys using the ObjectTree.
8480         
8481 2004-05-29  Seth Nickell  <seth@gnome.org>
8482
8483         * python/dbus.py:
8484         * python/examples/example-client.py:
8485         * python/examples/example-service.py:
8486         * python/examples/list-system-services.py:
8487
8488         Add SessionBus, SystemBus and ActivationBus classes
8489         so you don't need to know the special little BUS_TYPE
8490         flag.
8491         
8492 2004-05-29  Havoc Pennington  <hp@redhat.com>
8493
8494         * bus/config-parser.c (process_test_valid_subdir): temporarily
8495         stop testing config parser OOM handling, since expat has issues
8496         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8497
8498         * bus/dbus-daemon-1.1.in: change requested_reply to
8499         send_requested_reply/receive_requested_reply so we can send the
8500         replies, not just receive them.
8501
8502         * bus/config-parser.c: parse the new
8503         send_requested_reply/receive_requested_reply
8504
8505         * bus/policy.c (bus_client_policy_check_can_send): add
8506         requested_reply argument and use it
8507
8508         * bus/bus.c (bus_context_check_security_policy): pass through
8509         requested_reply status to message send check
8510
8511         * bus/system.conf.in: adapt to requested_reply change
8512         
8513 2004-05-28  Havoc Pennington  <hp@redhat.com>
8514
8515         * test/glib/test-service-glib.c (main): remove unused variable
8516
8517         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8518
8519         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8520         from the enum, no longer in use.
8521
8522         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8523         works right.
8524
8525         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8526         whether error_name passed in is a valid error name.
8527
8528 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8529
8530         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8531         OBJECT_PATH and OBJECT_PATH_ARRAY
8532
8533 2004-05-28  Seth Nickell  <seth@gnome.org>
8534
8535         * python/examples/Makefile.am:
8536
8537         Forget to add Makefile.am. Do not pass go.
8538
8539 2004-05-28  Michael Meeks  <michael@ximian.com>
8540
8541         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8542         fix no int64 case.
8543
8544         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8545
8546         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8547         (_dbus_message_iter_get_basic_type_array): impl.
8548         drastically simplify ~all relevant _get methods to use these.
8549         (_dbus_message_iter_append_basic_array),
8550         (dbus_message_iter_append_basic): impl
8551         drastically simplify ~all relevant _append methods to use these.
8552
8553         * dbus/dbus-message-builder.c (parse_basic_type) 
8554         (parse_basic_array, lookup_basic_type): impl.
8555         (_dbus_message_data_load): prune scads of duplicate /
8556         cut & paste coding.
8557
8558         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8559         (_dbus_demarshal_basic_type): implement,
8560         (demarshal_and_validate_len/arg): beef up debug.
8561         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8562
8563 2004-05-27  Seth Nickell  <seth@gnome.org>
8564
8565         * configure.in:
8566         * python/Makefile.am:
8567
8568         Include the example python apps in the tarball.
8569         
8570         * python/examples/list-system-services.py
8571
8572         Add a python new example that fetches the list of services
8573         from the system bus.
8574         
8575 2004-05-27  Seth Nickell  <seth@gnome.org>
8576
8577         * python/dbus.py:
8578         * python/dbus_bindings.pyx.in:
8579
8580         Fix failure to notify that a signal was not handled,
8581         resulted in hung functions.
8582         
8583 2004-05-25  Colin Walters  <walters@redhat.com>
8584
8585         * tools/dbus-monitor.c (main): Monitor all types of messages.
8586
8587 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8588
8589         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8590         which unregisters the object path and disposes the handler.
8591
8592 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8593  
8594         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8595          
8596         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8597         operands to && so we call dbus_message_iter_next () for the last
8598         argument also.
8599
8600 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8601
8602         * dbus/dbus-object-tree.c
8603         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8604         children even if the requested path isn't registered.
8605         (object_tree_test_iteration): test object_tree_list_registered.
8606
8607         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8608         it to 0.
8609         
8610 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8611
8612         * doc/TODO: Remove resolved items.
8613
8614         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8615         field.
8616         
8617         * bus/connection.c (bus_connections_expect_reply): Enforce the
8618         per-connection limit on pending replies.
8619         
8620         Patch from Jon Trowbridge <trow@ximian.com>:
8621  
8622         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8623         up a watch that triggers a config reload when one end of the pipe
8624         becomes readable.
8625         (signal_handler): Instead of doing the config reload in our SIGHUP
8626         handler, just write to the reload pipe and let the associated
8627         watch handle the reload when control returns to the main loop.
8628  
8629         * bus/driver.c (bus_driver_handle_reload_config): Added.
8630         Implements a ReloadConfig method for requesting a configuration
8631         file reload via the bus driver.
8632  
8633 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8634
8635         * HACKING: Updated release instructions concerning the wiki page.
8636
8637 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8638
8639         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8640         filter against auth->allowed_mechs; we only add allowed mechs in
8641         record_mechanisms().
8642  
8643         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8644         ALLOWED_MECHS to auth-script format so we can set the list of
8645         allowed mechanisms.
8646  
8647         * data/auth/client-out-of-mechanisms.auth-script: New test to
8648         check client disconnects when it is out of mechanisms to try.
8649  
8650         * dbus/dbus-auth.c (process_command): Remove check for lines
8651         longer that 1 MB; we only buffer up maximum 16 kB.
8652  
8653         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8654         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8655         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8656         assume there might be unused bytes.
8657  
8658         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8659         client-out-of-mechs, it is handled in process_reject(). Move check
8660         for max failures to send_rejected(), as it's a server-only thing.
8661
8662         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8663         send_auth(), send_data(), send_rejected(), send_error(),
8664         send_ok(), send_begin() and send_cancel().
8665
8666 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8667
8668         Remove base64 encoding, replace with hex encoding. Original patch
8669         from trow@ximian.com, added error handling.
8670
8671         * dbus/dbus-string.c (_dbus_string_base64_encode)
8672         (_dbus_string_base64_decode): Remove.
8673         (_dbus_string_hex_decode): Add end_return argument so we can
8674         distinguish between OOM and invalid hex encoding.
8675         (_dbus_string_test): Remove base64 tests and add test case for
8676         invalid hex.
8677
8678         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8679         Replace base64 with hex.
8680
8681         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8682         for invalid hex encoded data in auth protocol.
8683
8684 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8685
8686         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8687         leak.
8688
8689 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8690
8691         * mono/dbus-sharp.dll.config.in: Added for GAC
8692         * mono/dbus-sharp.snk: Added for GAC
8693         * mono/Assembly.cs.in: Added for GAC
8694         * mono/Makefile.am: Changes for GAC installation        
8695         * configure.in: Added refs for dbus-sharp.dll.config.in and
8696         Assembly.cs.in. More fixes for mono testing
8697         * mono/example/Makefile.am: Changed var to CSC
8698         * Makefile.am: Changed flag name to DBUS_USE_CSC
8699
8700 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8701
8702         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8703         * mono/doc/*: Added documentation framework
8704         * configure.in: Added monodoc check
8705         * README: Added description of mono configure flags
8706
8707 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8708
8709         * doc/dbus-specification.xml: Added a "Required" column to the 
8710         header fields table and changed the "zero or more" verbage in
8711         the above paragraph to read "The header must contain the required 
8712         named header fields and zero or more of the optional named header 
8713         fields".
8714         * test/data/invalid-messages/*.message: Added the required PATH 
8715         named header field to the tests so that they don't fail on 
8716         'Missing path field'
8717
8718 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8719
8720         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8721         the stack by implicitly defining variable and parameter types and
8722         removing the hack of defining C pointers as python objects and later
8723         casting them.
8724
8725 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8726
8727         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8728
8729 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8730
8731         * mono/DBusType/Dict.cs: Handle empty dicts
8732         * mono/DBusType/Array.cs: Handle empty arrays
8733         * mono/Arguments.cs: Handle empty arguments
8734
8735 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8736
8737         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8738         field
8739
8740 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8741
8742         * test/data/valid-messages/standard-*.message: Update message
8743         test scripts to new header field names.
8744
8745 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8746
8747         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8748         overflow to times_we_did_each_thing array which would chop off the
8749         first character of the failure_dir string. Increased the size of
8750         the array to 7 to reflect the number of random mutation functions
8751         we have.
8752
8753 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8754
8755         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8756         unix_server->watch here, it is unreffed in disconnect.
8757         (_dbus_server_new_for_tcp_socket): convert NULL host to
8758         "localhost" here so we don't append NULL to address.
8759         
8760         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8761         various addresses, including tcp with no explicit host.
8762
8763 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8764
8765         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8766         fix incorrect setting of .name_offset in the HeaderField (it was
8767         off by two bytes, positioned right after the name and typecode)
8768
8769         * bus/bus.c (bus_context_new, bus_context_unref): test before
8770         calling dbus_server_free_data_slot and _dbus_user_database_unref
8771         in case of an error.
8772
8773         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8774         by libdbus-gtool.
8775
8776 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8777
8778         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8779         _dbus_poll() instead of select().
8780
8781 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8782
8783         * bus/main.c (signal_handler): Reload the configuration files
8784         on SIGHUP.
8785         (main): Set up our SIGHUP handler.
8786
8787         * bus/bus.c (struct BusContext): Store the config file, user and
8788         fork flag in the BusContext.
8789         (process_config_first_time_only): Added.  Contains the code
8790         (previously in bus_context_new) for setting up the BusContext from
8791         the BusConfigParser that should only be run the first time the
8792         config files are read.
8793         (process_config_every_time): Added.  Contains the code (previously
8794         in bus_context_new) for setting up the BusContext from the
8795         BusConfigParser that should be run every time the config files are
8796         read.
8797         (load_config): Added.  Builds a BusConfigParser from the config
8798         files and passes the resulting structure off to
8799         process_config_first_time_only (assuming this is the first time)
8800         and process_config_every_time.
8801         (bus_context_new): All of the config-related code has been moved
8802         to process_config_first_time_only and process_config_every_time.
8803         Now this function just does the non-config-related initializations
8804         and calls load_config.
8805         (bus_context_reload_config): Added.
8806
8807 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8808
8809         * bus/driver.c (bus_driver_handle_get_service_owner):
8810         implement a GetServiceOwner method.
8811         * doc/dbus-specification.xml: document it.
8812         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8813         
8814         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8815         implement, using the bus GetServiceOwner method.
8816
8817         * test/glib/test-dbus-glib.c:
8818         use dbus_gproxy_new_for_service_owner so that we can receive the
8819         signal. 
8820
8821 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8822
8823         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8824         dbus/dbus-message.c, dbus/dbus-protocol.h
8825         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8826
8827         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8828         dbus/dbus-message.c, dbus/dbus-protocol.h
8829         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8830
8831         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8832         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8833         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8834
8835         * doc/dbus-specification.xml (Header Fields Table):
8836         s/SERVICE/DESTINATION
8837         s/SENDER_SERVICE/SENDER
8838
8839
8840 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8841
8842         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8843         a few seconds.
8844
8845 2004-04-13  Michael Meeks  <michael@ximian.com>
8846
8847         * glib/dbus-gobject.c (handle_introspect): split out
8848         (introspect_properties): this.
8849         (handle_introspect): implement this.
8850
8851         * test/glib/Makefile.am: use the absolute path so the bus
8852         daemon's chdir ("/") doesn't kill us dead.
8853
8854         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8855
8856 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8857
8858         * bus/config-parser.c (struct BusConfigParser): Added
8859         included_files field.
8860         (seen_include): Added.  Checks whether or not a file has already
8861         been included by any parent BusConfigParser.
8862         (bus_config_parser_new): Copy the parent's included_files.
8863         (include_file): Track which files have been included, and fail on
8864         circular inclusions.
8865         (process_test_valid_subdir): Changed printf to report if we are
8866         testing valid or invalid conf files.
8867         (all_are_equiv): Changed printf to be a bit clearer about
8868         what we are actually doing.
8869         (bus_config_parser_test): Test invalid configuration files.
8870
8871 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8872
8873         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8874         argument.  If non-null, the newly-constructed BusConfigParser will
8875         be initialized with the parent's BusLimits instead of the default
8876         values.
8877         (include_file): When including a config file, pass in
8878         the current parser as the parent and then copy the BusLimits
8879         from the included BusConfigParser pack to the current parser.
8880         (process_test_valid_subdir): Renamed from process_test_subdir.
8881         (process_test_equiv_subdir): Added.  Walks through a directory,
8882         descending into each subdirectory and loading the config files
8883         it finds there.  If any subdirectory contains two config files
8884         that don't produce identical BusConfigParser structs, fail.
8885         For now, the BusConfigParser's BusPolicies are not compared.
8886         (bus_config_parser_test): Call both process_test_valid_subdir and
8887         process_test_equiv_subdir.
8888
8889         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8890         argument and pass it along to the call to bus_config_parser_new.
8891         Also made a few small changes to allow this code to compile.
8892
8893         * bus/config-loader-expat.c (bus_config_load): Take a parent
8894         argument and pass it along to the call to bus_config_parser_new.
8895
8896         * bus/bus.c (bus_context_new): Load the config file
8897         with a NULL parent argument.
8898
8899 2004-03-29  Michael Meeks  <michael@ximian.com>
8900
8901         * glib/dbus-gobject.c (introspect_properties): split
8902         out, fix mangled 'while' flow control.
8903         (introspect_signals): implement.
8904         (handle_introspect): update.
8905
8906 2004-03-29  Michael Meeks  <michael@ximian.com>
8907
8908         * glib/dbus-gobject.c (set_object_property): split out / 
8909         re-work, use the property type, and not the message type(!)
8910         (get_object_property): ditto.
8911
8912         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8913         (dbus_gvalue_marshal): make this code re-usable, needed
8914         for signals too, also on both proxy and server side.
8915         Re-write for more efficiency / readability.
8916
8917 2004-03-29  Michael Meeks  <michael@ximian.com>
8918
8919         * dbus/dbus-message.c
8920         (dbus_message_new_error_printf): impl.
8921
8922         * dbus/dbus-connection.c
8923         (dbus_connection_unregister_object_path): fix warning.
8924
8925         * configure.in: fix no-mono-installed situation.
8926
8927 2004-03-27  Havoc Pennington  <hp@redhat.com>
8928
8929         Patch from Timo Teräs:
8930         
8931         * tools/dbus-send.c (main): if --print-reply, assume type is
8932         method call; support boolean type args
8933         
8934         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8935         bunch of memleak and logic bugs
8936         
8937 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8938
8939         * mono/Arguments.cs:
8940         * mono/Introspector.cs:
8941         * mono/Handler.cs:
8942         * mono/InterfaceProxy.cs:
8943         * mono/Message.cs
8944         * mono/ProxyBuilder.cs:
8945         * mono/Service.cs:
8946         Added InterfaceProxy class to avoid building proxies for every
8947         object.
8948
8949         * dbus-message.h:
8950         * dbus-message.c (dbus_message_append_args_valist)
8951         (dbus_message_iter_get_object_path)
8952         (dbus_message_iter_get_object_path_array)
8953         (dbus_message_iter_append_object_path)
8954         (dbus_message_iter_append_object_path_array):
8955         Added object_path iter functions to handle OBJECT_PATH arguments
8956         
8957 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8958
8959         First checkin of mono bindings.
8960         * configure.in:
8961         * Makefile.am:
8962         Build stuff for the bindings
8963         * dbus-sharp.pc.in: Added for pkgconfig
8964         
8965 2004-03-21  Havoc Pennington  <hp@redhat.com>
8966
8967         * test/test-service.c (main): remove debug spew
8968
8969 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8970
8971         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8972         arrays
8973
8974         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8975         (dbus_message_iter_init_array_iterator)
8976         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8977         indicate whether the iterator is empty
8978
8979         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8980         warnings
8981
8982 2004-03-19  Havoc Pennington  <hp@redhat.com>
8983
8984         * NEWS: 0.21 updates
8985
8986         * configure.in: 0.21
8987
8988         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8989         
8990         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8991         you don't need pyrex to make dist
8992
8993         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8994         sources; run moc
8995         
8996 2004-03-18  Richard Hult  <richard@imendio.com>
8997
8998         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8999         (dbus_message_set_auto_activation): Add doxygen docs.
9000
9001 2004-03-16  Richard Hult  <richard@imendio.com>
9002
9003         * bus/activation.c: (bus_activation_service_created),
9004         (bus_activation_send_pending_auto_activation_messages),
9005         (bus_activation_activate_service):
9006         * bus/activation.h:
9007         * bus/dispatch.c: (bus_dispatch),
9008         (check_nonexistent_service_auto_activation),
9009         (check_service_auto_activated),
9010         (check_segfault_service_auto_activation),
9011         (check_existent_service_auto_activation), (bus_dispatch_test):
9012         * bus/driver.c: (bus_driver_handle_activate_service):
9013         * bus/services.c: (bus_registry_acquire_service):
9014         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9015         (dbus_message_get_auto_activation):
9016         * dbus/dbus-message.h:
9017         * dbus/dbus-protocol.h: Implement auto-activation.
9018         
9019         * doc/dbus-specification.xml: Add auto-activation to the spec.
9020
9021 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9022
9023         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9024         fix a bug with CUSTOM types.
9025
9026         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9027         a unit test for this bug (used to fail).
9028
9029 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9030
9031         * bus/activation.c:
9032         (babysitter_watch_callback): notify all pending activations waiting for
9033           the same exec that the activation failed.
9034         (bus_activation_activate_service): shortcut the activation if we 
9035           already waiting for the same executable to start up.
9036
9037 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9038
9039         * bus/activation.c: 
9040         - Added service file reloading. 
9041           Each service files directory is kept in an hash table in 
9042           BusActivation and each BusActivationEntry knows what .service-file it
9043           was read from. So when you try to activate a service the bus will 
9044           check if it's been updated, removed or if new .service-files has 
9045           been installed.
9046         - Test code at the bottom for the service file reloading.
9047         * bus/test-main.c: (main):
9048         * bus/test.h:
9049         - added service reloading test.
9050         * dbus/dbus-sysdeps.c: 
9051         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9052
9053 2004-03-08  Michael Meeks  <michael@ximian.com>
9054
9055         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9056         bail immediately if disconnected, to avoid busy loop.
9057
9058         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9059         cleanup cut/paste/inefficiency.
9060
9061 2004-03-01  David Zeuthen  <david@fubar.dk>
9062
9063         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9064         bug where args were used twice. This bug resulted in a segfault
9065         on a Debian/PPC system when starting the messagebus daemon. Include
9066         dbus-sysdeps.h for DBUS_VA_COPY
9067
9068         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9069
9070         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9071         appropriate va_copy implementation. From GLib
9072         
9073 2004-02-24  Joe Shaw  <joe@ximian.com>
9074
9075         * bus/services.c (bus_registry_acquire_service): We need to pass
9076         in the service name to dbus_set_error() to prevent a crash.
9077
9078 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9079
9080         * AUTHORS: Reveal my True identity.
9081
9082 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9083
9084         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9085         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9086
9087 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9088
9089         * doc/TODO: Added not about better error check of configuration files.
9090
9091 2003-12-02  Richard Hult  <richard@imendio.com>
9092
9093         * Update AFL version to 2.0 throughout the source files to reflect
9094         the update that was done a while ago.
9095
9096 2003-12-02  Richard Hult  <richard@imendio.com>
9097
9098         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9099         wrote_dict_key to FALSE on the iter that the dict is appended to,
9100         just like when appending other types. Fixes a bug where a dict
9101         couldn't be put inside a dict.
9102         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9103         (message_iter_test, _dbus_message_test): Add test case for dict
9104         inside dict.
9105
9106 2003-12-01  David Zeuthen  <david@fubar.dk>
9107
9108         * python/dbus.py: Add the actual message when calling the reciever
9109         of a signal such that parameters can be inspected. Add the method
9110         remove_signal_receiver
9111         
9112 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9113
9114         * bus/*.[ch]:
9115         * dbus/*.[ch]:
9116         * glib/*.[ch]: Made ref functions return the pointer
9117
9118 2003-11-25  Zack Rusin  <zack@kde.org>
9119
9120         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9121
9122         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9123         wrappers,
9124
9125         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9126         the Integrator and to better fit with the server,
9127
9128 2003-11-24  Zack Rusin  <zack@kde.org>
9129
9130         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9131         the integrator handles it now
9132
9133         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9134         since QTimer wasn't really meant to be used the way DBusTimeout is
9135
9136 2003-11-24  Zack Rusin  <zack@kde.org>
9137
9138         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9139         Integrator class which integrates D-BUS with the Qt event loop,
9140
9141         * qt/connection.h, qt/connection.cpp: Move all the code which
9142         was dealing with D-BUS integration to the Integrator class,
9143         and start using Integrator,
9144
9145 2003-11-23  Zack Rusin  <zack@kde.org>
9146
9147         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9148         wrapper
9149
9150         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9151         switching namespaces to DBusQt, reworking the class,
9152
9153         * Makefile.cvs: switching dependencies so that it matches KDE 
9154         schematics,
9155         
9156         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9157         the library
9158
9159 2003-11-19  Havoc Pennington  <hp@redhat.com>
9160
9161         * NEWS: update
9162
9163         * configure.in: bump version to 0.20
9164
9165         * configure.in (have_qt): add yet another place to look for qt
9166         (someone hand trolltech a .pc file...)
9167
9168 2003-11-01  Havoc Pennington  <hp@redhat.com>
9169
9170         * doc/dbus-specification.xml: add state machine docs on the auth
9171         protocol; just a first draft, I'm sure it's wrong.      
9172
9173 2003-10-28  David Zeuthen  <david@fubar.dk>
9174
9175         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9176         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9177         
9178 2003-10-28  Havoc Pennington  <hp@redhat.com>
9179
9180         * dbus/dbus-message.c (get_next_field): delete unused function
9181
9182 2003-10-28  Havoc Pennington  <hp@redhat.com>
9183
9184         * bus/expirelist.c (do_expiration_with_current_time): detect
9185         failure of the expire_func due to OOM
9186
9187         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9188
9189         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9190         NoReply error that's now created by the bus when the service exits
9191
9192 2003-10-28  Havoc Pennington  <hp@redhat.com>
9193
9194         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9195         tests for set_path, set_interface, set_member, etc.
9196
9197         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9198
9199         * dbus/dbus-message.c (set_string_field): always just delete and
9200         re-append the field; accept NULL for deletion
9201         (re_align_fields_recurse): reimplement
9202         
9203 2003-10-26  Havoc Pennington  <hp@redhat.com>
9204
9205         * dbus/dbus-connection.c: fix docs to properly describe the
9206         disconnected message
9207         (_dbus_connection_notify_disconnected): remove this function; 
9208         we can't synchronously add the disconnected message, we have to 
9209         do it after we've queued any remaining real messages
9210         (_dbus_connection_get_dispatch_status_unlocked): queue the
9211         disconnect message only if the transport has finished queueing all
9212         its real messages and is disconnected.
9213         (dbus_connection_disconnect): update the dispatch status here
9214
9215 2003-10-22  Havoc Pennington  <hp@redhat.com>
9216
9217         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9218
9219         * bus/connection.c (bus_transaction_send_from_driver): set the
9220         destination to the connection's base service
9221
9222 2003-10-20  Havoc Pennington  <hp@redhat.com>
9223
9224         hmm, make check is currently not passing.
9225         
9226         * doc/dbus-specification.xml: add requirement that custom type
9227         names follow the same rules as interface names.
9228
9229         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9230         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9231         'map'
9232
9233         * doc/dbus-specification.xml: update type codes to match
9234         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9235         CUSTOM. Add type OBJECT_PATH to the spec.
9236
9237 2003-10-17  Havoc Pennington  <hp@redhat.com>
9238
9239         * bus/driver.c (create_unique_client_name): use "." as separator
9240         in base service names instead of '-'
9241
9242         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9243         byte at the end of the string
9244
9245         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9246         optimization macros since string validation seems to be a slow
9247         point.
9248         
9249         * doc/dbus-specification.xml: restrict valid
9250         service/interface/member/error names. Add test suite code for the
9251         name validation.
9252
9253         * dbus/dbus-string.c: limit service/interface/member/error names 
9254         to [0-9][A-Z][a-z]_
9255
9256         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9257         format arg to verbose spew
9258
9259         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9260         memory, return instead of g_error
9261
9262         * test/test-service.c (path_message_func): support emitting a
9263         signal on request
9264
9265         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9266         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9267         assuming the activation bus was the session bus so that services
9268         started manually will still register.
9269         (init_connections_unlocked): fix so that in OOM situation we get
9270         the same semantics when retrying the function
9271         
9272         * test/test-service.c (main): change to use path registration, to
9273         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9274         than DBUS_BUS_SESSION
9275
9276 2003-10-16  Havoc Pennington  <hp@redhat.com>
9277
9278         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9279
9280         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9281         coverage of the tests
9282         (coverage-report.txt): don't move the .da and .bbg files around
9283
9284 2003-10-16  Havoc Pennington  <hp@redhat.com>
9285
9286         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9287         to put there
9288
9289 2003-10-16  Havoc Pennington  <hp@redhat.com>
9290
9291         * bus/connection.c (bus_pending_reply_expired): either cancel or
9292         execute, not both
9293         (bus_connections_check_reply): use unlink, not remove_link, as we
9294         don't want to free the link; fixes double free mess
9295
9296         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9297         where no reply was received
9298
9299         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9300         fix a refcount leak
9301
9302         * bus/signals.c (match_rule_matches): add special cases for the
9303         bus driver, so you can match on sender/destination for it.
9304
9305         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9306         DBUS_PRINT_BACKTRACE is set
9307
9308         * dbus/dbus-internals.c: add pid to assertion failure messages
9309
9310         * dbus/dbus-connection.c: add message type code to the debug spew
9311
9312         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9313         sender=foo not service=foo
9314
9315         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9316         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9317         DBUS_ACTIVATION_ADDRESS instead
9318
9319         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9320         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9321
9322         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9323         context struct
9324
9325         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9326         (dbus_message_iter_get_object_path_array): new function (half
9327         finished, disabled for the moment)
9328         
9329         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9330         DBUS_MESSAGE_TYPE_ERROR
9331
9332         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9333         avoid redirecting stderr to /dev/null
9334         (babysit): close stdin if not doing the "exit_with_session" thing
9335
9336         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9337         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9338         stdout/stdin, so things don't get confused
9339         
9340         * bus/system.conf.in: fix to allow replies, I modified .conf
9341         instead of .conf.in again.
9342
9343 2003-10-14  David Zeuthen  <david@fubar.dk>
9344
9345         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9346         argtype to arg_type when raising unknown arg type exception.
9347         Changed type list to reflect the changes in dbus-protocol.h so 
9348         the bindings actually work.
9349
9350 2003-10-14  Havoc Pennington  <hp@redhat.com>
9351
9352         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9353         to have a bug keeping it from outputting the .da files sometimes
9354         (string_get_string): don't append garbage nul bytes to the string.
9355
9356 2003-10-15  Seth Nickell  <seth@gnome.org>
9357
9358         * python/Makefile.am:
9359
9360         Include dbus_h_wrapper.h in the dist tarball.
9361
9362 2003-10-14  Havoc Pennington  <hp@redhat.com>
9363
9364         * bus/bus.c (bus_context_check_security_policy): revamp this to
9365         work more sanely with new policy-based requested reply setup
9366
9367         * bus/connection.c (bus_transaction_send_from_driver): set bus
9368         driver messages as no reply
9369
9370         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9371         requested_reply attribute on allow/deny rules
9372
9373         * bus/system.conf: add <allow requested_reply="true"/>
9374
9375         * bus/driver.c (bus_driver_handle_message): fix check for replies
9376         sent to the bus driver, which was backward. How did this ever work
9377         at all though? I think I'm missing something.
9378
9379         * dbus/dbus-message.c (decode_header_data): require error and
9380         method return messages to have a reply serial field to be valid
9381         (_dbus_message_loader_queue_messages): break up this function;
9382         validate that reply serial and plain serial are nonzero; 
9383         clean up the OOM/error handling.
9384         (get_uint_field): don't return -1 from this
9385         (dbus_message_create_header): fix signed/unsigned bug
9386
9387         * bus/connection.c (bus_connections_expect_reply): save serial of
9388         the incoming message, not reply serial
9389
9390 2003-10-14  Havoc Pennington  <hp@redhat.com>
9391
9392         * bus/connection.c: implement pending reply tracking using
9393         BusExpireList
9394
9395         * bus/bus.c (bus_context_check_security_policy): verify that a
9396         reply is pending in order to allow a reply to be sent. Deny 
9397         messages of unknown type.
9398
9399         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9400
9401         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9402         (bus_context_get_reply_timeout): new
9403
9404 2003-10-13  Seth Nickell  <seth@gnome.org>
9405
9406         * python/Makefile.am:
9407
9408         Pass "make distcheck": remove a couple files from DIST_FILES
9409         that weren't included in the final version.
9410
9411 2003-10-12  Havoc Pennington  <hp@pobox.com>
9412
9413         Added test code that 1) starts an actual bus daemon and 2) uses
9414         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9415         more testing possible, but this is the basic framework.
9416         
9417         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9418         empty proxy lists from the proxy list hash
9419
9420         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9421         couple of return_if_fail checks
9422
9423         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9424         to allocate, so everything is cleared to NULL as it should be.
9425
9426         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9427         source as data to dbus_connection_set_timeout_functions() as the 
9428         timeout functions expected
9429
9430         * test/glib/run-test.sh: add a little script to start up a message
9431         bus and run tests using it
9432
9433         * tools/dbus-launch.1: updates
9434
9435         * tools/dbus-launch.c (main): add --config-file option
9436
9437         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9438         that could never be reached.
9439
9440         * dbus/dbus-message.c (dbus_message_new_method_return) 
9441         (dbus_message_new_error, dbus_message_new_signal): set the
9442         no-reply-expected flag on all these. Redundant, but may
9443         as well be consistent.
9444
9445 2003-10-11  Havoc Pennington  <hp@pobox.com>
9446
9447         * test/decode-gcov.c (function_solve_graph): make broken block
9448         graph a nonfatal error since it seems to be broken. Need to debug
9449         this.
9450
9451         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9452         can't just check type > INVALID < LAST anymore
9453
9454         * dbus/dbus-message.c (dbus_message_get_signature): new function
9455         (dbus_message_has_signature): new function
9456         (struct DBusMessage): add signature field (right now it isn't sent
9457         over the wire, just generated on the fly)
9458         (dbus_message_copy): copy the signature, and init strings to
9459         proper length to avoid some reallocs
9460         (dbus_message_iter_init_array_iterator): return void, since it
9461         can't fail
9462         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9463         (_dbus_message_loader_queue_messages): add silly temporary hack to
9464         fill in message->signature on load
9465
9466         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9467         characters, so they are relatively human-readable.
9468
9469 2003-10-11  Havoc Pennington  <hp@pobox.com>
9470
9471         * dbus/dbus-message.c (_dbus_message_test): add more test
9472         coverage, but #if 0 for now since they uncover a bug 
9473         not fixed yet; I think in re_align_field_recurse()
9474         (re_align_field_recurse): add FIXME about broken assertion
9475
9476         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9477
9478         * bus/connection.c: share a couple code bits with expirelist.c
9479
9480         * bus/expirelist.h, bus/expirelist.c: implement a generic
9481         expire-items-after-N-seconds facility, was going to share between
9482         expiring connections and replies, decided not to use for expiring
9483         connections for now.
9484
9485         * COPYING: include AFL 2.0 (still need to change all the file headers)
9486
9487 2003-10-09  Havoc Pennington  <hp@redhat.com>
9488
9489         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9490         gcc 3.3. Not that we do anything about it yet.
9491
9492         * bus/signals.c (bus_match_rule_parse): impose max length on the
9493         match rule text
9494
9495         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9496
9497 2003-10-09  Havoc Pennington  <hp@redhat.com>
9498
9499         Make matching rules theoretically work (add parser).
9500         
9501         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9502         the case where destination is explicitly specified as bus driver
9503         and someone else is eavesdropping.
9504         
9505         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9506         definition of eavesdropping and assertion
9507
9508         * tools/dbus-send.c (main): use dbus_message_type_from_string
9509
9510         * bus/signals.c (bus_match_rule_parse): implement
9511
9512         * dbus/dbus-message.c (dbus_message_type_from_string): new
9513
9514         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9515
9516 2003-10-02  Havoc Pennington  <hp@pobox.com>
9517
9518         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9519         dbus_gproxy_oneway_call
9520
9521         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9522         (dbus_server_setup_with_g_main): fix to allow calling them more
9523         than once on the same args
9524         (dbus_bus_get_with_g_main): new function
9525
9526 2003-10-02  Havoc Pennington  <hp@redhat.com>
9527
9528         * doc/dbus-tutorial.xml: write some stuff
9529
9530 2003-09-29  Havoc Pennington  <hp@pobox.com>
9531
9532         * configure.in: split checks for Doxygen from XML docs, check for
9533         xmlto
9534
9535         * doc/Makefile.am: XML-ify all the docs, and add a blank
9536         dbus-tutorial.xml
9537
9538 2003-09-29  Havoc Pennington  <hp@pobox.com>
9539
9540         * Merge dbus-object-names branch. To see the entire patch 
9541         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9542         it's huuuuge though.
9543         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9544         
9545 2003-09-28  Havoc Pennington  <hp@pobox.com>
9546
9547         * HACKING: update to reflect new server
9548
9549 2003-09-26  Seth Nickell  <seth@gnome.org>
9550
9551         * python/dbus.py:
9552         * python/examples/example-signals.py:
9553
9554         Start implementing some notions of signals. The API
9555         is really terrible, but they sort of work (with the
9556         exception of being able to filter by service, and to
9557         transmit signals *as* a particular service). Need to
9558         figure out how to make messages come from the service
9559         we registered :-(
9560         
9561         * python/dbus_bindings.pyx.in:
9562
9563         Removed duplicate message_handler callbacks.
9564         
9565 2003-09-25  Havoc Pennington  <hp@redhat.com>
9566
9567         * bus/session.conf.in: fix my mess
9568
9569 2003-09-25  Havoc Pennington  <hp@pobox.com>
9570
9571         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9572
9573 2003-09-25  Seth Nickell  <seth@gnome.org>
9574
9575         * python/examples/example-service.py:
9576
9577         Johan notices complete wrong code in example-service, but
9578         completely wrong in a way that works exactly the same (!).
9579         Johan is confused, how could this possibly work? Example
9580         code fails to serve purpose of making things clear.
9581         Seth fixes.
9582
9583 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9584
9585         * doc/dbus-specification.sgml: don't require header fields
9586         to be 4-byte aligned and specify that fields should be
9587         distinguished from padding by the fact that zero is not
9588         a valid field name.
9589         
9590         * doc/TODO: remove re-alignment item and add item to doc
9591         the OBJECT_PATH type.
9592         
9593         * dbus/dbus-message.c:
9594         (HeaderField): rename the original member to value_offset
9595         and introduce a name_offset member to keep track of where
9596         the field actually begins.
9597         (adjust_field_offsets): remove.
9598         (append_int_field), (append_uint_field),
9599         (append_string_field): don't align the start of the header
9600         field to a 4-byte boundary.
9601         (get_next_field): impl finding the next marhsalled field
9602         after a given field.
9603         (re_align_field_recurse): impl re-aligning a number of
9604         already marshalled fields.
9605         (delete_field): impl deleting a field of any type and
9606         re-aligning any following fields.
9607         (delete_int_or_uint_field), (delete_string_field): remove.
9608         (set_int_field), (set_uint_field): no need to re-check
9609         that we have the correct type for the field.
9610         (set_string_field): ditto and impl re-aligning any
9611         following fields.
9612         (decode_header_data): update to take into account that
9613         the fields aren't 4-byte aligned any more and the new
9614         way to distinguish padding from header fields. Also,
9615         don't exit when there is too much header padding.
9616         (process_test_subdir): print the directory.
9617         (_dbus_message_test): add test to make sure a following
9618         field is re-aligned correctly after field deletion.
9619         
9620         * dbus/dbus-string.[ch]:
9621         (_dbus_string_insert_bytes): rename from insert_byte and
9622         allow the insert of multiple bytes.
9623         (_dbus_string_test): test inserting multiple bytes.
9624
9625         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9626         warning note to docs about having to re-align any
9627         marshalled values following the string.
9628         
9629         * dbus/dbus-message-builder.c:
9630         (append_string_field), (_dbus_message_data_load):
9631         don't align the header field.
9632         
9633         * dbus/dbus-auth.c: (process_test_subdir): print the
9634         directory.
9635         
9636         * test/break-loader.c: (randomly_add_one_byte): upd. for
9637         insert_byte change.
9638         
9639         * test/data/invalid-messages/bad-header-field-alignment.message:
9640         new test case.
9641         
9642         * test/data/valid-messages/unknown-header-field.message: shove
9643         a dict in the unknown field.
9644
9645 2003-09-25  Seth Nickell  <seth@gnome.org>
9646
9647         * python/dbus.py:
9648         * python/dbus_bindings.pyx.in:
9649
9650         Handle return values.
9651         
9652         * python/examples/example-client.py:
9653         * python/examples/example-service.py:
9654
9655         Pass back return values from the service to the client.
9656         
9657 2003-09-24  Seth Nickell  <seth@gnome.org>
9658
9659         * python/dbus.py:
9660
9661         Connect Object methods (when you are sharing an object) up... pass
9662         in a list of methods to be shared. Sharing all the methods just
9663         worked out too weird. You can now create nice Services over the
9664         DBus in Python. :-)
9665         
9666         * python/dbus_bindings.pyx.in:
9667
9668         Keep references to user_data tuples passed into C functions so 
9669         Python doesn't garbage collect on us.
9670
9671         Implement MethodReturn and Error subclasses of Message for creating
9672         DBusMessage's of those types.
9673         
9674         * python/examples/example-client.py:
9675         * python/examples/example-service.py:
9676
9677         Simple example code showing both how create DBus services and objects,
9678         and how to use them.
9679
9680 2003-09-23  Havoc Pennington  <hp@pobox.com>
9681
9682         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9683
9684 2003-09-23  Havoc Pennington  <hp@redhat.com>
9685
9686         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9687         (dbus_gproxy_disconnect_signal): implement
9688         (dbus_gproxy_manager_remove_signal_match): implement
9689         (dbus_gproxy_manager_add_signal_match): implement
9690         (dbus_gproxy_oneway_call): implement
9691
9692 2003-09-23  Havoc Pennington  <hp@pobox.com>
9693
9694         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9695         subclass. This means dropping the transparent thread safety of the
9696         proxy; you now need a separate proxy per-thread, or your own
9697         locking on the proxy. Probably right anyway.
9698         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9699
9700 2003-09-22  Havoc Pennington  <hp@redhat.com>
9701
9702         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9703
9704 2003-09-21  Seth Nickell  <seth@gnome.org>
9705
9706         First checkin of the Python bindings.
9707         
9708         * python/.cvsignore:
9709         * python/Makefile.am:
9710         * python/dbus_bindings.pyx.in:
9711         * python/dbus_h_wrapper.h:
9712
9713         Pieces for Pyrex to operate on, building a dbus_bindings.so
9714         python module for low-level access to the DBus APIs.
9715         
9716         * python/dbus.py:
9717
9718         High-level Python module for accessing DBus objects.
9719
9720         * configure.in:
9721         * Makefile.am:
9722
9723         Build stuff for the python bindings.
9724
9725         * acinclude.m4:
9726
9727         Extra macro needed for finding the Python C header files.
9728
9729 2003-09-21  Havoc Pennington  <hp@pobox.com>
9730
9731         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9732         implementing the proxy manager, didn't get very far.
9733
9734         * dbus/dbus-bus.c (dbus_bus_add_match): new
9735         (dbus_bus_remove_match): new
9736
9737         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9738         path_name argument; adjust the other not-yet-implemented 
9739         gproxy constructors to be what I think they should be.
9740
9741 2003-09-21  Havoc Pennington  <hp@pobox.com>
9742
9743         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9744         by default for message bus connections.
9745
9746         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9747         exit_on_disconnect flag is set and we process the disconnected
9748         signal.
9749         (dbus_connection_set_exit_on_disconnect): new function
9750
9751 2003-09-21  Havoc Pennington  <hp@pobox.com>
9752
9753         Get matching rules mostly working in the bus; only actually
9754         parsing the rule text remains. However, the client side of
9755         "signal connections" hasn't been started, this patch is only the
9756         bus side.
9757         
9758         * dbus/dispatch.c: fix for the matching rules changes
9759         
9760         * bus/driver.c (bus_driver_handle_remove_match)
9761         (bus_driver_handle_add_match): send an ack reply from these
9762         method calls
9763
9764         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9765         arguments, reported by Seth Nickell
9766
9767         * bus/config-parser.c (append_rule_from_element): support
9768         eavesdrop=true|false attribute on policies so match rules 
9769         can be prevented from snooping on the system bus.
9770
9771         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9772         and "destination" in attribute names; fix some docs bugs; 
9773         add eavesdrop=true|false attribute
9774
9775         * bus/driver.c (bus_driver_handle_add_match)
9776         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9777         messages
9778
9779         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9780         rid of broadcast service concept, signals are just always broadcast
9781
9782         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9783         mostly implement matching rules stuff (currently only exposed as signal
9784         connections)
9785
9786 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9787
9788         * doc/dbus-specification.sgml: Change the header field name
9789         to be an enum and update the rest of the spec to reference
9790         the fields using the conventinal name.
9791
9792         * dbus/dbus-protocol.h: update to reflect the spec.
9793
9794         * doc/TODO: add item to remove the 4 byte alignment requirement.
9795         
9796         * dbus/dbus-message.c: Remove the code to generalise the
9797         header/body length and serial number header fields as named
9798         header fields so we can reference field names using the 
9799         protocol values.
9800         (append_int_field), (append_uint_field), (append_string_field):
9801         Append the field name as a byte rather than four chars.
9802         (delete_int_or_uint_field), (delete_string_field): reflect the
9803         fact that the field name and typecode now occupy 4 bytes instead
9804         of 8.
9805         (decode_string_field), (decode_header_data): update to reflect
9806         protocol changes and move the field specific encoding from
9807         decode_string_field() back into decode_header_data().
9808         
9809         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9810         Add utility to aid debugging.
9811         
9812         * dbus/dbus-message-builder.c:
9813         (append_string_field), (_dbus_message_data_load): Update to
9814         reflect protocol changes; Change the FIELD_NAME directive
9815         to HEADER_FIELD and allow it to take the field's conventional
9816         name rather than the actual value.
9817         
9818         * test/data/*/*.message: Update to use HEADER_FIELD instead
9819         of FIELD_NAME; Always align the header on an 8 byte boundary
9820         *before* updating the header length.
9821
9822 2003-09-15  Havoc Pennington  <hp@pobox.com>
9823
9824         * dbus/dbus-pending-call.c: add the get/set object data
9825         boilerplate as for DBusConnection, etc. Use generic object data
9826         for the notify callback.
9827
9828         * glib/dbus-gparser.c (parse_node): parse child nodes
9829
9830         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9831         
9832         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9833         contain functions shared between the convenience lib and the
9834         installed lib
9835
9836         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9837         -export-symbols-regex to the GLib library
9838
9839         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9840         fix the locking in here, and add a default handler for
9841         Introspect() that just returns sub-nodes.
9842
9843 2003-09-14  Havoc Pennington  <hp@pobox.com>
9844
9845         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9846         rather than gfoo consistent
9847
9848         * glib/dbus-gproxy.h: delete for now, move contents to
9849         dbus-glib.h, because the include files don't work right since we
9850         aren't in the dbus/ subdir.
9851         
9852         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9853         (dbus_gproxy_end_call): finish
9854         (dbus_gproxy_begin_call): finish
9855
9856         * glib/dbus-gmain.c (dbus_set_g_error): new
9857
9858         * glib/dbus-gobject.c (handle_introspect): include information
9859         about child nodes in the introspection
9860
9861         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9862         function to help in implementation of introspection
9863
9864         * dbus/dbus-object-tree.c
9865         (_dbus_object_tree_list_registered_and_unlock): new function
9866
9867 2003-09-12  Havoc Pennington  <hp@pobox.com>
9868
9869         * glib/dbus-gidl.h: add common base class for all the foo_info
9870         types
9871
9872         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9873         similar to kdcop
9874
9875         * test/Makefile.am: try test srcdir -ef . in addition to test
9876         srcdir = ., one of them should work (yeah lame)
9877         
9878         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9879         library
9880         
9881         * glib/dbus-gparser.h: make description_load routines return
9882         NodeInfo* not Parser*
9883
9884         * Makefile.am (SUBDIRS): build test dir after all library dirs
9885
9886         * configure.in: add GTK+ detection
9887
9888 2003-09-07  Havoc Pennington  <hp@pobox.com>
9889
9890         * Make Doxygen contented.
9891
9892 2003-09-07  Havoc Pennington  <hp@pobox.com>
9893
9894         * doc/dbus-specification.sgml: more updates
9895
9896 2003-09-06  Havoc Pennington  <hp@pobox.com>
9897
9898         * doc/dbus-specification.sgml: partial updates
9899
9900         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9901         zillionth time; hopefully I edited the right file this time.
9902
9903         * bus/config-parser.c (append_rule_from_element): support
9904         send_type, send_path, receive_type, receive_path
9905
9906         * bus/policy.c: add message type and path to the list of things
9907         that can be "firewalled"
9908
9909 2003-09-06  Havoc Pennington  <hp@pobox.com>
9910
9911         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9912         (dbus_connection_register_object_path): make this not handle
9913         messages to paths below the given path
9914
9915 2003-09-03  Havoc Pennington  <hp@pobox.com>
9916
9917         * test/glib/Makefile.am: add this with random glib-linked test
9918         programs
9919
9920         * glib/Makefile.am: remove the random test programs from here,
9921         leave only the unit tests
9922
9923         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9924         uscore/javacaps conversion, and fix     
9925         (get_object_property, set_object_property): change to .NET
9926         convention for mapping props to methods, set_FooBar/get_FooBar, 
9927         since one language has such a convention we may as well copy it. 
9928         Plus real methods in either getFooBar or get_foo_bar style won't 
9929         collide with this convention.
9930
9931 2003-09-01  Havoc Pennington  <hp@pobox.com>
9932
9933         * glib/dbus-gparser.c: implement
9934
9935         * glib/dbus-gobject.c: start implementing skeletons support
9936
9937         * configure.in: when disabling checks/assert, also define
9938         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9939
9940 2003-09-01  Havoc Pennington  <hp@pobox.com>
9941
9942         * glib/Makefile.am: rearrange a bunch of files and get "make
9943         check" framework set up
9944
9945 2003-08-31  Havoc Pennington  <hp@pobox.com>
9946
9947         * fix build with --disable-tests
9948
9949 2003-08-30  Havoc Pennington  <hp@pobox.com>
9950
9951         * dbus/dbus-connection.c: purge DBusMessageHandler
9952
9953         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9954         use callbacks everywhere
9955
9956 2003-08-30  Havoc Pennington  <hp@pobox.com>
9957
9958         * test/data/valid-config-files/system.d/test.conf: change to 
9959         root for the user so warnings don't get printed
9960
9961         * dbus/dbus-message.c: add dbus_message_get_path,
9962         dbus_message_set_path
9963         
9964         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9965         dispatching to a path
9966
9967         * dbus/dbus-string.c (_dbus_string_validate_path): add
9968
9969         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9970         (_dbus_marshal_object_path): implement
9971
9972         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9973         to contain the path to the target object
9974         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9975         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9976
9977 2003-08-30  Havoc Pennington  <hp@pobox.com>
9978
9979         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9980
9981 2003-08-29  Havoc Pennington  <hp@pobox.com>
9982
9983         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9984         registered
9985         (struct DBusObjectSubtree): shrink this
9986         a lot, since we may have a lot of them
9987         (_dbus_object_tree_free_all_unlocked): implement
9988         (_dbus_object_tree_dispatch_and_unlock): implement
9989
9990 2003-08-29  Havoc Pennington  <hp@pobox.com>
9991
9992         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9993
9994 2003-08-28  Havoc Pennington  <hp@pobox.com>
9995
9996         purge DBusObjectID
9997         
9998         * dbus/dbus-connection.c: port to no ObjectID, create a
9999         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10000
10001         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10002         everything except UnregisterFunction and MessageFunction
10003         
10004         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10005         add DBUS_TYPE_OBJECT_PATH
10006         
10007         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10008         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10009         path-based object IDs
10010
10011 2003-08-25  Havoc Pennington  <hp@pobox.com>
10012
10013         Just noticed that dbus_message_test is hosed, I wonder when I
10014         broke that. I thought make check was passing earlier...
10015         
10016         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10017         container tree, will replace most of dbus-object-registry
10018
10019         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10020         screwup
10021
10022 2003-08-19  Havoc Pennington  <hp@pobox.com>
10023
10024         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10025         (dbus_message_is_error): fix this function
10026
10027         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10028         match
10029
10030         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10031         reflect clarified man page
10032         (bus_client_policy_check_can_send): ditto
10033         
10034         * bus/session.conf.in: fixup
10035
10036         * bus/system.conf.in: fixup
10037
10038 2003-08-18  Havoc Pennington  <hp@redhat.com>
10039
10040         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10041
10042         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10043         dumb bug created earlier (wrong order of args to
10044         decode_header_data())
10045         
10046         * tools/dbus-send.c: port
10047
10048         * tools/dbus-print-message.c (print_message): port
10049
10050         * test/data/*messages: port all messages over
10051         
10052         * dbus/dbus-message-builder.c: support including 
10053         message type
10054         
10055         * bus/driver.c: port over
10056         
10057         * bus/dispatch.c: port over to new stuff
10058
10059         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10060         rename disconnect signal to "Disconnected"
10061
10062 2003-08-17  Havoc Pennington  <hp@pobox.com>
10063
10064         This doesn't compile yet, but syncing up so I can hack on it from
10065         work. What are branches for if not broken code? ;-)
10066         
10067         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10068         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10069         DBUS_HEADER_FIELD_ERROR_NAME
10070         
10071         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10072         for the interface+member pairs
10073         (string_hash): change to use g_str_hash algorithm
10074         (find_direct_function, find_string_function): refactor these to
10075         share most code.
10076         
10077         * dbus/dbus-message.c: port all of this over to support 
10078         interface/member fields instead of name field
10079
10080         * dbus/dbus-object-registry.c: port over
10081         
10082         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10083         from _dbus_string_validate_name
10084
10085         * bus/dbus-daemon-1.1: change file format for the 
10086         <deny>/<allow> stuff to match new message naming scheme
10087
10088         * bus/policy.c: port over
10089
10090         * bus/config-parser.c: parse new format
10091         
10092 2003-08-16  Havoc Pennington  <hp@pobox.com>
10093
10094         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10095         broken assertion
10096
10097         * glib/dbus-gproxy.c: some hacking
10098
10099 2003-08-15  Havoc Pennington  <hp@redhat.com>
10100
10101         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10102
10103         * dbus/dbus-connection.c
10104         (dbus_connection_send_with_reply_and_block): factor out internals;
10105         change to convert any error replies to DBusError instead of 
10106         returning them as a message
10107
10108 2003-08-15  Havoc Pennington  <hp@pobox.com>
10109
10110         * dbus/dbus-connection.c, 
10111         dbus/dbus-pending-call.c: Finish the pending call stuff
10112
10113 2003-08-14  Havoc Pennington  <hp@redhat.com>
10114
10115         * dbus/dbus-pending-call.c: start on new object that will replace
10116         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10117         replies
10118
10119         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10120         with remote interfaces
10121
10122         * dbus/dbus-gidl.c: do the boring boilerplate in here
10123         
10124 2003-08-12  Havoc Pennington  <hp@pobox.com>
10125
10126         * bus/dispatch.c (bus_dispatch): make this return proper 
10127         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10128
10129         * dbus/dbus-errors.c (dbus_set_error): use
10130         _dbus_string_append_printf_valist
10131
10132         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10133         (_dbus_string_append_printf): new
10134
10135         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10136         UNKNOWN_METHOD
10137
10138         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10139         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10140         message is unhandled.
10141
10142 2003-08-11  Havoc Pennington  <hp@pobox.com>
10143
10144         * bus/test.c (client_disconnect_handler): change to return
10145         HANDLED (would have been REMOVE_MESSAGE)
10146
10147         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10148         HANDLED/NOT_YET_HANDLED instead of
10149         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10150         should be used.
10151
10152 2003-08-10  Havoc Pennington  <hp@pobox.com>
10153
10154         * tools/dbus-send.c (main): add --type argument, for now
10155         supporting only method_call and signal types.
10156
10157         * tools/dbus-print-message.c: print message type
10158
10159         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10160         init connection->objects
10161
10162         * doc/dbus-specification.sgml: fix sgml
10163
10164         * bus/*.c: port over to object-instance API changes
10165
10166         * test/test-service.c: ditto
10167         
10168         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10169         name, we will have to fix up the rest of the code to also handle
10170         this
10171         (dbus_message_new): generic message-creation call
10172         (set_string_field): allow appending name field
10173
10174 2003-08-06  Havoc Pennington  <hp@pobox.com>
10175
10176         * dbus/dbus-object-registry.c: implement signal connection 
10177         and dispatch
10178
10179         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10180
10181         * dbus/dbus-internals.c (_dbus_memdup): new function
10182
10183 2003-08-02  Havoc Pennington  <hp@pobox.com>
10184
10185         * dbus/dbus-message.c (dbus_message_get_no_reply)
10186         (dbus_message_set_no_reply): add these and remove
10187         set_is_error/get_is_error
10188
10189         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10190         remove the ERROR flag, since there's now an ERROR type
10191
10192 2003-08-01  Havoc Pennington  <hp@pobox.com>
10193
10194         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10195         implement
10196
10197         * dbus/dbus-message.c (dbus_message_get_type): new function
10198
10199         * doc/dbus-specification.sgml: add "type" byte to messages
10200
10201 2003-08-01  Havoc Pennington  <hp@pobox.com>
10202
10203         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10204         a message type enum to distinguish kinds of message
10205         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10206         that need not be replied to
10207
10208 2003-08-01  Havoc Pennington  <hp@pobox.com>
10209
10210         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10211         (unpack_8_octets): fix no-64-bit-int bug
10212
10213         * dbus/dbus-object-registry.c (validate_id): validate the 
10214         connection ID bits, not just the instance ID.
10215
10216         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10217         the connection-global 33 bits of the object ID
10218
10219         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10220         object ID in the new way
10221
10222         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10223         define server/client/instance bits.
10224
10225 2003-07-30  Havoc Pennington  <hp@pobox.com>
10226
10227         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10228         build
10229
10230 2003-07-13  Havoc Pennington  <hp@pobox.com>
10231
10232         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10233         fields to DBusObjectVTable and DBusObjectInfo
10234
10235 2003-07-12  Havoc Pennington  <hp@pobox.com>
10236
10237         * dbus/dbus-object-registry.c: implement unit test,
10238         fix bugs discovered in process
10239
10240         * dbus/dbus-connection.c: remove handler_table and
10241         register_handler(), add DBusObjectRegistry usage
10242
10243         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10244         (dbus_object_id_set_null): new functions
10245
10246 2003-07-08  Havoc Pennington  <hp@pobox.com>
10247
10248         * dbus/dbus-object.c: implement some of this
10249
10250         * dbus/dbus-object-registry.c
10251         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10252         param
10253         (_dbus_object_registry_new): handle OOM
10254
10255 2003-07-08  Havoc Pennington  <hp@pobox.com>
10256
10257         * dbus/dbus-object.h: sketch out an API for registering objects
10258         with a connection, that allows us to use as little as 24 bytes
10259         per object and lets application code represent an object in 
10260         any conceivable way.
10261
10262         * dbus/dbus-object-registry.c: implement the hard bits of the
10263         DBusConnection aspect of object API. Not yet wired up.
10264         
10265 2003-07-06  Havoc Pennington  <hp@pobox.com>
10266
10267         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10268         (_dbus_marshal_object_id): new
10269         (_dbus_demarshal_object_id): new
10270         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10271         consolidate identical switch cases. Don't conditionalize handling
10272         of DBUS_TYPE_UINT64, need to handle the type always.
10273         (_dbus_marshal_validate_arg): consolidate identical cases, and
10274         handle DBUS_TYPE_OBJECT_ID
10275
10276         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10277
10278         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10279
10280 2003-09-28  Havoc Pennington  <hp@pobox.com>
10281
10282         * real 0.13 release
10283
10284 2003-09-28  Havoc Pennington  <hp@pobox.com>
10285
10286         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10287         to work with Debian db2html
10288
10289 2003-09-28  Havoc Pennington  <hp@pobox.com>
10290
10291         * configure.in: 0.13
10292
10293         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10294         stylesheet-images for benefit of Debian
10295         
10296         Change back to using filesystem-linked sockets for the system
10297         bus, so only root can create the default system bus address.
10298         
10299         * bus/system.conf.in: change to use
10300         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10301
10302         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10303         from here.
10304
10305         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10306         here, and AC_DEFINE DBUS_SYSTEM_PATH
10307
10308 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10309
10310         * doc/TODO:
10311         * doc/busconfig.dtd:
10312         Add busconfig DTD.
10313         
10314 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10315
10316         * doc/dbus-specification.sgml:
10317         Add activation reply values.
10318         
10319 2003-08-05  Havoc Pennington  <hp@redhat.com>
10320
10321         * configure.in: 0.12
10322
10323 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10324
10325         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10326         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10327         (add_watch), (remove_watch), (create_source):
10328         Refcount fds, fixes some reentrancy issues.
10329         
10330 2003-07-30  Havoc Pennington  <hp@redhat.com>
10331
10332         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10333         bus address to be abstract if we have abstract sockets
10334
10335         * NEWS: update
10336
10337 2003-07-28  Havoc Pennington  <hp@redhat.com>
10338
10339         * bus/messagebus.in: fix to avoid processname/servicename 
10340         confusion, from Michael Kearey
10341         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10342         
10343 2003-07-23  Havoc Pennington  <hp@pobox.com>
10344
10345         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10346         fix from Andy Hanton to remove broken "+1"
10347
10348 2003-07-16  Havoc Pennington  <hp@pobox.com>
10349
10350         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10351         babysitter process, as suggested by Thomas Leonard, so 
10352         an "eval `dbus-launch --exit-with-session`" will actually 
10353         return
10354
10355 2003-07-16  Havoc Pennington  <hp@pobox.com>
10356
10357         * configure.in: print out EXPANDED_* variables in the summary at
10358         the end; clean up the code that computes EXPANDED_ variables and
10359         get the ones using exec_prefix right. Should make things work
10360         when you build without --prefix
10361
10362 2003-06-29  Havoc Pennington  <hp@pobox.com>
10363
10364         * mono/Test.cs (class Test): fire up a main loop and run it
10365
10366         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10367         done once, the app has to do it
10368
10369 2003-06-26  Havoc Pennington  <hp@pobox.com>
10370
10371         * mono/Connection.cs: set up connection with the glib main loop
10372
10373 2003-07-01  Havoc Pennington  <hp@redhat.com>
10374
10375         * doc/dbus-specification.sgml: clarify the format of a type code,
10376         change suggested by Jim Blandy
10377
10378 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10379
10380         * doc/Makefile.am:
10381         * tools/Makefile.am: Don't assume srcdir == builddir.
10382
10383         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10384         the allocated block.
10385         (_dbus_memory_test): New function.
10386         * dbus/dbus-test.h: Add _dbus_memory_test ().
10387         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10388
10389         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10390         of %c%c%c%c.
10391         (dbus_message_new): Remove obsolete @todo.
10392
10393         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10394         (_dbus_marshal_set_uint64): Fix comment.
10395
10396         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10397         hardcode FIELD_REPLY_SERIAL.
10398
10399         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10400         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10401
10402         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10403         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10404
10405 2003-06-24  Havoc Pennington  <hp@pobox.com>
10406
10407         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10408
10409 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10410
10411         * configure.in:
10412         * gcj/.cvsignore:
10413         * gcj/Hello.java:
10414         * gcj/Makefile.am:
10415         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10416         * gcj/org/.cvsignore:
10417         * gcj/org/Makefile.am:
10418         * gcj/org/freedesktop/.cvsignore:
10419         * gcj/org/freedesktop/Makefile.am:
10420         * gcj/org/freedesktop/dbus/.cvsignore:
10421         * gcj/org/freedesktop/dbus/Makefile.am:
10422         * gcj/org/freedesktop/dbus/Message.java: (Message),
10423         (Message.Message):
10424         * gcj/org/freedesktop/dbus/natMessage.cc:
10425         Fix the build system.
10426
10427 2003-06-22  Havoc Pennington  <hp@pobox.com>
10428
10429         * mono/Connection.cs: add more bindings
10430
10431         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10432         more than once.
10433
10434 2003-06-22  Havoc Pennington  <hp@pobox.com>
10435
10436         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10437         Start wrapping more stuff.
10438
10439 2003-06-22  Havoc Pennington  <hp@pobox.com>
10440
10441         * mono/Message.cs: implement Message.Wrap() that ensures we only
10442         have a single C# wrapper per DBusMessage, assuming it works which
10443         it probably doesn't.
10444
10445         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10446         (dbus_message_free_data_slot): new
10447         (dbus_message_set_data): new
10448         (dbus_message_get_data): new
10449
10450 2003-06-22  Havoc Pennington  <hp@pobox.com>
10451
10452         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10453         (_dbus_data_slot_allocator_alloc): rework these to keep a
10454         reference count on each slot and automatically manage a global
10455         slot ID variable passed in by address
10456
10457         * bus/bus.c: convert to new dataslot API
10458
10459         * dbus/dbus-bus.c: convert to new dataslot API
10460
10461         * dbus/dbus-connection.c: convert to new dataslot API
10462
10463         * dbus/dbus-server.c: convert to new dataslot API
10464
10465         * glib/dbus-gmain.c: ditto
10466
10467         * bus/test.c: ditto
10468
10469         * bus/connection.c: ditto
10470
10471 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10472
10473         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10474         after the gcj checks so that the correct configuration tags
10475         will be added to libtool.
10476
10477         * dbus-glib-1.pc.in: No need to specify any includes since
10478         dbus-1.pc.in has those.
10479
10480 2003-06-22  Havoc Pennington  <hp@pobox.com>
10481
10482         * mono/*, gcj/*, configure.in, Makefile.am:
10483         Check in makefiles and subdirs for mono and gcj bindings.
10484         Neither binding actually exists, just trying to get through
10485         all the build and other boring bits.
10486
10487 2003-06-21  Philip Blundell  <philb@gnu.org>
10488
10489         * tools/dbus-monitor.1: Updated.
10490
10491         * tools/dbus-send.1: Likewise.
10492
10493 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10494
10495         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10496         for hangup and error after checking read so we won't discard
10497         pending data if both hangup and read are set.
10498
10499 2003-06-19  Philip Blundell  <philb@gnu.org>
10500
10501         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10502
10503         * tools/dbus-send.c: Accept both --system and --session.
10504
10505         * tools/dbus-monitor.c: Same here.
10506
10507 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10508
10509         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10510         from C++ (Patch by Miloslav Trmac).
10511
10512 2003-06-15  Joe Shaw  <joe@assbarn.com>
10513
10514         * configure.in: Check for socklen_t.
10515
10516         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10517
10518         * test/test-segfault.c: Add #include <sys/time.h>
10519
10520         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10521         dbus-launch needs it.
10522
10523 2003-06-09  Havoc Pennington  <hp@redhat.com>
10524
10525         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10526         SUN_LEN, it breaks abstract socket usage
10527
10528         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10529         starts of lines.
10530
10531 2003-06-04  Havoc Pennington  <hp@pobox.com>
10532
10533         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10534         using unix:abstract=/foo, and when listening in a tmpdir
10535         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10536
10537         * dbus/dbus-transport.c (_dbus_transport_open): support
10538         unix:abstract=/foo
10539
10540         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10541         support abstract sockets
10542
10543         * dbus/dbus-transport-unix.c
10544         (_dbus_transport_new_for_domain_socket): support abstract sockets
10545
10546         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10547         toggle as an argument, implement abstract namespace support
10548         (_dbus_listen_unix_socket): ditto
10549
10550         * configure.in: add --enable-abstract-sockets and implement
10551         a configure check for autodetection of the right value.
10552
10553 2003-06-01  Havoc Pennington  <hp@pobox.com>
10554
10555         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10556         in /tmp (though on Linux this will end up being useless,
10557         when we add abstract namespace support)
10558
10559         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10560         subst'ing it
10561
10562 2003-05-28  Colin Walters  <walters@verbum.org>
10563
10564         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10565
10566 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10567
10568         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10569
10570 2003-05-17  Colin Walters  <walters@gnu.org>
10571
10572         * tools/dbus-send.c: Don't exit with an error code if --help was
10573         passed.  Default to using the session bus instead of the system
10574         one.
10575
10576         * tools/dbus-launch.c: Ditto.
10577
10578         * tools/dbus-monitor.c: Ditto.
10579
10580         * tools/dbus-send.1: Update with new arguments.
10581
10582         * tools/dbus-launch.c: Emit code to export variables.  New
10583         arguments -s and -c to specify shell syntax, and a bit of code to
10584         autodetect syntax.  Also, allow specifying a program to run.
10585
10586         * tools/dbus-launch.1: Update with new arguments.
10587
10588         * tools/dbus-send.1: Ditto.
10589
10590         * tools/dbus-monitor.1: Ditto.
10591
10592 2003-05-17  Havoc Pennington  <hp@pobox.com>
10593
10594         * bus/config-parser.c (merge_included): merge in policies from
10595         child configuration file.
10596
10597         * bus/policy.c (bus_policy_merge): function to merge two policies
10598         together
10599
10600 2003-05-16  Havoc Pennington  <hp@redhat.com>
10601
10602         * dbus/dbus-connection.c: disable verbose lock spew
10603
10604         * tools/dbus-send.c: add --print-reply command line option
10605
10606         * tools/dbus-print-message.h (print_message): new util function
10607         shared by dbus-send and dbus-monitor
10608
10609         * tools/dbus-monitor.c (handler_func): exit on disconnect
10610
10611         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10612         disconnected, don't try to use the read_watch
10613
10614         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10615         so we can find this bug more easily
10616
10617 2003-05-16  Havoc Pennington  <hp@redhat.com>
10618
10619         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10620         NULL as DBusHashTable is annoyingly likely to do.
10621
10622 2003-05-16  Colin Walters  <walters@verbum.org>
10623
10624         * tools/dbus-monitor.c: Add --session argument and usage()
10625         function.
10626
10627         * tools/dbus-monitor.1: Update with new --session arg.
10628
10629         * bus/Makefile.am (install-data-hook): Create
10630         $(libdir)/dbus-1.0/services so that the session bus is happy.
10631
10632 2003-05-15  Havoc Pennington  <hp@redhat.com>
10633
10634         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10635         on non-x86. ifdef's are evil.
10636
10637 2003-05-15  Havoc Pennington  <hp@redhat.com>
10638
10639         * configure.in: 0.11
10640
10641         * NEWS: update
10642
10643         * bus/Makefile.am (initddir): apparently we are supposed to put
10644         init scripts in /etc/rc.d/init.d not /etc/init.d
10645
10646         * bus/Makefile.am: remove the "you must --enable-tests to make
10647         check" as it broke distcheck
10648
10649         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10650
10651 2003-05-13  James Willcox  <jwillcox@gnome.org>
10652
10653         * configure.in:
10654         * bus/activation.c: (bus_activation_service_created),
10655         (bus_activation_activate_service):
10656         * bus/driver.c: (bus_driver_send_service_deleted),
10657         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10658         (bus_driver_send_service_acquired),
10659         (bus_driver_send_welcome_message),
10660         (bus_driver_handle_list_services):
10661         * bus/session.conf.in:
10662         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10663         (dbus_bus_service_exists), (dbus_bus_activate_service):
10664         * dbus/dbus-bus.h:
10665
10666         Add some convenience API which lets you activate a service, and did a
10667         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10668         and dbus_message_get_args()
10669
10670 2003-05-11  Havoc Pennington  <hp@pobox.com>
10671
10672         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10673         calling _dbus_marshal_validate_arg() for every byte in a byte
10674         array, etc.
10675
10676         * dbus/dbus-message-handler.c: use atomic reference counting to
10677         reduce number of locks slightly; the global lock in here sucks
10678
10679         * dbus/dbus-connection.c
10680         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10681         update_dispatch_status that can be called with lock held; then use
10682         in a couple places to reduce locking/unlocking
10683         (dbus_connection_send): hold the lock over the whole function
10684         instead of acquiring it twice.
10685
10686         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10687
10688         * bus/connection.c (bus_connections_setup_connection): fix access
10689         to already-freed memory.
10690
10691         * dbus/dbus-connection.c: keep a little cache of linked list
10692         nodes, to avoid using the global linked list alloc lock in the
10693         normal send-message case. Instead we just use the connection lock
10694         that we already have to take.
10695
10696         * dbus/dbus-list.c (_dbus_list_find_last): new function
10697
10698         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10699         change to use a struct for the atomic type; fix docs,
10700         they return value before increment, not after increment.
10701
10702         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10703         (_dbus_string_append_8_aligned): new functions to try to
10704         microoptimize this operation.
10705         (reallocate_for_length): break this out of set_length(), to
10706         improve profile info, and also so we can consider inlining the
10707         set_length() part.
10708
10709         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10710         strings with some preallocation, cuts down on our calls to realloc
10711         a fair bit. Though if we can get the "move entire string to empty
10712         string" optimization below to kick in here, it would be better.
10713
10714         * dbus/dbus-string.c (_dbus_string_move): just call
10715         _dbus_string_move_len
10716         (_dbus_string_move_len): add a special case for moving
10717         an entire string into an empty string; we can just
10718         swap the string data instead of doing any reallocs.
10719         (_dbus_string_init_preallocated): new function
10720
10721 2003-05-11  Havoc Pennington  <hp@pobox.com>
10722
10723         Write a "test-profile" that does echo client-server with threads;
10724         profile reveals lock contention, memcpy/realloc of buffers, and
10725         UTF-8 validation as hot spots. 20% of lock contention eliminated
10726         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10727         contention is global mempool locks for GList and DBusList.
10728
10729         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10730         x86 implementation
10731
10732         * dbus/dbus-connection.c (struct DBusConnection): use
10733         dbus_atomic_t for the reference count
10734
10735         * dbus/dbus-message.c (struct DBusMessage): declare
10736         dbus_atomic_t values as volatile
10737
10738         * configure.in: code to detect ability to use atomic integer
10739         operations in assembly, from GLib patch
10740
10741         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10742         time, tired of it being wrong in threads and forked processes
10743
10744         * glib/test-profile.c: a little program to bounce messages back
10745         and forth between threads and eat CPU
10746
10747         * dbus/dbus-connection.c: add debug spew macros for debugging
10748         thread locks; include config.h at top; fix deadlock in
10749         dbus_connection_flush()
10750
10751 2003-05-08  Havoc Pennington  <hp@pobox.com>
10752
10753         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10754         data from getting written, and there wasn't a good reason to
10755         use _exit really.
10756
10757         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10758         dbus_verbose lines in test coverage
10759         (main): add list of functions sorted by # of untested blocks
10760         to the coverage report
10761
10762         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10763
10764         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10765
10766         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10767         extend test coverage
10768
10769         * test/data/auth/cancel.auth-script: test canceling an
10770         authentication
10771
10772         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10773         aren't used. in CVS history if we end up needing them.
10774
10775 2003-05-04  Havoc Pennington  <hp@pobox.com>
10776
10777         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10778         unit test
10779
10780         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10781         function, which assumed length was in # of strings, not bytes
10782
10783         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10784         missing coverage
10785
10786         * dbus/dbus-connection.c
10787         (_dbus_connection_queue_received_message): disable function for
10788         now, we are only using it in test mode
10789
10790         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10791         remove a mistaken FIXME
10792
10793 2003-05-04  Havoc Pennington  <hp@pobox.com>
10794
10795         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10796         unlock mutex on successful return, patch from Anders Gustafsson
10797
10798 2003-05-04  Havoc Pennington  <hp@pobox.com>
10799
10800         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10801         Anders Gustafsson
10802
10803 2003-05-04  Havoc Pennington  <hp@pobox.com>
10804
10805         * tools/dbus-launch.c: implement
10806
10807         * bus/main.c (main), bus/bus.c (bus_context_new):
10808         implement --print-pid and --fork
10809
10810 2003-05-03  Havoc Pennington  <hp@redhat.com>
10811
10812         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10813         the address had no value, and add to test suite. Fix and
10814         regression test from Miloslav Trmac
10815
10816 2003-05-03  Havoc Pennington  <hp@pobox.com>
10817
10818         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10819         watch is invalid when handled
10820
10821         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10822         dbus-launch utility to launch the bus from a shell script.  Didn't
10823         actually implement dbus-launch yet, it's just a placeholder still.
10824
10825 2003-05-03  Havoc Pennington  <hp@pobox.com>
10826
10827         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10828         daemon; also documents daemon config file, so replaces
10829         doc/config-file.txt. Corrected some stuff from config-file.txt in
10830         the process of moving it.
10831
10832 2003-05-03  Havoc Pennington  <hp@pobox.com>
10833
10834         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10835         add some man pages
10836
10837 2003-05-03  Colin Walters  <walters@verbum.org>
10838
10839         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10840         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10841
10842         * Makefile.am: Update to use new .pc versioning scheme.
10843
10844 2003-05-02  Havoc Pennington  <hp@redhat.com>
10845
10846         * bus/system.conf.in: allow send/receive to/from message bus
10847         service
10848
10849 2003-04-30  Havoc Pennington  <hp@redhat.com>
10850
10851         * configure.in: print a note when building with unit tests and
10852         without assertions
10853
10854 2003-04-30  Havoc Pennington  <hp@redhat.com>
10855
10856         * Makefile.am: add a check-local that complains if you didn't
10857         configure with --enable-tests
10858
10859 2003-04-29  Havoc Pennington  <hp@redhat.com>
10860
10861         * glib/dbus-gmain.c: docs cleanups
10862
10863         * dbus/dbus-types.h: add docs on int64 types
10864
10865         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10866         public API docs section
10867
10868 2003-04-29  Havoc Pennington  <hp@redhat.com>
10869
10870         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10871         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10872         parallel install API version, not with the D-BUS package version.
10873
10874         * HACKING: move some of README over here
10875
10876         * README: updates, and document API/ABI policy
10877
10878         * configure.in: reindentation
10879
10880 2003-04-29  Havoc Pennington  <hp@redhat.com>
10881
10882         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10883         to use this library" to be sure people have the right
10884         expectations.
10885
10886 2003-04-28  Havoc Pennington  <hp@redhat.com>
10887
10888         * configure.in: add --enable-docs which by default is auto yes if
10889         doxygen and db2html found, no otherwise; but can be forced on/off
10890
10891         * doc/Makefile.am: conditionalize whether to build docs on
10892         --enable-docs
10893
10894 2003-04-28  Havoc Pennington  <hp@redhat.com>
10895
10896         * configure.in: 0.10
10897
10898         * NEWS: update
10899
10900         * bus/system.conf.in: add <includedir>system.d</includedir>
10901
10902         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10903         username was provided but not uid
10904
10905         * bus/config-parser.c (struct BusConfigParser): keep track of
10906         whether the parser is toplevel or was included; change some
10907         of the error handling if it's included.
10908
10909 2003-04-27  Havoc Pennington  <hp@pobox.com>
10910
10911         Unbreak my code...
10912
10913         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10914         report correct status if we finish processing authentication
10915         inside this function.
10916
10917         * bus/activation.c (try_send_activation_failure): use
10918         bus_transaction_send_error_reply
10919
10920         * bus/connection.c (bus_connection_get_groups): return an error
10921         explaining the problem
10922
10923         * bus/bus.c (bus_context_check_security_policy): implement
10924         restriction here that inactive connections can only send the
10925         hello message. Also, allow bus driver to send anything to
10926         any recipient.
10927
10928         * bus/connection.c (bus_connection_complete): create the
10929         BusClientPolicy here instead of on-demand.
10930         (bus_connection_get_policy): don't return an error
10931
10932         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10933         sender field in message being replied to
10934
10935         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10936         causing it to return FALSE always
10937
10938         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10939         we checked sender rather than destination
10940
10941 2003-04-25  Havoc Pennington  <hp@redhat.com>
10942
10943         test suite is slightly hosed at the moment, will fix soon
10944
10945         * bus/connection.c (bus_connections_expire_incomplete): fix to
10946         properly disable the timeout when required
10947         (bus_connection_set_name): check whether we can remove incomplete
10948         connections timeout after we complete each connection.
10949
10950         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10951         probably still broken.
10952
10953         * bus/services.c (bus_registry_acquire_service): implement max
10954         number of services owned, and honor allow/deny rules on which
10955         services a connection can own.
10956
10957         * bus/connection.c (bus_connection_get_policy): report errors here
10958
10959         * bus/activation.c: implement limit on number of pending
10960         activations
10961
10962 2003-04-25  Havoc Pennington  <hp@redhat.com>
10963
10964         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10965         where we used >= 0 instead of != DBUS_UID_UNSET.
10966
10967 2003-04-25  Havoc Pennington  <hp@redhat.com>
10968
10969         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10970         were toggled without add/remove, fix from Anders Gustafsson
10971
10972 2003-04-24  Havoc Pennington  <hp@redhat.com>
10973
10974         * test/data/valid-config-files/basic.conf: add <limit> tags to
10975         this test
10976
10977         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10978         <limit> tag in configuration file.
10979
10980 2003-04-24  Havoc Pennington  <hp@redhat.com>
10981
10982         * bus/dispatch.c: somehow missed some name_is
10983
10984         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10985         (_dbus_timeout_set_interval): new
10986
10987         * bus/connection.c (bus_connections_setup_connection): record time
10988         when each connection is first set up, and expire them after the
10989         auth timeout passes.
10990
10991 2003-04-24  Havoc Pennington  <hp@redhat.com>
10992
10993         * dbus/dbus-message.c (dbus_message_name_is): rename
10994         (dbus_message_service_is): rename
10995         (dbus_message_sender_is): rename
10996         (dbus_message_get_service): rename
10997
10998 2003-04-24  Havoc Pennington  <hp@redhat.com>
10999
11000         * configure.in: add --enable-checks
11001
11002         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11003
11004         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11005         to use thread locks.
11006         (_dbus_connection_handler_destroyed_locked): move some private
11007         functions into proper docs group
11008
11009         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11010         _dbus_return_val_if_fail
11011
11012         Throughout: use dbus_return_if_fail
11013
11014 2003-04-23  James Willcox  <jwillcox@gnome.org>
11015
11016         * glib/dbus-glib.h:
11017         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11018         (dbus_connection_setup_with_g_main),
11019         (dbus_server_setup_with_g_main):
11020         * glib/test-dbus-glib.c: (main):
11021         * glib/test-thread-client.c: (main):
11022         * glib/test-thread-server.c: (new_connection_callback), (main):
11023         * tools/dbus-monitor.c: (main):
11024
11025         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11026         and dbus_server_setup_with_g_main().
11027
11028 2003-04-20  Havoc Pennington  <hp@pobox.com>
11029
11030         * doc/dbus-specification.sgml: document the restrictions on
11031         message and service names
11032
11033 2003-04-22  Havoc Pennington  <hp@redhat.com>
11034
11035         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11036         support, and do some code cleanups to share more code and
11037         speed up array marshal/demarshal.
11038
11039         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11040
11041         * configure.in: generate dbus-arch-deps.h
11042
11043         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11044         64-bit typecodes
11045
11046 2003-04-22  Havoc Pennington  <hp@redhat.com>
11047
11048         * test/data/valid-messages/opposite-endian.message: fix test
11049         to use proper type for rply field
11050
11051         * test/data/invalid-messages: add tests for below validation
11052
11053         * dbus/dbus-message.c (decode_header_data): validate field types,
11054         and validate that named fields are valid names
11055         (decode_name_field): consider messages in the
11056         org.freedesktop.Local. namespace to be invalid.
11057
11058         * dbus/dbus-string.c (_dbus_string_validate_name): new
11059
11060 2003-04-19  Havoc Pennington  <hp@pobox.com>
11061
11062         * bus/driver.c (bus_driver_handle_hello): check limits and
11063         return an error if they are exceeded.
11064
11065         * bus/connection.c: maintain separate lists of active and inactive
11066         connections, and a count of each. Maintain count of completed
11067         connections per user. Implement code to check connection limits.
11068
11069         * dbus/dbus-list.c (_dbus_list_unlink): export
11070
11071         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11072         number of bytes in the message queue for a connection
11073
11074 2003-04-18  Havoc Pennington  <hp@pobox.com>
11075
11076         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11077
11078         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11079         memleaks
11080
11081         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11082         on realloc be sure to update the pointer in the keyring
11083
11084         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11085         offset to avoid writing to unallocated memory
11086
11087         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11088         try the next mechanism, so we properly handle OOM
11089
11090         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11091         on OOM.
11092         (_dbus_keyring_new): fix OOM bug
11093         (_dbus_keyring_new_homedir): always set error; impose a maximum
11094         number of keys we'll load from the file, mostly to speed up the
11095         test suite and make its OOM checks more useful, but also for
11096         general sanity.
11097
11098         * dbus/dbus-auth.c (process_error_server): reject authentication
11099         if we get an error from the client
11100         (process_cancel): on cancel, send REJECTED, per the spec
11101         (process_error_client): send CANCEL if we get an error from the
11102         server.
11103
11104 2003-04-18  Havoc Pennington  <hp@pobox.com>
11105
11106         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11107         debug spew
11108
11109         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11110         handling problem
11111
11112         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11113         about DBUS_TEST_HOMEDIR once
11114
11115         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11116         the environment
11117
11118         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11119         config file so we test the right thing
11120
11121         Throughout: assorted docs improvements
11122
11123 2003-04-18  Havoc Pennington  <hp@pobox.com>
11124
11125         * glib/dbus-gmain.c: adapt to watch changes
11126
11127         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11128
11129         * dbus/dbus-server.h: remove dbus_server_handle_watch
11130
11131         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11132
11133         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11134         like DBusTimeout, so we don't need dbus_connection_handle_watch
11135         etc.
11136
11137 2003-04-17  Havoc Pennington  <hp@redhat.com>
11138
11139         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11140         database usage so it all goes via the DBusUserDatabase cache.
11141
11142 2003-04-17  Havoc Pennington  <hp@redhat.com>
11143
11144         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11145         there was an OOM watch we skipped, we always return TRUE so we
11146         iterate again to have a look at it again. Fixes test suite hang.
11147         Code rearrangement also lets us lose some memset and only iterate
11148         over callbacks once.
11149
11150         * bus/driver.c (bus_driver_handle_message): sense of test for
11151         reply was backward
11152
11153 2003-04-16  Havoc Pennington  <hp@pobox.com>
11154
11155         * doc/dbus-specification.sgml: make spec say serials are unsigned
11156
11157         * dbus/dbus-message.h: change message serials to unsigned
11158
11159         * dbus/dbus-connection.c: adapt to message serials being unsigned
11160
11161 2003-04-15  Havoc Pennington  <hp@pobox.com>
11162
11163         * bus/bus.c: create and keep around a shared DBusUserDatabase
11164         object.
11165
11166         * bus/connection.c (bus_connection_get_groups): don't cache
11167         groups for user in the connection object, since user database
11168         object now does that.
11169
11170 2003-04-16  Havoc Pennington  <hp@redhat.com>
11171
11172         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11173         list of size counters
11174         (_dbus_message_loader_putback_message_link): put back a popped link
11175
11176         * dbus/dbus-connection.c
11177         (dbus_connection_set_max_live_messages_size): rename
11178         max_received_size
11179         (dbus_connection_get_outgoing_size): get size of outgoing
11180         queue
11181         (_dbus_connection_set_connection_counter): remove this cruft
11182
11183 2003-04-14  Havoc Pennington  <hp@redhat.com>
11184
11185         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11186         caching, but at some point we might want to be able to use a
11187         different database.
11188
11189         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11190         SHA1 conf file to test the sha1 auth mechanism, since the regular
11191         test always uses EXTERNAL when available.
11192
11193         * configure.in,
11194         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11195         add conf file that requires use of sha1 auth
11196
11197 2003-04-13  Havoc Pennington  <hp@pobox.com>
11198
11199         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11200         from Philip Blundell to send messages and monitor them.
11201
11202 2003-04-13  Havoc Pennington  <hp@pobox.com>
11203
11204         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11205         callbacks
11206
11207         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11208         users
11209
11210         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11211         fix to only recover unused bytes if we're already authenticated
11212         (_dbus_transport_get_is_authenticated): fix to still mark us
11213         authenticated if there are unused bytes.
11214
11215         * bus/dispatch.c: implement security policy checking
11216
11217         * bus/connection.c (bus_transaction_send_from_driver): new
11218
11219         * bus/bus.c (bus_context_check_security_policy): new
11220
11221         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11222         now we just set the DBusError and it gets converted to an error
11223         reply.
11224
11225         * bus/connection.c (allow_user_function): enable code using actual
11226         data from the config file
11227
11228         * bus/policy.c (list_allows_user): handle wildcard rules for
11229         user/group connection perms
11230
11231 2003-04-13  Havoc Pennington  <hp@pobox.com>
11232
11233         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11234
11235         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11236
11237         * bus/policy.c (bus_policy_append_mandatory_rule)
11238         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11239         (bus_policy_append_group_rule): new functions
11240
11241 2003-04-12  Havoc Pennington  <hp@pobox.com>
11242
11243         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11244
11245         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11246         the pid/gid/uid, just for paranoia.
11247
11248         * test/break-loader.c (randomly_do_n_things): find a byte
11249         containing a type code, and randomly change it to a different
11250         type code.
11251
11252 2003-04-12  Havoc Pennington  <hp@pobox.com>
11253
11254         * bus/policy.h: change BusPolicy to be the thing from the config
11255         file, and rename old BusPolicy to BusClientPolicy
11256
11257         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11258         match change in how policy works
11259
11260         * dbus/dbus-internals.h: mark assert_not_reached as
11261         __attribute((noreturn))__
11262
11263 2003-04-11  Havoc Pennington  <hp@redhat.com>
11264
11265         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11266         the broadcast service. Use boolean return for ServiceExists.
11267
11268 2003-04-11  Havoc Pennington  <hp@redhat.com>
11269
11270         * configure.in: add another directory to look for qt in.
11271
11272 2003-04-11  Havoc Pennington  <hp@redhat.com>
11273
11274         * AUTHORS: add Colin Walters
11275
11276 2003-04-11  Havoc Pennington  <hp@redhat.com>
11277
11278         * NEWS: update
11279
11280         * configure.in: 0.9
11281
11282 2003-04-11  Havoc Pennington  <hp@redhat.com>
11283
11284         * bus/messagebus.in: remove pid file when stopping the
11285         message bus, since the bus won't have privileges to remove it
11286         itself.
11287
11288 2003-04-11  Havoc Pennington  <hp@redhat.com>
11289
11290         * bus/bus.c (bus_context_new): move credentials change after
11291         creating pidfile
11292
11293 2003-04-11  Havoc Pennington  <hp@pobox.com>
11294
11295         * test/decode-gcov.c: add "below average functions" to the
11296         coverage report, and change how some of the code works.
11297
11298         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11299         not in the coverage stats.
11300
11301         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11302         couple places so running the test suite doesn't result in megaspam.
11303
11304 2003-04-11  Havoc Pennington  <hp@pobox.com>
11305
11306         * bus/dispatch.c (check_existent_service_activation): accept a no
11307         memory error in a place we didn't before
11308
11309         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11310         in case the first one failed," since the test suite is less
11311         broken now.
11312
11313 2003-04-10  Havoc Pennington  <hp@pobox.com>
11314
11315         * bus/dispatch.c (check_segfault_service_activation): add test
11316         for launching an executable that just crashes.
11317
11318         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11319         don't leave a million cores. We'll see how portable this is.
11320
11321 2003-04-10  Havoc Pennington  <hp@pobox.com>
11322
11323         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11324         the possible parent failures before we fork, so that we don't
11325         fail to create a babysitter after creating the child.
11326
11327         * bus/activation.c (bus_activation_activate_service): kill child
11328         if we don't successfully complete the activation.
11329
11330 2003-04-10  Havoc Pennington  <hp@redhat.com>
11331
11332         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11333         the connection if it's disconnected
11334
11335         * bus/activation.c (bus_activation_service_created): use new
11336         transaction features to roll back removal of pending activation if
11337         we don't successfully create the service after all. Don't remove
11338         pending activation if the function fails.
11339
11340         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11341         (_dbus_list_insert_after_link): new code to facilitate
11342         services.c fixes
11343
11344         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11345         new functionality, so we can preallocate the ability to insert
11346         into a hash table.
11347
11348         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11349         allowing us to put custom hooks in a transaction to be used for
11350         cancelling said transaction
11351
11352         * doc/dbus-specification.sgml: add some discussion of secondary
11353         service owners, and disallow zero-length service names
11354
11355         * bus/services.c (bus_registry_acquire_service): new function,
11356         splits out part of bus_driver_handle_acquire_service() and fixes
11357         a bug where we didn't remove the service doing the acquiring
11358         from the secondary queue if we failed to remove the current owner
11359         from the front of the queue.
11360
11361 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11362
11363         * doc/dbus-specification.sgml:
11364         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11365
11366 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11367
11368         * bus/.cvsignore:
11369         * glib/.cvsignore:
11370         * test/.cvsignore:
11371         Added files to cvsignore
11372
11373         * dbus/dbus-message.h:
11374         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11375         Make get_named() take two out argument and return a boolean.
11376         (dbus_message_iter_get_args_valist):
11377         Update usage of get_named().
11378         (dbus_message_iter_append_byte):
11379         Fix typo
11380         (dbus_message_iter_append_named)
11381         Fix typo
11382         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11383         More tests.
11384
11385 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11386
11387         * dbus/dbus-marshal.[ch]:
11388         Add array_type_pos argument to _dbus_marshal_validate_arg.
11389         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11390
11391         * dbus/dbus-message.[ch]:
11392         Multi-dimensional arrays have full type specification in the
11393         outermost array. Iter code re-arranged to handle this.
11394         Added some more iter tests.
11395
11396         * doc/dbus-specification.sgml:
11397         Add me to authors.
11398         Remove old FIXME.
11399         Update new array encoding description.
11400         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11401
11402         * test/data/invalid-messages/array-with-mixed-types.message:
11403         * test/data/valid-messages/array-of-array-of-uint32.message:
11404         Change to the new array format.
11405
11406         * test/data/invalid-messages/too-short-dict.message:
11407         Fix bug in test.
11408
11409         * test/data/valid-messages/recursive-types.message:
11410         Fix up and extend test.
11411
11412 2003-04-10  Havoc Pennington  <hp@pobox.com>
11413
11414         * bus/dispatch.c: lots of fixes
11415
11416         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11417         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11418         that was crack, broke the test service.
11419
11420         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11421         handling to avoid piling up errors if we get a failure on the
11422         first address.
11423
11424         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11425         pid in assertion failures.
11426
11427         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11428         to some fixed size of file descriptor array. Don't return TRUE
11429         anytime a timeout exists, that led to lots of busy loop silliness
11430         in the tests.
11431
11432 2003-04-09  Havoc Pennington  <hp@redhat.com>
11433
11434         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11435         I'd checked this in earlier but hadn't.
11436
11437 2003-04-09  Havoc Pennington  <hp@redhat.com>
11438
11439         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11440         the activation test (man this is getting old!)
11441
11442 2003-04-09  Havoc Pennington  <hp@redhat.com>
11443
11444         * test/test-utils.c: use dispatch status function to fix this up
11445
11446         * bus/connection.c (connection_watch_callback): don't dispatch
11447         from here
11448         (connection_timeout_callback): don't dispatch from here
11449         (bus_connections_setup_connection): set the dispatch status function
11450         (bus_connection_disconnected): unset it
11451
11452         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11453         used to add a connection to be dispatched
11454         (_dbus_loop_iterate): do the dispatching at the end of each
11455         iteration
11456
11457         * dbus/dbus-connection.c
11458         (dbus_connection_set_dispatch_status_function): new function
11459         allowing us to fix up main loop usage
11460         (_dbus_connection_last_unref): free all the various function
11461         user data
11462         (dbus_connection_dispatch): call the DispatchStatusFunction
11463         whenever this function returns
11464         (dbus_connection_handle_watch): call DispatchStatusFunction
11465         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11466         (reply_handler_timeout): call DispatchStatusFunction
11467         (dbus_connection_flush): call DispatchStatusFunction
11468
11469 2003-04-09  Havoc Pennington  <hp@redhat.com>
11470
11471         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11472         a memory leak
11473
11474         * bus/dispatch.c (check_service_activated): fix bug in test
11475
11476         * dbus/dbus-mainloop.c (check_timeout): fix this up
11477
11478         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11479         verbose output so we can sort out output from different processes,
11480         e.g. in the activation case.
11481
11482 2003-04-08  Colin Walters  <walters@gnu.org>
11483
11484         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11485         the pid file.
11486         (bus_context_new): Set it.
11487         (bus_context_unref): Use it to delete the pid file.
11488
11489 2003-04-08  Havoc Pennington  <hp@redhat.com>
11490
11491         * test/data/invalid-messages/array-with-mixed-types.message:
11492         regression test that fails for the moment
11493
11494         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11495         tests for convenience
11496
11497         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11498         array of nil, it broke things.
11499
11500         * test/data/invalid-messages/array-of-nil.message: regression test
11501
11502         * test/data/valid-messages/array-of-array-of-uint32.message:
11503         happened to write this so added it to suite
11504
11505 2003-04-08  Havoc Pennington  <hp@redhat.com>
11506
11507         * bus/driver.c (bus_driver_handle_acquire_service): init
11508         retval/reply before checking name
11509
11510         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11511         recursion depth argument
11512
11513         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11514         in the public struct for future extension
11515
11516         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11517         typo
11518
11519         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11520         message
11521
11522         * doc/dbus-specification.sgml: fix typo
11523
11524 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11525
11526         Implemented recursive types, named types and new-style iters
11527
11528         * bus/driver.c:
11529         * glib/test-thread-client.c: (thread_func):
11530         * glib/test-thread-server.c: (handle_test_message):
11531         * test/test-service.c: (handle_echo):
11532         Update to new api
11533
11534         * dbus/Makefile.am:
11535         * dbus/dbus-dict.c:
11536         * dbus/dbus-dict.h:
11537         * dbus/dbus.h
11538         Remove DBusDict
11539
11540         * dbus/dbus-internals.c: (_dbus_type_to_string):
11541         Update for new types.
11542
11543         * dbus/dbus-marshal.[ch]:
11544         Implement recursive types and the new marshalling format.
11545         Remove hardcoded dict marshalling.
11546         Marshal named types.
11547
11548         * dbus/dbus-message-builder.c:
11549         Add BYTE_ARRAY.
11550         Remove references to old types
11551
11552         * dbus/dbus-message.[ch]:
11553         New non-refcounted iter API that supports recursive iters.
11554         Use iters for appending, including support for recursive
11555         iters.
11556         Add byte and named type support.
11557         Update everything to new marshalling formats.
11558         Add tests for new API.
11559
11560         * dbus/dbus-protocol.h:
11561         Remove old array types.
11562         Add types: BYTE, ARRAY, DICT, NAMED
11563
11564         * dbus/dbus-string.c:
11565         * dbus/dbus-sysdeps.c:
11566         Make parse_double locale safe.
11567
11568         * dbus/dbus-test-main.c:
11569         Call setlocale.
11570
11571         * dbus/dbus-test.c:
11572         Kill dict test
11573
11574         * doc/dbus-specification.sgml:
11575         Update spec
11576
11577         * test/data/incomplete-messages/missing-body.message:
11578         * test/data/invalid-messages/bad-boolean.message:
11579         * test/data/invalid-messages/bad-boolean-array.message:
11580         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11581         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11582         * test/data/invalid-messages/too-short-dict.message:
11583         * test/data/valid-messages/dict-simple.message:
11584         * test/data/valid-messages/dict.message:
11585         * test/data/valid-messages/emptiness.message:
11586         * test/data/valid-messages/lots-of-arguments.message:
11587         * test/data/valid-messages/no-padding.message:
11588         * test/data/valid-messages/recursive-types.message:
11589         Add missing NAME fields
11590         Fix up dicts & arrays
11591
11592         * test/data/invalid-messages/dict-with-nil-value.message:
11593         Removed, this is not invalid anymore.
11594
11595         * test/data/valid-messages/recursive-types.message:
11596         Add new test for deeply recursive types.
11597
11598 2003-04-07  Havoc Pennington  <hp@pobox.com>
11599
11600         * bus/driver.c (bus_driver_handle_acquire_service): return an
11601         error if you try to acquire a service that starts with ':'
11602
11603 2003-04-07  Havoc Pennington  <hp@redhat.com>
11604
11605         * doc/dbus-specification.sgml: require that base service names
11606         start with ':' and that the base service is created/deleted
11607         as first and last things a connection does on the bus
11608
11609         * bus/dispatch.c (check_existent_service_activation): lots more
11610         work on the activation test; it doesn't fully pass yet...
11611
11612         * test/test-service.c (main): fix so we don't memleak the
11613         connection to the message bus
11614         (filter_func): accept a message asking us to exit
11615
11616 2003-04-06  Havoc Pennington  <hp@pobox.com>
11617
11618         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11619         from Colin Walters
11620
11621         * configure.in: fixes to Qt detection from Colin Walters
11622
11623         * doc/Makefile.am: Only remove generated docbook dirs if they
11624         exist, from Colin Walters
11625
11626         * dbus/dbus-bus.c: change how we set well-known connections to
11627         NULL, so that it works if a single connection is stored in
11628         two well-known array slots.
11629
11630         * test/Makefile.am: remove a lot of stuff that isn't immediately
11631         useful, it's in CVS history if we want it.
11632
11633         * test/test-service.c: use dbus-mainloop instead of that
11634         watch.[hc] crack
11635
11636 2003-04-06  Havoc Pennington  <hp@pobox.com>
11637
11638         * dbus/Makefile.am: split lists of sources into stuff that goes in
11639         the library, util functions that go in the lib and are also used
11640         elsewhere, and util functions that are used in tests/daemon but
11641         don't go in the lib.
11642
11643         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11644         here so it can be used in test binaries also
11645
11646 2003-04-06  Havoc Pennington  <hp@pobox.com>
11647
11648         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11649         here in the parent process, so we can return an error if it
11650         fails. Also, move some of the code into the child so the parent
11651         is less hosed if we fail midway through.
11652
11653         * bus/bus.c (bus_context_new): move pidfile detection further up
11654         in the function, before we start overwriting sockets and such.
11655
11656         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11657
11658         * configure.in: add --with-system-pid-file and --with-system-socket
11659
11660 2003-04-06  Colin Walters  <walters@verbum.org>
11661
11662         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11663
11664         * bus/system.conf.in: Declare a pidfile.
11665
11666         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11667         create one (if appropriate).
11668
11669         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11670         (struct BusConfigParser) [pidfile]: New.
11671         (element_type_to_name, merge_included, start_busconfig_child)
11672         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11673         (bus_config_parser_unref): Free it.
11674         (bus_config_parser_get_pidfile): New function.
11675
11676         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11677
11678         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11679
11680         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11681
11682         * dbus/dbus-sysdeps.h: Prototype it.
11683
11684 2003-04-06  Havoc Pennington  <hp@pobox.com>
11685
11686         * bus/bus.c (bus_context_new): print the address in here, rather
11687         than in main(), because we need to do it before forking the daemon
11688
11689         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11690         on the service nonexistent error
11691
11692         * bus/driver.c (bus_driver_handle_acquire_service): set the
11693         sender on the AcquireService reply
11694
11695         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11696         server also listen on a UNIX socket so services can connect to it.
11697
11698 2003-04-06  Havoc Pennington  <hp@pobox.com>
11699
11700         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11701         so it detects deadlocks and also we actually init threads when
11702         debugging.
11703
11704 2003-04-06  Havoc Pennington  <hp@pobox.com>
11705
11706         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11707         save the domain socket name, and unlink it when we disconnect the
11708         server. Means that at least when we exit normally, we won't leave
11709         a bunch of junk in /tmp
11710
11711         * dbus/dbus-transport-unix.c
11712         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11713         memory management). (I was making a real change here but then
11714         didn't)
11715
11716 2003-04-06  Havoc Pennington  <hp@pobox.com>
11717
11718         * bus/bus.c (bus_context_new): fix wrong handling of
11719         server_data_slot_unref() in the error case.
11720
11721         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11722         "(condition) != 0" to _dbus_real_assert so that
11723         "_dbus_assert (pointer)" doesn't cause a warning
11724
11725         * bus/main.c (main): accept --print-address option to print out
11726         the message bus address
11727
11728         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11729
11730         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11731         "tmpdir" option to unix: address on client side
11732
11733         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11734         to unix: address
11735
11736         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11737         we can use to create sockets in the test suite.
11738
11739         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11740         cleanly. To be used for testing.
11741
11742         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11743
11744         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11745
11746         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11747         handle trying to call this when there's no servers active
11748
11749 2003-04-05  Havoc Pennington  <hp@pobox.com>
11750
11751         * NEWS: update
11752
11753         * configure.in: 0.8
11754
11755 2003-04-05  Havoc Pennington  <hp@pobox.com>
11756
11757         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11758         crash on startup. Need to get "try starting the daemon"
11759         in the test suite I guess. ;-)
11760
11761         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11762         tracked the number of open connections; it's better done in
11763         application-specific code as you want it to span all servers etc.
11764
11765 2003-04-05  Havoc Pennington  <hp@pobox.com>
11766
11767         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11768         patch from Colin Walters
11769
11770 2003-04-05  Havoc Pennington  <hp@pobox.com>
11771
11772         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11773         reality; in fact multiple mechanisms are allowed.
11774
11775         * dbus/dbus-internals.c (_dbus_real_assert)
11776         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11777         _dbus_assert_not_reached() into functions, so that they don't show
11778         up in basic block counts for test coverage, and don't use up as
11779         much disk space. Does mean slower execution speed though, so
11780         assumes --disable-asserts is the normal production case.
11781
11782 2003-04-05  Havoc Pennington  <hp@pobox.com>
11783
11784         * test/Makefile.am (dist-hook): also dist *.in files
11785
11786         * NEWS: update
11787
11788         * configure.in: 0.7
11789
11790 2003-04-05  Havoc Pennington  <hp@pobox.com>
11791
11792         * dbus/dbus-string.c: docs warning
11793
11794         * dbus/dbus-spawn.c: missing docs
11795
11796         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11797
11798 2003-04-05  Havoc Pennington  <hp@pobox.com>
11799
11800         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11801         magic from GLib
11802
11803         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11804         to -1 once we've reaped the babysitter
11805         (_dbus_babysitter_handle_watch): do as much work as we can, not
11806         just one go of it
11807
11808         * bus/activation.c: add code using DBusBabysitter so that we
11809         handle it when a service fails to start up properly.
11810         (bus_activation_service_created): don't remove the activation
11811         entries as we go, just let them get removed when we free the pending
11812         activation. Unref reply messages after sending them.
11813
11814 2003-04-05  Havoc Pennington  <hp@pobox.com>
11815
11816         * test/decode-gcov.c (main): print per-directory stats in the report
11817
11818         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11819
11820 2003-04-05  Havoc Pennington  <hp@pobox.com>
11821
11822         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11823
11824         * test/decode-gcov.c: hack up a little program to suck data
11825         out of gcov files. Yes this is sort of silly.
11826
11827         * configure.in: define something in config.h and do an
11828         AM_CONDITIONAL when gcov is enabled
11829
11830 2003-04-04  Havoc Pennington  <hp@redhat.com>
11831
11832         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11833         return a "babysitter" object that is used to monitor the status of
11834         the spawned process and reap it when required.
11835
11836         * test/test-segfault.c, test/test-exit.c,
11837         test/test-sleep-forever.c: binaries that do various lame things,
11838         used in the test suite.
11839
11840         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11841
11842 2003-04-03  Havoc Pennington  <hp@pobox.com>
11843
11844         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11845         in preparation for modifying it, dbus-sysdeps is getting
11846         a bit unmanageable.
11847
11848 2003-04-03  Havoc Pennington  <hp@redhat.com>
11849
11850         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11851         have multiple ones
11852
11853         * bus/*.[hc]: adapt to mainloop change
11854
11855 2003-04-03  Havoc Pennington  <hp@redhat.com>
11856
11857         * bus/activation.c (load_directory): fix up memleaks
11858         (bus_activation_entry_free): free the entry
11859
11860         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11861         we get one from the message bus; fix memleaks.
11862
11863         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11864
11865 2003-04-03  Havoc Pennington  <hp@pobox.com>
11866
11867         * bus/config-parser.c (bus_config_parser_unref): free
11868         list of mechanisms, bug discovered by test suite enhancements
11869         (putting system.conf and session.conf into suite)
11870
11871         * test/Makefile.am, test/test-service.c: add placeholder for a
11872         test service that we'll activate as part of test suite. Doesn't
11873         do anything yet.
11874
11875         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11876         setting NULL value, and use system malloc not dbus_malloc()
11877         when we have unavoidable memleakage.
11878
11879         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11880         didn't work, and support DBUS_BUS_ACTIVATION.
11881
11882         * bus/activation.c (child_setup): pass our well-known bus type to
11883         the child
11884
11885         * bus/config-parser.c: support <type> to specify well-known type
11886
11887         * doc/dbus-specification.sgml: document the env variables to
11888         locate well-known buses and find service activator
11889
11890 2003-04-02  Havoc Pennington  <hp@redhat.com>
11891
11892         * test/Makefile.am (all-local): add a rule to copy tests to
11893         builddir, so we can have generated tests. Use this to remove the
11894         silly hack for testing system.conf and session.conf. Will use this
11895         shortly to generate .service files pointing to test binaries.
11896
11897 2003-04-02  Havoc Pennington  <hp@redhat.com>
11898
11899         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11900         current alloc and needed new length, not max of the doubled
11901         allocation and needed new length. Also, when building tests,
11902         don't do the double-allocation stuff, just realloc every time.
11903
11904 2003-04-02  Havoc Pennington  <hp@redhat.com>
11905
11906         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11907         in error messages
11908         (_dbus_string_get_dirname): new
11909         (_dbus_sysdeps_test): new
11910         (_dbus_directory_open): include dirnames in error messages
11911
11912         * bus/config-parser.c: interpret <include> and <includedir> and
11913         <servicedir> relative to config file location if the given
11914         filename is not absolute.
11915
11916         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11917
11918 2003-04-02  Havoc Pennington  <hp@redhat.com>
11919
11920         * bus/connection.c (bus_transaction_send_error_reply): set sender
11921         service for the error, and unref the reply on success
11922
11923         * bus/activation.c: convert to use BusTransaction so OOM can be
11924         handled correctly
11925         (bus_activation_service_created): set sender of the message
11926
11927 2003-04-01  Havoc Pennington  <hp@redhat.com>
11928
11929         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11930         <includedir> (at least mostly)
11931
11932         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11933         first, then the user ID
11934
11935 2003-04-01  Havoc Pennington  <hp@pobox.com>
11936
11937         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11938         function
11939
11940         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11941
11942         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11943
11944         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11945         socket 0777, and unlink any existing socket.
11946
11947         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11948         the configuration file so specifies; set up auth mechanism
11949         restrictions
11950
11951         * bus/config-parser.c (bus_config_parser_content): add support
11952         for <fork> option and fill in code for <auth>
11953
11954         * bus/system.conf.in: add <fork/> to default configuration,
11955         and limit auth mechanisms to EXTERNAL
11956
11957         * doc/config-file.txt (Elements): add <fork>
11958
11959         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11960         (_dbus_change_identity): new function
11961
11962 2003-03-31  Havoc Pennington  <hp@redhat.com>
11963
11964         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11965         (_dbus_listen_unix_socket): fix off-by-one error in null
11966         termination spotted by Nalin
11967
11968 2003-03-31  Havoc Pennington  <hp@redhat.com>
11969
11970         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11971         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11972         having a real home directory available.
11973
11974 2003-03-31  Havoc Pennington  <hp@redhat.com>
11975
11976         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11977
11978         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11979
11980         * configure.in: add support for specifying a style of init script
11981         to install
11982
11983 2003-03-31  Havoc Pennington  <hp@redhat.com>
11984
11985         Fix some annoying DBusString API and fix all affected code.
11986
11987         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11988         max_length argument
11989         (_dbus_string_get_data): change to return string instead of using
11990         an out param
11991         (_dbus_string_get_const_data): ditto
11992         (_dbus_string_get_data_len): ditto
11993         (_dbus_string_get_const_data_len): ditto
11994
11995 2003-03-31  Havoc Pennington  <hp@redhat.com>
11996
11997         * bus/main.c (main): fix up the command line arguments to be nicer
11998
11999 2003-03-31  Havoc Pennington  <hp@redhat.com>
12000
12001         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12002         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12003         final location that lands in the config file
12004
12005         * bus/config-loader-expat.c (bus_config_load): fix type of
12006         XML_Parser variable
12007
12008         * doc/TODO: remove TODO item for dbus_bus_get()
12009
12010         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12011
12012 2003-03-31  Havoc Pennington  <hp@pobox.com>
12013
12014         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12015         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12016         argument since they are always client side
12017
12018         * dbus/dbus-server.c (dbus_server_get_address): new function
12019
12020         * bus/main.c (main): take the configuration file as an argument.
12021
12022         * test/data/valid-config-files/debug-allow-all.conf: new file to
12023         use with dispatch.c tests for example
12024
12025         * bus/test-main.c (main): require test data dir
12026
12027         * bus/bus.c (bus_context_new): change this to take a
12028         configuration file name as argument
12029
12030         * doc/config-file.txt (Elements): add <servicedir>
12031
12032         * bus/system.conf, bus/session.conf: new files
12033
12034         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12035         well-known socket if none set
12036
12037         * configure.in: create system.conf and session.conf
12038
12039 2003-03-30  Havoc Pennington  <hp@pobox.com>
12040
12041         * bus/config-parser.c: hacking
12042
12043         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12044         to shut down, since it could cause weirdness with the DBusList
12045         lock
12046
12047         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12048         link-oriented stack routines
12049         (alloc_link): free the mempool if the first alloc from it fails
12050
12051         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12052
12053         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12054         from GLib
12055         (_dbus_string_skip_white): new
12056
12057         * doc/config-file.txt (Elements): add <includedir>
12058
12059 2003-03-28  Havoc Pennington  <hp@pobox.com>
12060
12061         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12062         (_dbus_string_copy_data): new functions
12063
12064 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12065
12066         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12067         * dbus/dbus-bus.h:
12068         Add dbus_bus_get.
12069
12070         * dbus/dbus-memory.c:
12071         Fix a doc comment.
12072
12073 2003-03-28  Havoc Pennington  <hp@pobox.com>
12074
12075         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12076         I think it may have just been superstition. Not sure.
12077
12078         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12079         failures that were not being handled.
12080
12081         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12082
12083         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12084         row that will fail on out-of-memory.
12085
12086         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12087         function for testing out-of-memory handling.
12088
12089         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12090         allocation functions, they do map exactly to the expat ones.
12091
12092 2003-03-27  Havoc Pennington  <hp@redhat.com>
12093
12094         * bus/config-loader-libxml.c (bus_config_load): add another error
12095         check
12096
12097 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12098
12099         * doc/TODO:
12100         Add note about automatic service activation.
12101
12102         * doc/dbus-specification.sgml:
12103         Rename the specification and clarify a few things.
12104
12105 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12106
12107         * Doxyfile.in:
12108         * dbus/dbus-address.c:
12109         * dbus/dbus-dict.c:
12110         * dbus/dbus-marshal.c:
12111         * dbus/dbus-server-debug-pipe.c:
12112         * dbus/dbus-transport-unix.c:
12113         Fix documentation warnings.
12114
12115 2003-03-26  Havoc Pennington  <hp@pobox.com>
12116
12117         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12118         after every test so it's quick and easy to see which leaked, and
12119         so we test multiple dbus_shutdown() calls
12120
12121         * configure.in: change configure.in XML stuff to also support
12122         expat
12123
12124         * config-loader-libxml.c: some hacking
12125
12126         * config-loader-expat.c: some hacking
12127
12128         * config-parser.c: some hacking, plus tests
12129
12130 2003-03-25  Havoc Pennington  <hp@redhat.com>
12131
12132         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12133
12134         * configure.in: add --with-xml option to specify XML library,
12135         right now only libxml is supported.
12136
12137         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12138         nonworking code between home and work, still just stubs
12139
12140 2003-03-24  Havoc Pennington  <hp@redhat.com>
12141
12142         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12143         file
12144
12145         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12146         NULL argument for "message" if the error is a well-known one,
12147         fill in a generic message in this case.
12148
12149         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12150         favor of DBusError
12151
12152         * bus/test.c (bus_test_flush_bus): add
12153
12154         * bus/policy.c (bus_policy_test): test code stub
12155
12156 2003-03-24  Havoc Pennington  <hp@pobox.com>
12157
12158         * bus/connection.c (bus_connections_setup_connection): set up
12159         the "can this user connect" function, but it always returns
12160         TRUE until we have a config file parser so we can have a config
12161         file that allows connections.
12162
12163 2003-03-23  Havoc Pennington  <hp@pobox.com>
12164
12165         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12166         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12167         the mutex, so we can check for proper memory management
12168         and OOM handling.
12169
12170         * dbus/dbus-dataslot.c: remove the mutex from
12171         DBusDataSlotAllocator and lock it manually when using it,
12172         to simplify fitting it into the global slots framework.
12173
12174         * dbus/dbus-threads.c (init_static_locks): rework how we're
12175         handling global locks so they are easily shut down.
12176
12177         * bus/policy.c (bus_policy_append_rule): fix
12178
12179         * bus/test-main.c (main): check for memleaks
12180
12181         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12182         test suite check for memleaks
12183
12184         * dbus/dbus-memory.c: add support in test mode for tracking
12185         number of outstanding blocks
12186
12187 2003-03-23  Havoc Pennington  <hp@pobox.com>
12188
12189         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12190         policies code
12191
12192         * dbus/dbus-hash.h: add ULONG hash keys
12193
12194         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12195         (_dbus_get_group_id): new function
12196
12197 2003-03-20  Havoc Pennington  <hp@redhat.com>
12198
12199         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12200         new function
12201         (dbus_connection_get_unix_user): new function
12202
12203 2003-03-20  Havoc Pennington  <hp@pobox.com>
12204
12205         * bus/connection.c (bus_connection_send_oom_error): assert that
12206         message has a sender
12207         (connection_execute_transaction): ditto
12208         (bus_connection_preallocate_oom_error): fix to set the sender, and
12209         set recipient to the destination service, not the bus driver
12210
12211         * bus/policy.c: hacking
12212
12213         * dbus/dbus-message.c (dbus_message_service_is): new function
12214         (dbus_message_sender_is): new
12215
12216 2003-03-19  Havoc Pennington  <hp@redhat.com>
12217
12218         * bus/policy.c: start sketching code for policy restrictions on
12219         what connections can do.
12220
12221 2003-03-18  Havoc Pennington  <hp@redhat.com>
12222
12223         * doc/TODO: some notes on high-level todo items. Little nitpick
12224         stuff is all in @todo, so no need to add it here.
12225
12226         * doc/config-file.txt: some notes on how config file might look
12227
12228 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12229
12230         * configure.in: 0.6
12231
12232         * NEWS: Update.
12233
12234 2003-03-17  Havoc Pennington  <hp@redhat.com>
12235
12236         * dbus/dbus-internals.h: add gcc attributes so that
12237         our printf-style functions warn on bad arguments to
12238         format
12239
12240         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12241         format bug
12242
12243         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12244         printf format bug
12245
12246 2003-03-17  Havoc Pennington  <hp@redhat.com>
12247
12248         * bus/test-main.c (main): make it print something as it runs
12249         so make check doesn't look stuck
12250
12251         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12252         from CVS, now obsolete
12253
12254 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12255
12256         * bus/dispatch.c: (bus_dispatch):
12257         Refetch the service name since it may have been reallocated
12258         when dbus_message_set_sender was called.
12259
12260         * dbus/dbus-sysdeps.c: (_dbus_accept):
12261         Add address and address length variables and use them to stop
12262         valgrind from complaining.
12263
12264 2003-03-17  Havoc Pennington  <hp@pobox.com>
12265
12266         All tests pass, no memleaks, no valgrind complaints.
12267
12268         * bus/test.c: refcount handler_slot
12269
12270         * bus/connection.c (bus_connections_new): refcount
12271         connection_data_slot
12272
12273         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12274         bytes so that auth scripts pass.
12275
12276         * bus/dispatch.c: init message_handler_slot so it gets allocated
12277         properly
12278
12279         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12280
12281         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12282         dealloc server_pipe_hash when no longer used for benefit of
12283         leak checking
12284
12285         * dbus/dbus-auth.c (process_command): memleak fix
12286
12287         * bus/dispatch.c (check_hello_message): memleak fix
12288
12289 2003-03-16  Havoc Pennington  <hp@pobox.com>
12290
12291         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12292
12293 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12294
12295         * bus/activation.c (bus_activation_activate_service): Append
12296         the pending activation entry to the list of pending activations.
12297
12298 2003-03-16  Havoc Pennington  <hp@pobox.com>
12299
12300         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12301         connections
12302
12303         * dbus/dbus-address.c (create_entry): fix OOM handling when
12304         failing to alloc entry->method
12305
12306 2003-03-16  Havoc Pennington  <hp@pobox.com>
12307
12308         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12309         the watch
12310
12311         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12312         add some missing dbus_set_result
12313
12314         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12315         alloc the DBusMessageHandler
12316
12317         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12318         the transport here, since we call this from the finalizer; it
12319         resulted in a double-finalize.
12320
12321         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12322         where we tried to use transport->connection that was NULL,
12323         happened when transport was disconnected early on due to OOM
12324
12325         * bus/*.c: adapt to handle OOM for watches/timeouts
12326
12327         * dbus/dbus-transport-unix.c: port to handle OOM during
12328         watch handling
12329
12330         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12331         reference to unused bytes instead of a copy
12332
12333         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12334         out of memory
12335
12336         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12337         FALSE on OOM
12338
12339         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12340         of memory
12341
12342 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12343
12344         * doc/dbus-specification.sgml:
12345         Document reply message for ActivateService.
12346
12347 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12348
12349         * bus/activation.c: (bus_pending_activation_entry_free),
12350         (bus_pending_activation_free), (bus_activation_new),
12351         (bus_activation_unref), (bus_activation_service_created),
12352         (bus_activation_activate_service):
12353         * bus/activation.h:
12354         * bus/bus.c: (bus_context_new):
12355         * bus/desktop-file.c: (new_section):
12356         * bus/driver.c: (bus_driver_send_service_deleted),
12357         (bus_driver_handle_activate_service):
12358         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12359         * bus/services.h:
12360         * dbus/dbus-connection.c:
12361         (dbus_connection_send_with_reply_and_block):
12362         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12363         * dbus/dbus-protocol.h:
12364         Make activation work better. Now pending activations will be queued
12365         and the daemon won't try to activate services that are already registered.
12366
12367 2003-03-16  Havoc Pennington  <hp@pobox.com>
12368
12369         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12370         connection data
12371
12372         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12373         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12374
12375 2003-03-16  Havoc Pennington  <hp@pobox.com>
12376
12377         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12378         this. always run the test suite before commit...
12379
12380         * bus/*: adapt to DBusConnection API changes
12381
12382         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12383         requires renaming stuff to avoid dbus_connection_dispatch name
12384         conflict.
12385
12386         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12387         function
12388
12389         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12390         separate from _dbus_message_loader_return_buffer()
12391
12392         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12393         this, because it's now always broken to use; the number of
12394         messages in queue vs. the number still buffered by the message
12395         loader is undefined/meaningless. Should use
12396         dbus_connection_get_dispatch_state().
12397         (dbus_connection_dispatch): rename from
12398         dbus_connection_dispatch_message
12399
12400 2003-03-16  Havoc Pennington  <hp@pobox.com>
12401
12402         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12403         implementation
12404
12405 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12406
12407         * dbus/dbus-connection.c:
12408         (dbus_connection_send_with_reply_and_block):
12409         Decrease connection->n_incoming when removing an entry
12410         from the list.
12411         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12412         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12413         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12414         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12415         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12416         (dbus_dict_get_byte_array):
12417         Handle NULL arrays and strings. Also add support for byte arrays.
12418
12419         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12420         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12421         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12422         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12423         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12424         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12425         * dbus/dbus-marshal.h:
12426         Add support for marshalling and demarshalling empty arrays and strings.
12427
12428         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12429         (dbus_message_append_string_array),
12430         (dbus_message_iter_get_boolean),
12431         (dbus_message_iter_get_boolean_array),
12432         (dbus_message_iter_get_int32_array),
12433         (dbus_message_iter_get_uint32_array),
12434         (dbus_message_iter_get_double_array),
12435         (dbus_message_iter_get_byte_array),
12436         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12437         (check_message_handling):
12438         Add support for getting empty arrays and dicts.
12439
12440         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12441         Don't do any validation at all for now, that's better than just checking
12442         for ASCII.
12443
12444         * test/data/valid-messages/emptiness.message:
12445         New test message with lots of empty arrays.
12446
12447 2003-03-16  Havoc Pennington  <hp@pobox.com>
12448
12449         * dbus/dbus-connection.c
12450         (_dbus_connection_queue_received_message_link): new function that
12451         can't fail due to OOM
12452
12453         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12454         new function pops a message together with a list link
12455         containing it.
12456
12457         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12458         message queuing functions to avoid needing to alloc memory
12459
12460 2003-03-16  Havoc Pennington  <hp@pobox.com>
12461
12462         Oops - test code was only testing failure of around 30 of the
12463         mallocs in the test path, but it turns out there are 500+
12464         mallocs. I believe this was due to misguided linking setup such
12465         that there was one copy of dbus_malloc etc. in the daemon and one
12466         in the shared lib, and only daemon mallocs were tested. In any
12467         case, the test case now tests all 500+ mallocs, and doesn't pass
12468         yet, though there are lots of fixes in this patch.
12469
12470         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12471         this so that it doesn't need to allocate memory, since it
12472         has no way of indicating failure due to OOM (and would be
12473         annoying if it did).
12474
12475         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12476
12477         * bus/Makefile.am: rearrange to create two self-contained
12478         libraries, to avoid having libraries with overlapping symbols.
12479         that was resulting in weirdness, e.g. I'm pretty sure there
12480         were two copies of global static variables.
12481
12482         * dbus/dbus-internals.c: move the malloc debug stuff to
12483         dbus-memory.c
12484
12485         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12486         empty.
12487
12488         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12489
12490         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12491         on failure.
12492
12493         * bus/dispatch.c (bus_dispatch_add_connection): free
12494         message_handler_slot when no longer using it, so
12495         memory leak checkers are happy for the test suite.
12496
12497         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12498
12499         * bus/bus.c (new_connection_callback): disconnect in here if
12500         bus_connections_setup_connection fails.
12501
12502         * bus/connection.c (bus_connections_unref): fix to free the
12503         connections
12504         (bus_connections_setup_connection): if this fails, don't
12505         disconnect the connection, just be sure there are no side
12506         effects.
12507
12508         * dbus/dbus-string.c (undo_alignment): unbreak this
12509
12510         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12511         leaking
12512         (_dbus_auth_new): fix the order in which we free strings
12513         on OOM failure
12514
12515         * bus/connection.c (bus_connection_disconnected): fix to
12516         not send ServiceDeleted multiple times in case of memory
12517         allocation failure
12518
12519         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12520         get the base service name
12521         (dbus_bus_register_client): don't return base service name,
12522         instead store it on the DBusConnection and have an accessor
12523         function for it.
12524         (dbus_bus_register_client): rename dbus_bus_register()
12525
12526         * bus/dispatch.c (check_hello_message): verify that other
12527         connections on the bus also got the correct results, not
12528         just the one sending hello
12529
12530 2003-03-15  Havoc Pennington  <hp@pobox.com>
12531
12532         Make it pass the Hello handling test including all OOM codepaths.
12533         Now to do other messages...
12534
12535         * bus/services.c (bus_service_remove_owner): fix crash when
12536         removing owner from an empty list of owners
12537         (bus_registry_ensure): don't leave service in the list of
12538         a connection's owned services if we fail to put the service
12539         in the hash table.
12540
12541         * bus/connection.c (bus_connection_preallocate_oom_error): set
12542         error flag on the OOM error.
12543
12544         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12545         handle _dbus_transport_set_connection failure
12546
12547         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12548         to create watches up front and simply enable/disable them as
12549         needed.
12550         (unix_connection_set): this can now fail on OOM
12551
12552         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12553         of enabling/disabling a watch or timeout.
12554
12555         * bus/loop.c (bus_loop_iterate): don't touch disabled
12556         watches/timeouts
12557
12558         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12559
12560 2003-03-15  Havoc Pennington  <hp@pobox.com>
12561
12562         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12563         write useful test code, after all that futzing around ;-)
12564
12565         Test does not yet pass because we can't handle OOM in
12566         _dbus_transport_messages_pending (basically,
12567         dbus_connection_preallocate_send() does not prealloc the write
12568         watch). To fix this, I think we need to add new stuff to
12569         set_watch_functions, namely a SetEnabled function so we can alloc
12570         the watch earlier, then enable it later.
12571
12572         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12573         dbus-memory.c to the convenience lib
12574
12575         * bus/test.c: rename some static functions to keep them clearly
12576         distinct from stuff in connection.c. Handle client disconnection.
12577
12578 2003-03-14  Havoc Pennington  <hp@pobox.com>
12579
12580         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12581         transport, tests more of the real codepath. Set up clients
12582         with bus_setup_debug_client.
12583
12584         * bus/test.c (bus_setup_debug_client): function to set up debug
12585         "clients" on the main loop
12586
12587         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12588         support
12589
12590         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12591         server type
12592
12593         * dbus/dbus-server-debug.c: support a debug server based on pipes
12594
12595         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12596         (_dbus_close): new function
12597
12598         * configure.in: check for socketpair
12599
12600 2003-03-14  Havoc Pennington  <hp@redhat.com>
12601
12602         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12603         cheesy hack
12604
12605         * dbus/dbus-transport-debug.c: rework this a good bit to be
12606         less complicated. hopefully still works.
12607
12608         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12609         manually
12610
12611         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12612         after running it
12613
12614         * dbus/dbus-message.c (dbus_message_copy): rename from
12615         dbus_message_new_from_message, fix it up to copy
12616         all the message fields, add test case
12617
12618         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12619         not quite passing yet
12620
12621 2003-03-14  Havoc Pennington  <hp@pobox.com>
12622
12623         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12624         until no work remains" in test code. (the large diff here
12625         is just code movement, no actual changes)
12626
12627         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12628         1, no point waiting around for test code.
12629         (_dbus_server_debug_accept_transport): unref the timeout
12630         after adding it (right?)
12631
12632         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12633
12634 2003-03-13  Havoc Pennington  <hp@redhat.com>
12635
12636         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12637         out of memory
12638
12639         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12640         of memory
12641
12642         * dbus/dbus-connection.h: Make AddWatchFunction and
12643         AddTimeoutFunction return a bool so they can fail on out-of-memory
12644
12645         * bus/bus.c (bus_context_new): set up timeout handlers
12646
12647         * bus/connection.c (bus_connections_setup_connection): set up
12648         timeout handlers
12649
12650         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12651         can fail
12652
12653         * bus/bus.c (bus_context_new): adapt to changes
12654
12655         * bus/connection.c: adapt to changes
12656
12657         * test/watch.c: adapt to DBusWatch changes
12658
12659         * bus/dispatch.c (bus_dispatch_test): started adding this but
12660         didn't finish
12661
12662 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12663
12664         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12665
12666 2003-03-13  Havoc Pennington  <hp@pobox.com>
12667
12668         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12669         set up a test framework as for the library
12670
12671 2003-03-12  Havoc Pennington  <hp@pobox.com>
12672
12673         Throughout: purge global variables, introduce BusActivation,
12674         BusConnections, BusRegistry, etc. objects instead.
12675
12676         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12677         message bus object
12678
12679         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12680         going to redo this a bit differently I think
12681
12682 2003-03-12  Havoc Pennington  <hp@redhat.com>
12683
12684         Mega-patch that gets the message bus daemon initially handling
12685         out-of-memory. Work still needed. Also lots of random
12686         moving stuff to DBusError instead of ResultCode.
12687
12688         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12689
12690         * dbus/dbus-connection.c
12691         (dbus_connection_send_with_reply_and_block): use DBusError
12692
12693         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12694         DBusResultCode
12695
12696         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12697         code here, as the only failure possible is OOM.
12698
12699         * bus/connection.c (bus_connection_disconnect):
12700         rename bus_connection_disconnected as it's a notification only
12701
12702         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12703         "name" on get_args failure, should be done by get_args;
12704         don't disconnect client for bad args, just return an error.
12705         (bus_driver_handle_service_exists): ditto
12706
12707         * bus/services.c (bus_services_list): NULL-terminate returned array
12708
12709         * bus/driver.c (bus_driver_send_service_lost)
12710         (bus_driver_send_service_acquired): send messages from driver to a
12711         specific client to the client's unique name, not to the broadcast
12712         service.
12713
12714         * dbus/dbus-message.c (decode_header_data): reject messages that
12715         contain no name field
12716         (_dbus_message_get_client_serial): rename to
12717         dbus_message_get_serial and make public
12718         (_dbus_message_set_serial): rename from set_client_serial
12719         (_dbus_message_set_reply_serial): make public
12720         (_dbus_message_get_reply_serial): make public
12721
12722         * bus/connection.c (bus_connection_foreach): allow stopping
12723         iteration by returning FALSE from foreach function.
12724
12725         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12726         (dbus_connection_free_preallocated_send)
12727         (dbus_connection_preallocate_send): new API for sending a message
12728         without possibility of malloc failure.
12729         (dbus_connection_send_message): rename to just
12730         dbus_connection_send (and same for whole function family)
12731
12732         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12733
12734         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12735
12736         * bus/activation.c: handle/return errors
12737
12738         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12739
12740         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12741         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12742         (_dbus_result_from_errno): move to this file
12743
12744 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12745
12746         * dbus/dbus-marshal.c:
12747         (_dbus_marshal_set_string):
12748         Take a length argument so we can marshal the correct string
12749         length.
12750
12751         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12752         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12753         (_dbus_marshal_test):
12754         * dbus/dbus-marshal.h:
12755         Add support for marshalling and demarshalling dicts.
12756
12757         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12758         Add support for TYPE DICT.
12759
12760         * dbus/dbus-message.c: (set_string_field):
12761         Adjust header padding.
12762
12763         (dbus_message_append_args_valist), (dbus_message_append_dict),
12764         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12765         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12766         (check_message_handling), (check_have_valid_message):
12767         * dbus/dbus-message.h:
12768         Add functions for setting and getting dicts.
12769
12770         * dbus/dbus-protocol.h:
12771         Add DBUS_TYPE_DICT.
12772
12773         * dbus/dbus.h:
12774         Add dbus-dict.h
12775
12776         * doc/dbus-specification.sgml:
12777         Add information about how dicts are marshalled.
12778
12779         * test/data/invalid-messages/dict-with-nil-value.message:
12780         * test/data/invalid-messages/too-short-dict.message:
12781         * test/data/valid-messages/dict-simple.message:
12782         * test/data/valid-messages/dict.message:
12783         Add sample messages containing dicts.
12784
12785 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12786
12787         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12788
12789 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12790
12791         * dbus/Makefile.am:
12792         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12793         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12794         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12795         (dbus_dict_set_double), (dbus_dict_set_string),
12796         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12797         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12798         (dbus_dict_set_string_array), (_dbus_dict_test):
12799         * dbus/dbus-dict.h:
12800         Fix according to comments from Havoc.
12801
12802 2003-03-06  Michael Meeks  <michael@server.home>
12803
12804         * configure.in: if we don't have kde-config, disable have_qt.
12805
12806 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12807
12808         * dbus/Makefile.am:
12809         Add dbus-dict.[ch]
12810
12811         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12812         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12813         (dbus_dict_remove), (dbus_dict_get_value_type),
12814         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12815         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12816         (dbus_dict_put_double), (dbus_dict_put_string),
12817         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12818         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12819         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12820         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12821         (dbus_dict_get_double), (dbus_dict_get_string),
12822         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12823         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12824         (dbus_dict_get_string_array), (_dbus_dict_test):
12825         * dbus/dbus-dict.h:
12826         Add DBusDict implementation
12827
12828         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12829         * dbus/dbus-test.h:
12830         Add _dbus_dict_test
12831
12832 2003-03-04  Havoc Pennington  <hp@pobox.com>
12833
12834         * test/data/auth/*: adapt to changes
12835
12836         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12837         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12838         userid
12839
12840         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12841         more stuff from being in a context name, to make the protocol
12842         simpler to deal with
12843
12844         * dbus/dbus-errors.c (dbus_error_has_name): new function
12845         (dbus_error_is_set): new function
12846
12847         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12848         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12849
12850         * dbus/dbus-connection.c (dbus_connection_flush): also read
12851         messages during a flush operation
12852
12853         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12854
12855 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12856
12857         * configure.in: Check for gethostbyname on Solaris.
12858
12859         * dbus/dbus-transport.c: (_dbus_transport_open):
12860         Remove duplicate "tcp" entry.
12861
12862         * doc/dbus-specification.sgml:
12863         Clarify some things.
12864
12865 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12866
12867         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12868         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12869         (_dbus_keyring_test):
12870         * dbus/dbus-md5.c: (_dbus_md5_compute):
12871         * dbus/dbus-sha.c: (_dbus_sha_compute):
12872         Plug memory leaks.
12873
12874 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12875
12876         * README: Add some things.
12877
12878 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12879
12880         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12881         after case DBUS_TYPE_BOOELAN.
12882
12883 2003-03-02  Havoc Pennington  <hp@pobox.com>
12884
12885         * test/break-loader.c (randomly_set_extreme_ints): add test that
12886         sets really huge and small integers
12887
12888         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12889         that length of boolean array fits in the string, and that
12890         string has room for boolean value in single-bool case.
12891
12892         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12893         optional value to "ALIGN" command which is what to fill the
12894         alignment with.
12895
12896         * test/data/valid-messages/no-padding.message: add regression
12897         test for the message padding problem
12898
12899 2003-03-02  Havoc Pennington  <hp@pobox.com>
12900
12901         * dbus/dbus-message.c (decode_header_data): fix to always init
12902         message_padding, from Benjamin Dauvergne
12903
12904 2003-03-02  Havoc Pennington  <hp@pobox.com>
12905
12906         * configure.in: 0.5
12907
12908         * NEWS: Update.
12909
12910 2003-03-01  Joe Shaw  <joe@assbarn.com>
12911
12912         * configure.in: Check for "struct cmsgcred" and try to access its
12913         members for BSD-like unices.
12914
12915         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12916         _dbus_read_credentials_unix_socket().
12917         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12918         read() for reading the credential byte off the unix socket.  Use
12919         struct cmsgcred on systems that support it.
12920
12921 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12922
12923         * glib/Makefile.am:
12924         * configure.in:
12925         Make gthreads-2.0 dependency optional. Don't build thread test if
12926         its not found.
12927
12928 2003-02-27  Havoc Pennington  <hp@pobox.com>
12929
12930         * dbus/dbus-connection.c
12931         (dbus_connection_send_message_with_reply_and_block): fix doh!
12932         doh! doh! bug that resulted in never removing a reply from the
12933         queue, no wonder we called get_reply_serial so much ;-)
12934
12935         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12936         and client serial instead of demarshaling them every time
12937
12938 2003-02-27  Havoc Pennington  <hp@pobox.com>
12939
12940         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12941         more inlined, using dbus-string-private.h, speeds things up
12942         substantially
12943
12944         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12945         when freeing the string
12946         (_dbus_string_steal_data): fix for align offset
12947         (undo_alignment): new function
12948
12949 2003-02-26  Havoc Pennington  <hp@redhat.com>
12950
12951         All kinds of audit fixes from Owen, plus initial attempt to
12952         handle unaligned memory returned from malloc.
12953
12954         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12955         leave room for align_offset and nul byte
12956         (fixup_alignment): function to track an align_offset and
12957         ensure real->str is aligned
12958         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12959         to allow a nul byte plus align offset
12960         (_dbus_string_lock): fix overflow issue
12961         (_dbus_string_init_const_len): add assertions on sanity of len,
12962         assign allocated to be ALLOCATION_PADDING larger than len
12963         (set_length): fixup the overflow handling
12964         (_dbus_string_get_data_len): fix overflow in assertion
12965         (open_gap): detect overflow in size of gap to be opened
12966         (_dbus_string_lengthen): add overflow check
12967         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12968         (_dbus_string_append): add overflow check
12969         (_dbus_string_append_unichar): overflow
12970         (_dbus_string_delete): fix overflow in assertion
12971         (_dbus_string_copy_len): overflow in assertion
12972         (_dbus_string_replace_len): overflows in assertions
12973         (_dbus_string_find): change to implement in terms of
12974         _dbus_string_find_to
12975         (_dbus_string_find_to): assorted fixage
12976         (_dbus_string_equal_c_str): assert c_str != NULL,
12977         fix logic so the function works
12978         (_dbus_string_ends_with_c_str): fix overflow thingy
12979         (_dbus_string_base64_encode): overflow fix
12980         (_dbus_string_validate_ascii): overflow
12981         (_dbus_string_validate_nul): overflow
12982
12983 2003-02-26  Havoc Pennington  <hp@redhat.com>
12984
12985         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12986
12987 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12988
12989         * configure.in:
12990         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12991
12992         * dbus/dbus-connection.c:
12993         * dbus/dbus-connection.h:
12994         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12995         Add dbus_connection_set_wakeup_main_function and use it when queueing
12996         incoming and outgoing messages.
12997
12998
12999         * dbus/dbus-dataslot.c:
13000         Threadsafe usage of DBusDataSlotAllocator
13001
13002         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13003         dbus_new can fail.
13004
13005         * dbus/dbus-server-unix.c:
13006         Add todo comment
13007
13008         * glib/dbus-gmain.c:
13009         Implement the new wakeup functions for glib.
13010
13011         * glib/Makefile.am:
13012         * glib/test-thread-client.c:
13013         * glib/test-thread-server.c:
13014         * glib/test-thread.h:
13015         Initial cut at some thread test code. Not really done yet.
13016
13017 2003-02-26  Havoc Pennington  <hp@pobox.com>
13018
13019         * dbus/dbus-connection.c
13020         (dbus_connection_send_message_with_reply_and_block): fix crash
13021         where we ref'd the outgoing message instead of the returned reply
13022
13023         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13024         at the end of this function, so if we didn't need to read for
13025         authentication, we reinstall it for receiving messages
13026
13027         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13028         a NULL sender for peer-to-peer case
13029
13030         * dbus/dbus-transport-unix.c (check_read_watch): handle
13031         !authenticated case correctly
13032
13033         * glib/dbus-gmain.c: add support for DBusServer
13034
13035         * dbus/dbus-server.c: add data slot support
13036
13037         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13038         return values and handle errors
13039
13040         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13041         DBusConnection
13042
13043         * Doxyfile.in (INPUT): add glib subdir
13044
13045         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13046         setup_with_g_main instead of hookup_with_g_main; write docs
13047
13048 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13049
13050         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13051         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13052         * dbus/dbus-message.c: (dbus_message_append_boolean),
13053         (dbus_message_append_boolean_array),
13054         (dbus_message_get_args_valist), (_dbus_message_test):
13055         * dbus/dbus-message.h:
13056         * doc/dbus-specification.sgml:
13057         Various fixes as pointed out by Havoc.
13058
13059         * test/data/invalid-messages/bad-boolean-array.message:
13060         * test/data/invalid-messages/bad-boolean.message:
13061         Add invalid boolean value test cases.
13062
13063 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13064
13065         * dbus/dbus-internals.c: (_dbus_type_to_string):
13066         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13067         (_dbus_marshal_validate_arg):
13068         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13069         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13070         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13071         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13072         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13073         (dbus_message_iter_get_double),
13074         (dbus_message_iter_get_boolean_array), (message_iter_test):
13075         * dbus/dbus-message.h:
13076         * dbus/dbus-protocol.h:
13077         * doc/dbus-specification.sgml:
13078         * test/data/valid-messages/lots-of-arguments.message:
13079         Add support for boolean and boolean array types.
13080
13081 2003-02-23  Havoc Pennington  <hp@pobox.com>
13082
13083         * dbus/dbus-keyring.c: finish most of this implementation and
13084         simple unit test
13085
13086         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13087         these barf if the error isn't cleared to NULL
13088
13089         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13090         (_dbus_create_directory): new function
13091
13092         * dbus/dbus-errors.c (dbus_set_error): fix warning
13093
13094         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13095         (_dbus_string_hex_decode): new function
13096         (test_hex_roundtrip): test code
13097
13098         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13099
13100         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13101
13102         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13103         the save-to-temp/rename trick to atomically write the new file
13104         (_dbus_string_parse_uint): new function
13105
13106 2003-02-22  Havoc Pennington  <hp@pobox.com>
13107
13108         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13109
13110 2003-02-22  Havoc Pennington  <hp@pobox.com>
13111
13112         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13113         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13114
13115         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13116
13117         * dbus/test/data/sha-1: add US government test suite for SHA-1
13118
13119 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13120
13121         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13122         Make string arrays NULL-terminated.
13123
13124         * dbus/dbus-memory.c: (dbus_free_string_array):
13125         * dbus/dbus-memory.h:
13126         New function for freeing NULL-terminated string arrays.
13127
13128         * dbus/dbus-message-builder.c: (append_quoted_string),
13129         (_dbus_message_data_load):
13130         Add support for array types.
13131
13132         * dbus/dbus-message.c: (check_message_handling):
13133         Add more types as test cases.
13134
13135         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13136         (_dbus_string_parse_double):
13137         Add the start offset to the end offset.
13138
13139         * test/data/valid-messages/lots-of-arguments.message:
13140         New test message with lots of arguments.
13141
13142 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13143
13144         * dbus/dbus-message.c: (dbus_message_append_nil),
13145         (dbus_message_append_int32), (dbus_message_append_uint32),
13146         (dbus_message_append_double), (dbus_message_append_string),
13147         (dbus_message_append_int32_array),
13148         (dbus_message_append_uint32_array),
13149         (dbus_message_append_double_array),
13150         (dbus_message_append_byte_array),
13151         (dbus_message_append_string_array):
13152         Fix all out-of-memory handling in these functions.
13153
13154 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13155
13156         * dbus/dbus-message.c: (dbus_message_append_nil):
13157         Fix a silly.
13158
13159 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13160
13161         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13162         (dbus_message_append_nil), (dbus_message_append_int32_array),
13163         (dbus_message_append_uint32_array),
13164         (dbus_message_append_double_array),
13165         (dbus_message_append_byte_array),
13166         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13167         (dbus_message_iter_get_int32_array),
13168         (dbus_message_iter_get_uint32_array),
13169         (dbus_message_iter_get_double_array),
13170         (dbus_message_iter_get_byte_array),
13171         (dbus_message_iter_get_string_array):
13172
13173         * dbus/dbus-message.h:
13174         Add functions for appending and getting arrays.
13175
13176 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13177
13178         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13179         element size at least 8 bytes, fixes mempool tests on
13180         64-bit machines.
13181
13182 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13183
13184         * dbus/dbus-transport-unix.c (unix_do_iteration):
13185         Unlock the connection mutex during a blocking select call.
13186         Add todo about how we need a way to wake up the select.
13187
13188         * dbus/dbus-connection-internal.h:
13189         * dbus/dbus-connection.c:
13190         Add _dbus_connection_lock and _dbus_connection_unlock.
13191
13192 2003-02-19  Havoc Pennington  <hp@pobox.com>
13193
13194         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13195         Doxyfile.in, not Doxyfile
13196
13197         * dbus/dbus-keyring.c: do some hacking on this
13198
13199         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13200
13201         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13202         dbus_error_init
13203         (dbus_set_error): remove dbus_error_init, check for message ==
13204         NULL *before* we sprintf into it, and add @todo about including
13205         system headers in this file
13206
13207         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13208
13209         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13210
13211         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13212         get various bits of user information based on either username
13213         or user ID
13214         (_dbus_homedir_from_username): new function
13215
13216 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13217
13218         * configure.in:
13219         Add check for nonposix getpwnam_r
13220
13221         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13222         Align the pool element size to a sizeof (void *) boundary.
13223
13224         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13225         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13226         General Solaris fixes.
13227
13228         * test/data/valid-messages/simplest-manual.message:
13229         Explicitly state that we want little-endian packing.
13230
13231 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13232
13233         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13234
13235         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13236         Added to create a transport connecting using a tcp/ip socket.
13237
13238         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13239         to a tcp socket at given host and port.
13240         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13241         hostname and port.
13242
13243         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13244
13245         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13246         Added to create a server listening on a TCP/IP socket.
13247
13248 2003-02-19  Havoc Pennington  <hp@pobox.com>
13249
13250         Throughout: mop up all the Doxygen warnings and undocumented
13251         stuff.
13252
13253         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13254         to search any paths.
13255
13256         * dbus/dbus-threads.c: move global mutex initializers to
13257         dbus-internals.h, multiple prototypes was confusing doxygen
13258         besides being kind of ugly
13259
13260         * Doxyfile (PREDEFINED): have Doxygen define
13261         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13262         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13263         (do not abuse the feature! it's for stuff like the autogenerated
13264         macros in dbus-md5.c, not just for things you don't feel like
13265         documenting...)
13266
13267 2003-02-18  Havoc Pennington  <hp@pobox.com>
13268
13269         * dbus/dbus-string.c (_dbus_string_zero): new function
13270
13271         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13272         wrap it in some dbus-friendly API
13273
13274         * dbus/dbus-types.h: add 16-bit types
13275
13276 2003-02-18  Joe Shaw  <joe@assbarn.com>
13277
13278         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13279         credentials from our currently running process.
13280         (get_word): Fix a buglet where we were copying the entire length
13281         instead of relative to our position.
13282
13283         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13284         keys on the stack... it's 640k of data.
13285
13286         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13287         read the credentials byte off the socket, even if we don't have
13288         SO_PEERCRED.
13289         (_dbus_poll): Implement poll() using select() for systems which
13290         don't have it.
13291
13292         * glib/test-dbus-glib.c (main): Print out an error if no
13293         parameters are given.
13294
13295         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13296         can fallback to a secondary auth mechanism if the first fails.
13297
13298 2003-02-18  Havoc Pennington  <hp@pobox.com>
13299
13300         * AUTHORS: add Alex
13301
13302 2003-02-17  Havoc Pennington  <hp@pobox.com>
13303
13304         * doc/dbus-specification.sgml: lots of cosmetic
13305         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13306         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13307         s/server/bus/ (except in authentication section). Add a section
13308         "Message Bus Message Routing"
13309
13310 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13311
13312         Release 0.4
13313
13314         * NEWS: Update
13315
13316 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13317
13318         * doc/dbus-specification.sgml:
13319         Specification updates.
13320
13321 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13322
13323         * bus/activation.c: (bus_activation_init), (child_setup),
13324         (bus_activation_activate_service):
13325         * bus/activation.h:
13326         * bus/main.c: (main):
13327         Set DBUS_ADDRESS environment variable.
13328
13329         * dbus/dbus-errors.c: (dbus_set_error):
13330         Don't use va_copy since that's a C99 feature.
13331
13332         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13333         (_dbus_spawn_async):
13334         * dbus/dbus-sysdeps.h:
13335         Add child_setup_func to _dbus_spawn_async.
13336
13337         * doc/dbus-specification.sgml:
13338         Update specification.
13339
13340         * test/spawn-test.c: (setup_func), (main):
13341         Fix test.
13342
13343 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13344
13345         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13346         Added todo.
13347
13348 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13349
13350         * doc/.cvsignore:
13351         * doc/Makefile.am:
13352         * doc/dbus-test-plan.sgml:
13353         Add test plan document.
13354
13355         * test/Makefile.am:
13356         Fix distcheck.
13357
13358 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13359
13360         * dbus/dbus-message.c: (decode_header_data),
13361         (_dbus_message_loader_return_buffer):
13362         Set the header padding amount when loading a message.
13363
13364 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13365
13366         * bus/dispatch.c: (send_one_message):
13367         Only send broadcast messages to registered connections.
13368
13369         * dbus/dbus-message.c: (dbus_message_name_is):
13370         * dbus/dbus-message.h:
13371         New convenience function.
13372
13373         * dbus/dbus-transport-debug.c: (do_reading):
13374         Only dispatch one message per run.
13375
13376         * test/Makefile.am:
13377         * test/bus-test.c: (new_connection_callback), (die),
13378         (test_hello_client1_handler), (test_hello_client2_handler),
13379         (test_hello_replies), (main):
13380
13381         * test/bus-test-loop.[ch]:
13382         Add these.
13383
13384 2003-02-16  Havoc Pennington  <hp@pobox.com>
13385
13386         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13387         backward conditional
13388
13389 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13390
13391         * dbus/dbus-connection.c:
13392         Implement sent_message_with_reply. (with_reply_and block is still
13393         busted).
13394         Made dispatch_message not lose message if OOM.
13395
13396         * dbus/dbus-errors.h:
13397         Add NoReply error (for reply timeouts).
13398
13399 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13400
13401         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13402         Actually free keys and values when destroying hashtable.
13403
13404 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13405
13406         * dbus/dbus-auth.c: (client_try_next_mechanism):
13407         Plug a leak.
13408
13409         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13410         Return TRUE if there's no thread implementation around.
13411
13412         * glib/dbus-gmain.c: (free_source),
13413         (dbus_connection_hookup_with_g_main):
13414         Make sure to remove the GSource when the connection is finalized.
13415
13416 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13417
13418         * bus/dispatch.c: (bus_dispatch_message_handler):
13419         * dbus/dbus-errors.h:
13420         Return an error if someone tries to send a message to a service
13421         that doesn't exist.
13422
13423 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13424
13425         * bus/activation.c: (load_directory), (bus_activation_init),
13426         (bus_activation_activate_service):
13427         * bus/activation.h:
13428         * bus/driver.c:
13429         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13430         More work on the activation handling.
13431
13432         * dbus/dbus-errors.h:
13433         Add some error messages
13434
13435         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13436         * dbus/dbus-message.h:
13437         New function that creates an error message.
13438
13439         * dbus/dbus-protocol.h:
13440         Add ACTIVATE_SERVER message.
13441
13442         * dbus/dbus-server-unix.c: (unix_handle_watch),
13443         (_dbus_server_new_for_domain_socket):
13444         Call _dbus_fd_set_close_on_exec.
13445
13446         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13447         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13448         (_dbus_fd_set_close_on_exec):
13449         * dbus/dbus-sysdeps.h:
13450         Add _dbus_fd_set_close_on exec function. Also add function that checks
13451         that all open fds are set to close-on-exec and warns otherwise.
13452
13453         * dbus/dbus-transport-unix.c:
13454         (_dbus_transport_new_for_domain_socket):
13455         Call _dbus_fd_set_close_on_exec.
13456
13457 2003-02-16  Havoc Pennington  <hp@pobox.com>
13458
13459         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13460         allow people to avoid setting SIGPIPE to SIG_IGN
13461         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13462         we've been asked not to
13463
13464 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13465
13466         * dbus/dbus-list.c: (_dbus_list_append_link),
13467         (_dbus_list_prepend_link):
13468         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13469         (dbus_realloc):
13470         Warning fixes.
13471
13472 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13473
13474         * bus/Makefile.am:
13475         * bus/activation.c: (bus_activation_entry_free),
13476         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13477         * bus/activation.h:
13478         * bus/main.c: (main):
13479         Add simple activation support, doesn't work yet though.
13480
13481 2003-02-15   Zack Rusin  <zack@kde.org>
13482
13483         * qt/dbus-qthread.cpp:  small casting fix
13484
13485 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13486
13487         * dbus/dbus-errors.c: (dbus_set_error):
13488         * dbus/dbus-errors.h:
13489         Add a few errors and make dbus_set_error void.
13490
13491         * dbus/dbus-sysdeps.c:
13492         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13493         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13494         * dbus/dbus-sysdeps.h:
13495         Add _dbus_spawn_async.
13496
13497         * test/spawn-test.c: (main):
13498         Test for _dbus_spawn_async.
13499
13500 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13501
13502         * dbus/dbus-internals.h:
13503         Fix build without tests.
13504
13505         * dbus/dbus-list.c: (alloc_link):
13506         Fix a segfault when a malloc fails.
13507
13508         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13509         (dbus_malloc0), (dbus_realloc):
13510         Add support for malloc debugging.
13511
13512 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13513
13514         * dbus/dbus-threads.c:
13515         * dbus/dbus-threads.h:
13516         Add condvars. Remove static mutext from API.
13517         Implement static mutexes by initializing them from threads_init.
13518
13519         * glib/dbus-gthread.c:
13520         * qt/dbus-qthread.cpp:
13521         Update with the thread api changes.
13522
13523
13524         * dbus/dbus-list.c:
13525         * dbus/dbus-list.h:
13526         Turn StaticMutex into normal mutex + init function.
13527         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13528         _dbus_list_append_link, _dbus_list_prepend_link
13529
13530
13531         * dbus/dbus-sysdeps.c:
13532         * dbus/dbus-sysdeps.h:
13533         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13534         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13535
13536         * dbus/dbus-protocol.h:
13537         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13538
13539         * dbus/dbus-message.c:
13540         Make ref/unref atomic.
13541         Fix some docs.
13542
13543         * dbus/dbus-connection-internal.h:
13544         * dbus/dbus-connection.c:
13545         * dbus/dbus-connection.h:
13546         Make threadsafe.
13547         Change _peek to _borrow,_return & _steal_borrowed.
13548         Change disconnect callback to event.
13549         Make dbus_connection_dispatch_messages reentrant.
13550
13551         * dbus/dbus-transport.c:
13552         Don't ref the connection on calls to the transport
13553         implementation.
13554
13555         * dbus/dbus-message-handler.c:
13556         Make threadsafe.
13557
13558         * glib/dbus-gmain.c:
13559         Don't use peek_message anymore
13560
13561         * test/Makefile.am:
13562         * test/debug-thread.c:
13563         * test/debug-thread.h:
13564         Simple thread implementation that asserts() on deadlocks in
13565         single-threaded code.
13566
13567         * test/bus-test.c:
13568         (main) Call debug_threads_init.
13569
13570         * test/watch.c:
13571         Use disconnect message instead of disconnect callback.
13572
13573         * bus/connection.c:
13574         * bus/connection.h:
13575         Don't call dbus_connection_set_disconnect_function. Instead export
13576         bus_connection_disconnect.
13577
13578         * bus/dispatch.c:
13579         Call bus_connection_disconnect when we get a disconnected message.
13580
13581 2003-02-15  Havoc Pennington  <hp@pobox.com>
13582
13583         * dbus/dbus-message.c (dbus_message_new): fool around with the
13584         docs
13585
13586 2003-02-14  Havoc Pennington  <hp@pobox.com>
13587
13588         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13589
13590         * dbus/dbus-memory.c: fail if the debug functions indicate we
13591         should
13592
13593         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13594         (_dbus_decrement_fail_alloc_counter): debug functions to
13595         simulate memory allocation failures
13596
13597 2003-02-14  Havoc Pennington  <hp@pobox.com>
13598
13599         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13600         to DBusError
13601
13602 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13603
13604         * bus/driver.c: (bus_driver_handle_hello):
13605         * bus/driver.h:
13606         * bus/services.c: (bus_service_lookup):
13607         Reorder message sending so we get a more sane order.
13608
13609         * test/bus-test.c: (message_handler):
13610         Fix tyop.
13611
13612 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13613
13614         * bus/driver.c: (bus_driver_send_service_deleted),
13615         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13616         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13617         (bus_driver_send_welcome_message),
13618         (bus_driver_handle_list_services),
13619         (bus_driver_handle_acquire_service),
13620         (bus_driver_handle_service_exists):
13621         * dbus/dbus-bus.c: (dbus_bus_register_client),
13622         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13623         * dbus/dbus-errors.c: (dbus_result_to_string):
13624         * dbus/dbus-errors.h:
13625         * dbus/dbus-message.c: (dbus_message_append_args),
13626         (dbus_message_append_args_valist), (dbus_message_get_args),
13627         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13628         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13629         (dbus_message_iter_get_byte_array),
13630         (dbus_message_iter_get_string_array), (message_iter_test),
13631         (check_message_handling), (_dbus_message_test):
13632         * dbus/dbus-message.h:
13633         * test/bus-test.c: (main):
13634         Change fields to arguments in messages, so that they won't be
13635         confused with header fields.
13636
13637         * glib/test-dbus-glib.c: (main):
13638         Remove append_fields from hello message.
13639
13640 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13641
13642         * dbus/dbus-errors.c:
13643         * dbus/dbus-message.c:
13644         * dbus/dbus-string.c:
13645         Documentation fixes.
13646
13647 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13648
13649         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13650         (remove_timeout):
13651         Implement support for timeouts in dbus-glib.
13652
13653 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13654
13655         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13656         * dbus/dbus-message.c: (process_test_subdir):
13657         * test/break-loader.c: (find_breaks_based_on):
13658         Plug some memory leaks.
13659
13660 2003-02-13  Richard Hult  <rhult@codefactory.se>
13661
13662         * bus/main.c: Fix build.
13663
13664         * dbus/dbus-errors.h:
13665         * dbus/dbus-errors.c: Fix copyright for Anders.
13666
13667 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13668
13669         * bus/Makefile.am:
13670         Add utils.[ch]
13671
13672         * bus/connection.c: (bus_connection_foreach):
13673         Fix a warning.
13674
13675         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13676         (unescape_string), (new_section), (parse_section_start),
13677         (parse_key_value), (report_error), (bus_desktop_file_load),
13678         (bus_desktop_file_get_string):
13679         * bus/desktop-file.h:
13680         Use DBusError for error reporting.
13681
13682         * bus/dispatch.c: (send_one_message),
13683         (bus_dispatch_message_handler):
13684         * bus/driver.c: (bus_driver_send_service_deleted),
13685         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13686         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13687         (bus_driver_send_welcome_message),
13688         (bus_driver_handle_list_services),
13689         (bus_driver_handle_acquire_service),
13690         (bus_driver_handle_service_exists):
13691         * bus/loop.c: (bus_loop_run):
13692         * bus/main.c:
13693         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13694
13695         * bus/utils.c: (bus_wait_for_memory):
13696         * bus/utils.h:
13697         New files with general utility functions.
13698
13699         * dbus/dbus-internals.h:
13700         Remove _DBUS_HANDLE_OOM.
13701
13702 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13703
13704         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13705         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13706         * dbus/dbus-errors.h:
13707         Add DBusError structure.
13708
13709 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13710
13711         * test/data/valid-messages/standard-acquire-service.message:
13712         * test/data/valid-messages/standard-hello.message:
13713         * test/data/valid-messages/standard-list-services.message:
13714         * test/data/valid-messages/standard-service-exists.message:
13715         Add some standard messages.
13716
13717 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13718
13719         * bus/driver.c: (bus_driver_send_welcome_message),
13720         (bus_driver_handle_list_services),
13721         (bus_driver_handle_acquire_service),
13722         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13723         Update for API changes in libdbus.
13724
13725         * dbus/dbus-message.c: (dbus_message_new_reply):
13726         * dbus/dbus-message.h:
13727         Remove the name argument. The spec states that replies shouldn't
13728         have a name.
13729
13730 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13731
13732         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13733         (report_error), (bus_desktop_file_load), (lookup_section),
13734         (lookup_line), (bus_desktop_file_get_raw),
13735         (bus_desktop_file_get_string):
13736         * bus/desktop-file.h:
13737         Some fixes, and new functions for getting a key value from a section.
13738
13739 2003-02-13  Havoc Pennington  <hp@pobox.com>
13740
13741         * test/data/auth/fail-after-n-attempts.auth-script: new test
13742
13743         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13744         reject the client.
13745
13746 2003-02-13  Havoc Pennington  <hp@pobox.com>
13747
13748         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13749         dbus_credentials_match were backward
13750
13751         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13752         NO_CREDENTIALS and ROOT_CREDENTIALS
13753
13754         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13755         into here. Never process more commands after we've reached an
13756         end state; store further data as unused bytes.
13757
13758         * test/data/auth/*: add more auth tests
13759
13760         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13761         command to match exact string and EXPECT_UNUSED to match unused
13762         bytes
13763
13764         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13765
13766 2003-02-12  Havoc Pennington  <hp@pobox.com>
13767
13768         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13769         \r off of popped lines
13770
13771         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13772         scripts
13773
13774         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13775         SEND, append \r\n
13776
13777 2003-02-12  Havoc Pennington  <hp@pobox.com>
13778
13779         * dbus/Makefile.am: remove break-loader from the build, since it
13780         moved.
13781
13782         * configure.in: add --enable-gcov to turn on coverage profiling
13783         flags and disable optimization
13784
13785 2003-02-10  Havoc Pennington  <hp@pobox.com>
13786
13787         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13788         initial cut at test framework for DBusAuth from laptop.
13789         Doesn't quite work yet but it compiles and I need to get
13790         it off the 266mhz laptop. ;-)
13791
13792         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13793         fix a memleak in error case
13794
13795 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13796
13797         * bus/Makefile.am:
13798         * bus/desktop-file.c:
13799         * bus/desktop-file.h:
13800         Add a desktop file parser.
13801
13802 2003-02-11  Zack Rusin  <zack@kde.org>
13803
13804         * qt/message.[h|cpp]: sample implementation
13805         of the KDE wrapper for DBusMessage
13806
13807 2003-02-09  Zack Rusin  <zack@kde.org>
13808
13809         * test/bus-test.c: make_it_compile
13810         * doc/dbus-specification.sgml: minimal semantic fix
13811
13812 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13813
13814         Release 0.3
13815
13816         * NEWS: Update
13817
13818 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13819
13820         * dbus/Makefile.am:
13821         * dbus/dbus-break-loader.c:
13822         * test/Makefile.am:
13823         * test/break-loader.c:
13824         Move dbus-break-loader to test/ and rename it to break-loader.
13825
13826 2003-02-02  Havoc Pennington  <hp@pobox.com>
13827
13828         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13829         for code to manage cookies in your home directory
13830
13831         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13832
13833         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13834         to authenticate, then disconnect the client.
13835
13836 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13837
13838         * dbus/dbus-message.c (dbus_message_append_fields):
13839         Correct docs.
13840
13841 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13842
13843         * doc/dbus-specification.sgml:
13844         Update address format section.
13845
13846 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13847
13848         * test/Makefile.am:
13849         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13850         (message_handler), (new_connection_callback), (loop_quit),
13851         (loop_run), (main):
13852         Add bus test.
13853
13854 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13855
13856         * bus/driver.c: (bus_driver_handle_service_exists):
13857         Simplify the code a bit.
13858
13859         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13860         Fix a silly.
13861
13862 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13863
13864         * bus/Makefile.am:
13865         Add libdbus-daemon.la and link to it.
13866
13867 2003-02-01  James Willcox  <jwillcox@gnome.org>
13868
13869         * bus/driver.c: (bus_driver_handle_own_service):
13870         Actually include the service reply code in the message.
13871
13872 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13873
13874         * bus/driver.c: (bus_driver_handle_service_exists):
13875         Don't unref the incoming message.
13876
13877 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13878
13879         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13880
13881 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13882
13883         * dbus/dbus-server.c: (dbus_server_listen):
13884         * dbus/dbus-transport.c: (_dbus_transport_open):
13885         ifdef out the calls to the debug transport and server.
13886
13887 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13888
13889         * dbus/dbus-watch.c (dbus_watch_get_flags):
13890         Add note in the docs that ERROR or HANGUP won't be returned
13891         and are assumed always on.
13892
13893         * glib/dbus-gmain.c (add_watch):
13894         Always add IO_ERR | IO_HUP
13895
13896         * dbus/dbus-message.h:
13897         Add semicolon after dbus_message_iter_get_string_array().
13898         Makes qt code build again
13899
13900 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13901
13902         * bus/driver.c: (create_unique_client_name),
13903         (bus_driver_handle_hello):
13904         Don't take a name, just use a numeric id to identify
13905         each client.
13906
13907         * dbus/Makefile.am:
13908         * dbus/dbus-bus.c: (dbus_bus_register_client),
13909         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13910         * dbus/dbus-bus.h:
13911         Add new convenience functions for communicating with the bus.
13912
13913         * dbus/dbus-message.h:
13914
13915         * dbus/dbus-protocol.h:
13916         Fix a typo.
13917
13918 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13919
13920         * dbus/dbus-message.c (dbus_message_append_fields):
13921         Add some more doc comments.
13922
13923 2003-02-01  Havoc Pennington  <hp@pobox.com>
13924
13925         * dbus/dbus-break-loader.c (randomly_modify_length): change
13926         a 4-byte value in the message as if it were a length
13927
13928         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13929         execute bit on saved files
13930
13931 2003-02-01  Havoc Pennington  <hp@pobox.com>
13932
13933         * dbus/dbus-break-loader.c (main): new program to find messages
13934         that break the loader.
13935
13936         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13937         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13938
13939         * dbus/dbus-string.c (_dbus_string_set_byte): new
13940
13941 2003-01-31  Havoc Pennington  <hp@pobox.com>
13942
13943         * dbus/dbus-message.c: refactor the test code to be more general,
13944         in preparation for writing a "randomly permute test cases to
13945         try to break the loader" program.
13946
13947 2003-01-31  Havoc Pennington  <hp@pobox.com>
13948
13949         * doc/dbus-specification.sgml: work on the specification
13950
13951         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13952         the protocol version of the message.
13953
13954         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13955         no longer specifies that.
13956         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13957         1/2/3/4)
13958
13959         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13960         "break" for DBUS_TYPE_NIL, remove @todo
13961
13962 2003-01-31  Havoc Pennington  <hp@pobox.com>
13963
13964         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13965         just set_is_error/get_is_error as this is a commonly-used
13966         function, and write docs.
13967
13968 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13969
13970         * dbus/dbus-address.c: (dbus_address_entry_free):
13971         Free key and value lists.
13972
13973         * dbus/dbus-internals.c: (_dbus_type_to_string):
13974         Add the types we didn't have.
13975
13976         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13977         (_dbus_marshal_validate_arg):
13978         Add NIL types.
13979
13980         * dbus/dbus-message.c: (dbus_message_set_sender):
13981         Remove todo about being able to set sender to NULL.
13982
13983         (dbus_message_set_is_error_reply),
13984         (dbus_message_get_is_error_reply):
13985         * dbus/dbus-message.h:
13986         New functions.
13987
13988         * dbus/dbus-protocol.h:
13989         Add error reply flag.
13990
13991         * test/data/valid-messages/opposite-endian.message:
13992         Add NIL type to test.
13993
13994 2003-01-31  Havoc Pennington  <hp@pobox.com>
13995
13996         * doc/dbus-specification.sgml: fully specify the header.  Add
13997         flags and major protocol version, and change header/body len to
13998         unsigned.
13999
14000         * dbus/dbus-message-builder.c (append_saved_length): append length
14001         as uint32
14002
14003         * dbus/dbus-message.c (dbus_message_create_header): change header
14004         length and body length to unsigned. Add the new fields from the
14005         spec
14006         (_dbus_message_loader_return_buffer): unsigned header/body len
14007
14008 2003-01-30  Havoc Pennington  <hp@pobox.com>
14009
14010         * dbus/dbus-auth.c: rework to use only REJECTED, no
14011         MECHANISMS
14012
14013         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14014         use REJECTED, suggested by Mark McLoughlin
14015
14016 2003-01-30  Havoc Pennington  <hp@pobox.com>
14017
14018         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14019         a better way to report errors here. e.g.  "unix address lacks
14020         path" or something. also "no such file" when the path doesn't
14021         exist, etc.
14022
14023         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14024         leaking list nodes
14025         (dbus_parse_address): add @todo about documenting address format,
14026         and allowing , and ; to be escaped
14027
14028 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14029
14030         * dbus/Makefile.am:
14031         Add dbus-address.[ch]
14032
14033         * dbus/dbus-address.c: (dbus_address_entry_free),
14034         (dbus_address_entries_free), (create_entry),
14035         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14036         (dbus_parse_address), (_dbus_address_test):
14037         * dbus/dbus-address.h:
14038         New files for dealing with address parsing.
14039
14040         * dbus/dbus-connection.c:
14041         Document timeout functions.
14042
14043         * dbus/dbus-message.c:
14044         Document dbus_message_new_from_message.
14045
14046         * dbus/dbus-server-debug.c:
14047         Document.
14048
14049         * dbus/dbus-server.c: (dbus_server_listen):
14050         Parse address and use correct server implementation.
14051
14052         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14053         * dbus/dbus-string.h:
14054         New function with test.
14055
14056         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14057         * dbus/dbus-test.h:
14058         Add address tests.
14059
14060         * dbus/dbus-transport-debug.c:
14061         Document.
14062
14063         * dbus/dbus-transport.c: (_dbus_transport_open):
14064         Parse address and use correct transport implementation.
14065
14066 2003-01-30  Havoc Pennington  <hp@pobox.com>
14067
14068         * dbus/dbus-message.c: use message->byte_order instead of
14069         DBUS_COMPILER_BYTE_ORDER throughout.
14070         (dbus_message_create_header): pad header to align the
14071         start of the body of the message to 8-byte boundary
14072
14073         * dbus/dbus-marshal.h: make all the demarshalers take const
14074         DBusString arguments.
14075
14076         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14077         validate message args here, so we don't have to do slow validation
14078         later, and so we catch bad messages as they are incoming. Also add
14079         better checks on header_len and body_len. Also fill in
14080         message->byte_order
14081
14082         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14083         implemented properly)
14084         (_dbus_string_validate_nul): new function to check all-nul
14085
14086         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14087         get_arg_end_pos and remove all validation
14088         (_dbus_marshal_validate_arg): actually do validation here.
14089
14090 2003-01-29  Havoc Pennington  <hp@pobox.com>
14091
14092         * dbus/dbus-message.c (check_message_handling): fix assertion
14093         failure on set_client_serial
14094
14095 2003-01-28  Havoc Pennington  <hp@pobox.com>
14096
14097         * dbus/dbus-server-debug.c: Add doc section comments
14098
14099         * dbus/dbus-transport-debug.c: add doc section comments
14100
14101 2003-01-28  Havoc Pennington  <hp@redhat.com>
14102
14103         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14104         the reverse order from how I had it
14105         (_dbus_string_base64_encode): reverse encoding order. I was
14106         basically byteswapping everything during encoding.
14107
14108 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14109
14110         * dbus/dbus-connection-internal.h:
14111         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14112         (_dbus_connection_remove_timeout):
14113         Add functions for adding and removing timeouts.
14114
14115         * dbus/dbus-message.c: (dbus_message_new_from_message):
14116         Add new function that takes a message and creates an exact
14117         copy of it, but with the refcount set to 1.
14118         (check_message_handling):
14119         Fix build error.
14120
14121         * dbus/dbus-server-protected.h:
14122         * dbus/dbus-server.c: (_dbus_server_init_base),
14123         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14124         (dbus_server_set_timeout_functions):
14125         (_dbus_server_remove_timeout):
14126         New functions so that a server can add and remove timeouts.
14127
14128         (dbus_server_listen):
14129         Add commented out call to dbus_server_debug_new.
14130
14131         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14132         Actually set the handler, doh.
14133
14134         * dbus/dbus-transport.c: (_dbus_transport_open):
14135         Add commented out call to dbus_transport_debug_client_new.
14136
14137         * dbus/Makefile.am:
14138         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14139
14140 2003-01-28  Havoc Pennington  <hp@pobox.com>
14141
14142         * dbus/dbus-message.c (check_message_handling): function to check
14143         on the loaded message, iterates over it etc.
14144
14145 2003-01-28  Havoc Pennington  <hp@pobox.com>
14146
14147         * test/Makefile.am (dist-hook): fix make distdir
14148
14149         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14150
14151 2003-01-27  Havoc Pennington  <hp@pobox.com>
14152
14153         * dbus/dbus-mempool.c (time_for_size): replace printf with
14154         _dbus_verbose
14155
14156         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14157         empty lines; fix the SAVE_LENGTH stuff to be
14158         START_LENGTH/END_LENGTH so it actually works; couple other
14159         bugfixes
14160
14161         * test/Makefile.am (dist-hook): add dist-hook for .message files
14162
14163         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14164         can be constant or locked.
14165         (_dbus_string_free): allow freeing a const string as
14166         documented/intended
14167
14168         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14169
14170         * dbus/dbus-test-main.c (main): take an argument which is the
14171         directory containing test data
14172
14173         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14174         argument to this and load all the messages in test/data/
14175         checking that they can be loaded or not loaded as appropriate.
14176
14177 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14178
14179         * bus/dispatch.c: (bus_dispatch_message_handler):
14180         Dispatch messages sent to services.
14181
14182         * bus/driver.c: (bus_driver_send_service_deleted),
14183         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14184         (bus_driver_send_service_acquired):
14185         Add helper functions for sending service related messages.
14186
14187         (bus_driver_send_welcome_message):
14188         Send HELLO_REPLY instead of WELCOME.
14189
14190         (bus_driver_handle_list_services):
14191         Send LIST_SERVICES_REPLY instead of SERVICES.
14192
14193         (bus_driver_handle_own_service),
14194         (bus_driver_handle_service_exists):
14195         New message handlers.
14196
14197         (bus_driver_handle_message):
14198         Invoke new message handlers.
14199
14200         (bus_driver_remove_connection):
14201         Don't remove any services here since that's done automatically
14202         by bus_service_remove_owner now.
14203
14204         * bus/driver.h:
14205         New function signatures.
14206
14207         * bus/services.c: (bus_service_add_owner):
14208         Send ServiceAcquired message if we're the only primary owner.
14209
14210         (bus_service_remove_owner):
14211         Send ServiceAcquired/ServiceLost messages.
14212
14213         (bus_service_set_prohibit_replacement),
14214         (bus_service_get_prohibit_replacement):
14215         Functions for setting prohibit replacement.
14216
14217         (bus_service_has_owner):
14218         New function that checks if a connection is in the owner queue of
14219         a certain service.
14220
14221         * bus/services.h:
14222         Add new function signatures.
14223
14224         * dbus/dbus-list.c: (_dbus_list_test):
14225         Add tests for _dbus_list_remove_last and traversing the list backwards.
14226
14227         * dbus/dbus-list.h:
14228         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14229         go any further, so return NULL then.
14230
14231         * dbus/dbus-protocol.h:
14232         Add new messages, service flags and service replies.
14233
14234 2003-01-26  Havoc Pennington  <hp@pobox.com>
14235
14236         * dbus/dbus-message-builder.c: implement, completely untested.
14237
14238         * test/data/*: add data to be used in testing.
14239         ".message" files are our simple loadable text format.
14240         ".message-raw" will be binary dumps of messages.
14241
14242         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14243
14244 2003-01-26  Havoc Pennington  <hp@pobox.com>
14245
14246         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14247
14248         * dbus/dbus-errors.c (dbus_result_to_string): add
14249         file errors
14250
14251         * dbus/dbus-message-builder.c: new file, will contain code to load
14252         up messages from files. Not implemented yet.
14253
14254 2003-01-26  Havoc Pennington  <hp@pobox.com>
14255
14256         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14257         the sender by setting to NULL
14258
14259 2003-01-26  Havoc Pennington  <hp@pobox.com>
14260
14261         The unit tests pass, but otherwise untested.  If it breaks, the
14262         tests should have been better. ;-)
14263
14264         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14265         the connection.
14266
14267         * dbus/dbus-message.c: redo everything so we maintain
14268         message->header as the only copy of the various fields.
14269         This avoids the possibility of out-of-memory in some cases,
14270         for example dbus_message_lock() can't run out of memory anymore,
14271         and avoids extra copying. Figured I may as well go ahead and do
14272         this since it was busted for dbus_message_lock to not return
14273         failure on OOM, and dbus_message_write_header was totally
14274         unchecked for OOM. Also fixed some random other bugs.
14275
14276         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14277         that strings are nul-terminated. Also, end_pos can be equal
14278         to string length just not greater than, I think.
14279         (_dbus_marshal_set_int32): new function
14280         (_dbus_marshal_set_uint32): new function
14281         (_dbus_marshal_set_string): new function
14282
14283         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14284         a warning, init timeout_list to NULL
14285         (dbus_connection_send_message): don't use uninitialized variable
14286         "serial"
14287
14288         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14289
14290 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14291
14292         * bus/driver.c: (bus_driver_handle_hello),
14293         (bus_driver_send_welcome_message):
14294         Plug leaks
14295
14296 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14297
14298         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14299         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14300         (dbus_connection_unref):
14301         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14302         * dbus/dbus-message.c: (dbus_message_unref),
14303         Plug memory leaks.
14304
14305         (dbus_message_get_fields):
14306         Remove debugging printout.
14307
14308         (_dbus_message_loader_return_buffer):
14309         Don't store the header string.
14310
14311         (_dbus_message_test):
14312         Plug leaks.
14313
14314 2003-01-26  Richard Hult  <rhult@codefactory.se>
14315
14316         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14317         the file descriptor list, since it can change under us.
14318
14319 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14320
14321         * glib/dbus-gmain.c: (dbus_connection_prepare),
14322         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14323         (remove_watch), (dbus_connection_hookup_with_g_main):
14324         Rewrite the glib handling to use its own GSource instead of a
14325         GIOChannel so we can catch messages put in the queue while waiting
14326         for a reply.
14327
14328 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14329
14330         * bus/Makefile.am:
14331         * bus/connection.c: (connection_disconnect_handler),
14332         (connection_watch_callback), (bus_connection_setup):
14333         * bus/dispatch.c: (send_one_message),
14334         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14335         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14336         * bus/dispatch.h:
14337         * bus/driver.c: (bus_driver_send_service_deleted),
14338         (bus_driver_send_service_created), (bus_driver_handle_hello),
14339         (bus_driver_send_welcome_message),
14340         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14341         (bus_driver_handle_message):
14342         * bus/driver.h:
14343         Refactor code, put the message dispatching in its own file. Use
14344         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14345         is disconnected.
14346
14347 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14348
14349         * dbus/dbus-internals.h:
14350         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14351
14352         * dbus/dbus-message.c: (dbus_message_get_sender):
14353         * dbus/dbus-message.h:
14354         Implement dbus_message_get_sender.
14355
14356         * dbus/dbus-protocol.h:
14357         Add message and service defines.
14358
14359 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14360
14361         * dbus/dbus-connection.c: (dbus_connection_send_message):
14362         * dbus/dbus-message-internal.h:
14363         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14364         (dbus_message_write_header):
14365         Remove _dbus_messag_unlock and don't set the client serial on a
14366         message if one already exists.
14367
14368 2003-01-24  Havoc Pennington  <hp@pobox.com>
14369
14370         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14371         list_pool
14372
14373         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14374         on OOM
14375
14376 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14377
14378         * dbus/dbus-list.c: (alloc_link), (free_link):
14379         Use a memory pool for the links.
14380
14381 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14382
14383         * bus/connection.c: (bus_connection_foreach):
14384         * bus/connection.h:
14385         Add new bus_connection_foreach function.
14386
14387         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14388         Add function that broadcasts a message to all clients.
14389
14390         (bus_driver_send_service_created), (bus_driver_handle_hello),
14391         (bus_driver_send_welcome_message),
14392         (bus_driver_handle_list_services), (bus_driver_message_handler):
14393         Implement functions that take care of listing services, and notifying
14394         clients when new services are created.
14395
14396         * bus/services.c: (bus_services_list):
14397         * bus/services.h:
14398         Add new function that returns an array of strings with the currently
14399         registered services.
14400
14401         * glib/dbus-glib.h:
14402         * glib/dbus-gmain.c:
14403         Update copyright year.
14404
14405 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14406
14407         * dbus/dbus-connection.c: (dbus_connection_send_message):
14408         Unlock the message in case it was sent earlier.
14409
14410         (dbus_connection_send_message_with_reply_and_block):
14411         Remove the reply message from the list.
14412
14413         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14414         Set array_len and new_pos correctly.
14415
14416         (_dbus_marshal_test):
14417         Remove debug output.
14418
14419         * dbus/dbus-message-internal.h:
14420         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14421         New function that returns the reply serial.
14422
14423         (_dbus_message_unlock):
14424         New function that unlocks a message and resets its header.
14425
14426         (dbus_message_append_string_array),
14427         (dbus_message_get_fields_valist),
14428         (dbus_message_iter_get_field_type),
14429         (dbus_message_iter_get_string_array),
14430         (dbus_message_get_fields),
14431         (dbus_message_append_fields_valist):
14432         Handle string arrays.
14433
14434         (dbus_message_set_sender):
14435         Make this function public since the bus daemon needs it.
14436
14437         (decode_header_data):
14438         Set the reply serial to -1 initially.
14439
14440         * dbus/dbus-message.h:
14441         Add dbus_message_set_sender.
14442
14443 2003-01-24  Havoc Pennington  <hp@pobox.com>
14444
14445         * doc/dbus-specification.sgml: add some stuff
14446
14447 2003-01-22  Havoc Pennington  <hp@pobox.com>
14448
14449         * doc/dbus-specification.sgml: Start to document the protocol.
14450
14451 2003-01-22  Havoc Pennington  <hp@pobox.com>
14452
14453         * dbus/dbus-connection.c
14454         (dbus_connection_send_message_with_reply_and_block): add some @todo
14455
14456         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14457
14458 2003-01-21  Havoc Pennington  <hp@pobox.com>
14459
14460         (patch untested because can't compile)
14461
14462         * bus/driver.c (create_unique_client_name): make this function
14463         never recycle client names. Also, caller should initialize
14464         the DBusString.
14465
14466         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14467
14468 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14469
14470         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14471         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14472         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14473         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14474         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14475         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14476         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14477         * dbus/dbus-marshal.h:
14478         * dbus/dbus-protocol.h:
14479         Add support for marshalling and demarshalling integer, double
14480         and string arrays.
14481
14482 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14483
14484         * bus/Makefile.am:
14485         Add driver.[ch]
14486
14487         * bus/connection.c: (connection_disconnect_handler):
14488         Remove the connection from the bus driver's list.
14489
14490         (connection_watch_callback): Dispatch messages.
14491
14492         (free_connection_data): Free connection name.
14493
14494         (bus_connection_setup): Add connection to the bus driver's list.
14495         (bus_connection_remove_owned_service):
14496         (bus_connection_set_name), (bus_connection_get_name):
14497         Add functions for setting and getting the connection's name.
14498
14499         * bus/connection.h:
14500         Add function headers.
14501
14502         * bus/driver.c: (create_unique_client_name),
14503         (bus_driver_handle_hello_message),
14504         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14505         (bus_driver_add_connection), (bus_driver_remove_connection):
14506         * bus/driver.h:
14507         * bus/main.c:
14508         * bus/services.c: (bus_service_free):
14509         * bus/services.h:
14510         New file that handles communication and registreation with the bus
14511         itself.
14512
14513 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14514
14515         * dbus/dbus-connection.c: (dbus_connection_send_message):
14516         Add a new client_serial parameter.
14517
14518         (dbus_connection_send_message_with_reply):
14519         Remove a @todo since we've implemented the blocking function.
14520
14521         (dbus_connection_send_message_with_reply_and_block):
14522         New function that sends a message and waits for a reply and
14523         then returns the reply.
14524
14525         * dbus/dbus-connection.h:
14526         Add new functions.
14527
14528         * dbus/dbus-errors.c: (dbus_result_to_string):
14529         * dbus/dbus-errors.h:
14530         Add new DBUS_RESULT.
14531
14532         * dbus/dbus-message-internal.h:
14533         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14534         (_dbus_message_set_sender), (dbus_message_write_header),
14535         (dbus_message_new_reply), (decode_header_data),
14536         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14537         * dbus/dbus-message.h:
14538         Add new functions that set the reply serial and sender.
14539         Also marshal and demarshal them correctly and add test.
14540
14541         * dbus/dbus-protocol.h:
14542         Add new DBUS_MESSAGE_TYPE_SENDER.
14543
14544         * glib/dbus-glib.h:
14545         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14546         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14547         (dbus_connection_hookup_with_g_main):
14548         * glib/test-dbus-glib.c: (main):
14549         Rewrite to use GIOChannel and remove the GSource crack.
14550
14551         * test/echo-client.c: (main):
14552         * test/watch.c: (check_messages):
14553         Update for changed APIs
14554
14555 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14556
14557         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14558
14559         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14560         Create a DBusTimeoutList.
14561         (dbus_connection_set_timeout_functions): Add new function to
14562         set timeout callbacks
14563
14564         * dbus/dbus-connection.h: Add public DBusTimeout API.
14565
14566         * dbus/dbus-message.c: (dbus_message_get_service):
14567         * dbus/dbus-message.h:  New function.
14568
14569         * dbus/dbus-server.c: Fix small doc typo.
14570
14571         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14572
14573 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14574
14575         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14576         of the string, just as long as specified.
14577
14578 2003-01-19  Havoc Pennington  <hp@pobox.com>
14579
14580         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14581         new function
14582
14583         * dbus/dbus-server.c (dbus_server_set_max_connections)
14584         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14585         keep track of current number of connections, and add API for
14586         setting a max (but haven't implemented enforcing the max yet)
14587
14588 2003-01-18  Havoc Pennington  <hp@pobox.com>
14589
14590         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14591         reading/writing if read_watch != NULL or write_watch != NULL.
14592
14593         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14594         the message loader code to actually load message->header and
14595         message->body into the newly-created message.
14596
14597         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14598         in OOM case
14599
14600         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14601         (dbus_connection_get_max_message_size)
14602         (dbus_connection_set_max_live_messages_size)
14603         (dbus_connection_get_max_live_messages_size): implement some
14604         resource limitation functions
14605
14606         * dbus/dbus-resources.c: new file implementing some of the
14607         resource limits stuff
14608
14609         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14610         missing docs, add @todo to handle OOM etc.
14611
14612         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14613         docs
14614
14615 2003-01-18  Havoc Pennington  <hp@pobox.com>
14616
14617         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14618         connection if it hasn't been already.
14619
14620         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14621         replace with DisconnectFunction.
14622
14623 2003-01-18  Havoc Pennington  <hp@pobox.com>
14624
14625         Building --disable-verbose-mode --disable-asserts --disable-tests
14626         cuts the library from 112K to 45K or so
14627
14628         * configure.in: check for varargs macro support,
14629         add --enable-verbose-mode, --enable-asserts.
14630
14631         * dbus/dbus-internals.h (_dbus_assert): support
14632         DBUS_DISABLE_ASSERT
14633         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14634
14635 2003-01-18  Havoc Pennington  <hp@pobox.com>
14636
14637         * dbus/dbus-test.c: include config.h so that tests actually run
14638
14639         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14640         so the failure mode when that assumption fails will be plenty
14641         obvious.
14642
14643 2003-01-18  Havoc Pennington  <hp@pobox.com>
14644
14645         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14646
14647         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14648         the distribution
14649
14650         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14651         since we don't want to use those in make check
14652
14653 2003-01-15  Havoc Pennington  <hp@redhat.com>
14654
14655         Release 0.2
14656
14657         * NEWS: update
14658
14659 2003-01-15  Havoc Pennington  <hp@redhat.com>
14660
14661         * test/Makefile.am: fix so that test source code ends up in the
14662         distribution on make distcheck
14663
14664 2003-01-15  Havoc Pennington  <hp@redhat.com>
14665
14666         Release 0.1.
14667
14668         * NEWS: update
14669
14670 2003-01-15  Havoc Pennington  <hp@redhat.com>
14671
14672         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14673         fix build when --disable-tests
14674
14675         * Makefile.am (EXTRA_DIST): put HACKING in here
14676
14677         * HACKING: document procedure for making a tarball release.
14678
14679 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14680
14681         * bus/connection.c: (connection_error_handler),
14682         (bus_connection_setup):
14683         * bus/main.c: (main):
14684         Make sure that the DBusConnectionData struct is NULLed
14685         out to prevent a segfault.
14686
14687         * dbus/dbus-errors.c: (dbus_result_to_string):
14688         * dbus/dbus-errors.h:
14689         * dbus/dbus-message.c: (dbus_message_get_fields),
14690         (dbus_message_get_fields_valist), (_dbus_message_test):
14691         * dbus/dbus-message.h:
14692         Make dbus_message_get_fields return a result code so we can
14693         track invalid fields as well as oom.
14694
14695 2003-01-11  Havoc Pennington  <hp@pobox.com>
14696
14697         * configure.in: change --enable-test/--enable-ansi action-if-given
14698         to enable_foo=$enableval instead of enable_foo=yes
14699
14700 2003-01-08  Havoc Pennington  <hp@pobox.com>
14701
14702         * dbus/dbus-string.c (_dbus_string_align_length): new function
14703
14704         * dbus/dbus-test-main.c: move main() for test app here
14705         * dbus/dbus-test.c
14706         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14707         symbol to run tests, because dbus-test isn't in the main
14708         library
14709
14710         Code review nitpicks.
14711
14712         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14713         for people with narrow emacs ;-). Assert client_serial was filled
14714         in. Assert message->name != NULL.
14715         (dbus_message_append_fields): have "first_field_type" arg separate
14716         from va list, needed for C++ binding that also uses varargs IIRC
14717         and helps with type safety
14718         (dbus_message_new): add @todo about using DBusString to store
14719         service/name internally
14720         (dbus_message_new): don't leak ->service and ->name on OOM later
14721         in the function
14722         (dbus_message_unref): free the service name
14723         (dbus_message_get_fields): same change to varargs
14724         i.e. first_field_type
14725         (_dbus_message_loader_return_buffer): assert that the message data
14726         is aligned (if not it's a bug in our code). Put in verbose griping
14727         about why we set corrupted = TRUE.
14728         (decode_header_data): add FIXME that char* is evil.  Was going to
14729         add FIXME about evil locale-specific string.h strncmp, but just
14730         switched to wacky string-as-uint32 optimization. Move check for
14731         "no room for field name" above get_const_data_len() to avoid
14732         assertion failure in get_const_data_len if we have trailing 2
14733         bytes or the like. Check for service and name fields being
14734         provided twice. Don't leak service/name on error. Require field
14735         names to be aligned to 4 bytes.
14736
14737         * dbus/dbus-marshal.c: move byte swap stuff to header
14738         (_dbus_pack_int32): uscore-prefix
14739         (_dbus_unpack_int32): uscore-prefix
14740         (_dbus_unpack_uint32): export
14741         (_dbus_demarshal_string): add @todo complaining about use of
14742         memcpy()
14743         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14744         handling allowing corrupt data to go unchecked
14745
14746 2003-01-08  Havoc Pennington  <hp@redhat.com>
14747
14748         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14749         to the select() as needed for authentication. (should be using
14750         _dbus_poll() not select, but for another day)
14751
14752         * dbus/dbus.h: include dbus/dbus-protocol.h
14753
14754 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14755
14756         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14757         dbus-connection.h
14758
14759 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14760
14761         * dbus/dbus-internals.c: (_dbus_type_to_string):
14762         New function that returns a string describing a type.
14763
14764         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14765         * dbus/dbus-marshal.h:
14766         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14767         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14768         (dbus_message_iter_get_byte_array):
14769         * dbus/dbus-message.h:
14770         Add new convenience functions for appending and getting message fields.
14771         Also add demarshalling routines for byte arrays.
14772
14773 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14774
14775         * dbus/dbus-connection-internal.h:
14776         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14777         (_dbus_connection_get_next_client_serial),
14778         (dbus_connection_send_message):
14779         * dbus/dbus-internals.h:
14780         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14781         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14782         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14783         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14784         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14785         (_dbus_verbose_bytes), (_dbus_marshal_test):
14786         * dbus/dbus-marshal.h:
14787         * dbus/dbus-message-internal.h:
14788         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14789         (dbus_message_write_header), (_dbus_message_lock),
14790         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14791         (dbus_message_get_name), (dbus_message_append_int32),
14792         (dbus_message_append_uint32), (dbus_message_append_double),
14793         (dbus_message_append_string), (dbus_message_append_byte_array),
14794         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14795         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14796         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14797         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14798         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14799         (decode_header_data), (_dbus_message_loader_return_buffer),
14800         (message_iter_test), (_dbus_message_test):
14801         * dbus/dbus-message.h:
14802         * dbus/dbus-protocol.h:
14803         * dbus/dbus-test.c: (main):
14804         * dbus/dbus-test.h:
14805         * glib/test-dbus-glib.c: (message_handler), (main):
14806         * test/echo-client.c: (main):
14807         * test/watch.c: (check_messages):
14808         Make messages sendable and receivable for real.
14809
14810 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14811
14812         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14813         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14814         * dbus/dbus-message.c: (dbus_message_append_int32),
14815         (dbus_message_append_uint32), (dbus_message_append_double),
14816         (dbus_message_append_string), (dbus_message_append_byte_array):
14817         Handle OOM restoration.
14818
14819 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14820
14821         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14822         (_dbus_demarshal_string), (_dbus_marshal_test):
14823         * dbus/dbus-marshal.h:
14824         * dbus/dbus-message.c: (dbus_message_get_name),
14825         Document these functions.
14826
14827         (dbus_message_append_int32), (dbus_message_append_uint32),
14828         (dbus_message_append_double), (dbus_message_append_string),
14829         (dbus_message_append_byte_array):
14830         * dbus/dbus-message.h:
14831         Add functions for adding message fields of different types.
14832
14833         * dbus/dbus-protocol.h:
14834         Add the different types.
14835
14836 2003-01-05  Havoc Pennington  <hp@pobox.com>
14837
14838         * bus/connection.c: implement routines for handling connections,
14839         first thing is keeping a list of owned services on each connection
14840         and setting up watches etc.
14841
14842         * bus/services.c: implement a mapping from service names to lists
14843         of connections
14844
14845         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14846
14847         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14848         to use static mutexes for global data
14849
14850         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14851         collection of functions to set/get application-specific data
14852         on the DBusConnection.
14853
14854 2003-01-04  Havoc Pennington  <hp@pobox.com>
14855
14856         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14857         (_dbus_poll): new function
14858
14859         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14860         copied from GLib
14861
14862         * bus/loop.c: initial code for the daemon main loop
14863
14864 2003-01-04  Havoc Pennington  <hp@pobox.com>
14865
14866         * test/watch.c (error_handler): make it safe if the error handler
14867         is called multiple times (if we s/error handler/disconnect
14868         handler/ we should just guarantee it's called only once)
14869
14870         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14871         error handler on disconnect (it's quite possible we should
14872         just change the error handler to a "disconnect handler," I'm
14873         not sure we have any other meaningful errors)
14874
14875         * configure.in: check for getpwnam_r
14876
14877         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14878         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14879         mechanism as in SASL spec, using socket credentials
14880
14881         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14882         (_dbus_send_credentials_unix_socket): new function
14883
14884         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14885         dbus_accept()
14886         (_dbus_write): only check errno if <0 returned
14887         (_dbus_write_two): ditto
14888
14889 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14890
14891         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14892         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14893         (_dbus_marshal_test):
14894         * dbus/dbus-marshal.h:
14895         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14896         to _dbus_marshal_utf8_string. Also fix some tests.
14897
14898 2002-12-28  Harri Porten  <porten@kde.org>
14899
14900         * configure.in: added check for C++ compiler and a very cheesy
14901         check for the Qt integration
14902
14903         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14904
14905         * qt/Makefile.am: added
14906
14907         * qt/.cvsignore: added
14908
14909         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14910         latter, added #ifdef QT_THREAD_SUPPORT guard.
14911
14912         * dbus/Makefile.am: added missing headers for make dist
14913
14914 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14915
14916         * dbus/Makefile.am: fixup export-symbols-regex.
14917
14918 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14919
14920         * acinclude.m4: Add this file and put the
14921         PKG_CHECK_MODULE macro in it.
14922
14923 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14924
14925         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14926         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14927         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14928         (_dbus_marshal_test):
14929         Make the demarshalling routines align the pos argument.
14930         Add string marshalling tests and fix the obvious bugs
14931         discovered.
14932
14933 2002-12-26  Havoc Pennington  <hp@pobox.com>
14934
14935         * dbus/dbus-auth.c: fixes fixes fixes
14936
14937         * dbus/dbus-transport-unix.c: wire up support for
14938         encoding/decoding data on the wire
14939
14940         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14941         (_dbus_auth_decode_data): append to target string
14942         instead of nuking it.
14943
14944 2002-12-26  Havoc Pennington  <hp@pobox.com>
14945
14946         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14947         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14948         doh
14949
14950         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14951         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14952         now). Main point is because I wanted unpack_uint32 to implement
14953         _dbus_verbose_bytes
14954         (_dbus_verbose_bytes): new function
14955
14956         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14957
14958         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14959         mechanism to handle a corrupt message stream
14960         (_dbus_message_loader_new): fix preallocation to only prealloc,
14961         not prelengthen
14962
14963         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14964         (_dbus_string_test): enhance tests for copy/move and fix the
14965         functions
14966
14967         * dbus/dbus-transport-unix.c: Hold references in more places to
14968         avoid reentrancy problems
14969
14970         * dbus/dbus-transport.c: ditto
14971
14972         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14973         leak reference count in no-message case
14974
14975         * test/watch.c (do_mainloop): handle adding/removing watches
14976         during iteration over the watches. Also, ref the connection/server
14977         stored on a watch, so we don't try to mangle a destroyed one.
14978
14979         * dbus/dbus-transport-unix.c (do_authentication): perform
14980         authentication
14981
14982         * dbus/dbus-auth.c (get_state): add a state
14983         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14984         (_dbus_auth_get_unused_bytes): append the unused bytes
14985         to the passed in string, rather than prepend
14986
14987         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14988         the auth conversation DBusAuth
14989
14990         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14991         (_dbus_transport_new_for_domain_socket): when creating a
14992         transport, pass in whether it's a client-side or server-side
14993         transport so we know which DBusAuth to create
14994
14995 2002-12-03  Havoc Pennington  <hp@pobox.com>
14996
14997         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14998         _after_ finalizing the derived members
14999         (unix_connection_set): unref watch if we fail to add it
15000
15001         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15002         transport first, so that the connection owned by the
15003         transport will be valid as the transport finalizes.
15004
15005         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15006         if necessary, and remove watches from the connection.
15007
15008         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15009
15010 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15011
15012         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15013         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15014         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15015         (_dbus_marshal_test):
15016         * dbus/dbus-marshal.h:
15017         Add string marshal functions and have the demarshal functions
15018         return the new position.
15019
15020 2002-12-25  Havoc Pennington  <hp@pobox.com>
15021
15022         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15023         it is a simple protocol that just maps directly to SASL.
15024
15025         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15026         initial implementation, not actually used yet.
15027
15028         * dbus/dbus-string.c (_dbus_string_find): new function
15029         (_dbus_string_equal): new function
15030         (_dbus_string_base64_encode): new function
15031         (_dbus_string_base64_decode): new function
15032
15033 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15034
15035         * dbus/Makefile.am:
15036         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15037         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15038         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15039         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15040         * dbus/dbus-marshal.h:
15041         * dbus/dbus-protocol.h:
15042         * dbus/dbus-test.c: (main):
15043         * dbus/dbus-test.h:
15044         Add un-optimized marshalling/demarshalling routines.
15045
15046 2002-12-25  Harri Porten  <porten@kde.org>
15047
15048         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15049
15050 2002-12-24  Zack Rusin  <zack@kde.org>
15051
15052         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15053         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15054         main loop stuff
15055
15056 2002-12-24  Havoc Pennington  <hp@pobox.com>
15057
15058         * glib/dbus-gthread.c: fix include
15059
15060         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15061         I think glib API needs to change, though, as you don't
15062         want to use DBusMessageFunction, you want to use the
15063         DBusMessageHandler object. Probably
15064         dbus_connection_open_with_g_main_loop()
15065         and dbus_connection_setup_g_main_loop() or something like that
15066         (but think of better names...) that just create a connection
15067         that has watch/timeout functions etc. already set up.
15068
15069         * dbus/dbus-connection.c
15070         (dbus_connection_send_message_with_reply): new function just to
15071         show how the message handler helps us deal with replies.
15072
15073         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15074
15075         * dbus/dbus-string.c (_dbus_string_test): free a string that
15076         wasn't
15077
15078         * dbus/dbus-hash.c: use memory pools for the hash entries
15079         (rebuild_table): be more paranoid about overflow, and
15080         shrink table when we can
15081         (_dbus_hash_test): reduce number of sprintfs and write
15082         valid C89. Add tests for case where we grow and then
15083         shrink the hash table.
15084
15085         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15086
15087         * dbus/dbus-connection.c (dbus_connection_register_handler)
15088         (dbus_connection_unregister_handler): new functions
15089
15090         * dbus/dbus-message.c (dbus_message_get_name): new
15091
15092         * dbus/dbus-list.c: fix docs typo
15093
15094         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15095         an object representing a handler for messages.
15096
15097 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15098
15099         * glib/dbus-glib.h:
15100         * glib/dbus-gthread.c: (dbus_gthread_init):
15101         Don't use the gdbus prefix for public functions.
15102
15103 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15104
15105         * Makefile.am:
15106         * configure.in:
15107         Add GLib checks and fixup .pc files
15108
15109         * glib/Makefile.am:
15110         * glib/dbus-glib.h:
15111         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15112         (gdbus_connection_check), (gdbus_connection_dispatch),
15113         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15114         (dbus_connection_gsource_new):
15115         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15116         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15117         * glib/test-dbus-glib.c: (message_handler), (main):
15118         Add GLib support.
15119
15120 2002-12-15  Harri Porten  <porten@kde.org>
15121
15122         * autogen.sh: check for libtoolize before attempting to use it
15123
15124         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15125         struct.
15126
15127         * .cvsignore: ignore more stamp files
15128
15129         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15130
15131         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15132         without make install.
15133
15134 2002-12-15  Havoc Pennington  <hp@pobox.com>
15135
15136         * dbus/dbus-threads.c: add thread stubs that a higher library
15137         layer can fill in. e.g. the GLib wrapper might fill them in with
15138         GThread stuff. We still need to use this thread API to
15139         thread-safe-ize the library.
15140
15141 2002-12-12  Havoc Pennington  <hp@pobox.com>
15142
15143         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15144         below new interfaces and include fewer system headers.
15145
15146         * dbus/dbus-sysdeps.c (_dbus_read): new function
15147         (_dbus_write): new function
15148         (_dbus_write_two): new function
15149         (_dbus_connect_unix_socket): new function
15150         (_dbus_listen_unix_socket): new function
15151
15152         * dbus/dbus-message-internal.h: change interfaces to use
15153         DBusString
15154
15155 2002-12-11  Havoc Pennington  <hp@pobox.com>
15156
15157         * dbus/dbus-types.h: add dbus_unichar
15158
15159         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15160
15161         * dbus/dbus-connection.c (dbus_connection_send_message): return
15162         TRUE on success
15163
15164         * dbus/dbus-transport.c: include dbus-watch.h
15165
15166         * dbus/dbus-connection.c: include dbus-message-internal.h
15167
15168         * HACKING: add file with coding guidelines stuff.
15169
15170         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15171         handling here, for security purposes (as in vsftpd). Not actually
15172         using this class yet.
15173
15174         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15175         system/libc usage here, as in vsftpd, for ease of auditing (and
15176         should also simplify portability). Haven't actually moved all the
15177         system/libc usage into here yet.
15178
15179 2002-11-25  Havoc Pennington  <hp@pobox.com>
15180
15181         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15182         always print the first verbose message.
15183
15184 2002-11-24  Havoc Pennington  <hp@pobox.com>
15185
15186         * test/echo-client.c, test/echo-server.c: cheesy test
15187         clients.
15188
15189         * configure.in (AC_CHECK_FUNCS): check for writev
15190
15191         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15192         function
15193
15194         * dbus/dbus-list.c (_dbus_list_foreach): new function
15195
15196         * dbus/dbus-internals.c (_dbus_verbose): new function
15197
15198         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15199         representing a server that listens for connections.
15200
15201         * dbus/.cvsignore: create
15202
15203         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15204         public API for reporting errors
15205
15206         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15207         public object representing a connection that
15208         sends/receives messages. (Same object used for
15209         both client and server.)
15210
15211         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15212         Basic abstraction for different kinds of stream
15213         that we might read/write messages from.
15214
15215 2002-11-23  Havoc Pennington  <hp@pobox.com>
15216
15217         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15218         _DBUS_INT_MAX
15219
15220         * dbus/dbus-test.c (main): add list test, and include
15221         dbus-test.h as intended
15222
15223         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15224         (_dbus_hash_table_remove_int): return value indicates
15225         whether the entry existed to remove
15226
15227         * dbus/dbus-list.c: add linked list utility class,
15228         with docs and tests
15229
15230         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15231         array sometimes.
15232
15233 2002-11-23  Havoc Pennington  <hp@pobox.com>
15234
15235         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15236         DBUS_END_DECLS to nothing, that should fix this once and for all
15237
15238         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15239
15240         * dbus/dbus-message.c, dbus/dbus-hash.c:
15241         add some missing @brief
15242
15243 2002-11-23  Havoc Pennington  <hp@pobox.com>
15244
15245         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15246         to avoid confusing Doxygen
15247
15248         * dbus/dbus-hash.c: @} not }@
15249
15250         * dbus/dbus-message.c (struct DBusMessage): split out
15251         internals docs
15252
15253 2002-11-23  Havoc Pennington  <hp@pobox.com>
15254
15255         * configure.in: pile on more warning flags if using gcc
15256
15257         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15258         to document static functions
15259
15260         * configure.in: add summary to end of configure so it
15261         looks nice and attractive
15262
15263         * dbus/dbus-hash.c: finish implementation and write unit
15264         tests and docs
15265
15266         * configure.in: add --enable-tests to enable unit tests
15267
15268         * dbus/dbus-test.c: test program to run unit tests
15269         for all files in dbus/*, initially runs a test for
15270         dbus-hash.c
15271
15272         * dbus/dbus-internals.h: file to hold some internal utility stuff
15273
15274 2002-11-22  Havoc Pennington  <hp@redhat.com>
15275
15276         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15277         "ported" away from Tcl
15278
15279         * dbus/dbus-types.h: header for types such as dbus_bool_t
15280
15281 2002-11-22  Havoc Pennington  <hp@redhat.com>
15282
15283         * dbus/dbus.h: fixups for doc warnings
15284
15285         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15286         macros
15287         (QUIET): make it quiet so we can see warnings
15288
15289         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15290
15291 2002-11-22  Havoc Pennington  <hp@redhat.com>
15292
15293         * Makefile.am: include "Doxyfile" target in all-local
15294
15295         * configure.in: generate the Doxyfile
15296
15297         * Doxyfile.in: move Doxyfile here, so we can use
15298         configure to generate a Doxyfile with the right
15299         version number etc.
15300
15301 2002-11-22  Havoc Pennington  <hp@redhat.com>
15302
15303         * dbus/dbus-message.c: move inline docs into .c file
15304
15305         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15306         so all docs are under doc/
15307         (MAN_EXTENSION): generate man pages. Use extension
15308         ".3dbus" which matches ".3qt" on my system,
15309         I guess this is OK, I don't know really.
15310         (FILE_PATTERNS): look for .c files not .h, makes sense
15311         for plain C I think
15312
15313 2002-11-22  Havoc Pennington  <hp@pobox.com>
15314
15315         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15316         because any app can be a server, and any app can be a client,
15317         the bus is a special kind of server.
15318
15319 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15320
15321         * Doxyfile : adding. Still needs Makefile rules to be generated
15322         automatically (just run "doxygen" in the toplevel dir for now to
15323         generate docs)
15324
15325         * dbus/dbus-message.h : Adding sample docs (javadoc since
15326         resembles gtk-doc a little more)
15327
15328         * dbus/dbus.h : Adding sample docs
15329
15330 2002-11-21  Havoc Pennington  <hp@redhat.com>
15331
15332         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15333         so we can allow ourselves to include files directly,
15334         instead of having to use dbus.h
15335
15336         * dbus/dbus.h: fill in
15337
15338         * dbus/dbus-message.h: sketch out a sample header file.
15339         Include griping if you include it directly instead of
15340         via dbus.h
15341
15342         * dbus/dbus-macros.h: new file with macros for extern "C",
15343         TRUE/FALSE, NULL, etc.
15344
15345         * doc/file-boilerplate.c: put include guards in here
15346
15347 2002-11-21  Havoc Pennington  <hp@redhat.com>
15348
15349         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15350
15351         * COPYING: include the GPL as well, and license code
15352         under both AFL and GPL.
15353
15354 2002-11-21  Havoc Pennington  <hp@redhat.com>
15355
15356         * acconfig.h: get rid of this
15357
15358         * autogen.sh (run_configure): add --no-configure option
15359
15360         * configure.in: remove AC_ARG_PROGRAM to make
15361         autoconf complain less. add AC_PREREQ.
15362         add AC_DEFINE third arg.
15363
15364 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15365
15366         * doc/Makefile.am:
15367         Fix references so we can distcheck.
15368
15369 2002-11-21  Havoc Pennington  <hp@redhat.com>
15370
15371         * Initial module creation
15372