* dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-03  Thiago Macieira  <thiago@kde.org>
2
3         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
4         output and add it to the DBusError message we return.
5
6         * tools/dbus-launch.1:
7         * tools/dbus-launch.c: Add option --close-stderr to, well,
8         close stderr before starting dbus-daemon.
9
10 2007-01-31  Havoc Pennington  <hp@redhat.com>
11
12         * bus/dbus-daemon.1.in: write a section in the man page on running
13         a test daemon for debugging purposes
14
15 2007-01-26  Havoc Pennington  <hp@redhat.com>
16
17         * bus/session.conf.in: override all the default limits with much
18         higher limits on the session bus, there is no reason the session
19         bus should have low limits
20
21         * bus/config-parser.c (bus_config_parser_new): increase default
22         limits so they are less likely to be hit; in particular the max
23         replies per connection was way too low
24
25 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
26
27         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
28         a pointer to the tutorial maintained as part of dbus-python
29
30 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
31
32         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
33         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
34         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
35
36 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
37
38         * tools/dbus-monitor.c: gettimeofday() is not available 
39         on windows so we have to provide our own. It's taken from 
40         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
41
42 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
43
44         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
45         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
46         is in dbus-sysdeps-win.c (not in this patch).
47
48         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
49         with InterlockedInc/Decrement. 
50         - Patches from Christian Ehrlicher
51         
52 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
53
54         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
55
56 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
57
58         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
59         fix mispaced const statement. - Patch from Peter Kümmel
60
61 2006-12-19  Ray Strode  <rstrode@redhat.com>
62
63         * bus/bus.c (process_config_every_time):
64         don't overwrite existing bus context activation object
65         until after we've checked that the new activation is
66         valid.
67
68         * bus/main.c 
69         (signal_handler), (handle_reload_watch):
70         don't call exit() on failure, instead make do and keep
71         going.
72         (close_reload_pipe): new function to turn off
73         hangup-causes-config-reload behavior if an unexpected
74         error occurs
75
76 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
77
78         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
79         correctness fix. - Patch from Christian Ehrlicher
80
81 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
82
83         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
84         we should also use it. - Patch from Christian Ehrlicher
85
86 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
87   
88         * dbus-sysdeps-util.c: added win32 related tests
89
90 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
91
92         * dbus/dbus-string.c (_dbus_string_pop_line),
93         bus/desktop-file.c (parse_section_start,
94         parse_comment_or_blank,parse_key_value,): uses
95         _dbus_string_find_eol() to support platform independent eol style.
96
97 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
98
99         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
100         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
101               _dbus_string_find_eol().
102         Approved by: Havoc Pennington.
103
104 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
105
106         * configure.in: Added switch to disable user_database caching.
107
108         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
109         be able disable user_dabase caching.
110
111 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
112
113         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
114         struct. It is unnecessary we have a global one already. Also remove 
115         bus_context_get_user_database function, it is no longer needed.
116         Flush the global database on reload.
117
118         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
119         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
120
121         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
122         Add _dbus_user_database_flush_system. 
123         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
124         Small unrelated change in _dbus_is_a_number: change 
125         _dbus_string_parse_int to _dbus_string_parse_uint. 
126
127         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
128         _dbus_groups_from_uid.
129
130         * bus/policy.c, bus/policy.h: Change call to 
131         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
132         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
133         needs it.
134
135 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
136
137         * bus/signal.c: Fix match_rule_equal errata
138         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
139         <kimmo.hamalainen@nokia.com>)
140
141 2006-11-19  Thiago Macieira  <thiago@kde.org>
142
143         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
144         _dbus_pthread_condvar_wait,
145         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
146         pthread_self() after coming back from a conditional variable
147         wait as well as in one codepath where it was forgotten.
148         Approved by: Havoc Pennington.
149
150 2006-11-17  Havoc Pennington  <hp@redhat.com>
151
152         * update-dbus-docs.sh: allow setting fd.org username via env
153         variable. Make it run autogen with --enable-xml-docs=yes
154         --enable-doxygen-docs=yes so configure will fail if the required
155         tools are missing.
156
157 2006-11-17  Havoc Pennington  <hp@redhat.com>
158
159         * doc/dbus-faq.xml: minor FAQ tweaks
160
161 2006-11-14  Havoc Pennington  <hp@redhat.com>
162         
163         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
164         dbus_get_local_machine_id() to its own file, no substantive
165         changes. There are a couple other things we might want to add that
166         are "misc" so moving out of dbus-connection.[hc] which is big
167         enough already.
168         
169 2006-11-14  Havoc Pennington  <hp@redhat.com>
170
171         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
172         UUID had the timestamp last, but the implementation had it first;
173         move it to last since I think it's a tiny bit nicer (easier to
174         compare at a glance, faster to sort, less code), and will not
175         cause any practical compatibility problems. Also, always convert
176         the timestamp to big endian.
177
178         * doc/dbus-specification.xml: Clean up the docs on the UUID.
179
180         * tools/dbus-uuidgen.1: more prominently say it is not suitable
181         as a replacement for regular uuidgen/RFC4122.
182
183 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
184
185         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
186         the correct value so we don't assert when initalizing recursive threads
187
188         * test/name-test/test-thread-init.c: call dbus_threads_init_default
189         instead of _dbus_threads_init_debug since it is more of a real world
190         test
191
192 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
193
194         * Released 1.0.0
195
196 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
197
198         * AUTHORS: added Peter and Tor of windows porting fame
199
200 2006-11-08  Havoc Pennington  <hp@redhat.com>
201
202         * doc/dbus-specification.xml: add a note about protocol stability
203
204         * doc/TODO: Remove "important for 1.0" section, replace with
205         "important for 1.2" section
206         
207 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
208
209         * README: remove some of the out of date flags
210
211         * doc/TODO: Remove todo items which are done
212
213 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
214
215         * tools/dbus-monitor.c: Handle sigint so we flush stdout
216         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
217
218 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
219
220         * tools/dbus-monitor.1: update the manpage for dbus-monitor
221         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
222
223 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
224
225         * AUTHORS: Update with all people listed in the ChangeLog
226
227 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
228
229         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
230         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
231
232 2006-11-07  Havoc Pennington  <hp@redhat.com>
233
234         * HACKING: Update release instructions to include stuff about
235         stable releases, branching, etc. May not be totally correct,
236         please fix if needed, but keep instructions up-to-date so we do
237         each stable release consistently in the future.
238
239 2006-11-07  Havoc Pennington  <hp@redhat.com>
240
241         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
242         documentation updates. Bump faq/spec versions (not to 1.0; I don't
243         think the spec will be "finished"/1.0 when we ship the 1.0 library).
244
245 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
246
247         * bus/bus.c: Missed patch - pass in the context to the directory watch
248
249 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
250
251         * Released D-Bus 1.0 RC 3(0.95)
252
253 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
254
255         * bus/activation.c (bus_activation_new): don't fail if we can not read
256         the directory as it may not exist
257
258 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
259
260         * bus/config-parser.c (service_dirs_find_dir): use 
261         _dbus_list_get_next_link so we don't get stuck in an infinite loop
262         (start_busconfig_child): move processing of standard_session_servicedirs
263         tags here because they have no content
264         (bus_config_parser_content): check we don't have content in 
265         standard_session_servicedirs tag
266
267 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
268
269         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
270         Packagers need to own this directory
271
272 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
273
274         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
275         <standard_session_servicedirs> tag with a <sevicedir> tag that
276         points to the test service directory
277
278 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
279
280         * configure.in: Add a check for DIR *dirp->dd_fd
281
282         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
283         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
284         of both Solaris and Irix
285
286 2006-11-01  Havoc Pennington  <hp@redhat.com>
287
288         * bus/dbus-daemon.1.in: document standard_session_servicedirs
289
290 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
291
292         * configure.in: expose DBUS_DATADIR
293         
294         * bus/config-parser.c: add the standard_session_servicedirs element
295         to the parser
296         (bus_config_parser_content): process the standard_session_servicedirs
297         element by getting the standard directories from sysdeps and merging
298         them into the service directory list
299         (test_default_session_servicedirs): make sure we get what we expect
300
301         * bus/session.conf.in: replace the servicedir tag with the 
302         standard_session_servicedirs tag
303
304         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
305         dbus-sysdeps.h to avoid circular header dependencies
306
307         * dbus/dbus-sysdeps.h: add the typedef of DBusList
308
309         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
310         which takes a string of directories delimited by colons, parses them 
311         out, appends a suffix and puts them in a list ignoring empty elements
312         (_dbus_get_standard_session_servicedirs): returns the standard 
313         directories for a session bus to look for service activation files
314         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
315         DBUS_DATADIR directories
316
317         * test/data/valid-config-files/many-rules.conf: add the 
318         standard_session_servicedirs tag to the valid config file tests
319
320 2006-10-30  Havoc Pennington  <hp@redhat.com>
321
322         * tools/dbus-launch.1, doc/TODO: capture intent to change the
323         command line options of dbus-launch a bit post 1.0
324
325 2006-10-27  Havoc Pennington  <hp@redhat.com>
326         
327         * dbus/dbus-connection.c (dbus_connection_open_private): document
328         how to choose shared vs. private connections
329
330 2006-10-27  Havoc Pennington  <hp@redhat.com>
331
332         * dbus/dbus-test.c: enclose more of the file in the
333         DBUS_BUILD_TESTS check.
334
335         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
336         DBUS_DISABLE_ASSERT case.
337
338         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
339         that it only works on the server side
340
341         * dbus/dbus-bus.c: add a global lock covering the BusData we
342         attach to each connection
343         (internal_bus_get): lock our access to the BusData
344         (dbus_bus_register): lock the entire registration process
345         with _DBUS_LOCK(bus_datas). If we get the lock and 
346         registration is already complete, silently return (vs. previous
347         behavior of aborting).
348         (dbus_bus_set_unique_name): lock the BusData
349         (dbus_bus_get_unique_name): lock the BusData
350
351 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
352
353         * bus/config-parser.c (service_dirs_find_dir, 
354         service_dirs_append_unique_or_free, 
355         service_dirs_append_link_unique_or_free): New static methods
356         for only appending unique service directory names into
357         the service directory list
358         (merge_included, bus_config_parser_content): Only add unique
359         service directory names into the list
360
361 2006-10-27  Havoc Pennington  <hp@redhat.com>
362
363         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
364         variables volatile, suggested by Thiago. Document struct fields.
365         (PTHREAD_CHECK): remove pthread error checking if assertions are
366         disabled, should reduce the no-assertions case to the bare
367         minimum code.
368
369 2006-10-26  Havoc Pennington  <hp@redhat.com>
370         
371         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
372         to be recursive
373         (_dbus_pthread_mutex_unlock): make it recursive
374         (_dbus_pthread_condvar_wait): save/restore the recursion count
375         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
376
377 2006-10-26  Havoc Pennington  <hp@redhat.com>
378
379         * doc/dbus-specification.xml: clarify the UUID text slightly
380
381         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
382         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
383         in preparation for being able to extend them for e.g. recursive
384         mutexes.
385
386 2006-10-26  Havoc Pennington  <hp@redhat.com>
387
388         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
389         condition variables relate to recursive mutexes.
390         
391         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
392         dbus/dbus-threads.c: Split the platforms-specific thread 
393         implementations into their own files.
394         
395         * dbus/dbus-sysdeps-pthread.c
396         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
397         was backward. Not that anything uses it.
398
399 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
400
401         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
402         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
403         needs to be cleaned up more.
404
405         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
406         up the CREDS issue.
407
408 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
409
410         * configure.in, dbus-1.pc.in: Check to see if thread methods 
411         are in glibc or libpthread and add -lpthread to the link stage 
412         if it is the latter
413
414 2006-10-26  Thiago Macieira  <thiago@kde.org>
415
416         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
417         bug 8780: the connection lock is only required while recording
418         the shared connection, so protect only that code
419         section. Don't require connection_lookup_shared to return a
420         locked connection.
421
422 2006-10-26  Thiago Macieira  <thiago@kde.org>
423
424         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
425         check if get_machine_uuid() returns NULL before proceeding any
426         further: we can't init the X atoms or create a session file
427         name if there is no machine ID.
428         This solves a crash reported by some users if
429         --exit-with-session was used without --autolaunch=<machine-id>
430
431 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
432
433         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
434         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
435
436         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
437         before we run dbus-launch
438
439         * configure.in: define TEST_BUS_BINARY to be the full path to 
440         dbus-daemon in the build root 
441
442 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
443
444         * dbus/Makefile.am:
445         * tools/Makefile.am:
446         * toos/dbus-uuidgen.1:
447                 Move the machine-id file to /var/lib/dbus 
448
449 2006-10-24  David Zeuthen  <davidz@redhat.com>
450
451         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
452         _dbus_assert (thread_init_generation != _dbus_current_generation)
453         not _dbus_assert (thread_init_generation == _dbus_current_generation)
454
455 2006-10-24  Thiago Macieira  <thiago@kde.org>
456
457         * dbus/dbus-sysdeps.h:
458         * dbus/dbus-sysdeps-unix.c: Add function
459         _dbus_make_file_world_readable that chmods a file to 0644.
460
461         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
462         Avoid writing to the static "argv" array, thereby avoiding a
463         COW on the child process.
464
465         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
466         call _dbus_make_file_world_readable on the created file.
467
468 2006-10-23  David Zeuthen  <davidz@redhat.com>
469
470         * dbus/dbus-memory.c: Use atomic variable to protect
471         n_blocks_outstanding otherwise OOM will be reported using SMP on
472         some arches
473         
474         * bus/dispatch.c: Add missing end of line characters
475
476         * bus/desktop-file.c (parse_section_start, parse_key_value) 
477         (bus_desktop_file_load): Propertly handle OOM
478
479         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
480         thread_init_generation equals _dbus_current_generation, not 0
481
482 2006-10-22  Havoc Pennington  <hp@redhat.com>
483
484         * dbus/dbus-connection-internal.h: move prototype of
485         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
486         it isn't in a public header and doesn't end up in the DBusBus
487         group in Doxygen
488
489 2006-10-21  Havoc Pennington  <hp@redhat.com>
490
491         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
492         the tarball if packagers want to run it
493
494         * cleanup-man-pages.sh: Add a script which munges all the internal
495         API man pages out of the Doxygen output. This reduces the size of
496         the installed man pages from 7 to 2 megs, and avoids
497         namespace-polluting pages. Right now (like Doxygen) this script
498         isn't in the build, it's something packagers can do manually.
499
500 2006-10-21  Havoc Pennington  <hp@redhat.com>
501
502         * dbus/dbus-connection.h: don't include the watch/timeout
503         functions in connection section
504
505 2006-10-21  Havoc Pennington  <hp@redhat.com>
506
507         * Documentation! Whee! Doxygen now 100% silent. If you make it
508         angry again, you will be punished.
509         
510 2006-10-21  Havoc Pennington  <hp@redhat.com>
511
512         * More documentation - all public API now documented according to
513         Doxygen
514
515 2006-10-21  Havoc Pennington  <hp@redhat.com>
516
517         * Document a bunch of undocumented stuff
518         
519 2006-10-21  Havoc Pennington  <hp@redhat.com>
520
521         * Clean up Doxygen group markers for public API so Doxygen finds
522         everything (not comprehensively fixed for private API).
523         Means all remaining Doxygen warnings are just about missing docs
524         and thus pretty simple to resolve.
525         
526 2006-10-21  Havoc Pennington  <hp@redhat.com>
527         
528         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
529
530         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
531         as DBUS_GNUC_DEPRECATED
532
533 2006-10-21  Havoc Pennington  <hp@redhat.com>
534
535         * Move all private API into the private Doxygen group sections of
536         the files, so they don't show up in the public API docs
537         
538 2006-10-21  Havoc Pennington  <hp@redhat.com>
539
540         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
541         dbus_message_iter_get_array_len().
542
543         * throughout: documentation improvements.
544
545 2006-10-20  Havoc Pennington  <hp@redhat.com>
546
547         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
548         matter, and the message-loader-breaker thing since nobody is going
549         to do it.  Add an item to 1.0 about supporting recursive locks
550         in dbus_threads_init_default() though, since it should be easy.
551
552         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
553         Fix this in the !dispatch case to avoid busy-looping after
554         disconnection
555
556         * More misc docs improvements
557
558 2006-10-19  Havoc Pennington  <hp@redhat.com>
559
560         * more Doxygen-related fixes (lots of moving things from the
561         public to internal section in dbus-connection.c)
562
563 2006-10-19  Havoc Pennington  <hp@redhat.com>
564
565         * Fix a pile of Doxygen warnings and missing docs
566
567 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
568
569         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
570         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
571         instead of a void *.  kqueue uses this to get the context's loop
572         while the other modules ignore the parameter.  This allows us to
573         avoid platform conditionals
574
575         * bus/bus.c (process_config_postinit): Pass in the context to the 
576         watch
577
578 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
579
580         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
581         when starting the system bus
582
583 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
584
585         * configure.in: More fixups for cross compile (Patch from 
586         Marco Pracucci <development at pracucci dot com>)
587
588 2006-10-17  Havoc Pennington  <hp@redhat.com>
589
590         * tools/dbus-send.c (main): don't close shared connection, fix
591         from Timo Hoenig
592
593 2006-10-17  Havoc Pennington  <hp@redhat.com>
594
595         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
596
597         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
598         since realistically it doesn't look like we'll be changing it
599         anymore.
600
601 2006-10-17  Havoc Pennington  <hp@redhat.com>
602
603         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
604         be used for return_if_fail type warnings; prefixes the pid, and
605         fatal by default.
606
607 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
608
609         * configure.in: Released 1.0 RC 2(0.94)
610         Add check for -fPIC and enable it if available
611
612 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
613
614         * doc/TODO: Remove the check TODO item
615
616 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
617
618         * dbus-transport-socket.c (exchange_credentials):
619         Print out more detailed errors if reading or sending
620         credentials fail (Patch from Julio M. Merino Vidal 
621         <jmmv at NetBSD dot org>)
622
623 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
624
625         * configure.in: when checking for posix getpwnam_r assume true
626         for cross compiles
627
628 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
629
630         * configure.in: Check for gethostbyname first before we check for it
631         in libnsl.  On gnu systems it is implemeneted 
632
633 2006-10-13  Havoc Pennington  <hp@redhat.com>
634
635         * dbus/dbus-connection.c
636         (dbus_connection_send_with_reply_and_block): fix to handle closed
637         connections, from Tambet Ingo bug #8631
638
639 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
640
641         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
642
643 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
644
645         * test/name-test/Makefile.am: don't link against both libdbus and
646         libdbus-convenience
647
648 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
649
650         * configure.in: check for dirfd even if it is a macro
651         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
652
653 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
654
655         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
656         avoid using dirfd on systems that don't have dirfd 
657         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
658
659 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
660
661         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
662         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
663
664         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
665         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
666         macro because _dbus_abort calls it
667
668         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
669         works
670
671 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
672
673         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
674         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
675
676 2006-10-02  Thiago Macieira  <thiago@kde.org>
677
678         * tools/dbus-launch.c (main): make it complain and abort
679         execution in case an unknown option is given. Also, process
680         the '--' argument as the end of arguments.
681
682 2006-10-01  Havoc Pennington  <hp@redhat.com>
683
684         * tools/dbus-launch.c (print_variables): if no syntax is given,
685         don't print something that's sort-of-half-sh-syntax, just print
686         a plain key-value pairs thing.
687
688         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
689         the local machine representation (but still have the hostname in
690         the display). Remove the hostname from the display if it is
691         localhost. Change session files to be named
692         ~/.dbus/session-bus/machine-display. Change X atoms to be
693         underscore-prefixed so nobody whines about ICCCM compliance.
694         Otherwise name them the same as the env variables.
695         Change session file format to include key-value pairs and an
696         explanatory comment. Keys are the same as the env variables.
697         (set_address_in_x11): X property format can't depend on
698         sizeof(pid_t) on a particular machine, fix to always be 32 bits
699
700         * tools/dbus-launch.c: make --autolaunch take a machine id
701         argument. If --autolaunch is used with a program to run, complain
702         for now (but add a FIXME). Also, don't look for existing bus if 
703         there's a program to run (but add a FIXME).
704
705         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
706         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
707         just to get this, and avoids duplicating uuid-reading code).
708
709         * tools/dbus-launch.1: clarify various things
710         
711 2006-10-01  Havoc Pennington  <hp@redhat.com>
712
713         * test/test-service.c (path_message_func): remove broken extra
714         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
715
716         * test/test-shell-service.c (path_message_func): same fix
717         
718         * dbus/dbus-connection.c
719         (_dbus_connection_get_dispatch_status_unlocked): break up the
720         function a little for clarity and fix the notification of
721         dbus-bus.c to not require dispatch to be complete
722
723         * dbus/dbus-connection.c (dbus_connection_unref): improve the
724         warning when you try to finalize an open connection.
725         
726 2006-10-01  Havoc Pennington  <hp@redhat.com>
727
728         * dbus/dbus-bus.c
729         (internal_bus_get): only weak ref the connection; this means 
730         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
731         called safely in any context
732         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
733         unref
734
735         * dbus/dbus-connection.c
736         (_dbus_connection_get_dispatch_status_unlocked): move
737         _dbus_bus_notify_shared_connection_disconnected_unlocked here
738         when queuing Disconnected instead of when the Disconnected message
739         arrives, so dbus_bus_get() won't return closed connections.
740         
741 2006-10-01  Havoc Pennington  <hp@redhat.com>
742
743         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
744         Add a hack to make DBusNewConnectionFunction work right.
745
746         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
747         the hack here. Also, fix the todo about refcount leak.
748         
749         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
750         and use the hack here
751         
752         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
753         "shareable" flag; this was completely broken, since it meant 
754         dbus_connection_open() returned a connection of unknown
755         shared-ness. Now, we always hold a ref on anything opened 
756         as shareable.
757
758         Move the call to notify dbus-bus.c into
759         connection_forget_shared_unlocked, so libdbus consistently forgets
760         all its knowledge of a connection at once. This exposed numerous
761         places where things were totally broken if we dropped a ref inside
762         get_dispatch_status_unlocked where
763         connection_forget_shared_unlocked was previously, so move
764         connection_forget_shared_unlocked into
765         _dbus_connection_update_dispatch_status_and_unlock. Also move the
766         exit_on_disconnect here.
767
768         (shared_connections_shutdown): this assumed weak refs to the
769         shared connections; since we have strong refs now, the assertion 
770         was failing and stuff was left in the hash. Fix it to close
771         still-open shared connections.
772         
773         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
774         debug pipe connections
775         
776         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
777         dbus-bus.c if the closed connection is in fact shared
778         (_dbus_connection_close_possibly_shared): rename from 
779         _dbus_connection_close_internal
780         (dbus_connection_close, dbus_connection_open,
781         dbus_connection_open_private): Improve docs to explain the deal
782         with when you should close or unref or both
783
784         * dbus/dbus-bus.c
785         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
786         from _dbus_bus_check_connection_and_unref_unlocked and modify to
787         loop over all connections
788
789         * test/test-utils.c (test_connection_shutdown): don't try to close
790         shared connections.
791
792         * test/name-test/test-threads-init.c (main): fix warnings in here
793
794         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
795         env variable to cause blocking waiting for gdb; drop
796         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
797         unconditionally.
798
799         * configure.in: add -export-dynamic to libtool flags if assertions enabled
800         so _dbus_print_backtrace works.
801
802         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
803         instead of _dbus_verbose to print the backtrace, and diagnose lack 
804         of -rdynamic/-export-dynamic
805         
806 2006-09-30  Havoc Pennington  <hp@redhat.com>
807
808         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
809         (internal_bus_get): fix screwy code formatting. whoever committed
810         that was not paying attention!
811
812 2006-09-30  Havoc Pennington  <hp@redhat.com>
813
814         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
815         reflect addition of interfaces.
816
817         * doc/dbus-specification.xml: describe a new
818         org.freedesktop.DBus.Peer.GetMachineId method
819
820         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
821         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
822         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
823         at end of skip_white
824         (_dbus_string_chop_white): new function
825
826         * bus/connection.c (bus_connections_setup_connection): call
827         dbus_connection_set_route_peer_messages.
828
829         * dbus/dbus-connection.c
830         (_dbus_connection_peer_filter_unlocked_no_update): modify to
831         support a GetMachineId method.
832
833         Also, support a new flag to let the bus pass peer methods through
834         to apps on the bus, which can be set with
835         dbus_connection_set_route_peer_messages.
836
837         Finally, handle and return an error for anything unknown on the
838         Peer interface, which will allow us to extend the Peer interface
839         in the future without fear that we're now intercepting something
840         apps were wanting to see.
841         
842         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
843         dbus/dbus-uuidgen.c
844
845         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
846         binary here, since most of the code is already in libdbus
847
848         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
849         uuid from the system config file
850
851         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
852         (_dbus_read_uuid_file_without_creating) 
853         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
854         uuid-related functions, partly factored out from dbus-server.c
855
856         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
857         DBUS_ERROR_FILE_EXISTS instead of EEXIST
858
859         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
860
861         * tools/dbus-cleanup-sockets.1: explain what the point of this
862         thing is a bit more
863
864         * autogen.sh (run_configure): add --config-cache to default
865         configure args
866
867         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
868         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
869
870         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
871         don't try to save address, fixes crash in make check
872         
873 2006-09-30  Thiago Macieira  <thiago@kde.org>
874
875         * configure.in: add DBUS_BINDIR as a #define to C source code.
876
877         * tools/dbus-launch.c
878         * tools/dbus-launch.h
879         * tools/dbus-launch-x11.c:
880         * tools/dbus-launch.1: Add the --autolaunch option to
881         dbus-launch, which makes it scan for an existing session
882         started with --autolaunch. With that option, it also creates
883         an X11 window and saves the bus address and PID to it.
884
885         * dbus/dbus-sysdeps.h:
886         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
887         a function that runs "dbus-launch --autolaunch" to retrieve
888         the running D-Bus session address (or start one if none was running)
889
890         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
891         address protocol, which tries to get the running session from
892         dbus-launch.
893
894         * dbus/dbus-bus.c:
895         * dbus/dbus-internals.h: Make "autolaunch:" be the default
896         D-Bus session bus address.
897
898         * dbus/dbus-connection.c: Fix horrible typo in error message.
899
900 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
901
902         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
903
904 2006-09-17  Havoc Pennington  <hp@redhat.com>
905
906         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
907         fix so that if unix_user_function is set on windows, we still
908         do the default check that the auth identity matches the bus identity
909
910 2006-09-16  Havoc Pennington  <hp@redhat.com>
911
912         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
913         to _dbus_transport_open_platform_specific,
914         _dbus_transport_open_socket,
915         and _dbus_transport_open_debug_pipe
916
917         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
918
919 2006-09-16  Havoc Pennington  <hp@redhat.com>
920
921         Attempt auditing public API to remove all cases where a Unix
922         function returns weird emulated goo to Windows. This probably 
923         breaks the bus daemon on Windows, to fix it again we may 
924         need to stop processing unix-specific config options on Windows,
925         and may need to add Windows-specific public API or config options.
926         
927         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
928         to reflect added interfaces; should not break soname.
929         
930         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
931         not invoke unix user function on Windows. Kind of a hacky fix, but 
932         we don't want a "unix uid" leaking out on Windows.
933
934         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
935         to get the socket fd on Windows or UNIX
936         (dbus_connection_get_unix_fd): make this always fail on Windows
937
938 2006-09-16  Havoc Pennington  <hp@redhat.com>
939
940         * dbus/dbus-server.c (dbus_server_listen): change how this works
941         to be able to delegate to a set of handlers that can succeed,
942         fail, or choose not to handle. Allows us to have 
943         dbus_server_listen_platform_specific.
944
945         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
946         factor out the tcp socket stuff to be used on windows, leaving
947         unix domain socket only in dbus-socket-unix.c
948
949         * dbus/dbus-transport-socket.c
950         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
951         stuff to be used on windows, leaving unix domain socket only 
952         in dbus-transport-unix.c
953
954         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
955         temporary hack to be sure this fails on windows
956         (dbus_connection_get_unix_process_id): ditto
957
958 2006-09-16  Havoc Pennington  <hp@redhat.com>
959
960         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
961         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
962         _dbus_open_socket so the domain/type/protocol from system headers
963         are not required. This is kind of pointless though unless we move
964         part of _dbus_connect_tcp_socket into sysdeps.c instead of
965         sysdeps-unix.c, which would mean adding a wrapper around
966         bind/listen/etc.
967         Also, add DBusError to the socket-opening functions so they 
968         don't require use of errno.
969
970 2006-09-16  Havoc Pennington  <hp@redhat.com>
971
972         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
973         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
974
975         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
976         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
977         functions specifically for sockets only, and move generic 
978         read/write/open/close into unix-specific code.
979
980 2006-09-14  Havoc Pennington  <hp@redhat.com>
981
982         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
983         complaint about accessing revents when poll returns 0, from Julian Seward.
984
985 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
986
987         * Released 1.0 RC 1 (0.93) 
988
989 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
990
991         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
992         use _dbus_close instead of close
993
994 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
995
996         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
997         credentials.  Fixes "external" authentication under e.g. NetBSD
998         which does not support any other socket credentials mechanism.
999         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1000
1001 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1002
1003         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1004         dbus_threads_init and be used by the dbus mutex functions to
1005         avoid deadlocks.
1006
1007         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1008
1009 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1010
1011         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1012         use threadsafe readdir_r instead of readdir
1013
1014 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1015
1016         * dbus-threads.c (dbus_threads_init_default): New method for
1017         initializing the internal thread implementation (Patch from
1018         Alexander Larsson <alexl at redhat dot com>)
1019
1020 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1021
1022         * remove a bunch of todo items from the 1.0 list
1023
1024 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1025
1026         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1027         key not found
1028
1029 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1030
1031         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1032         complex debugging code
1033
1034         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1035         between the test suite ifdefs
1036         (_dbus_verbose_bytes): return if verbosity is not enabled 
1037
1038 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1039
1040         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1041         remove DBusMark
1042
1043 2006-09-10  Havoc Pennington  <hp@redhat.com>
1044
1045        patch mostly by Peter Kümmel, bug #8211
1046         
1047         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1048         unix-specific stuff in dbus-sysdeps.c
1049
1050         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1051         and move unix-specific stuff to dbus-sysdeps-unix.c
1052
1053         * configure.in: check HAVE_ERRNO_H
1054         
1055 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1056
1057         * bus/test-main.c (main): Initialize threading during tests
1058
1059         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1060         Unlock connection on error
1061         (generate_local_error_message): static method for generating
1062         an error message when we don't have a message to reply to
1063         (_dbus_connection_block_pending_call): Send a disconnect error
1064         instead of just a timeout (NULL) when the bus gets disconnected
1065         while blocking for a reply.
1066         
1067 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1068
1069         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1070         filters (Patch from Kimmo Hämäläinen 
1071         <kimmo dot hamalainen at nokia dot com>)
1072
1073 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1074
1075         * dbus/dbus-connection-internal.h: Add prototype for 
1076         _dbus_connection_test_get_locks to remove warning
1077
1078 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1079
1080         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1081         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1082         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1083
1084 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1085
1086         * Clean up close calls to use _dbus_close (Patch from 
1087         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1088
1089 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1090
1091         * doc/TODO:
1092         - Remove pending call locking todo item
1093         - dbus_connection_open now holds hard ref.  Remove todo item
1094         - do proper locking on _dbus_bus_check_connection_and_unref
1095           and handle DBUS_BUS_STARTER. Remove todo item
1096         - Warn on closing of a shared connection.  Remove todo item
1097
1098         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1099         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1100         so we don't get the warning when closing shared connections
1101
1102         * test/test-service.c, test/test-shell-service.c: Applications
1103         don't close shared connections themselves so we unref instead of
1104         close
1105
1106         * test/test-utils.c (test_connection_shutdown): Close the connection
1107
1108         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1109         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1110         method on a locked connection.  
1111         Make sure we call _dbus_connection_unref_unlocked instead of 
1112         dbus_connection_unref also.
1113         Handle DBUS_BUS_STARTER correctly
1114
1115         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1116         Mark as shared and hard ref the connection
1117         (connection_forget_shared_unlocked): Remove the hard ref from the 
1118         connection
1119         (_dbus_connection_close_internal_and_unlock):  New internal function
1120         which takes a locked connection and unlocks it after closing it
1121         (_dbus_connection_close_internal): New internal function which acts
1122         like the origonal dbus_connection_close method by grabbing a connection
1123         lock and calling _dbus_connection_close_internal_and_unlock
1124         (dbus_connection_close): Public close method, warns when the app
1125         trys to close a shared connection
1126
1127 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1128
1129         * bus/driver.c:
1130         (bus_driver_generate_introspect_string): New method for populating
1131         a DBusString with the introspect data
1132         (bus_driver_handle_introspect): Move introspect generation code to 
1133         bus_driver_generate_introspect_string
1134
1135         * bus/main.c:
1136         (introspect): New function which prints out the intropect data and
1137         exits
1138         (main): Add a --introspect switch
1139
1140 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1141
1142         * doc/TODO: Removed dtd publishing item.  
1143         It seems the dtd has already been added at
1144         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1145
1146 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1147
1148         * doc/TODO, various source files: Audited todo's and FIXME's and
1149         prepended the ones we should be looking at with 1.0.  Those
1150         prepended with 1.0? need clerification or might not be needed
1151         for 1.0
1152
1153 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1154
1155         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1156         NULL in the public API (Patch from Kimmo Hämäläinen 
1157         <kimmo dot hamalainen at nokia dot com>)
1158
1159 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1160
1161         * configure.in: Fix for OS-X compile time endian issues (patch from
1162         Benjamin Reed <ranger at befunk dot com>)
1163
1164 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1165
1166         * configure.in: Check for no-common compiler flag (OS-X fix from
1167         Benjamin Reed <ranger at befunk dot com>)
1168
1169 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1170
1171         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1172         <fcrozat at mandriva dot com>)
1173
1174 2006-08-29  Havoc Pennington  <hp@redhat.com>
1175
1176         * test/test-service.c (path_message_func): fix lack of return value
1177
1178         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1179         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1180         any more sense than on anything else in this file.
1181         (_dbus_get_tmpdir): add const to return value, and keep the
1182         results of the various getenv around in a static variable.
1183
1184 2006-08-29  Havoc Pennington  <hp@redhat.com>
1185
1186         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1187         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1188
1189 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1190
1191         * test/Makefile.am: change find to use syntax that works with non
1192         gnu versions of find
1193
1194 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1195
1196         * dbus/dbus-transport.c: fix invalid deref when checking if
1197         a vtable method exists (Patch from Christian Ehrlicher 
1198         <ch dot ehrlicher at gmx dot de>)
1199
1200 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1201
1202         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1203         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1204         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1205         <bernard at brenda-arkle dot demon dot co dot uk>)
1206
1207 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1208
1209         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1210         default case
1211
1212 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1213
1214         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1215         it works on any system providing this interface, not only FreeBSD.
1216         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1217
1218 2006-08-20  Havoc Pennington  <hp@redhat.com>
1219
1220         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1221         the docs
1222
1223 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1224
1225         * Released 0.92 
1226
1227 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1228
1229         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1230         to reflect the init late change
1231
1232         * bus/bus.c (bus_context_new): Check user before we fork so we can
1233         print out an error message a user will be able to see
1234
1235 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1236
1237         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1238
1239         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1240         Add two more global locks for use on windows platforms.  These are
1241         unused on non-windows platforms but are not ifdefed out to avoid
1242         potential bugs (i.e. the few bytes lost does not warrent the extra
1243         maintanence and complexity that having seperate sets of locks would
1244         cause)
1245
1246 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1247
1248         * bus/services.c (bus_registry_acquire_service): Return an error
1249         when an application tries to register the org.freedesktop.DBus Bus Name
1250
1251         * bus/services.c (bus_registry_release_service): Return an error
1252         when an application tries to release the org.freedesktop.DBus Bus Name
1253
1254 2006-08-17  Alp Toker  <alp@atoker.com>
1255
1256         * doc/dbus-specification.xml: Fix some minor typos.
1257
1258 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1259
1260         * configure.in: use $with_init_scripts instead of $operating_system
1261         to determine where to store the pid since the init scripts manipulate 
1262         the pid file (patch from Marcelo Ricardo Leitner 
1263         <marcelo dot leitner at terra dot com dot br>.  
1264
1265 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1266
1267         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1268         static DBusList *uninitialized_condvar_list to support new late 
1269         initialization threading model.  In this model threads can be initialized
1270         even after the D-Bus API has been used but still needs to be initialized 
1271         before the second thread has been started.  Mutexes and condvar addresses
1272         are stored in the two static lists and are replaced with actuall locks
1273         when threads are initalized.
1274         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1275         the location into the static list
1276         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1277         from the static list and freeing the mutex
1278         (_dbus_condvar_new_at_location): New method for creating a conditional 
1279         variable and placing the location into the static list
1280         (_dbus_condvar_free_at_location): New method for removing a conditional
1281         variable location from the static list and freeing the conditional variable 
1282         (init_uninitialized_locks): Atomic method which goes through the static 
1283         lists of mutex and condvar location and updates them with actuall locks
1284         (init_global_locks): changed to init_locks
1285         
1286         * dbus/dbus-connection.c:
1287         (_dbus_connection_test_get_locks): New method for tests to check connections
1288         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1289         condvar API
1290         (dbus_connection_allocate_data_slot): Pass in the global lock address
1291         to _dbus_data_slot_allocator_alloc
1292
1293         * dbus/dbus-dataslot.c:
1294         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1295         instead of the mutex itself
1296
1297         * dbus/dbus-message.c:
1298         (dbus_message_allocate_data_slot): Pass in the global lock address
1299         to _dbus_data_slot_allocator_alloc
1300
1301         * dbus/dbus-pending-call.c:
1302         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1303         to _dbus_data_slot_allocator_alloc
1304
1305         * dbus/dbus-server.c:
1306         (_dbus_server_init_base): Use the new at_location mutex API
1307         (dbus_server_allocate_data_slot): Pass in the global lock address
1308         to _dbus_data_slot_allocator_alloc
1309
1310         * test/name-test/test-threads-init.c: New test case for late thread
1311         initialization
1312
1313 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1314
1315         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1316         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1317         causes compile problems when asserts are turned off
1318         Keeping _dbus_warn for printing out the message so even if
1319         asserts are turned off the user gets the messages that something is 
1320         wrong 
1321
1322 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1323
1324         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1325
1326         * bus/services.c (bus_service_list_queued_owners):
1327         Add a pointer cast to fix compiler warning
1328
1329         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1330         return a NULL instead of FALSE since the return type
1331         is not expecting a boolean
1332
1333         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1334         Remove unused variable
1335
1336         * dbus/dbus-marshal-recursive-util.c (node_new):
1337         return a NULL instead of FALSE since the return type
1338         is not expecting a boolean
1339
1340         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1341         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1342         because we are expecting a pointer not a boolean
1343
1344         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1345         add void as the parameter so some compilers
1346         don't complain
1347
1348         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1349           _dbus_transport_new_for_tcp_socket):
1350         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1351         because we are expecting a pointer not a boolean
1352
1353         * test/shell-test.c (test_command_line):
1354         cast the second argument to _dbus_list_append to avoid compiler
1355         warnings
1356
1357         * test/test-names.c (main): remove unused variable
1358
1359         * test/test-service.c (check_hello_from_self_reply):
1360         Initialize echo_message and echo_reply to NULL
1361         
1362         * test/test-shell-service.c (handle_echo):
1363         Remove unused variable and cast the third parameter passed to
1364         dbus_connection_get_object_path_data to avoid compiler warrnings
1365
1366         * test/name-test/test-names.c (clear_message_queue):
1367         Remove unused function
1368
1369         * test/name-test/test-pending-call-dispatch.c:
1370         Fix format string in printf
1371
1372
1373 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1374
1375         * dbus/dbus-bus.c:
1376         * test/name-test/test-names.c:
1377         Remove test method dbus_bus_connection_get_unique_name because 
1378         we already have public method dbus_bus_get_unique_name that 
1379         does the exact same thing
1380
1381 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1382
1383         * dbus/dbus-signature.c:
1384         fix typos in Julio's previous patch which cause make check to fail
1385
1386 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1387
1388         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1389         In any case it was wrong since this is a test checking to see if
1390         address parsing is correct.  There was no need to get the true
1391         tmp directory.  
1392
1393 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1394
1395         * dbus/dbus-macros.h: Revert the addition of stddef.h
1396         as we should not be adding it to library headers 
1397
1398 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1399
1400         * dbus/dbus-signature.c:
1401         Fix the unit tests so that they work if assertions are not enabled.
1402         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1403
1404 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1405
1406         * tools/run-with-tmp-session-bus.sh:
1407         * test/name-test/run-test.sh:
1408         Remove bashisms (patch from Julio M. Merino Vidal
1409         <jmmv at NetBSD dot org>)
1410
1411 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1412
1413         * configure.in: add a version (>= 2.6.0) check for libxml2
1414
1415 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1416
1417         * configure.in: make sure the compiler supports -Wfloat-equal
1418         
1419         * bus/dir-watch-dnotify.c: move functional code after 
1420         variable declerations (C99 fix)  (patches from Jens Granseuer
1421         <jensgr at gmx dot net>
1422
1423 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1424
1425         * dbus/dbus-macros.h:
1426         add #include <stddef.h> so that Sun compilers don't complain about
1427         the defining NULL
1428
1429 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1430
1431         * dbus/dbus-sysdeps.c:
1432         * dbus/dbus-address.c:
1433         * bus/activation.c:
1434         * test/shell-test.c:
1435         don't hardcode tmp directory (patch from Dave Meikle 
1436         <dmk at davemeikle dot co dot uk>)
1437
1438 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1439
1440         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1441         Change an assert to a detailed warning and abort.  
1442         When allocator->lock != mutex it indicates that the user has failed
1443         to initalize threads before using the D-Bus library.  This warning
1444         helps the user identify the issue and fix their app.
1445
1446 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1447
1448         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1449         with cleanups of bugs found from Coverity reports:
1450
1451         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1452         close the file on error to avoid a leak
1453
1454         * bus/expirelist.c (bus_expire_list_test):
1455         Check for NULL on dbus_new0
1456
1457         * bus/activation.c (update_directory):
1458         remove dead code
1459
1460         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1461         Fix some leaks
1462
1463         * bus/bus.c (process_config_every_time):
1464         Fixed a leak
1465
1466         * bus/desktop-file.c (parse_key_value):
1467         Fixed leak
1468
1469         * bus/selinux.c (bus_selinux_id_table_insert):
1470         Fixed leak
1471
1472 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1473
1474         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1475         remove dead code
1476
1477 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1478
1479         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1480         #!/bin/bash
1481
1482 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1483
1484         * Doxyfile.in: fix the INPUT line so we can generate docs 
1485         when sourcedir != builddir (patch from Cygwin Ports maintainer
1486         <yselkowitz at users dot sourceforge dot net>
1487
1488 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1489
1490         * dbus/dbus-sysdeps.h:
1491         * dbus/dbus-sysdeps.c: 
1492         * dbus/dbus-string.c: 
1493         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1494         GLib's function which does the same thing
1495
1496         * configure.in:
1497         * bus/Makefile.am:
1498         * bus/dir-watch-default.c:
1499         * bus/dir-watch-dnotify.c:
1500         * bus/dir-watch-kqueue.c:
1501         Add kqueue directory watching for freebsd and split the directory
1502         watching code into seperate files per method/arch
1503         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1504
1505 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1506
1507         * configure.in:
1508         * tools/Makefile.am:
1509         * tools/dbus-launch.c:
1510         * bus/Makefile.am:
1511         allow --with-dbus-daemondir switch to be used to make the
1512         daemon install to a seperate bindir like /usr/libexec
1513         (patch from Brian Cameron <brian dot cameron at sun dot com)
1514
1515 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1516
1517         * bus/Makefile.am (install-data-hook): removed the slash after 
1518         $(DESTDIR) so we don't get the double slash which does not work
1519         in windows (patch from Andras Porjesz 
1520         <andras dot porjesz at siemens dot com>)
1521
1522 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1523
1524         * dbus/dbus-sysdeps.h:
1525         * dbus/dbus-sysdeps.c: 
1526           add _dbus_printf_length (patch from Peter Kümmel 
1527           <syntheticpp at gmx dot net>)
1528
1529 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1530
1531         * dbus/dbus-internals.c: unistd.h is not used 
1532         (_dbus_verbose_real): only enable verbose printing 
1533         if DBUS_VERBOSE environment var is set to '1'
1534         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1535
1536 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1537
1538         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1539         so we still compile on older gcc (patch from Frederic Peters 
1540         <fpeters at 0d dot be>
1541
1542 2006-08-04  Havoc Pennington  <hp@redhat.com>
1543
1544         * configure.in: add -Wdeclaration-after-statement
1545
1546         * dbus/dbus-connection.c: change all the pending call stuff to
1547         reflect the fact that pending call operations use the connection
1548         lock
1549
1550         * dbus/dbus-pending-call.c: add locking here
1551
1552         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1553         field const consistent with how message field is done
1554
1555 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1556
1557         * s/D-BUS/D-Bus/g
1558
1559 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1560
1561         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1562         <in7y118 at public.uni-hamburg dot de> - fix invalid
1563         read/write reported by valgrind
1564
1565 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1566
1567         * Released 0.91
1568
1569 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1570
1571         * dbus/dbus-connection.c:
1572         (_dbus_connection_attach_pending_call_unlocked):
1573         (connection_timeout_and_complete_all_pending_calls_unlocked):
1574         Make sure we set timeout_added on pending calls to FALSE when
1575         we remove the timeout from the connection
1576
1577 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1578
1579         * Removed some extra bindings stuff lingering around (thanks timo)
1580         * dbus-pendingcall.c (_dbus_pending_call_new): 
1581         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1582         when we tried to take a lock on an already locked connection
1583
1584 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1585
1586         * Released 0.90
1587
1588 2006-07-17  Havoc Pennington  <hp@redhat.com>
1589
1590         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1591         ints, reported by Owen Taylor
1592
1593 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1594
1595         * doc/TODO:
1596         * dbus/dbus-bus.c:
1597         * dbus-errors.c:
1598         * dbus/dbus-marshal-validate.c:
1599           Removed TODO items which were fixed or are no longer relevent
1600
1601 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1602
1603         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1604         Remove stray files from the stripped bindings
1605
1606 2006-07-16  Havoc Pennington  <hp@redhat.com>
1607
1608         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1609         Improve the error message on reply timeout
1610
1611 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1612
1613         * Remove all bindings
1614
1615 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1616
1617         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1618         and set pending_reply out arg to NULL is connection is disconnected
1619         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1620         static method for cleaning up pending calls on disconnect
1621         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1622         calls queued timeouts on disconnect 
1623
1624          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1625         Remove 
1626
1627 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1628
1629         * bus/activation.[ch] (bus_activation_list_services): new function to 
1630         get the list of services that can be activated
1631
1632         * bus/dispatch.c: test coverage for the new bus method
1633         ListActivatableNames
1634
1635         * bus/driver.c: new bus method ListActivatableNames to get the list of
1636         services that can be activated
1637
1638         * doc/dbus-specification.xml: ListActivatableNames method documentation
1639
1640 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1641         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1642         source files
1643
1644 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1645         * dbus/dbus-message-factory.c:
1646         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1647
1648 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1649         * dbus/dbus-connection-internal.h:
1650         * dbus/dbus-connection.c:
1651         * file dbus/dbus-pending-call.c:
1652         * dbus/dbus-pending-call.h:
1653         Make DBusPendingCall an opaque type even to D-Bus internals
1654
1655 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1656
1657         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1658         connection_close
1659
1660         * dbus/dbus-connection.c: include dbus-bus.h
1661         (_dbus_connection_read_write_dispatch): make static
1662
1663 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1664
1665         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1666         function
1667         (dbus_connection_dispatch): On disconnect unref any shared connections
1668
1669         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1670         for cleaning up shared connections on disconnect
1671         (internal_bus_get): get a hard refrence to shared connections when
1672         they are created
1673         
1674         * doc/TODO: Remove items which are no longer relevent or have been fixed
1675         Split 1.0 todo items with a 0.90 freeze todo list
1676  
1677 2006-06-14  Ross Burton  <ross@openedhand.com>
1678
1679         * glib/dbus-gobject.c:
1680         Free a leaking GArray (surely not!) in dbus_g_method_return.
1681
1682 2006-06-14  Ross Burton  <ross@openedhand.com>
1683
1684         * tools/Makefile.am:
1685         * tools/dbus-monitor.c:
1686         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1687         Habacker).
1688         
1689 2006-06-14  Ross Burton  <ross@openedhand.com>
1690
1691         * tools/dbus-print-message.c:
1692         Also print the object path when outputting signals or method calls.
1693
1694 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1695
1696         * qt/src/Makefile.am: install the qdbus.h header.
1697         This allows people to actually use the installed code.
1698
1699 2006-06-12  Ross Burton  <ross@openedhand.com>
1700
1701         * glib/dbus-gproxy.c:
1702         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1703
1704 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1705
1706         * Released 0.62
1707
1708 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1709
1710         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1711         break pedantic builds. Closes bug 6043 (patch approved by
1712         Havoc back in February).
1713
1714 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1715
1716         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1717         that took a QDBusMessage parameter.
1718         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1719         * qt/tools/dbus.cpp: Don't use automatic call because we might
1720         be calling an async method: request a reply.
1721
1722 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1723
1724         * test/qt/*: Update the testcases, including testing the new
1725         functionality of sending null QByteArray and QString over the
1726         bus. Add new headertest test and restore the old
1727         qdbusxmlparser test.
1728
1729 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1730
1731         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1732         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1733
1734         * qt/examples/Makefile.am:
1735         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1736         form.
1737
1738         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1739         QByteArray() (nulls) over the bus.
1740         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1741         the one that has the signature suffix stripped.
1742         * qt/src/qdbusreply.h: Make some methods const.
1743
1744 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1745
1746         Patch from Timo Hoenig <thoenig@suse.de>.
1747
1748         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1749         required during build to EXTRA_DIST.
1750         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1751         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1752         * configure.in: Fix "make dist", take care that the Makefile for
1753         qt/dbus is being generated.
1754
1755 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1756
1757         * bus/bus.c: Fix eavesdropping on method calls
1758
1759 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1760
1761         * configure.in:
1762         * dbus/dbus-userdb-util.c:
1763         Add Solaris console owner patch from Artem Kachitchkine
1764
1765 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1766
1767         * qt/Makfile.am:
1768         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1769         reorganisation. Thanks to Timo Hoenig for pointing this out.
1770
1771 2006-06-06  Robert McQueen  <robot101@debian.org>
1772
1773         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1774           call to dbus_g_type_get_struct.
1775
1776 2006-06-06  Robert McQueen  <robot101@debian.org>
1777
1778         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1779           pointers were put into a GPtrArray-based specialised collection, and
1780           then freed along with the array. GValues which you add into
1781           collections or maps which have the NOCOPY flag set are assumed to not
1782           belong to the caller, so rather than the existing pointer-stealing
1783           semantics, they are copied instead. Given that the main consumers of
1784           this abstraction are the bindings themselves, I don't think this is
1785           too bad, but others should watch their choice of take vs set_static.
1786
1787 2006-06-06  Robert McQueen  <robot101@debian.org>
1788
1789         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1790           of g_slist_prepend not being used. Fixed copying of slist-based
1791           specialised collections, then wrote a test case and found that it was
1792           all broken. Went on to fix iterating and appending too. Good thing
1793           nobody uses this code yet.
1794
1795 2006-06-06  Robert McQueen  <robot101@debian.org>
1796
1797         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1798           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1799           are discarded without unsetting, so it makes no difference whether
1800           we take or set_static). Remove cases for G_TYPE_POINTER because
1801           there really is nothing useful we can do with them in our
1802           specialised types - we *need* boxed copy/free functions at the very
1803           least.
1804
1805 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1806
1807         * qt/dbus: Add directory. I had forgotten to add this
1808         yesterday after the move...
1809
1810         * qt/examples/Makefile.am:
1811         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1812
1813         * qt/tools/Makefile.am:
1814         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1815         Added feature to get and set properties.
1816         Added validation of service, object path and interface names.
1817
1818         * qt/tools/dbusidl2cpp.cpp: Two new features:
1819         1) Allow specifying both the header and the source file names,
1820         by separating them with a colon.
1821         2) Don't write an interface output if the -p switch wasn't
1822         given, but the -a was.
1823
1824         * qt/src/*: Fix usage of Iterators and ConstIterators.
1825         Fix shadowing of variables by other variables (-Wshadow).
1826         Fix keyword-cleanliness in headers.
1827         Fix ASCII-cast (QLatin1String, QLatin1Char).
1828         Fix validation of member names.
1829         Add extra checking of introspection data during XML parsing.
1830         Various bug fixes.
1831
1832 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1833
1834         * dbus/Makefile.am:
1835         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1836         qt/dbus/qdbus.h now.
1837
1838 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1839
1840         * configure.in: Make --disable-qt actually do
1841           something. Patch inspired by Zack Rusin.
1842
1843 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1844
1845         * qt/: Update to Subversion r548032.
1846         This includes a big reorganisation of the files inside the
1847         subdir.
1848
1849 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1850
1851         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1852         clear:  
1853         "Failed to connect to socket <host>:<port> <error>" instead of
1854         "Failed to connect to socket <host>: <error>:<port>"
1855
1856         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1857         for a tcp transport. 
1858
1859 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1860
1861         * qt/*: Update the QtDBus bindings up to revision 546310 in
1862         Subversion.
1863         This adds the dbuscpp2xml tool, that parses a C++ header and
1864         outputs a D-BUS Introspection XML.
1865
1866 2006-05-21  Havoc Pennington  <hp@redhat.com>
1867
1868         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1869         is not NULL when it shouldn't be. Also a couple of possible fixes
1870         for #4637 though I don't understand why the bug happens, to be
1871         honest... also the object constructor has an assert name != NULL
1872         and the name is only currently NULL for peer-to-peer proxies that 
1873         I don't think anyone uses? So it should be asserting.
1874         Anyway, for now at least see if we get an earlier assertion failure.
1875
1876         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1877         apparently broken code to be sure the tests fail and someone 
1878         will fix them...
1879
1880 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1881
1882         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1883         and arrays when they had a single element: has_next returns
1884         false, even before you read the element. So, instead, check
1885         the array length.
1886
1887 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1888
1889         * qt/qdbusmessage.cpp:
1890         * qt/qdbustypehelper_p.h:
1891         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1892         the list is a const-reference
1893
1894 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1895
1896         * Adding old doc patch that never got applied
1897         
1898         * dbus/bus.c (dbus_bus_add_match): Add documentation
1899
1900         * doc/dbus-specification.xml: Add documentation for the match rules
1901           and the AddMatch and RemoveMatch methods
1902
1903 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1904
1905         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1906         call (r535506)
1907
1908         * qt/dbusidl2cpp.cpp:
1909         * qt/qdbusabstractadaptor.cpp:
1910         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1911         sibling of the QDBusAbstractAdaptor objects instead of the
1912         parent. (r535848)
1913
1914         * qt/dbusidl2cpp.cpp:
1915         * qt/qdbusabstractinterface.cpp:
1916         * qt/qdbusabstractinterface.h:
1917         * qt/qdbusabstractinterface_p.h:
1918         * qt/qdbusinterface.cpp: Make properties in interfaces
1919         actually work. The code that was generated would not compile,
1920         due to moc calls to functions that did not exist. They now
1921         shall. (r536571)
1922
1923 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1924
1925         * Makefile.am:
1926         * configure.in:
1927         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
1928         Thanks to Brad Hards for providing the patch
1929
1930 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1931
1932         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1933         call. (r535506)
1934
1935 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1936
1937         * qt/examples/dbus.cpp: Enhance error messages and use
1938         QDBusInterfacePtr.
1939
1940 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1941
1942         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
1943         and disable the copy operators. (r533772, r534746)
1944
1945         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
1946
1947         * qt/qdbusabstractinterface.cpp:
1948         * qt/qdbusabstractinterface.h: Change the default call mode to
1949         not use the event loop. Add convenience call() methods that
1950         take a CallMode parameter. (r534042)
1951
1952         * qt/qdbusconnection.h: Change the default call mode to not
1953         use the event loop. (r534042)
1954
1955         * qt/qdbusinterface.cpp:
1956         * qt/qdbusinterface.h: Add a method to tell us if the
1957         interface is valid (since we don't return a null pointer
1958         anymore) (r534099)
1959
1960         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
1961         (r534101)
1962
1963         * qt/qdbusinternalfilters.cpp: Decouple the introspection
1964         function in two so taht we get the chance to introspect
1965         without having a QDBusMessage (r534102)
1966
1967         * qt/qdbusbus.h:
1968         * qt/qdbusconnection.cpp:
1969         * qt/qdbusconnection_p.h:
1970         * qt/qdbusintegrator.cpp: Keep a list of our own names to
1971         avoid a round-trip to the server when attempting to introspect
1972         one of our own objects. Also make sure the filter functions
1973         match the empty interface as well. (r534108)
1974         Don't keep the connection names. Instead, trust the unique
1975         connection name (r534111)
1976         Remove event loop usage (r534112)
1977
1978 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1979
1980         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
1981         Brad Hards.
1982
1983 2006-04-28  Robert McQueen  <robot101@debian.org>
1984
1985         * glib/dbus-gproxy.c: Fix properties so that they can be given in
1986         any order, making it easier for people who inherit from this
1987         object.
1988
1989 2006-04-28  Robert McQueen  <robot101@debian.org>
1990
1991         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
1992         of memory from within pointer arrays and lists. Fixes bug #6300.
1993
1994 2006-04-28  Robert McQueen  <robot101@debian.org>
1995
1996         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
1997         generating struct signatures. Fixes bug #6083.
1998
1999 2006-04-28  Robert McQueen  <robot101@debian.org>
2000
2001         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2002         to qdbusconnection_p.moc.
2003
2004 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2005
2006         * README, INSTALL: Doc fixes
2007         Patch from Brad Hards <bradh at frogmouth.net>
2008
2009 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2010
2011         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2012         the dynamic meta object. No need to guess which interface to
2013         call.
2014
2015 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2016
2017         * qt/qdbusconnection_p.h:
2018         * qt/qdbusmetaobject.cpp:
2019         * qt/qdbusmetaobject_p.h:
2020         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2021         for the dynamic meta object. No need to guess which
2022         interface to call.
2023         * qt/qdbusabstractinterface_p.h:
2024         * qt/qdbusconnection.cpp:
2025         * qt/qdbusintegrator.cpp:
2026         * qt/qdbusinterface.cpp:
2027         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2028         Add a QDBusRef that looks and behaves like DCOPRef.
2029
2030 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2031
2032         * dbus/dbus-connection.c: Interfaces are optional in method
2033         calls, so don't give up if the interface parameter is NULL.
2034         Patch reviewed by Havoc Pennington.
2035
2036 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2037
2038         * qt/qdbusreply.h: Add default constructor and operator=
2039           (r532625)
2040         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2041           in public headers (r532952)
2042         * qt/qdbusabstractinterface.cpp:
2043         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2044           make it the default (r532951)
2045
2046 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2047
2048         * dbus/dbus-connection.c: Fix asserts
2049         Patch from Tim Moloney <t.moloney at verizon.net>
2050
2051 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2052
2053         * mono/Connection.cs, mono/Message.cs: Check Target type
2054         Patch from Aaron Bockover (abockover at novell.com)
2055
2056 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2057
2058         * INSTALL: fine-tune the requirements for the Qt4 binding.
2059
2060 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2061
2062         * tools/dbus-print-message.c: Added support for printing of all 
2063           remaining data types. Fixed logic for indentation of compound
2064           data types.
2065         
2066 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2067
2068         * INSTALL: fill out content of file providing DBus specific
2069           build installations, followed by generic Auto* INSTALL file
2070           content
2071         
2072 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2073
2074         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2075           Patch by Stefan Eilers. (r529537)
2076
2077 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2078
2079         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2080           contents (r528208)
2081
2082 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2083
2084         * qt/Makefile.am: fix the dependency for
2085           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2086           not in qdbusconnection.cpp.
2087           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2088           spotting this.
2089
2090 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2091
2092         * qt/examples/listnames.cpp:
2093         * qt/examples/Makefile.am: Three ways to list the names on the
2094           bus.
2095
2096 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2097
2098         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2099           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2100
2101 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2102
2103         Merge from Subversion:
2104         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2105           something that exists (r526315)
2106         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2107           slots/signals (r526316)
2108         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2109           also return an unknown-method error if the parameters don't
2110           match for org.freedesktop.DBus.Properties. (r526842)
2111         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2112         * qt/qdbusintegrator.cpp: Restore the proper order of
2113           delivery: don't make method returns be delivered on priority
2114           (r528150)
2115
2116 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2117
2118         * configure.in qt/Makefile.am: add qt/examples
2119         * qt/examples: Add QtDBus example programs:
2120           - hello: Hello, World
2121           - ping: Simple method-calling program
2122           - pong: Simple object-exporting program (not using adaptors)
2123           - complexping: Interactive method-calling program 
2124                 (also gets and sets properties).
2125           - complexpong: Sample program exporting methods, signals and
2126                 properties, using adaptors.
2127           - dbus: Simple implementation of a generic method-calling
2128                 program, similar to 'dbus-send', but with semantics
2129                 similar to 'dcop'.
2130           - chat: Simplistic chat program, implemented using signals
2131                 and the system bus. Looks like IRC.
2132
2133 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2134
2135         * configure.in: Detect QtGui (necessary for one of the
2136           example programs). Note: this increases the minimum required
2137           version of Qt to 4.1.3.
2138
2139 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2140
2141         * test/qt/*: Sync with KDE Subversion revision 523647.
2142         Update the testcases to the new API. Remove testcases for
2143         classes that are no longer public or have been removed.
2144
2145 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2146
2147         * qt/*: 
2148         * dbus/qdbus.h: Sync with KDE Subversion revision
2149         523647. Hopefully, this will be the last of the
2150         source-incompatible changes. Documentation has been improved;
2151         support for QList<basic-types> has been added; QDBusObject is
2152         gone; QDBus(Abstract)Interface is now a QObject with
2153         auto-generated meta-object; QDBusIntrospection is marked
2154         private, since QMetaObject can be used now; lots of bugfixes.
2155
2156 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2157
2158         Patch from Milosz Derezynski <internalerror at gmail.com>
2159         
2160         * configure.in:
2161         Output the service directory in the configure summary
2162
2163         * dbus-1.pc.in:
2164         Add session_bus_services_dir
2165
2166 2006-03-10  Ross Burton  <ross@openedhand.com>
2167
2168         * tools/dbus-print-message.c:
2169         Add support for object paths and signatures.
2170
2171 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2172
2173         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2174         config reload.
2175         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2176         information caches
2177         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2178         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2179         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2180         * dbus/dbus-userdb.h: Add function to flush all user/group information
2181         caches.
2182
2183 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2184
2185         * qt/dbusidl2cpp.cpp:
2186         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2187         for dcopidl2cpp, found in the KDE installations (or the more
2188         modern kalyptus): generate Qt4 C++ code for the input XML
2189         introspection. Currently no IDL parsing.
2190
2191 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2192
2193         * test/qt/*: Update the self-tests.
2194
2195 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2196
2197         * qt/*: 
2198         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2199         represents the first feature-complete version of the Qt4
2200         bindings since I took ove maintainership.
2201
2202 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2203
2204         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2205         dir. This is C++, so we can't use the DBus ones.
2206
2207 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2208
2209         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2210         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2211
2212 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2213
2214         * dbus/dbus-connection.c: 
2215         (_dbus_connection_block_pending_call):
2216         Check to see if our data has already been read off the connection
2217         by another blocking pending call before we block in poll.
2218         (check_for_reply_and_update_dispatch_unlocked):
2219         Code taken from _dbus_connection_block_pending_call - checks for
2220         an already read reply and updates the dispatch if there is one.
2221
2222         * test/name-test/test-pending-call-dispatch.c:
2223         New test for making sure we don't get stuck polling a 
2224         dbus connection which has no data on the socket when
2225         blocking out of order on two or more pending calls.
2226
2227 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2228
2229         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2230         make/automake don't detect that we're talking about the same
2231         .lo file if I specify the full path to the source files.
2232
2233 2006-02-26  Havoc Pennington  <hp@redhat.com>
2234
2235         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2236
2237         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2238         session bus variable is unset, suggest "man dbus-launch" and "man
2239         dbus-daemon" to figure out how to fix the problem
2240
2241 2006-02-25  Havoc Pennington  <hp@redhat.com>
2242
2243         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2244         should make this thing use the new glib options parser
2245
2246 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2247
2248         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2249         .lo files taking moc sources.
2250
2251 2006-02-25  Havoc Pennington  <hp@redhat.com>
2252
2253         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2254         and install it as a public header
2255
2256 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2257
2258         * Released 0.61
2259
2260 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2261         
2262         * proxies.py: Fix the callchain
2263
2264 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2265         
2266         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2267
2268         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2269         dbus/dbus-sysdeps.c
2270
2271         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2272         call _dbus_group_info_free_allocated which causes infinite loop,
2273         correctly call _dbus_group_info_free
2274
2275 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2276
2277         * qt/qdbusinterface_p.h:
2278         * qt/qdbusinterface.cpp: Use the standard
2279         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2280         calls instead of creating one for us.
2281
2282         * qt/qdbusconnection_p.h:
2283         * qt/qdbusintegrator.cpp: Remove debugging code.
2284
2285         * qt/qdbusintegrator.cpp:
2286         * qt/qdbusmessage.cpp:
2287         * qt/qdbusmessage_p.h:
2288         * qt/qdbusmessage.h: Change the behaviour of automatic
2289         reply-sending: now a reply is always sent, unless the caller
2290         didn't request one or if the user slot has already sent one.
2291
2292 2006-02-16  Robert McQueen  <robot101@debian.org>
2293
2294         * configure.in: Patch from Debian packages by Sjoerd Simons
2295         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2296         arguments so it's possible to build both bindings in the
2297         same tree.
2298
2299         * qt/Makefile.am: Fix truncated value so that make dist works.
2300
2301 2006-02-16  Robert McQueen  <robot101@debian.org>
2302
2303         * acinclude.m4, configure.in: Patch from Brad Hards
2304         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2305         improving quoting, re-ordering a few checks, and a few other
2306         aesthetic tidy-ups.
2307
2308 2006-02-16  Robert McQueen  <robot101@debian.org>
2309
2310         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2311         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2312         assertion that the next element to read from the iter is fixed in
2313         size. This is not the case when you are at the end of the iter,
2314         because the next element type is INVALID.
2315
2316         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2317         a bogus assert which means that you may not initialise a 0-length
2318         string unless you provide a non-NULL pointer. This prevented
2319         you from marshalling messages containing zero-length arrays in
2320         some cases.
2321
2322         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2323         from Rob to correct bogus asserts when trying to demarshal an
2324         array and get_fixed_array got you 0 elements. Append nothing to
2325         the GArray in this case.
2326
2327         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2328         an empty array via the glib bindings. Without all of the above
2329         patches, this new test fails.
2330
2331 2006-02-16  Robert McQueen  <robot101@debian.org>
2332
2333         * glib/dbus-gmain.c: Make the previous commit compile.
2334
2335         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2336         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2337         specify sender_keyword="foo", path_keyword="bar" when adding
2338         a signal listener, so that you can bind to signals generically
2339         but still do something useful in your callback.
2340
2341         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2342         chars so that they're not cast to chars and made negative. Thanks
2343         to Jakub Stachowski for reporting this and testing the fix.
2344
2345 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2346
2347         * dbus/dbus-glib.h:
2348         * glib/dbus-gmain.h:
2349         (dbus_g_connection_open): new method for openning
2350         a connection to an arbitrary address in the glib bindings
2351
2352         * ChangeLog: checkin last entry which doesn't seem to be commited
2353
2354 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2355
2356         * tools/dbus-launch.c: Fixed sh syntax output
2357
2358 2006-02-13  Robert McQueen  <robot101@debian.org>
2359
2360         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2361         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2362         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2363         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2364         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2365         missing piece of the glib bindings jigsaw puzzle. This modifies
2366         the existing specialised types to have N type parameters (rather
2367         than the current 1 or 2 for arrays and dictionaries respectively).
2368         You can then use this to get a glib type to represent any arbitrary
2369         D-Bus struct type using dbus_g_type_get_struct. The only
2370         implementation of these types is with GValueArrays as before,
2371         but it's now possible to store these in arrays, emit them in
2372         signals, etc.
2373
2374 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2375
2376         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2377         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2378         <thiago.macieira at trolltech.com>
2379
2380 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2381
2382         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2383         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2384
2385 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2386
2387         * bus/connection.c (bus_connections_expect_reply): Make
2388         pending reply limit not common to all connections (Bug #5416)
2389         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2390
2391 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2392
2393         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2394
2395 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2396
2397         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2398         patch from Doug Goldstein <cardoe at gentoo.org>
2399
2400 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2401
2402         * mono/Arguments.cs: Fix a magic number in the mono bindings
2403         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2404
2405 2006-01-27  Robert McQueen  <robot101@debian.org>
2406
2407         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2408         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2409         when generating the client-side methods, instead of overloading
2410         CSymbol which broke everything horribly. My apologies.
2411
2412 2006-01-27  Robert McQueen  <robot101@debian.org>
2413
2414         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2415         by me and Rob Taylor to add a simple_free function to D-Bus map
2416         and collection types, which allows those types which can be freed
2417         with a GDestroyNotify (such as GHashTables and GArrays, but not
2418         GPtrArrays) to be stored as the values in hashtables.
2419
2420         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2421         Patch by Rob Taylor to add nested dicts to the glib tests to check
2422         the above code works, and appears not to leak when called repeatedly.
2423
2424 2006-01-27  Robert McQueen  <robot101@debian.org>
2425
2426         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2427         to free a D-Bus allocated string with dbus_free () instead of
2428         g_free ().
2429
2430 2006-01-27  Iain Holmes  <iain@openedhand.com>
2431
2432         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2433         method from being called multiple times.
2434
2435 2006-01-19  Robert McQueen  <robot101@debian.org>
2436
2437         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2438         <rob.taylor@collabora.co.uk> to add support for generating bindings
2439         to arrays that are represented as GPtrArrays rather than GArrays (ie
2440         size-variable things, such as strings, objects, structs, etc).
2441
2442 2006-01-05  Robert McQueen  <robot101@debian.org>
2443
2444         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2445         <ricardo.kekki@movial.fi> to make it possible to inherit from
2446         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2447         a private part, and moving the setting of the DBusGProxyManager into a
2448         connection property, allowing proper GObject construction.
2449
2450 2006-01-05  Robert McQueen  <robot101@debian.org>
2451
2452         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2453         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2454         annotations when generating glib client bindings.
2455
2456 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2457
2458         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2459
2460         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2461
2462 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2463
2464         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2465
2466 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2467
2468         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2469
2470 2005-12-19  Ross Burton  <ross@openedhand.com>
2471
2472         * doc/dbus-tutorial.xml:
2473         Document the Glib client-side bindings, and list all possible annotations.
2474
2475 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2476
2477         * dbus/bus.c (dbus_bus_release_name): Add documentation
2478
2479 2005-12-06  Robert McQueen  <robot101@debian.org>
2480
2481         * python/service.py: s/sucessful/successful/ so we're allocating to
2482         and reading from the same variable. Oops.
2483
2484 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2485
2486         * Released 0.60
2487
2488 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2489
2490         * test/qt/Makefile.am: build from srcdir
2491
2492         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2493         Note - this code is wrong and needs to be fixed by the Qt binding
2494         developers.  The flags should be treated as bitfields and not enums.
2495
2496         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2497
2498 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2499
2500         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2501           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2502           in production code
2503
2504 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2505
2506         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2507         method for getting messages off the bus in the absence of a
2508         mainloop.  This method is much like 
2509         dbus_connection_read_write_dispatch except it does not dispatch
2510         the messages to a registered filter function.  Instead it
2511         allows a developer to process messages by directly popping
2512         them off the bus.
2513
2514 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2515
2516         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2517         the parser to continue instead of returning error
2518         (bus_desktop_file_load): Do not free parser data when
2519         parse_section_start or parse_key_value fails because it was 
2520         already freed by parser_free (patch from Carlos Garcia Campos  
2521         <carlosgc at gnome.org>)
2522
2523 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2524
2525         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2526         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2527         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2528         test/test-segfault.c, test/test-utils.c,
2529         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2530         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2531         Various cleanup of dead code and compiler warnings (patch from
2532         Kjartan Maraas <kmaraas at gnome.org>) 
2533
2534 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2535
2536         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2537         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2538
2539 2005-11-27  Robert McQueen  <robot101@debian.org>
2540
2541         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2542         part of the preceding one. Oops. Merge patch by Johan Hedberg
2543         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2544         on big-endian platforms.
2545
2546         * test/python/test-client.py: Add some 16-bit integers to the test
2547         values.
2548
2549 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2550
2551         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2552         method return message for property getters
2553
2554 2005-11-27  Robert McQueen  <robot101@debian.org>
2555
2556         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2557         with type v of an instance of dbus.Variant(foo, type='x') caused
2558         it to be boxed twice before sending over the bus.
2559
2560         * python/dbus_bindings.pyx, python/service.py,
2561         test/python/test-client.py: Update the constants for the new
2562         request_name flags, and update comments/test cases now that queueing
2563         is the default action.
2564
2565 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2566
2567         * configure.in:
2568         - Change version to 0.60 for impending release
2569         - upped the sonames because of ABI and API breakage
2570
2571 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2572
2573         * configure.in: Add test/name-test/Makefile to the generated
2574         Makefile list
2575
2576         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2577         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2578         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2579         not to queue an ower if it can't be the primary owner
2580
2581         * bus/bus.h: Add new internal BusOwner struct
2582
2583         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2584         to bus_registry_ensure and don't set the prohibit_replacement flag
2585         since they are now set per BusOwner and not per name.
2586         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2587         that returns the list of connections in a name's connection queue
2588         
2589         * bus/services.c (struct BusService): remove prohibit_replacement field
2590         (struct BusOwner): new struct for keeping track of queued connections
2591         and their associated flags for the queue
2592         (struct BusRegistry): add a BusOwner memory pool
2593         (bus_registry_new): initialize the BusOwner memory pool
2594         (bus_registry_unref): free the BusOwner memory pool
2595         (_bus_service_find_owner_link): new internal method for
2596         searching the queue for a specific connection
2597         (bus_owner_set_flags): new method for adding setting the flags on a
2598         bus owner
2599         (bus_owner_new): new method that creates a BusOwner object from the
2600         pool and sets its flags
2601         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2602         (bus_registry_ensure): Add the flags parameter
2603         (bus_registry_acquire_service): Switch from using raw connections to
2604         using the BusOwner struct
2605         Add new state machine for dealing with the new set of flags
2606         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2607         cancel_ownership, free_ownership_cancel_data, 
2608         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2609         restore_ownership, free_ownership_restore_data, 
2610         add_restore_ownership_to_transaction): Switch to using BusOwner 
2611         instead of raw connections
2612         (bus_service_add_owner): Add flags parameter
2613         Switch to using BusOwner instead of raw connections
2614         Add state machine for dealing with the new set of flags
2615         (bus_service_swap_owner): Swaps the first and second owners in the
2616         queue.  Used to make sure proper signals are sent when a service looses 
2617         or gains primary ownership.  We never insert an owner at the top of the
2618         queue.  Instead we insert it in the second position and then swap.
2619         (bus_service_remove_owner): Remove the owner from the queue sending
2620         out the NameLost and NameOwnerChanged signals if the we were the 
2621         primary owner
2622         (bus_service_get_primary_owners_connection): New method that extracts
2623         the connection from the primary owner
2624         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2625         connection
2626         (bus_service_get_allow_replacement): Changed from the old 
2627         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2628         primary owner and returns if it can be replaced or not
2629         (bus_service_set_prohibit_replacement): removed
2630         (bus_service_has_owner): returns TRUE if and owner with
2631         the specified connection exists in the queue
2632         
2633         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2634         method that only compiles if tests are enabled.  Allows us to get the 
2635         unique name of a connection so we can check it against the queue when
2636         doing regression tests
2637
2638         * bus/activation.c (bus_activation_send_pending_auto_activate),
2639         bus/dispatch.c (bus_dispatch),  
2640         bus/driver.c (bus_driver_handle_get_service_owner, 
2641         bus_driver_handle_get_connection_unix_user, 
2642         bus_driver_handle_get_connection_unix_process_id,
2643         bus_driver_handle_get_connection_selinux_security_context),
2644         bus/signals.c (connection_is_primary_owner): 
2645         use bus_service_get_primary_owners_connection instead of
2646         bus_service_get_primary_owner
2647
2648         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2649         _dbus_listen_unix_socket): Calculate the length of the socket
2650         path and use that instead of using a fixed length which was
2651         causing socket names to contain many trailing Nul bytes.
2652
2653         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2654         (dbus_g_method_get_sender): New method for extracting the sender 
2655         from a DBusGMethodInvocation
2656         (dbus_g_method_return_get_reply): changed name to 
2657         dbus_g_method_get_reply
2658         (dbus_g_method_return_send_reply): changed name to
2659         dbus_g_method_send reply
2660
2661         * doc/dbus-specification.xml: New docs that describe how the new
2662         queueing system works and talks about the changes to the how
2663         we specify socket names
2664
2665         * glib/examples/example-service.c, 
2666         glib/examples/example-signal-emitter.c,
2667         glib/examples/statemachine/statemachine-server.c:
2668         Changed the RequestName flags to the new system
2669
2670         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2671         regression test suite for testing various states of the new
2672         queueing system
2673         
2674 2005-11-15  Robert McQueen  <robot101@debian.org>
2675
2676         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2677         Taylor to add two methods, dbus_g_method_return_get_reply and
2678         dbus_g_method_return_send_reply, to allow you to get the reply
2679         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2680         and send it. The GLib bindings can't marshal a return value of
2681         something like a(s) if the array is empty - ultimately they should be
2682         made to heed the signature of the out arguments as the Python bindings
2683         now can, but this is a workable interim solution which might have
2684         other applications.
2685
2686 2005-11-15  Robert McQueen  <robot101@debian.org>
2687
2688         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2689         method to org.freedesktop.DBus to release a bus name or give up
2690         waiting in the queue for it.
2691
2692         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2693         dbus_bus_release_name method to send the ReleaseName method calls.
2694         Add constants for the return values to dbus/dbus-shared.h.
2695
2696         * doc/dbus-specification.xml: Document the new ReleaseName method
2697         in the specification.
2698
2699         * python/dbus_bindings.pyx: Add a low-level python binding for the
2700         release name method.
2701
2702         * python/exceptions.py, python/service.py: Make freeing BusName
2703         objects release the name. Add a NameExistsException, and fix a
2704         bug with creating UnknownMethodException.
2705
2706         * test/python/test-client.py: Add tests for freeing BusName
2707         objects causing names to be released.
2708
2709 2005-11-14  Robert McQueen  <robot101@debian.org>
2710
2711         * python/service.py: Include the traceback in the error reply when we
2712         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2713
2714 2005-11-14  David Zeuthen  <davidz@redhat.com>
2715
2716         Patch from Timo Hoenig <thoenig@suse.de>.
2717
2718         * bus/bus.c: I've recently investigated why the automatic reload
2719         of configuration files does not work as expected.
2720
2721         Currently, reloading configuration files does only work when
2722         running dbus-daemon with --nodaemon.  If we are running as daemon
2723         we're hitting a dnotify bug once we fork the process.
2724
2725         We're initializing the dnotify fds before calling fork().  Once
2726         the child process forked it does still have the fds (and they
2727         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2728         getting SIGIO as changes are made to the configuration files.
2729
2730         The attached patch moves the initialization of the dnotify fds to
2731         process_config_postinit().  This is safe for all current code
2732         paths and solves the dnotify disfunction.  If we're running
2733         dbus-daemon as daemon the fds for dnotify are now being
2734         initialized after fork() for the child process.
2735
2736         * configure.in: The current configure.in check for dnotify probes
2737         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2738         match for 'xlinux', too. Additionally I have adapted the configure
2739         option's style to match with the others.
2740
2741 2005-11-14  Robert McQueen  <robot101@debian.org>
2742
2743         * python/decorators.py, python/service.py: Add a new argument to the
2744         dbus.service.method decorator called sender_keyword, which if set,
2745         specifies the name of an argument which will be provided the bus
2746         name of the method caller.
2747
2748         * test/python/test-client.py, test/python/test-service.py: Add a
2749         method and test to check the sender_keyword functionality.
2750
2751 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2752
2753         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2754         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2755         Simons <sjoerd at luon.net>)
2756
2757         * AUTHORS: Add Robert McQueen for his work on the Python
2758         Bindings and other parts of D-Bus
2759
2760 2005-11-07  Robert McQueen  <robot101@debian.org>
2761
2762         * python/decorators.py: Change emit_signal function to use the
2763         signature annotation of the signal when marhsalling the arguments from
2764         the service. Fix a bug where the code checking signature length
2765         against argument length referenced the wrong variable.
2766
2767         * python/introspect_parser.py: Avoid adding the type signature of
2768         signal arguments to any methods which occur after them in the
2769         introspection data (!) by making the parser a little more careful
2770         about its current state.
2771
2772         * python/service.py: Remove debug prints from last commit (again :D).
2773
2774         * test/python/test-client.py, test/python/test-service.py: Add test
2775         signals with signature decorators to test the strict marshalling code
2776         gives errors at the right time. Could do with checking the signals
2777         actually get emitted too, given that the test does nothing with
2778         signals at the moment...
2779
2780 2005-11-07  Robert McQueen  <robot101@debian.org>
2781
2782         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2783         instances to stop madness of creating new instances representing
2784         the same bus connection all the time, rendering any tracking of
2785         match rules and bus names quite meaningless. Caught a bug where
2786         the private argument to SessionBus() and friends was being passed
2787         in as use_default_mainloop by mistake. Still some problems with
2788         multiple dbus_binding.Connection instances representing the same
2789         low-level connection (eg when you use both SessionBus() and
2790         StarterBus() in same process), but it's a lot better now than it
2791         was.
2792
2793         * python/dbus_bindings.pyx: Add constants with the return values
2794         for bus_request_name().
2795
2796         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2797         and retrieve the same instances for the same name, so deletion can be
2798         done with refcounting. Also now throws some kind of error if you
2799         don't actually get the name you requested, unlike previously...
2800
2801         * test/python/test-client.py: Add tests for instance caching of buses
2802         and bus name objects.
2803
2804 2005-11-04  Robert McQueen  <robot101@debian.org>
2805
2806         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2807         marshalling of boolean values. Add some booleans to the values in
2808         the test client.
2809
2810         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2811         argument to the dbus.service.method decorator, which allows you to
2812         name arguments to take two callback functions for replying with
2813         return values or an exception.
2814
2815         * test/python/test-client.py, test/python/test-service.py: Add test
2816         case using asynchronous method reply functions, both return values and
2817         errors, and from within both the function itself and from a mainloop
2818         callback.
2819
2820         * python/decorators.py, python/service.py: Perform checking that the
2821         number of method/signal arguments matches the number of types in the
2822         signature at class loading time, not when you first introspect the
2823         class.
2824
2825         * python/service.py: Remove debug print left by the last commit.
2826
2827 2005-11-03  Robert McQueen  <robot101@debian.org>
2828
2829         * python/service.py: Heavy refactoring of method invocation, with
2830         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2831         in favour of a new _message_cb that uses seperate functions for
2832         looking up the method to call, marshalling the return values, and
2833         sending exceptions as errors, and is easier to follow as a
2834         consequence.  Fixes some corner cases about returning things that
2835         don't match your declared out_signature, allows exceptions to define
2836         _dbus_error_name and have it be sent over the bus as the error name,
2837         and paves the way for cool stuff like heeding the message no reply
2838         flag, asynchronous method implementations, informing the method of the
2839         sender, and including backtraces in the error messages.
2840
2841         * test/python/test-client.py: Catch and print exceptions thrown in the
2842         async callback tests, rather than passing them to the low-level
2843         bindings to be ignored in a noisy and frustrating manner.
2844
2845 2005-11-03  Robert McQueen  <robot101@debian.org>
2846
2847         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2848         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2849         tweak others to be consistent.
2850
2851         * test/python/test-client.py: Tweak output of testInheritance.
2852
2853 2005-10-29  Robert McQueen  <robot101@debian.org>
2854
2855         * python/service.py: Major changes to allow multiple inheritance
2856         from classes that define D-Bus interfaces:
2857         
2858          1. Create a new Interface class which is the parent class of
2859             Object, and make the ObjectType metaclass into InterfaceType.
2860         
2861          2. Patch written with Rob Taylor to replace use of method_vtable
2862             with code that walks the class's __MRO__ (method resolution order)
2863             to behave like Python does when invoking methods and allow
2864             overriding as you'd expect. Code is quite tricky because
2865             we have to find two methods, the one to invoke which has the
2866             right name and isn't decorated with the /wrong/ interface,
2867             and the one to pick up the signatures from which is decorated
2868             with the right interface.
2869         
2870             The same caveats apply as to normal multiple inheritance -
2871             this has undefined behaviour if you try and inherit from two
2872             classes that define a method with the same name but are
2873             decorated with different interfaces. You should decorate
2874             your overriding method with the interface you want.
2875         
2876          3. Replace grungy introspection XML generation code in the metaclass
2877             with dictionaries that cope correctly with multiple inheritance
2878             and the overriding of methods. This also uses the signature
2879             decorations to provide correct introspection data, including
2880             the debut appearance of the types of your return values. :D
2881
2882         * test/python/test-client.py, test/python/test-service.py: Add a test
2883         case to try invoking an method that overrides one inherited from a
2884         D-Bus interface class.
2885
2886 2005-10-29  Robert McQueen  <robot101@debian.org>
2887
2888         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2889         Add checking for the end of struct character when marshalling a
2890         struct in MessageIter.append_strict.
2891
2892         * python/examples/example-service.py,
2893         python/examples/gconf-proxy-service.py,
2894         python/examples/gconf-proxy-service2.py: Update to use gobject
2895         mainloop directly rather than appearing to depend on gtk.
2896
2897         * python/test/test-client.py, python/test/test-server.py: Remove
2898         obsolete and broken test scripts for old bindings. We have up to date
2899         and working tests in test/python/.
2900
2901 2005-10-29  Robert McQueen  <robot101@debian.org>
2902
2903         * python/decorators.py: Add optional arguments to the method and
2904         signal decorators to allow you to specify the signature of arguments
2905         and return values. Preserve the doc strings of signal functions in the
2906         decorated version, for pydoc and friends.
2907
2908         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2909         parse_signature_block function with an iterable dbus.Signature()
2910         type. Fix a bug in MessageIter.append_strict where you could append
2911         anything by claiming it was a string.
2912
2913         * python/service.py: Use the out_signature decoration on methods to
2914         marshal return values, meaning you no longer require dbus.Array()
2915         or dbus.Dictionary() to indicate the type when returning empty
2916         arrays or dictionaries. Fix a bug where exceptions which are defined
2917         in __main__ are not turned into error replies.
2918
2919         * test/python/test-client.py, test/python/test-service.py: Add test
2920         for correct marshalling of return values according to out_signature.
2921         Fix a bug in the async call test where the error_handler is missing a
2922         self argument.
2923
2924 2005-10-29  Robert McQueen  <robot101@debian.org>
2925
2926         * glib/Makefile.am, glib/examples/Makefile.am,
2927         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
2928         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
2929
2930         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
2931
2932         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
2933         from Ubuntu by Daniel Silverstone to allow specifying match rules on
2934         the command line.
2935
2936 2005-10-27  Ross Burton  <ross@openedhand.com>
2937
2938         * dbus/dbus-marshal-header.c:
2939         Remove dead code.
2940
2941         * glib/dbus-gobject.c:
2942         Stop compiler warning.
2943
2944 2005-10-25  Ross Burton  <ross@openedhand.com>
2945
2946         * dbus/dbus-auth.c:
2947         * dbus/dbus-server-unix.c:
2948         * dbus/dbus-transport-unix.c:
2949         * glib/dbus-gmain.c:
2950         * glib/dbus-gobject.c:
2951         Add some const keywords.
2952
2953 2005-10-25  Ross Burton  <ross@openedhand.com>
2954
2955         * doc/dbus-specification.xml:
2956         Document the NoReply annotation.
2957
2958         * glib/dbus-binding-tool-glib.h:
2959         * glib/dbus-binding-tool-glib.c:
2960         Respect the NoReply annotation.
2961
2962 2005-10-24  Robert McQueen <robot101@debian.org>
2963
2964         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
2965         derive from unicode instead of str, and encode/decode UTF-8 when
2966         marshalling/unmarshalling bus messages
2967
2968         * python/introspect_parser.py: encode introspection data as UTF-8
2969         before passing the buffer into libxml2
2970
2971         * test/python/test-client.py: add unicode test strings
2972
2973         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
2974         ignore generated python test files
2975
2976 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
2977
2978         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
2979         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
2980         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
2981
2982         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
2983         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
2984         when constructing struct signatures
2985
2986         * python/_dbus.py (Bus): handle private connections using the
2987         private keyword in the constructor. defaults to private=False
2988         (Bus::close): new method to close a connection to the bus
2989
2990         * python/dbus_bindings.pyx (Connection::close): renamed method
2991         was previously called disconnect
2992         (bus_get): now supports getting a private connection
2993
2994         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
2995         keyword is set to True.  if it is, execute the method without waiting
2996         for a reply
2997         (ProxyObject::_introspect_execute_queue): new method for executing
2998         all the pending methods that were waiting for the introspect to
2999         finish.  this is called when introspect either succeeds or fails
3000         (ProxyObject::_introspect_error_handler): call queued methods
3001
3002 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3003
3004         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3005         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3006
3007         * python/service.py (Object::_message_cb): handle exceptions correctly
3008         by sending them over the wire to the calling app.  This makes sure
3009         the client returns immediately instead of waiting the 15 seconds to
3010         timeout.
3011
3012         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3013         Add a test to benchmark how long it takes to introspect a service and 
3014         call a method which returns a large element (pretty fast)
3015
3016         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3017         method which pushes a lot of data
3018
3019 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3020
3021         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3022         reclaim memory outside of the loop and use del istead of just setting
3023         the key to None
3024
3025 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3026
3027         * python/service.py (ObjectType::_reflect_on_signal): Always close
3028         signal tag even when there are no arguments
3029
3030 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3031
3032         * configure.in: Set mono, mono-docs and Qt3 to default
3033         to no instead of auto when building.  These bindings do not
3034         have full time maintainers and will not be supported for the
3035         1.0 release.
3036
3037 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3038
3039         patches from Michael Krivoruchko <misha at sun.com>: 
3040         
3041         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3042         _dbus_connection_message_sent, 
3043         _dbus_connection_send_preallocated_unlocked_no_update, 
3044         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3045         is NULL when calling _dbus_verbose
3046
3047         * configure.in: check for functions getpeerucred and getpeereid
3048
3049         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3050         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3051         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3052         Patch was only tested on Solaris 10 x86 so it might be issues
3053         with other platforms (i.e. BSDs and MacOSX)
3054         
3055
3056 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3057
3058         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3059         instead of marshal basic so we can handle recursive types in a variant
3060
3061         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3062         in variants
3063
3064         * test/glib/test-service-glib.c, test-service-glib.xml
3065         (my_object_echo_variant [EchoVariant], 
3066         my_object_process_variant_of_array_of_ints123
3067         [ProcessVariantOfArrayOfInts123]): 
3068         Add two test methods
3069
3070         * python/introspect_parser.py: New module for parsing introspect
3071         data.
3072
3073         * python/dbus_bindings.pyx:
3074         (various places): when throwing errors fix to use errormsg instead 
3075         of message local variable because Pyrex can get confused with other 
3076         message variables (initial patch by Robert McQueen 
3077         <robert.mcqueen at collabora.co.uk>)
3078         (MessageIter::parse_signature_block): new method for getting the next
3079         block in a signiture.
3080         (MessageIter::append_strict): new method for appending values strictly
3081         using the passed in signature instead of guessing at the type
3082         (MessageItter:: append_dict, append_struct, append_array): use 
3083         signatures to marshal children if the signature is available
3084         
3085         * python/exceptions.py (IntrospectionParserException): new exception
3086
3087         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3088         introspected signatures if available, else we fall back to the
3089         old way of doing things.
3090         (ProxyObject::_introspect_reply_handler ): parse introspection data
3091         
3092         * python/service.py (ObjectType::_reflect_on_method): Properly
3093         terminate <method> if there are no args in the reflection data
3094
3095         * test/python/test-client.py: add tests for talking with the GLib
3096         test server.  This gives us better coverage for introspection since
3097         python to python will always generate arguments as variants.  It also
3098         allows us to test the robustness of the GLib bindings and interlanguage
3099         communications.
3100
3101         
3102 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3103
3104         * bus/driver.c (bus_driver_handle_introspect): Add signals
3105         to the introspect data. (patch from Daniel P. Berrange 
3106         <dan at berrange.com>)
3107
3108         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3109         
3110         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3111         _dbus_connection_run_builtin_filters): Changed these to
3112         be unlock_no_update functions and call 
3113         _dbus_connection_send_unlocked_no_update instead of
3114         dbus_connection_send to avoid locking errors.
3115         
3116         * doc/TODO: Removed the make Ping test TODO
3117         
3118 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3119
3120         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3121         We now copy the message from a DBusError and then free 
3122         the error object befor throwing the error
3123
3124         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3125         DBusBindingOutputMode enum which was causing a warning.
3126         #include <time.h> so using time_t is explicitly defined
3127
3128 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3129
3130         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3131         - dbus/dbus-bus.c
3132         (internal_bus_get): new method that take over the heavy lifting
3133         of dbus_bus_get and adds the ability to get a private connection
3134         to the bus
3135         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3136         interface as in previous versions
3137         (dbus_bus_get_private): new method that is a wrapper to 
3138         internal_bus_get to get a private connection to the bus
3139
3140         - dbus/dbus-bus.h
3141         (dbus_bus_get_private): add as a public libdbus interface
3142
3143         - dbus-1.pc.in: output system_bus_default_address and 
3144         sysconfdir variables so apps can use them when compiling
3145
3146 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3147         * dbus/qt: New Qt bindings
3148
3149 2005-09-12  Waldo Bastian  <bastian@kde.org>
3150
3151         * dbus/dbus-marshal-validate.c,
3152         doc/dbus-specification.xml, test/Makefile.am,
3153         test/test-names.c: allow hyphens in bus names.
3154
3155 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3156
3157         * test/data/auth/fallback.auth-script: we don't
3158         retry the EXTERNAL method when we know its going
3159         to fail anymore.
3160
3161 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3162
3163         * dbus/dbus-connection-internal.h: rename
3164         (add|remove|toggle)_(watch|timeout) to unlocked()
3165         
3166         * dbus/dbus-connection.c: ditto.
3167         
3168         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3169         Update some callers for the renaming.
3170
3171 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3172
3173         * dbus/dbus-auth.c: (record_mechanisms): don't
3174         retry the first auth mechanism because we know
3175         we're just going to get rejected again.
3176         
3177         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3178         Fix thinko ... and what a nasty little bugger to
3179         track down you were ...
3180
3181         * dbus/dbus-connection.c:
3182         (_dbus_connection_add_watch),
3183         (_dbus_connection_remove_watch): add note about
3184         these needing the connection to be locked.
3185         (_dbus_connection_get_dispatch_status_unlocked):
3186         set status to DATA_REMAINS when we queue the
3187         disconnected message.
3188         
3189         * bus/dispatch.c:
3190         (bus_dispatch): fix warning.
3191         (check_existent_service_no_auto_start):
3192         Expect ChildSignaled error too.
3193         (check_existent_hello_from_self): fix another
3194         couple of warnings.
3195         
3196 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3197
3198         Patches from James Willcox <snorp@snorp.net>
3199
3200         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3201
3202         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3203         support array "out" parameters.
3204
3205         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3206         for 16-bit int support.
3207
3208 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3209
3210         * Released 0.50
3211
3212         * Patch from Steve Grubb:
3213         - bus/activation.c (bus_activation_service_reload_test): clean up
3214         some indentation
3215         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3216         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3217         buffer overflows in the test suite.  This is non critical because
3218         it can not be exploited and this code is only run when doing a 
3219         make check.
3220
3221         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3222         - configure.in: Don't check and link against kdecore, only qt headers
3223         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3224         - gcj/org/freedesktop/dbus/Makefile.am:
3225         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3226         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3227         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3228         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3229         - tools/Makefile.am: Add platform extentions to binaries 
3230         (i.e. .exe on windows)
3231
3232         * configure.in: 
3233         - Make it so if no suitable version of python is found we only 
3234         disable building python instead of exiting the configure script
3235         - Require version 2.4 of glib for glib bindings
3236         - Up version to 0.50
3237
3238         * python/__init__.py: Sync version with libdbus to (0,50,0)
3239         
3240 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3241
3242         * dbus/dbus-object-tree.c (find_subtree_recurse):
3243         a couple of optimizations (bug #710):
3244         - do a binary search in the tree
3245         - insert a new child at the right place directly, no need for
3246           qsort anymore
3247         - do the "double alloc" thing when allocating children
3248
3249 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3250
3251         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3252
3253         * python/dbus_bindings.pyx: Memory management foo
3254         (global): remove hacky _user_data_references global list
3255         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3256         tuples. Unref user_data
3257         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3258         (Connection::__del__): Remove and replace with __dealloc__ method
3259         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3260         to keep tuple from being deallocated instead of the global var hack
3261         (Connection::register_object_path): Stuff user_data into a tuple.
3262         Use Py_INCREF to keep tuple from being deallocated instead of the 
3263         global var hack
3264         (Connection::register_fallback): Stuff user_data into a tuple.
3265         Use Py_INCREF to keep tuple from being deallocated instead of the 
3266         global var hack
3267         (GIL_safe_pending_call_notification): Don't unref the message
3268         because it gets unreffed when going out of scope.  Py_XDECREF
3269         the user_data
3270         (PendingCall::__del__): Remove and replace with __dealloc__ method
3271         (PendingCall::set_notify): ref the pending call because we will
3272         need it to stick around for when the notify callback gets called
3273         (Message::__del__): Remove and replace with __dealloc__ method
3274
3275         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3276         gthreads_init to match up with the dbus call
3277
3278         * python/glib.py (init_threads): Changed to threads_init to match
3279         up with gobject.threads_init().  init_threads is kept for backwards
3280         compat but will most likely be deprecated in the future
3281
3282         * test/python/test-client.py: 
3283         - revamp to use Python's unittest functionality
3284         - add async call tests
3285         - setup threads in glib and dbus so we make sure locks are working
3286         
3287 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3288
3289         * python/dbus_bindings.pyx 
3290         (_pending_call_notification, cunregister_function_handler, 
3291         cmessage_function_handler): All callback functions have been rearranged 
3292         to workaround a bug in Pyrex when working with the GIL which is Python's 
3293         global lock when dealing with threads.  They have been split into
3294         a wrapper function (which assumes the name of the old function) and
3295         a _GIL_safe_<function name> function which contains the functionality
3296         of the old function.  This ensures that Pyrex does not write code
3297         the lock is released.
3298         
3299
3300 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3301
3302         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3303         GIL global lock when calling back into Python
3304
3305 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3306
3307         * Release 0.36.2
3308
3309         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3310
3311         * bus/policy.c (bus_policy_allow_user): change default "user is
3312         allowed" to be "user has same uid as the bus itself"; any
3313         allow/deny rules will override.
3314
3315         * bus/session.conf.in: don't allow all users, since now by default
3316         the user that ran the bus can connect.
3317
3318 2005-08-26  Colin Walters  <walters@verbum.org>
3319
3320         * tools/dbus-print-message.c (print_message): Flush stdout
3321         after printing a message, so that redirecting to a file, then
3322         hitting Ctrl-C works.
3323
3324 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3325
3326         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3327         (EmptyMessage): new class that subclasses Message.  This is a workaround
3328         to a Pyrex bug that fails to call __del__ when the Message object goes out
3329         of scope.  For some reason subclassing Message fixes this bug
3330         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3331         - s/Message(_create=0)/EmptyMessage everywhere else
3332         
3333         * test/python/test-{server|client}.py: add the python/.libs directory
3334         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3335         get picked up from the system
3336
3337 2005-08-25  Colin Walters  <walters@verbum.org>
3338
3339         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3340         to Ryan Lortie for the suggestion.
3341
3342 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3343
3344         * test/python: Add python regression test
3345
3346         * configure.in: Add test/python/Makefile
3347
3348         * test/Makefile.am: Add the python directory to SUBDIRS
3349
3350 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3351
3352         * Release 0.36.1
3353
3354         * python/_dbus.py: 
3355         (Interface::connect_to_signal): propigate keywords for match on args
3356         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3357
3358         * python/proxies.py (ProxyObject::connect_to_signal):
3359         propigate keywords for match on args
3360
3361         * Makefile.am: point everything to pyexecdir since python borks
3362         on multilib
3363
3364 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3365
3366         * Release 0.36
3367
3368 2005-08-23  Colin Walters  <walters@verbum.org>
3369
3370         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3371
3372 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3373
3374         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3375         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3376         of defining DBusConnection ourselves.
3377
3378 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3379
3380         * python/dbus.pth: New path file to fix up problems when installing
3381         c libraries to lib64 and python files to lib.
3382
3383         * python/Makefile.am: install dbus.pth in the correct spot
3384
3385 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3386         * ChangeLog: clean up my last entry a bit
3387
3388         * doc/introspect.xsl: New stylesheet for converting introspection data
3389         into browser renderable xhtml. Contributed by Lennart Poettering.
3390
3391         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3392         Poettering.
3393
3394         * doc/dbus-tutorial.xml: 
3395         - Add Colin Walter to the Authors section for authoring the GLib
3396         section
3397         - Add descriptions of the new signature and type functionality
3398         in the Python complex type mapping section
3399         - Add a sidenote on the new args matching functionality in 
3400         the Python bindings
3401         - Fixed up some of the examples to use the gobject.MainLoop
3402         instead of gtk.main
3403         
3404         * python/_dbus.py:
3405         (Bus::_create_args_dict): New. Converts a hash of arg matches
3406         to a more useable format
3407         (Bus::add_signal_receiver): add a **keywords parameter for catching
3408         arg match parameters
3409         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3410         arg match parameters
3411         
3412         * python/matchrules.py:
3413         (MatchTree::exec_matches): Check for arg matches
3414         (SignalMatchRule::add_args_match): New method
3415         (SignalMatchRule::execute): Added args_list parameter as an optimization
3416         so we don't have to marshal the args more than once
3417         (SignalMatchRule::match_args_from_list): New method that checks to see
3418         if the rule's arg matches match an argument list.  Only arguments
3419         set in the rule are checked.
3420         (SignalMatchRule::match_args_from_rule): New method that checks to see
3421         if the rule's arg matches match another rule's.  All args have to match
3422         in order for this method to return true.  If either rule has more args
3423         then it is not a match.
3424         (SignalMatchRule::is_match): Add args match
3425         (SignalMatchRule::repr): Add args to the final output if they exist
3426
3427 2005-08-17  Ross Burton  <ross@burtonini.com>
3428
3429         * glib/dbus-gproxy.c:
3430         (dbus_g_proxy_call_no_reply): unref the message once sent.
3431         (dbus_g_proxy_call): protect against NULL proxy.
3432
3433 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3434
3435         * python/__init__.py: Version updated (0, 43, 0)
3436         
3437         * python/dbus_bindings.pyx: 
3438         - Fixed type objects to have self passed into __init__
3439         - Added the Variant type
3440         - Add the ability to specify types or signatures for Array, Variant 
3441         and Dictionary
3442         (Connection::send_with_reply_handlers): return a PendingCall object
3443         (_pending_call_notification): handle the case when an error is returned 
3444         without an error message in the body
3445         (MessageIter::get_boolean): return True or False instead of an integer
3446         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3447         and add checks for objects with embeded signatures or types (Array, 
3448         Variant and Dictionary)
3449         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3450         (MessageIter::append_dict): handle embeded types or signatures
3451         (MessageIter::append_array): handle embeded types or signatures
3452         (MessageIter::append_variant): new method
3453         
3454         * python/proxies.py:
3455         (DeferedMethod): New. Dummy executable object used when queuing calls 
3456         blocking on introspection data
3457         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3458         or shorter timeouts for method calls
3459         (ProxyObject): Add first pass at an introspection state machine
3460         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3461         introspection. 
3462         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3463         the usual mechanisms for sending messages.  This is to avoid a deadlock
3464         where the Intospect call would be queued waiting for the Introspect 
3465         call to finish ;-)
3466         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3467         when introspection returns with no error
3468         (ProxyObject::_introspect_error_handler): New.  This method is called 
3469         when introspection encounters an error
3470         (ProxyObject::__getattr__): Code to handle different introspection 
3471         states.  Queue async calls or block blocking calls if we are 
3472         introspecting.  Pass through as normal if we are not or are done with 
3473         introspecting.
3474         
3475         * python/service.py: Import signal and method from decorators.py
3476
3477         * python/types.py: Add Variant type
3478
3479 2005-08-16  Colin Walters  <walters@verbum.org>
3480
3481         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3482         DBusError message is NULL.
3483
3484 2005-08-09  Havoc Pennington  <hp@redhat.com>
3485
3486         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3487         malloc'd copy of the name parameter
3488
3489 2005-08-09  Havoc Pennington  <hp@redhat.com>
3490
3491         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3492         warning if the reply serial is set to 0
3493
3494 2005-08-04  Colin Walters  <walters@verbum.org>
3495
3496         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3497         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3498         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3499         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3500         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3501         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3502         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3503         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3504         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3505         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3506         
3507         Prefix name with _ to ensure they're not exported.  All callers
3508         updated.
3509
3510         * glib/dbus-gvalue.c (typecode_to_gtype)
3511         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3512         (signature_iter_to_g_type_dict)
3513         (signature_iter_to_g_type_array)
3514         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3515         (dbus_gtypes_from_arg_signature):
3516         Move to dbus-gsignature.c.
3517
3518         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3519         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3520         (dbus_binding_tool_output_glib_client): Ditto.
3521
3522         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3523         and dbus-gsignature.h
3524
3525         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3526         unused variable.
3527
3528 2005-08-03  Colin Walters  <walters@verbum.org>
3529
3530         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3531         catch any incompatible changes accidentally made.
3532
3533 2005-08-03  Havoc Pennington  <hp@redhat.com>
3534
3535         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3536         typo, from Julien Puydt
3537
3538         * bus/connection.c (bus_connection_disconnected): we were always
3539         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3540
3541 2005-08-01  Colin Walters  <walters@verbum.org>
3542
3543         Patch from Joe Markus Clarke:   
3544         
3545         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3546         use-after-free.
3547
3548 2005-08-01  Colin Walters  <walters@verbum.org>
3549         
3550         Patch from Joe Markus Clarke:   
3551         
3552         * tools/dbus-send.c (main): 
3553         
3554         Don't use C99 style initializers (bug #3933).
3555         
3556 2005-08-01  Colin Walters  <walters@verbum.org>
3557
3558         Patch from Joe Markus Clarke:   
3559
3560         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3561         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3562         * glib/dbus-gobject.c (write_interface):
3563
3564         Don't use C99 style initializers (bug #3933).
3565
3566 2005-07-31  Havoc Pennington  <hp@redhat.com>
3567
3568         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3569         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3570
3571 2005-07-30  Havoc Pennington  <hp@redhat.com>
3572
3573         * fix a bunch of Doxygen warnings and mistakes
3574
3575 2005-07-30  Havoc Pennington  <hp@redhat.com>
3576
3577         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3578         DBUS_BUILD_TESTS since it's now used in production code
3579
3580 2005-07-29  Havoc Pennington  <hp@redhat.com>
3581
3582         * test/glib/test-profile.c (write_junk): initialize the junk
3583         buffer so valgrind doesn't have a breakdown
3584
3585 2005-07-29  Havoc Pennington  <hp@redhat.com>
3586
3587         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3588         (match_rule_matches): remove unused arg
3589         (test_matching): add tests for match_rule_matches()
3590
3591         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3592         do arg0='foo' arg5='bar' in the match rules
3593         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3594
3595         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3596
3597 2005-07-29  Ross Burton  <ross@openedhand.com>
3598
3599         * dbus/dbus-connection.c:
3600         Don't create a DBusCondVar which is never used.
3601
3602 2005-07-27  Ross Burton  <ross@openedhand.com>
3603
3604         * dbus/dbus-message.c:
3605         Reduce the size of the maximum cached message to 10K.
3606
3607 2005-07-25  Ross Burton  <ross@openedhand.com>
3608
3609         * glib/dbus-gproxy.c:
3610         Remove matches when all proxies are unregistered.
3611
3612 2005-07-24  Colin Walters  <walters@verbum.org>
3613
3614         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3615         typedata; recursive arrays won't have it.
3616
3617         * test/glib/test-dbus-glib.c:
3618         * test/glib/test-service-glib.c:
3619         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3620         
3621 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3622
3623         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3624         proxies.py, service.py: Cleanup of code after running it through the
3625         pyflakes code checker mostly dealing with undefined names.  
3626         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3627
3628 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3629
3630         * NEWS: Update to 0.35.2
3631
3632 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3633
3634         * python/_dbus.py: Remove import of the dbus.services
3635         module as it no longer exists (patch from Dimitur Kirov)
3636
3637         * python/service.py (Object::__init__): Fixed typo
3638         s/name/bus_name (patch from Dimitur Kirov)
3639
3640         * python/examples/example-signal-emitter.py: import dbus.glib
3641         to get the main loop and use glib mainloop instead of gtk so
3642         X doesn't have to be running.
3643
3644         * python/examples/example-signal-recipient.py: import dbus.glib
3645         to get the main loop and use glib mainloop instead of gtk so
3646         X doesn't have to be running. Import the decorators module
3647         directly.
3648
3649         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3650         didn't pick up on but are needed to build
3651
3652         * configure.in: upped version to 0.35.2
3653
3654         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3655         added Colin Walters' SELinux API rename patch from head 
3656         s/unix sercurity context/selinux security context/
3657
3658 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3659
3660         * python/Makefile.am: dbus_binding.pxd.in should be included 
3661         in EXTRA_DIST not dbus_binding.pxd
3662         fix up $(srcdir) hopefully for the last time
3663
3664         * NEWS: Update to 0.35.1
3665
3666 2005-07-16  Colin Walters  <walters@verbum.org>
3667
3668         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3669         from bus_driver_handle_get_connection_unix_security_context.  Update for
3670         error usage.
3671         (message_handlers): Update for renames.
3672
3673         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3674         _dbus_string_init failure correctly.
3675         (bus_selinux_append_context): Convert SID to context.  Append it
3676         as a byte array.
3677         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3678         hasn't been called.
3679
3680         * bus/selinux.h: Update prototype.
3681
3682         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3683         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3684
3685 2005-07-15  Colin Walters  <walters@verbum.org>
3686
3687         * doc/TODO: Add note about convenience wrappers.
3688
3689 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3690
3691         * NEWS: Update to 0.35
3692
3693 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3694
3695         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3696         so distcheck doesn't fail
3697
3698         * glib/examples/Makefile.am: Add example-service.xml and 
3699         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3700
3701         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3702         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3703
3704         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3705         compiler looks in the right places during distcheck
3706
3707 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3708
3709         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3710         to fail
3711
3712 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3713
3714         * python/examples/example-service.py,
3715         python/examples/example-signal-emitter.py: Fixed up examples
3716         for API changes
3717
3718 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3719
3720         * python/__init__.py: Upped to version (0,42,0) because of
3721         the API change
3722
3723 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3724
3725         * ChangeLog: fix date in last entry
3726
3727         * configure.in, bus/system.conf.in: add the ability to configure 
3728         the system bus user at compiletime with the --with-dbus-user flag
3729         (patch from Kristof Vansant)
3730
3731 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3732
3733         * bus/dispatch.c, test/test-service.c: Add testcase
3734         for sending messages to oneself (TODO item).
3735
3736         * python/service.py (class Object): Swap ordering of bus_name 
3737         and object_path parameters to better support inheritance.
3738
3739         * doc/dbus-tutorial.xml: change Python docs to reflect change
3740         in parameter ordering and fix the inheritance section.
3741
3742         * doc/TODO: remove sending message to oneself TODO item
3743
3744 2005-07-15  Ross Burton  <ross@openedhand.com>
3745
3746         * glib/dbus-gproxy.c:
3747         Fix a leak when calling methods via the proxy.
3748
3749 2005-07-15  Colin Walters  <walters@verbum.org>
3750
3751         * bus/selinux.c (bus_selinux_append_context): Wrap in
3752         HAVE_SELINUX.
3753
3754 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3755
3756         * python/_dbus.py (Bus::remove_signal_receiver):
3757         don't add a callback to the match if none has been passed in
3758         
3759         * python/matchrules.py (SignalMatchTree::remove): if the rule
3760         being matched does not have a callback treat it as a wildcard
3761         fix matching logic
3762
3763         * doc/dbus-tutorial.xml: Add Python tutorial
3764
3765 2005-07-14  Colin Walters  <walters@verbum.org>
3766
3767         * bus/driver.c
3768         (bus_driver_handle_get_connection_unix_security_context): New function.
3769         (message_handlers): Add.
3770
3771         * bus/selinux.c (bus_selinux_append_context): New function; appends
3772         security context to message.
3773
3774         * bus/selinux.h: Prototype.
3775
3776         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3777
3778 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3779
3780         * bus/activation.c: clean up all tabs to be 8 spaces 
3781         (bus_activation_activate_service): make sure we clean up
3782         if activation fails
3783
3784         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3785         (check_shell_fail_service_auto_start): New function
3786         tests to make sure we get fail properly when trying to auto start a service
3787         with a faulty command line
3788         (check_shell_service_success_auto_start): New function tests to make sure
3789         auto started services get the arguments on the command line
3790
3791         * test/test-shell-service.c: Added service for testing auto-starting with 
3792         command line arguments
3793
3794         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3795         test/data/valid-service-files/debug-shell-echo-success.service.in:
3796         Added service files for testing auto-starting with command line arguments
3797
3798         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3799
3800 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3801
3802         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3803         
3804         * dbus/Makefile.am: added new files to build.
3805
3806         * bus/activation.c (bus_activation_activate_service): support
3807         activation commands with parameters.
3808
3809         * test/shell-test.c: added test program for the shell parsing
3810         code.
3811
3812 2005-07-13  David Zeuthen  <davidz@redhat.com>
3813
3814         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3815         64 bit signed and unsigned parameters
3816
3817 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3818
3819         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3820
3821         * python/service.py (class Name): renamed BusName to make it clearer
3822         what the object is for (a name on the bus)
3823
3824         * python/examples/example-service.py,
3825         python/examples/example-signal-emitter.py: change the Name object to
3826         BusName
3827
3828 2005-07-12  Colin Walters  <walters@verbum.org>
3829
3830         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3831
3832         * tools/dbus-launch.c: Include sys/select.h.
3833
3834 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3835         * python/dbus_bindings.pyx.in: removed
3836
3837         * python/dbus_bindings.pyx: Added.
3838         - Fixed some memleaks (patch from 
3839         Sean Meiners <sean.meiners@linspireinc.com>)
3840         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3841         own pxd file (Pyrex definition)
3842         - Broke out glib dependancies into its own pyx module
3843         
3844         * python/dbus_bindings.pdx: Added.
3845         - Defines C class Connection for exporting to other modules
3846
3847         * python/dbus_glib_bindings.pyx: Added.
3848         - New module to handle lowlevel dbus-glib mainloop integration
3849
3850         * python/glib.py: Added.
3851         - Registers the glib mainloop when you import this module
3852
3853         * python/services.py: Removed (renamed to service.py)
3854         
3855         * python/service.py: Added.
3856         - (class Server): renamed Name
3857
3858         * python/__init__.py: Bump ro version (0,41,0)
3859         -don't import the decorators or service module
3860         by default.  These now reside in the dbus.service namespace
3861
3862         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3863         setup function on creation 
3864
3865         * python/examples/example-service.py,
3866         python/examples/example-signal-emitter.py: update examples
3867
3868         * python/examples/gconf-proxy-service.py,
3869         python/examples/gconf-proxy-service2.py: TODO fix these up
3870
3871         * doc/TODO: Addition
3872         - Added a Python Bindings 1.0 section
3873         - added "Add match on args or match on details to match rules"
3874
3875
3876 2005-07-12  Colin Walters  <walters@verbum.org>
3877
3878         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3879         (statemachine-glue.h): 
3880         * glib/examples/Makefile.am (example-service-glue.h) 
3881         (example-signal-emitter-glue.h): 
3882         * glib/Makefile.am (dbus-glib-error-switch.h): 
3883         Add libtool --mode=execute so we use the built library instead
3884         of any installed one.
3885
3886 2005-07-11  Colin Walters  <walters@verbum.org>
3887
3888         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3889         (dbus_g_value_types_init): Remove assertion.
3890         (dbus_g_value_get_g_type, dbus_g_value_open)
3891         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3892         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3893         functions related to DBusGValue.  Now we marshal/demarshal
3894         structures as GValueArray.
3895         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3896         structures.
3897         (signature_iter_to_g_type_array): Don't call
3898         signature_iter_to_g_type_struct.
3899         (signature_iter_to_g_type_struct): Delete.
3900         (dbus_gvalue_to_signature): Delete.
3901         (dbus_gvalue_to_signature): New function with same name as other
3902         one; we can convert structures to signatures.
3903         (demarshal_valuearray): New function.
3904         (get_type_demarshaller): Use it.
3905         (demarshal_recurse): Delete.
3906         (marshal_proxy): New function.
3907         (marshal_map): Warn if we can't determine signature from type.
3908         (marshal_collection_ptrarray): Ditto.
3909         (marshal_collection_array): Ditto.
3910         (get_type_marshaller): Use marshal_valuearray.
3911         (marshal_recurse): Delete.
3912         (_dbus_gvalue_test): Add some tests.
3913
3914         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3915         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3916         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3917         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3918         (dbus_g_value_free): Remove prototypes.
3919
3920         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3921         G_TYPE_VALUE_ARRAY.
3922
3923         * glib/examples/example-service.c:
3924         * glib/examples/example-client.c: Implement GetTuple.
3925
3926         * test/glib/test-dbus-glib.c:
3927         * test/glib/test-service-glib.c:
3928         * test/glib/test-service-glib.xml: Add structure tests.
3929
3930 2005-07-10  Colin Walters  <walters@verbum.org>
3931
3932         * doc/TODO: Knock off some GLib items with this patch.
3933
3934         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
3935         (_dbus_gvalue_signals_error): New functions.
3936
3937         * glib/dbus-gvalue-utils.h: Prototype them.
3938
3939         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
3940         and change to not output const/retval flags for input args.  All
3941         callers updated.
3942         (invoke_object_method): Refactor to handle return values.  Add
3943         some more comments in various places.  Remove debug g_print.
3944
3945         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
3946
3947         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
3948         Handle G_TYPE_NONE.
3949         (compute_gsignature): New function; refactored from code from
3950         compute_marshaller and compute_marshaller_name.  Enhance to
3951         handle return values and async ops more cleanly.  Update for
3952         async ops returning NONE instead of BOOLEAN.
3953         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
3954         and output appropriate string.
3955         (generate_glue): Handle return value annotation.  Also don't dump
3956         constness flag for input arguments.
3957
3958         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
3959         files shared between installed library and utilities.
3960         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
3961         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
3962         binding tool can access gtype utility functions.
3963
3964         * test/glib/test-service-glib.c: 
3965         * test/glib/test-service-glib.xml: 
3966         * test/glib/test-dbus-glib.c: Add some tests for return values.
3967
3968 2005-07-09  Colin Walters  <walters@verbum.org>
3969
3970         * glib/dbus-gparser.c (parse_annotation): Add annotations to
3971         argument if available, not method.
3972
3973         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
3974         (invoke_object_method): First, remove some redundant
3975         GValues (object_value, error_value) in favor of working on
3976         array directly.  Second, rework constness to be less buggy.
3977         Now we iterate directly over the argument metadata instead
3978         of parallel iterating over output signature and metadata.
3979
3980         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
3981
3982         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
3983         annotation on input args.
3984         
3985 2005-07-09  Colin Walters  <walters@verbum.org>
3986
3987         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
3988         Define.
3989
3990         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
3991         annotation.
3992
3993         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
3994         (method_dir_signature_from_object_info): Handle arg_iterate change.
3995         (write_interface): Ditto.
3996         (lookup_object_info): Don't barf if format_version is > 0.
3997         (invoke_object_method): Handle arg constness.
3998
3999         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4000         (arg_info_new): Create.
4001         (arg_info_unref): Destroy.
4002         (arg_info_get_annotations, arg_info_get_annotation) 
4003         (arg_info_add_annotation): New functions.
4004
4005         * glib/dbus-gidl.h: Prototype them.
4006
4007         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4008         args, disallow them in properties.
4009         (parse_annotation): Handle arg annotations.
4010
4011         * test/glib/test-service-glib.xml: 
4012         * test/glib/test-service-glib.c: Update to make some methods
4013         const.
4014
4015 2005-07-08  Colin Walters  <walters@verbum.org>
4016
4017         * test/glib/test-service-glib.xml: 
4018         * test/glib/test-service-glib.c:
4019         * test/glib/test-dbus-glib.c: Test a{sv}.
4020
4021         * glib/examples/statemachine/statemachine.c:
4022         * glib/examples/statemachine/statemachine-server.c:
4023         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4024         add progress bar, etc.
4025
4026         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4027         needed anymore due to generic array/map marshalling.
4028         (dbus_g_value_types_init): Don't register basic arrays or the
4029         string/string hash.
4030         (dbus_gtype_from_signature_iter): Don't try to recurse into
4031         variants.
4032         (dbus_gtype_to_signature): Check collection/map before type
4033         metadata.
4034         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4035         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4036         generic map creation/append functions instead of hash table
4037         specifically.
4038         (get_type_demarshaller): Handle maps.
4039         (demarshal_collection): Dispatch on collection type to either
4040         demarshal_collection_ptrarray or demarshal_collection_array.
4041         (get_type_marshaller): Handle maps.
4042         (marshal_collection): Dispatch collection type to either
4043         marshal_collection_ptrarray or marshal_collection_array.
4044         (_dbus_gvalue_test): New test.
4045
4046         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4047         (hash_free_from_gtype): Use it to free GValues.
4048         (hashtable_append): New function.
4049         (ptrarray_append): Fix prototype.
4050         (slist_append): Ditto.
4051         (_dbus_gvalue_utils_test): Extend tests.
4052
4053         * glib/dbus-gtype-specialized.c
4054         (dbus_g_type_specialized_init_append): Renamed from
4055         dbus_g_type_specialized_collection_init_append.  Remove const from
4056         value, since we steal it.
4057         (dbus_g_type_specialized_map_append): New function.
4058
4059         * glib/dbus-gtype-specialized.h: Update prototypes.
4060         Add DBusGTypeSpecializedMapAppendFunc.
4061
4062         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4063         _dbus_gvalue_test.
4064         
4065         * glib/dbus-gtest.h: Prototype it.
4066
4067 2005-07-08  Ross Burton  <ross@openedhand.com>
4068
4069         * dbus/dbus-glib.h:
4070         Add DBysGAsyncData for the async bindings.
4071
4072         * glib/dbus-binding-tool-glib.c:
4073         Re-enable the async bindings.
4074
4075         * test/glib/test-dbus-glib.c:
4076         Add a test for the generated async bindings.
4077
4078 2005-07-08  Colin Walters  <walters@verbum.org>
4079
4080         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4081         connection concept.
4082         
4083 2005-07-08  Colin Walters  <walters@verbum.org>
4084         
4085         * tools/Makefile.am: Kill of print-introspect in favor of using
4086         dbus-send --print-reply=literal.
4087
4088         * test/glib/test-service-glib.xml: 
4089         * test/glib/test-service-glib.c (my_object_get_objs): New test
4090         for "ao".
4091
4092         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4093         (main): Test GetObjs.
4094
4095         * glib/examples/statemachine/Makefile.am:
4096         * glib/examples/statemachine/sm-marshal.list:
4097         * glib/examples/statemachine/statemachine-client.c:
4098         * glib/examples/statemachine/statemachine-server.c:
4099         * glib/examples/statemachine/statemachine-server.xml:
4100         * glib/examples/statemachine/statemachine.c:
4101         * glib/examples/statemachine/statemachine.h:
4102         * glib/examples/statemachine/statemachine.xml:
4103
4104         New example.
4105
4106         * glib/examples/example-service.c (main): Move invocation
4107         of dbus_g_object_type_install_info earlier, to emphasize it
4108         should only be done once.
4109
4110         * glib/examples/example-signal-emitter.c (main): Ditto.
4111
4112         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4113
4114         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4115         (dbus_gvalue_marshal): Update prototypes.
4116
4117         * glib/dbus-gvalue.c: Update all marshalling functions to take
4118         const GValue instead of GValue.
4119         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4120         types.
4121         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4122         change.
4123         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4124         Return a newly-allocated string.
4125         (demarshal_proxy, demarshal_object_path, demarshal_object)
4126         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4127         we get the wrong types from message.
4128         (get_type_demarshaller): New function, extracted from
4129         dbus_gvalue_demarshal.
4130         (demarshal_collection): New function, demarshals generic
4131         collection.
4132         (dbus_gvalue_demarshal): Just invoke result of
4133         get_type_demarshaller.  Throw error if we don't have one.
4134         (marshal_garray_basic): Abort on OOM.
4135         (get_type_marshaller): New function, extracted from
4136         dbus_gvalue_marshal.
4137         (collection_marshal_iterator, marshal_collection): New functions;
4138         implements generic marshalling for an iteratable specialized
4139         collection.
4140         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4141
4142         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4143         G_TYPE_STRING.
4144         (ptrarray_value_from_gvalue): Ditto.
4145         (ptrarray_append, ptrarray_free): New functions.
4146         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4147         (slist_append, slist_end_append, slist_free): New functions.
4148         (dbus_g_type_specialized_builtins_init): Add append fuctions
4149         for GPtrArray and GSList.  Register GSList.
4150         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4151
4152         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4153         New.
4154         (dbus_g_type_specialized_collection_init_append)
4155         (dbus_g_type_specialized_collection_append)
4156         (dbus_g_type_specialized_collection_end_append): Prototype.
4157         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4158         end_append_func.
4159
4160         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4161         (dbus_g_type_specialized_collection_append) 
4162         (dbus_g_type_specialized_collection_end_append): New functions.
4163         (dbus_g_type_map_value_iterate): Take const GValue.
4164         (dbus_g_type_collection_value_iterate): Ditto.
4165
4166         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4167         _dbus_gvalue_utils_test.
4168         
4169         * glib/dbus-gtest.h: Prototype it.
4170
4171         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4172         using uninitialized owner_list.
4173         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4174         public API.
4175         (dbus_g_proxy_end_call_internal): Update to use error set
4176         from dbus_gvalue_demarshal instead of setting it here.
4177         (dbus_g_proxy_begin_call): Move return_if_fail here.
4178
4179         * glib/dbus-gobject.c (write_interface): Update for
4180         dbus_gtype_to_signature returning new string.
4181
4182         * configure.in: Add glib/examples/statemachine.
4183
4184 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4185
4186         * configure.in: Add a configure option, --with-console-auth-dir
4187         
4188         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4189         new setting.  Patch from Kay Sievers.
4190
4191 2005-07-06  Colin Walters  <walters@verbum.org>
4192
4193         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4194         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4195         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4196         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4197         Delete in favor of dbus_g_proxy_begin_call and
4198         dbus_g_proxy_cancel_call.
4199         (DBusGProxyCall, DBusGProxyCallNotify): New.
4200         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4201         data, and destroy function.  This replaces
4202         dbus_g_pending_call_set_notify.
4203         (dbus_g_proxy_cancel_call): Prototype.
4204         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4205
4206         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4207         pending_calls map.
4208         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4209         internal proxy for calls to the bus. Remove
4210         pending_nameowner_calls, now the internal proxy keeps track.
4211         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4212         pending_nameowner_calls.
4213         (got_name_owner_cb): Update prototype, and use
4214         dbus_g_proxy_end_call.
4215         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4216         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4217         favor of using internal proxy.
4218         (dbus_g_proxy_manager_unregister): Update to use
4219         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4220         (dbus_g_proxy_init): Initialize pending calls map.
4221         (dbus_g_proxy_constructor): New.
4222         (dbus_g_proxy_class_init): Add get/set property functions,
4223         constructor, and add NAME, PATH, and INTERFACE properties.
4224         (cancel_pending_call): New function.
4225         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4226         cancel them.
4227         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4228         (GPendingNotifyClosure): New structure.
4229         (d_pending_call_notify, d_pending_call_free): Moved here from
4230         dbus-glib.c.
4231         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4232         ordering.
4233         (manager_begin_bus_call): New internal function for talking to
4234         internal bus proxy.
4235         (dbus_g_proxy_new): Construct object using GObjet properties.
4236         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4237         Create closure of same, and insert call into map of pending calls.
4238         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4239         call.  Look up pending call in current set.  Remove it when we've
4240         completed.
4241         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4242         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4243         and destroy function directly.
4244         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4245         (dbus_g_proxy_call): Invoke with NULL callback.
4246         (dbus_g_proxy_cancel_call): New function, replaces
4247         dbus_g_pending_call_cancel.
4248
4249         * glib/dbus-gparser.c (validate_signature): Fix call to
4250         dbus_set_g_error.
4251
4252         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4253         New quark for attaching metadata to GType.
4254         (info_hash): Delete.
4255         (lookup_object_info): Look up using quark.
4256         (dbus_g_object_type_install_info): Check that a type is classed,
4257         not that it's an object.  Also just install type data using quark
4258         instead of using global hash.
4259
4260         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4261         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4262         (GPendingNotifyClosure): Delete.
4263         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4264         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4265
4266         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4267         client method generation until we can fix it...
4268         
4269         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4270         (load_from_service_thread_func): Ditto.
4271
4272         * tools/dbus-names-model.c (struct NamesModel): Hold
4273         DBusGProxyCall.
4274         (have_names_notify): Update prototype, use
4275         dbus_g_proxy_cancel_call.
4276         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4277
4278         * tools/dbus-monitor.c (filter_func): Update for print_message
4279         API change.
4280
4281         * test/glib/test-dbus-glib.c: Add more tests for async
4282         invocations.  Update many begin_call/end_call pairs to just use
4283         dbus_g_proxy_call.
4284
4285         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4286         allows us to dump print-introspect.c.
4287
4288         * tools/dbus-print-message.h (print_message): Add literal argument
4289         to print_message which is intended to allow printing arguments without
4290         metadata like "string=".
4291
4292         * tools/dbus-print-message.c (print_iter): Add literal argument.
4293         (print_message): Allow printing string messages literally.
4294
4295 2005-07-05  Colin Walters  <walters@verbum.org>
4296
4297         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4298         Remove value refcount leak, original patch from Jorn Baayen
4299         <jorn@openedhand.com>.  Also remove useless extra value in favor
4300         of prepending to value array directly.
4301
4302 2005-07-02  Colin Walters  <walters@verbum.org>
4303
4304         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4305
4306 2005-07-01  Colin Walters  <walters@verbum.org>
4307
4308         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4309         
4310         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4311         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4312         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4313         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4314
4315 2005-06-30  Colin Walters  <walters@verbum.org>
4316
4317         * test/glib/test-dbus-glib.c:
4318         * test/glib/test-service-glib.c:
4319         * test/glib/test-service-glib.xml: Update tests for new error
4320         setting bits, also add async tests (patch from Ross Burton).
4321
4322         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4323         DBUS_GLIB_THREADS_LIBS.
4324
4325         * glib/dbus-gproxy.c (get_name_owner)
4326         (dbus_g_pending_call_end_valist): Ditto.
4327
4328         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4329         domain (GQuark) to DBusGErrorInfo.  
4330         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4331         quark in error_metadata.  Take message interface as default
4332         error message interface.
4333         (gerror_to_dbus_error_message): Pass message interface.
4334         (dbus_set_g_error): Resurrected.
4335         (dbus_g_error_info_free): New function.
4336         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4337         of _peek to actually create the object class if it hasn't been
4338         created yet.
4339         (dbus_g_error_domain_register): New function.
4340
4341         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4342
4343         * glib/dbus-gparser.c (validate_signature): Ditto.
4344
4345         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4346         (dbus_g_error_domain_register): Prototype.
4347
4348         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4349         Update tests.
4350
4351 2005-06-29  Colin Walters  <walters@verbum.org>
4352
4353         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4354         DBUS_TYPE_G_OBJECT_PATH.
4355
4356         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4357         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4358         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4359         (dbus_g_object_path_get_g_type): New function.
4360         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4361         to DBUS_TYPE_G_OBJECT_PATH by default.
4362         (demarshal_proxy): Remove unused name variable.
4363         (demarshal_object_path, marshal_object_path): New functions.
4364         (demarshal_proxy_array, marshal_proxy_array): Delete.
4365         
4366         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4367         DBUS_TYPE_G_OBJECT_PATH to char *.
4368         (dbus_g_type_get_lookup_function): Map builtin
4369         DBUS_TYPE_G_OBJECT_PATH.
4370
4371         * test/glib/test-dbus-glib.c
4372         * test/glib/test-service-glib.c (my_object_objpath): 
4373         Adapt tests to new object path marshalling.
4374
4375 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4376
4377         * configure.in: force check for Python >= 2.4
4378
4379 2005-06-29  Colin Walters  <walters@verbum.org>
4380         
4381         Patch from Ross Burton <ross@openedhand.com>
4382         
4383         * glib/dbus-gobject.c (invoke_object_method): Unset object
4384         value in all cases, not only in async case.
4385
4386 2005-06-29  Colin Walters  <walters@verbum.org>
4387
4388         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4389         name_call for keeping track of any outgoing GetNameOwner call.
4390         Also add for_owner and associated.
4391         (struct _DBusGProxyManager): Add owner_names, which is hash table
4392         that maps a base name to a list of names it owns (that we're
4393         interested in).  Add pending_nameowner_calls which is a list of
4394         all outstanding GetNameOwner; avoids us having to iterate over
4395         every proxy.  Add unassociated_proxies which keeps track of name
4396         proxies with no associated name owner.
4397         (dbus_g_proxy_manager_unref): Destroy owner_names.
4398         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4399         name refcounts.
4400         (find_name_in_info, name_owner_foreach)
4401         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4402         (dbus_g_proxy_manager_monitor_name_owner)
4403         (dbus_g_proxy_manager_unmonitor_name_owner)
4404         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4405         New functions; they manipulate the owner_names mapping.
4406         (got_name_owner_cb): New function.
4407         (get_name_owner): New function, extracted from
4408         dbus_g_proxy_new_for_name_owner.
4409         (dbus_g_proxy_manager_register): For now we need to keep track of
4410         all NameOwnerChanged.  Also if the proxy is for a name, if we
4411         don't already know the name owner, queue a new GetNameOwner
4412         request and add it to our list of unassociated proxies.  Otherwise
4413         inc the refcount.
4414         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4415         cancel any pending GetNameOwner call, etc.
4416         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4417         the owner_names mapping to look up the current names for the
4418         signal source, and dispatch to any proxies for that name.
4419         (dbus_g_proxy_new): Initialize new members.
4420         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4421         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4422         (dbus_g_pending_call_end_valist): New function, extracted from
4423         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4424         but want to use the GLib infrastructure.  Also note how many
4425         arguments in reply were over.
4426         (dbus_g_pending_call_end): New function, just call
4427         dbus_g_pending_call_end_valist.
4428         (dbus_g_proxy_end_call_internal): Just call
4429         dbus_g_pending_call_end_valist.
4430
4431         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4432         of builtin marshaller for STRING_STRING_STRING.
4433
4434         * test/glib/test-dbus-glib.c: 
4435         * test/glib/test-service-glib.c:
4436         * test/glib/test-service-glib.xml:
4437         Extend tests to cover name proxies, destruction of owner proxies,
4438         etc.
4439         
4440         * glib/examples/example-signal-recipient.c
4441         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4442         
4443         * tools/dbus-send.c (main): Print D-BUS error name in addition
4444         to message.
4445
4446 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4447
4448         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4449         cmessage_function_handler): Patch from 
4450         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4451         by using the Py_GILState_Ensure/Release to synchronize with the
4452         python runtime.
4453         
4454 2005-06-28  Ray Strode  <rstrode@redhat.com>
4455
4456         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4457         babysitter helper process on last unref, bug #2813.
4458
4459 2005-06-27  Colin Walters  <walters@verbum.org>
4460
4461         * test/glib/test-dbus-glib.c: 
4462         * test/glib/test-service-glib.c:
4463         * test/glib/test-service-glib.xml:
4464         Test hash table signal emitting.
4465
4466         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4467         types to their fundamental basis types, since this is what
4468         marshallers operate on.  Also add an entry for VOID__BOXED.
4469         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4470
4471 2005-06-26  Havoc Pennington  <hp@redhat.com>
4472
4473         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4474         from Don Park
4475
4476 2005-06-26  Colin Walters  <walters@verbum.org>
4477
4478         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4479         (dbus_g_error_set): New public function from its ashes; used by
4480         both service-side method implementation and GLib bindings
4481         internals.
4482         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4483         (_dbus_glib_test): Add some tests.
4484
4485         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4486
4487         * test/glib/test-service-glib.c (my_object_throw_error): Use
4488         dbus_g_error_set.
4489
4490         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4491         errors thrown by dbus_g_error_set.
4492
4493         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4494
4495         * glib/dbus-gparser.c (validate_signature): Ditto.
4496
4497         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4498         (dbus_g_proxy_end_call_internal): Ditto.
4499
4500         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4501         converts DBUS_ERROR_x to DBUS_GERROR_x.
4502         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4503
4504         * doc/TODO: Remove error TODO.
4505
4506         * doc/dbus-tutorial.xml: Update with documentation about error
4507         handling.
4508
4509         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4510         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4511         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4512
4513 2005-06-22  Colin Walters  <walters@verbum.org>
4514         
4515         Patch from Ross Burton <ross@openedhand.com>
4516
4517         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4518
4519 2005-06-20  Colin Walters  <walters@verbum.org>
4520
4521         * configure.in: Add glib/examples.
4522
4523         * glib/Makefile.am: Add examples/
4524
4525         * glib/examples/.cvsignore
4526         * glib/examples/Makefile.am
4527         * glib/examples/example-client.c
4528         * glib/examples/example-service.c
4529         * glib/examples/example-service.xml
4530         * glib/examples/example-signal-emitter.c
4531         * glib/examples/example-signal-emitter.xml
4532         * glib/examples/example-signal-recipient.c:
4533         New files; GLib binding examples, ported from
4534         python/examples.
4535
4536 2005-06-20  Colin Walters  <walters@verbum.org>
4537
4538         * dbus/dbus-glib.h: 
4539         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4540         dbus_g_proxy_call.
4541
4542         * glib/dbus-binding-tool-glib.c: 
4543         * doc/dbus-tutorial.xml: 
4544         * test/glib/test-dbus-glib.c: Update for rename.
4545         
4546 2005-06-20  Colin Walters  <walters@verbum.org>
4547
4548         Patch suggested by Ross Burton <ross@openedhand.com>
4549
4550         * glib/dbus-gobject.c (export_signals): Free signal name.
4551         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4552         memory leak.  Add a bit of documentation.
4553         (dbus_g_method_return_error): Free context, and note we do
4554         so.
4555
4556 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4557
4558         * dbus/dbus-glib.h:
4559         * glib/dbus-gobject.c:
4560         * glib/dbus-gproxy.c:
4561         * glib/dbus-gvalue.c: Predeclare structs as 
4562         typedef struct _Something Something instead of 
4563         typedef struct Something Something, so we can 
4564         redeclare the prototypes. Other GNOME libraries 
4565         do this already.
4566
4567 2005-06-17  Colin Walters  <walters@verbum.org>
4568
4569         * tools/dbus-names-model.c (have_names_notify): Fix call
4570         to dbus_g_proxy_end_call.
4571         
4572 2005-06-17  Colin Walters  <walters@verbum.org>
4573
4574         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4575         spew warnings if we get malformed remote signals.
4576
4577         * glib/dbus-gobject.c (propsig_iterate): New function.
4578         (lookup_object_info): New function, extracted from
4579         lookup_object_and_method.
4580         (introspect_properties, introspect_signals): Delete; these
4581         are merged into write_interface.
4582         (write_interface): Write out signals and properties here;
4583         dump the org.gtk.object stuff and use the interface given
4584         in the introspection data blob.  Also fix up property XML.
4585         (lookup_values): New function.
4586         (introspect_interfaces): Gather a mapping from interface to a
4587         list of its methods, signals, and properties, then write out
4588         each interface.
4589         (lookup_object_and_method): Use lookup_object_info.
4590         (struct DBusGSignalClosure): Add interface.
4591         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4592         we can just use the constant data.
4593         (dbus_g_signal_closure_finalize): Don't free signal name.
4594         (signal_emitter_marshaller): Use interface from signal closure.
4595         (export_signals): Only export signals mentioned in introspection
4596         blob.
4597         (dbus_g_connection_register_g_object): Warn if we have no
4598         introspection data for an object.
4599         (funcsig_equal): Remove unused variable.
4600         (dbus_g_object_register_marshaller): Take varargs instead of
4601         list.
4602         (dbus_g_object_register_marshaller_array): New function,
4603         extracted from old dbus_g_object_register_marshaller.
4604
4605         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4606         signals and property data.
4607         (write_quoted_string): New function, extracted from generate_glue.
4608         (generate_glue): Write signals and properties to introspection
4609         blob.
4610
4611         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4612         exported_signals and exported_properties.
4613         (dbus_g_object_register_marshaller): Update prototype.
4614         (dbus_g_object_register_marshaller_array): Prototype.
4615         
4616         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4617
4618         * test/glib/test-service-glib.c: Add new test signals and method
4619         to emit them.
4620
4621         * test/glib/test-service-glib.xml: Add some test signals.
4622
4623         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4624         and my-object-marshal.h
4625         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4626         my-object-marshal.c.
4627         (my-object-marshal.c, my-object-marshal.h): Implement.
4628
4629         * test/glib/.cvsignore: Update.
4630
4631         * doc/TODO: Remove two GLib TODO items fixed by this
4632         patch.
4633
4634 2005-06-16  Colin Walters  <walters@verbum.org>
4635
4636         * doc/TODO: Update for GLib bindings.
4637         
4638 2005-06-16  Colin Walters  <walters@verbum.org>
4639
4640         * glib/dbus-binding-tool-glib.c:
4641         * glib/dbus-gobject.c:
4642         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4643         from Ross Burton, for his GLib bindings work.
4644
4645 2005-06-16  Colin Walters  <walters@verbum.org>
4646
4647         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4648         to iterate instead of walking to G_TYPE_INVALID.
4649
4650         Patch based on a patch from Ryan Gammon.
4651
4652 2005-06-16  Colin Walters  <walters@verbum.org>
4653
4654         * bus/bus.c (bus_context_new): Set parser to NULL
4655         after we unref it (Patch from Chris Boscolo, #2174).
4656         
4657 2005-06-16  Colin Walters  <walters@verbum.org>
4658
4659         * python/dbus_bindings.pyx.in: Import size_t,
4660         __int64_t, __uint64_t, and __signed.
4661
4662         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4663         Define cmsg struct, output it.
4664         (_dbus_read_credentials_unix_socket):
4665         Use cmsg struct.
4666         
4667         Patch from Joe Markus Clarke for FreeBSD support.
4668         
4669 2005-06-16  Colin Walters  <walters@verbum.org>
4670
4671         * tools/dbus-send.c (append_array): Use strtok.
4672         (append_dict): New function.
4673         (type_from_name): New function, extracted from main.
4674         (main): Handle sending dicts.
4675
4676         * tools/dbus-print-message.c (print_iter): Print dict
4677         entries.
4678         
4679 2005-06-16  Colin Walters  <walters@verbum.org>
4680
4681         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4682         values as the empty string (#2948).
4683         
4684 2005-06-16  Colin Walters  <walters@verbum.org>
4685
4686         * dbus/Makefile.am:
4687         * mono/doc/Makefile.am:
4688         * test/glib/Makefile.am:
4689
4690         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4691
4692 2005-06-16  Colin Walters  <walters@verbum.org>
4693
4694         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4695         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4696
4697         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4698         Increment pointer after swapping fixed array.  Add assertion
4699         for array length.
4700                 
4701 2005-06-15  Colin Walters  <walters@verbum.org>
4702
4703         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4704         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4705         
4706 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4707
4708         * NEWS: Update to 0.34
4709
4710 2005-06-15  David Zeuthen  <davidz@redhat.com>
4711
4712         * configure.in (LT_CURRENT): Revert back to 1 as the library
4713         hasn't changed and we've certainly not committed to protocol
4714         stability yet.  All this does is to break ABI. See commit note
4715         from hp@redhat.com 2005-05-05 for details.
4716         
4717 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4718
4719         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4720         (_dbus_connection_run_builtin_filters): New method
4721         (dbus_connection_dispatch): Run the builtin filters which in turn
4722         runs the peer filter which handles Ping messages.
4723
4724         * doc/TODO: 
4725          - Ping isn't handled: This patch fixes it
4726          
4727          - Add a test case for the Ping message: added TODO item
4728
4729 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4730
4731         * dbus/dbus-message.c:
4732         (dbus_message_has_path): New method
4733         (dbus_message_has_interface): New method
4734         (dbus_message_has_member): New method
4735
4736         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4737         New method
4738
4739         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4740         the keyring directory is private to the user
4741
4742         * doc/TODO:
4743          - The convenience functions in dbus-bus.h should perhaps have
4744          the signatures that they would have if they were autogenerated
4745          stubs. e.g. the acquire service function. We should also evaluate
4746          which of these functions to include, in light of the fact that
4747          GLib/Qt native stubs will probably also exist.: Punted
4748
4749          - add dbus_message_has_path(), maybe has_member/interface:
4750          fixed in this patch
4751
4752          - in dbus-keyring.c, enforce that the keyring dir is not
4753          world readable/writable: Fixed in this patch
4754
4755 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4756
4757         * dbus/dbus-marshal-validate.h: Added a new validation
4758         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4759         out of memory errors when validating signitures
4760
4761         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4762         in places where we previously used DBUS_VALID and a FALSE return 
4763         value to indicate OOM
4764         
4765         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4766         Use a stack to track the number of elements inside containers.  The 
4767         stack values are then used to validate that dict entries have only two
4768         elements within them.
4769         (validate_body_helper): check the reason for failure when validating
4770         varients
4771         
4772         * dbus/dbus-message.c (load_message): use 
4773         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4774         DBUS_VALID and a FALSE return value to indicate OOM
4775
4776         * doc/TODO: remove "- validate dict entry number of fields" as this
4777         patch fixes it
4778
4779 2005-06-14  David Zeuthen  <davidz@redhat.com>
4780
4781         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4782         watches (if applicable) and add new watches
4783
4784         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4785         (main): Setup SIGIO signal handler if using D_NOTIFY
4786
4787         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4788
4789         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4790         (merge_included): Also merge conf_dirs list
4791         (bus_config_parser_unref): Clear conf_dirs list
4792         (include_dir): Add directory to conf_dirs list
4793         (bus_config_parser_get_conf_dirs): New function
4794
4795         * bus/dir-watch.[ch]: New files
4796
4797         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4798
4799         * configure.in: Add checks for D_NOTIFY on Linux
4800
4801 2005-06-14  Colin Walters  <walters@verbum.org>
4802
4803         * glib/dbus-binding-tool-glib.c:
4804         * glib/dbus-gobject.c:
4805         * glib/dbus-gvalue.c: Fix indentation and brace style.
4806         
4807 2005-06-14  Ross Burton <ross@openedhand.com>.
4808
4809         * glib/dbus-glib.h: Make DBusGMethodInvocation
4810         a private structure.  Rearrange prototypes a bit.
4811         
4812         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4813         documentation for first_arg_type.
4814         
4815         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4816         here, add documentation.  Move dbus_g_method_return
4817         and dbus_g_method_return_error into public API
4818         section.
4819
4820 2005-06-14  Colin Walters  <walters@verbum.org>
4821
4822         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4823         Add missing return statements, noticed by Ross Burton.
4824         
4825 2005-06-13  Ross Burton <ross@openedhand.com>.
4826
4827         * glib/dbus-gobject.c: Handle errors on message
4828         demarshalling by sending error message back.
4829         * glib/dbus-gvalue.c: Initialize return variables.
4830
4831 2005-06-13  Colin Walters  <walters@verbum.org>
4832
4833         * glib/Makefile.am: Fix thinko in last patch.
4834
4835 2005-06-13  Colin Walters  <walters@verbum.org>
4836
4837         * glib/Makefile.am: Move dbus-gtype-specialized.c
4838         and dbus-gtype-specialized.h into a _HEADERS variable,
4839         install them.
4840
4841 2005-06-12  Colin Walters  <walters@verbum.org>
4842
4843         Async signals and various bugfixes and testing by
4844         Ross Burton <ross@openedhand.com>.
4845
4846         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4847         (dbus_gvalue_genmarshal_name_from_type)
4848         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4849         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4850         (dbus_g_value_types_init, dbus_gtype_from_signature)
4851         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4852         (dbus_gtypes_from_arg_signature): New function prototypes.
4853         (dbus_gvalue_demarshal): Take context and error arguments.
4854         (dbus_gvalue_demarshal_variant): New function.
4855         (dbus_gvalue_demarshal_message): New function.
4856         (dbus_gvalue_store): Delete.
4857
4858         * glib/dbus-gvalue.c:
4859
4860         File has been almost entirely rewritten; now we special-case
4861         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4862         hash tables correctly, etc.  Full support for recursive values
4863         is not yet complete.
4864
4865         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4866         argument of signal to G_TYPE_POINTER since we now pass a
4867         structure.
4868         (lookup_g_marshaller): Delete in favor of
4869         _dbus_gobject_lookup_marshaller.
4870         (marshal_dbus_message_to_g_marshaller): Use
4871         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4872         to handle remote signal callbacks.
4873         (dbus_g_proxy_new_from_proxy): New function; creates a new
4874         DBusGProxy by copying an existing one.
4875         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4876         (dbus_g_proxy_get_path): New functions.
4877         (dbus_g_proxy_marshal_args_to_message): New function;
4878         factored out of existing code.
4879         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4880         from a varargs array.
4881         (dbus_g_proxy_begin_call_internal): New function.
4882         (dbus_g_proxy_end_call_internal): New function.
4883         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4884         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4885         after collecting args into value array.
4886         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4887         invoke dbus_g_proxy_end_call_internal.
4888         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4889         end_call_internal.
4890         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4891         types.
4892         (array_free_all): New function.
4893         (dbus_g_proxy_add_signal): Take GTypes.
4894
4895         * glib/dbus-gobject.h:
4896         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4897         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4898         Prototype.
4899
4900         * glib/dbus-gobject.c: Add a global marshal_table hash which
4901         stores mappings from type signatures to marshallers.  Change lots
4902         of invocations of dbus_gtype_to_dbus_type to
4903         dbus_gtype_to_signature.
4904         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4905         (introspect_signals): Fix test for query.return_type.
4906         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4907         (invoke_object_method): Many changes.  Handle asynchronous
4908         invocations.  Convert arguments with
4909         dbus_gvalue_demarshal_message.  Handle errors.  Use
4910         DBusSignatureIter instead of strlen on args. Handle all arguments
4911         generically.  Special-case variants.
4912         (dbus_g_method_return, dbus_g_method_return_error): New function.
4913         (DBusGSignalClosure): New structure, closes over signal
4914         information.
4915         (dbus_g_signal_closure_new): New function.
4916         (dbus_g_signal_closure_finalize): New function.
4917         (signal_emitter_marshaller): New function; is special marshaller
4918         which emits signals on bus.
4919         (export_signals): New function; introspects object signals and
4920         connects to them.
4921         (dbus_g_object_type_install_info): Take GType instead of
4922         GObjectClass.
4923         (dbus_g_connection_register_g_object): Invoke export_signals.
4924         (dbus_g_connection_lookup_g_object): New function.
4925         (DBusGFuncSignature) New structure; used for mapping type
4926         signatures to marshallers.
4927         (funcsig_hash): New function; hashes DBusGFuncSignature.
4928         (funcsig_equal): New function; compares DBusGFuncSignature.
4929         (_dbus_gobject_lookup_marshaller): New function.
4930         (dbus_g_object_register_marshaller): New function; used to
4931         register a marshaller at runtime for a particular signature.
4932
4933         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
4934
4935         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
4936         which notes a server method implementation should be
4937         asynchronous.
4938
4939         * glib/dbus-binding-tool-glib.c
4940         (dbus_binding_tool_output_glib_server): Call
4941         dbus_g_value_types_init.
4942         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
4943         variants specially.
4944         (dbus_g_type_get_lookup_function): Turn GType into an invocation
4945         of a lookup function.
4946         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
4947         (write_untyped_out_args): New method; write output arguments.
4948         (write_formal_declarations_for_direction): Function for
4949         writing prototypes.
4950         (write_formal_parameters_for_direction): Function for
4951         writing implementations.
4952         (write_typed_args_for_direction): Function for writing
4953         arguments prefixed with GTypes.
4954         (write_async_method_client): Write out async version
4955         of method.
4956
4957         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
4958         (dbus_g_type_get_marshal_name): Move mapping from GType
4959         to marshal name into here.
4960         (dbus_g_type_get_c_name): Move into here.
4961         (compute_marshaller): Convert signature to type with
4962         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
4963         (compute_marshaller_name): Ditto.
4964         (compute_marshaller): Handle async signal annotations.
4965         (gather_marshallers): Return if we don't have a known
4966         prefix.
4967         (generate_glue): Collect introspection blob here, and
4968         write all of the blob at the end.  This allows an object
4969         with multiple interfaces to work.
4970         Mark async methods in introspection blob.
4971
4972         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
4973         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
4974         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
4975
4976         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
4977         avoids people accidentally using DBUS_TYPE_* which should
4978         not be necessary anymore.
4979         Do include dbus-gtype-specialized.h, which are utilities
4980         for GLib container types.
4981         Add various #defines for types such as
4982         DBUS_TYPE_G_BOOLEAN_ARRAY.
4983         (DBusGValueIterator, DBusGValue): Define, not fully used
4984         yet.
4985         (dbus_g_value_get_g_type): Type for recursive value.
4986         (dbus_g_value_open, dbus_g_value_iterator_get_value)
4987         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
4988         (dbus_g_value_free): Prototypes.
4989         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
4990         (dbus_g_proxy_set_interface): Prototype.
4991         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
4992         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
4993         types.
4994         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
4995         Accessors.
4996         (DBusGAsyncData, DBusGMethodInvocation): Structures for
4997         doing async invocations.
4998         (dbus_g_method_return, dbus_g_method_return_error):
4999         Prototypes.
5000         * doc/dbus-tutorial.xml: Update GLib section.
5001         
5002         * tools/dbus-viewer.c (load_child_nodes): Update
5003         for new invocation type of dbus_g_proxy_end_call.
5004         (load_from_service_thread_func): Ditto.
5005
5006         * tools/print-introspect.c (main): Ditto.
5007
5008         * tools/dbus-names-model.c (have_names_notify)
5009         (names_model_reload, names_model_set_connection)
5010         Use GTypes.
5011
5012         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5013         needed since Python bindings use GLib bindings.
5014
5015         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5016         Add --prefix argument.
5017
5018         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5019         unneeded --ignore-unsupported arg.
5020         
5021         * test/glib/test-service-glib.c: 
5022         * test/glib/test-service-glib.xml:
5023         * test/glib/test-dbus-glib.c: Add many more tests.
5024
5025 2005-06-06  David Zeuthen  <davidz@redhat.com>
5026
5027         * doc/TODO: Add item about need to remove deprecated functions.
5028
5029         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5030
5031         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5032         to repair the ABI which was broken with the last commit.
5033
5034 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5035
5036         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5037         (dbus_connection_disconnect): renamed to dbus_connection_close 
5038         for API symmetry with dbus_connection_open
5039         (_dbus_connection_open_internal): 
5040         s/dbus_connection_disconnect/dbus_connection_close
5041
5042         * dbus/dbus-bus.c (dbus_bus_get):
5043         s/dbus_connection_disconnect/dbus_connection_close
5044
5045         * bus/connection.c (bus_connections_unref, 
5046         bus_connections_setup_connection, bus_connections_expire_incomplete):
5047         s/dbus_connection_disconnect/dbus_connection_close
5048
5049         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5050         kill_client_connection_unchecked, check_hello_connection):
5051         s/dbus_connection_disconnect/dbus_connection_close
5052
5053         * bus/bus.c (new_connection_callback):
5054         s/dbus_connection_disconnect/dbus_connection_close
5055
5056         * tools/dbus-send.c (main):
5057         s/dbus_connection_disconnect/dbus_connection_close
5058
5059         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5060         s/dbus_connection_disconnect/dbus_connection_close
5061         
5062         * test/test-service.c (path_message_func, filter_func):
5063         s/dbus_connection_disconnect/dbus_connection_close
5064         
5065         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5066         
5067 2005-05-25  Colin Walters  <walters@verbum.org>
5068
5069         * dbus/dbus-protocol.h: Move various bus service #defines such
5070           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5071           dbus/dbus-shared.h.
5072         * dbus/dbus-shared.h: Various defines moved here.
5073         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5074
5075 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5076
5077         * python/__init__.py: Python bindings deserve a minor version
5078         update.  Upped to (0, 40, 2)
5079
5080 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5081
5082         * python/decorators.py: add explicitly_pass_message decorator
5083         for passing in the dbus message as keyword for edge case signal
5084         handling
5085
5086         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5087         to conform with what dbus expects for match rules
5088         (SignalMatchRule.execute): add the dbus message as a keyword
5089         if the signal handler has requested it
5090
5091         * python/examples/example/signal-recipient.py: added some more
5092         examples on how to hook up to signals
5093
5094 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5095
5096         * python/decorators.py: import dbus_bindings
5097
5098         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5099         SignalMatchNode): new classes that implement wildcard signal
5100         callback matching using a tree lookup. Heavily modified from a
5101         patch sent by Celso Pinto (fd.o bug #3241)
5102
5103         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5104         use new match classes to handle signals.
5105
5106 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5107         
5108         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5109
5110 2005-05-18  Havoc Pennington  <hp@redhat.com>
5111
5112         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5113         gettext. Not really worth requiring yet perhaps, but any
5114         production quality 1.0 would require it so we should go ahead and
5115         get things set up. We do have a couple token calls to
5116         bindtextdomain in the code already.
5117
5118 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5119
5120         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5121         when using recursive g_main_loops
5122
5123         * python/_dbus.py (class Bus): add the ProxyObjectClass
5124         alias for ProxyObject to make it easier for the Twisted 
5125         networking framework to integrate dbus.
5126
5127         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5128         alias for ProxyMethod to make it easier for the Twisted 
5129         networking framework to integrate dbus. 
5130
5131 2005-05-11  Ross Burton  <ross@openedhand.com>
5132
5133         * glib/dbus-glib-tool.c: Add --prefix argument.
5134         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5135         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5136         Add prefix argument.
5137         (generate_glue): Pass prefix argument down.
5138         (dbus_binding_tool_output_glib_server): Pass prefix to
5139         glib-genmarshal.
5140         
5141 2005-05-11  Colin Walters  <walters@verbum.org>
5142
5143         * tools/dbus-send.c (append_array): New function.
5144         (append_arg): Broken out from main.
5145         (main): Add cheesy hack to send arrays and variants.
5146         (usage): Update.
5147         * tools/dbus-print-message.c (print_iter): Broken out
5148         from main.
5149
5150 2005-05-11  Colin Walters  <walters@verbum.org>
5151
5152         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5153         New function, returns signature string for signature iter.
5154         * dbus/dbus-signature.h: Prototype it.
5155         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5156         New function, returns signature string for message iter.
5157         (dbus_message_iter_get_array_len): New function, returns
5158         length of array.
5159         (dbus_message_iter_get_fixed_array): Fix assertion; this
5160         function should be used when the iter is pointing to the
5161         contents of an array
5162         * dbus/dbus-message.h: Prototypes.
5163         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5164         New function; returns length of an array.
5165         * dbus/dbus-marshal-recursive.h: Prototype it.
5166         
5167 2005-05-11  Colin Walters  <walters@verbum.org>
5168
5169         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5170         compilation error.
5171         
5172 2005-05-08  Havoc Pennington  <hp@redhat.com>
5173
5174         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5175         daemon's pid, not the parent's pid, to the file descriptor.
5176         Reported by Taj Morton.
5177
5178 2005-05-05  Havoc Pennington  <hp@redhat.com>
5179
5180         * configure.in (LT_*): add notes on how the libtool versioning
5181         works to save thinking. Increment soname to indicate protocol
5182         breakage (though really the library interface hasn't changed I
5183         guess)
5184
5185         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5186         verify the GUID received from server matches what we were
5187         expecting, if we had an expectation
5188
5189         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5190         (_dbus_auth_get_guid_from_server): new function
5191         (send_begin): parse the OK args
5192
5193         * doc/dbus-specification.xml: add GUID to the auth protocol
5194
5195 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5196
5197         * Fix my name in previous changelog ;)
5198
5199         * python/proxies.py (ProxyObject.__getattr__): add further patch
5200         from Anthony Baxter to throw an AttributeError when python 
5201         __special__ functions are called instead of marshling them over 
5202         the bus (Bug#1685 comment 3).
5203
5204 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5205
5206         * python/Makefile.am: changed to use pyexecdir for the binding
5207         shared libraries (Bug#2494)
5208
5209         * python/exceptions.py: bring exceptions over from the bindings
5210         so they can be used in applications (Bug#2036)
5211         Make all exceptions derive from DBusException
5212
5213         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5214         of classes so that print obj doesn't throw an exception (Bug #1685)
5215
5216 2005-05-03  Ross Burton  <ross@openedhand.com>
5217
5218         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5219         Return if we get an error during registration.  Set up a
5220         weak reference on object to unregister if object is destroyed.
5221         (unregister_gobject): New function.
5222         
5223 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5224
5225         * python/dbus_bindings.pyx.in: 
5226         - added new type classes for hinting to the marashaler what type 
5227         to send over the wire
5228         - added int16 and uint16 marshalers
5229         - Fixed a bug in the type constants that caused int32 to go out
5230         as uint16 over the wire
5231         * python/dbus.py: split up into different files and renamed _dbus.py
5232         * python/__init__.py, python/_util.py, python/decorators.py, 
5233         python/exceptions.py, python/proxies.py, python/services.py,
5234         python/types.py: new files split off from dbus.py
5235         * python/Makefile.am: Add new files, remove dbus.py and 
5236         install all python files to <python module dir>/dbus
5237         * python/examples/*: Added #!/usr/bin/env python to the top of
5238         every example.  Patch provided by Tatavarty Kalyan
5239
5240 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5241
5242         * NEWS: Update to 0.33
5243
5244 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5245
5246         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5247         method for doing async calls
5248         (_pending_call_notification): New C function for handling pendning call
5249         callbacks
5250         (set_notify): New method for setting pending call notification
5251         
5252         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5253         Async capabilities added to remote method calls
5254         (Sender): class removed
5255         (RemoteService): class removed
5256         (ObjectTree): class removed for now
5257         (RemoteObject): Renamed to ProxyObject
5258         (RemoteMethod): Renamed to ProxyMethod
5259         (method): Decorator added for decorating python methods as dbus methods
5260         (signal): Decorator added for decorating python methods as signal emitters
5261         (ObjectType): Metaclass added for generating introspection data and the
5262         method callback vtable
5263         (Interface): Wrapper class added to wrap objects in a dbus interface
5264         (Object): Uses ObjectType as its metaclass and exports Introspect
5265         of the org.freedesktop.DBus.Introspectable interface
5266         (ValidationException, UnknownMethodException): new exceptions
5267
5268         * python/examples/*: Modified to fit with the new bindings
5269
5270 2005-04-23  Havoc Pennington  <hp@redhat.com>
5271
5272         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5273         reported by Tony Houghton
5274
5275         * test/test-service.c (main): test
5276         dbus_connection_get_object_path_data()
5277
5278         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5279         the exact_match
5280         (_dbus_object_tree_get_user_data_unlocked): new function used by
5281         dbus_connection_get_object_path_data()
5282         (do_register): add assertion test for get_user_data_unlocked
5283         (object_tree_test_iteration): more tests
5284
5285         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5286         new function from Dan Reed to let you get the user data from 
5287         dbus_connection_register_object_path()
5288
5289 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5290
5291         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5292         in numerous places that did not account for the NULL terminator
5293         (signature_from_seed): changed the manual string copy loop to 
5294         just use strcpy instead
5295         make check should now pass
5296
5297 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5298
5299         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5300         so that it allows messages that are not signals to pass in 
5301         NULL as the interface.
5302
5303 2005-04-18  David Zeuthen  <davidz@redhat.com>
5304
5305         * glib/dbus-gmain.c (io_handler_destroy_source): 
5306         (timeout_handler_destroy_source, connection_setup_free): 
5307         Also unref the source to avoid memory leaks.
5308
5309 2005-04-13  David Zeuthen  <davidz@redhat.com>
5310
5311         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5312         more reasonable, yet still totally arbitrary, value :-). 
5313
5314 2005-04-13  David Zeuthen  <davidz@redhat.com>
5315
5316         * doc/TODO: Added an "important for 1.0" item about selinux
5317         allow/deny messages
5318
5319 2005-04-13  David Zeuthen  <davidz@redhat.com>
5320
5321         * bus/selinux.c: Add c-file-style to top of file
5322         (log_audit_callback): Don't free the data here anymore
5323         (bus_selinux_check): Don't take spid and tpid since appending
5324         that to auxdata may OOM.
5325         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5326         to the caller if we are OOM by taking an error object.
5327         (bus_selinux_allows_send): -do-
5328
5329         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5330         and bus_selinux_allows_send
5331
5332         * bus/bus.c (bus_context_check_security_policy): Pass error and
5333         pass on OOM thrown by bus_selinux_allows_send()
5334
5335         * bus/services.c (bus_registry_acquire_service): Pass error and
5336         pass on OOM thrown by bus_selinux_allows_acquire_service()
5337
5338 2005-04-13  Havoc Pennington  <hp@redhat.com>
5339
5340         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5341         message at a time to avoid monopolizing the main loop, bug 
5342         #2953 from Benjamin Otte
5343
5344 2005-04-09  Havoc Pennington  <hp@redhat.com>
5345
5346         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5347         possible overlap, fix from Daniel Reed
5348         (fixup_alignment): fix signedness warnings
5349         (_dbus_string_append_unichar): ditto
5350
5351 2005-04-09  Havoc Pennington  <hp@redhat.com>
5352
5353         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5354
5355         * glib/dbus-glib-tool.c (main): fix warning
5356
5357         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5358
5359         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5360         add a new function that can be used in simple applications that
5361         don't have a main loop and are willing to block
5362
5363 2005-04-05  David Zeuthen  <davidz@redhat.com>
5364
5365         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5366
5367         * glib/dbus-gmain.c:
5368         (io_handler_destroy_source): Remove from list of IO handlers
5369         of the ConnectionSetup object
5370         (timeout_handler_destroy_source): -do- for timeout handlers
5371         (io_handler_source_finalized): Don't remove from list since
5372         we now do that in io_handler_destroy_source(). Renamed from
5373         io_handler_source_destroyed
5374         (timeout_handler_source_destroyed): -do- for timeout handlers
5375         (connection_setup_free): It is now safe to iterate over all
5376         IO and timeout handlers as the _destroy_source removes them
5377         from the list synchronously
5378
5379 2005-03-30  Havoc Pennington  <hp@redhat.com>
5380
5381         * configure.in: change check to gtk 2.4
5382
5383         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5384         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5385         to 2.4
5386
5387 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5388
5389         * News: Update 0.32
5390
5391         * HACKING: Fixed realease instructions.  configure.in should be updated to
5392           the next release by the person who made the last release.
5393
5394 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5395
5396         * python/lvalue_cast_post_process.py - removed.  Patch has been
5397           submitted to Pyrex maintainers that fixes gcc4.0 errors
5398
5399         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5400
5401 2005-03-24  Daniel Reed  <n@ml.org>
5402
5403         * tools/Makefile.am: Make print-introspect and
5404         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5405
5406 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5407
5408         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5409
5410         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5411           had in Red Hat packages for a while but for some reason never 
5412           got merged upstream
5413           (_dbus_is_a_number): New checks if a string
5414           can be converted to a number and does the conversion if it can
5415           (_dbus_user_database_lookup): Add check to see if the given username
5416           is a udi.  This allows udi's to be used instead of usernames in the
5417           config file.
5418           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5419           is a gdi.  This allows gdi's to be used instead of groupnames in the
5420           config file.
5421
5422 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5423
5424         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5425           code so that it compiles with gcc4.0
5426
5427         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5428           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5429           results back to dbus_binding.c
5430
5431 2005-03-20  Colin Walters  <walters@verbum.org>
5432
5433         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5434
5435         * configure.in: Require GTK+ 2.6.
5436         
5437 2005-03-20  Colin Walters  <walters@verbum.org>
5438
5439         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5440
5441 2005-03-17  Tom Parker  <palfrey@tevp.net>
5442
5443         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5444         print DBUS_UID_UNSET; instead print passed username.  Also
5445         be sure to actually use gid looked up in cache.
5446         
5447         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5448         for DBUS_GID_UNSET and groupname.
5449
5450 2005-03-17  Colin Walters  <walters@verbum.org>
5451
5452         * bus/print-introspect.c: Move to tools/.
5453         * bus/run-with-tmp-session-bus.sh: Ditto.
5454         
5455         * glib/Makefile.am (dbus-glib-bindings.h): Move
5456         generation to tools/Makefile.am.
5457
5458         * test/glib/run-test.sh: Update to handle move
5459         of run-with-tmp-session-bus.sh.
5460
5461         * test/glib/test-service-glib.c: Update to handle
5462         move of dbus-glib-bindings.h.
5463
5464         * tools/print-introspect.c: Moved here
5465         from bus/, and ported to GLib bindings.
5466
5467         * tools/run-with-tmp-session-bus.sh: Moved here
5468         from bus/.
5469
5470         * tools/Makefile.am: Generate dbus-glib-bindings.h
5471         and dbus-bus-introspect.xml here.
5472
5473         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5474         Update.
5475
5476 2005-03-17  Colin Walters  <walters@verbum.org>
5477
5478         * bus/driver.c (write_args_for_direction): Use
5479         _dbus_string_get_const_data to retrieve string;
5480         _dbus_string_get_const_data_len doesn't actually return
5481         a NULL-terminated substring.
5482
5483         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5484         (main): Change to use org_freedesktop_DBus_request_name
5485         instead of using g_proxy_begin_call/end_call.
5486
5487 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5488
5489         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5490         generating the finalizer.  Fixes from Ben Maurer.
5491
5492 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5493
5494         * mono/BusDriver.cs: Update method names: ListServices
5495         becomes ListNames; GetOwner becomes GetNameOwner.
5496
5497         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5498         onto the eval stack when removing the delegate.
5499
5500 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5501
5502         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5503         LT_CURRENT.  Set it to the autoconf variable.
5504                                                                                 
5505         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5506         classes that disconnects the signal handler delegate from the
5507         service object.  Fixes a big leak of proxy objects on the
5508         client side of things.  Patch from Ben Maurer
5509         <bmaurer@ximian.com>
5510
5511 2005-03-12  Colin Walters  <walters@verbum.org>
5512
5513         * bus/driver.c (write_args_for_direction): New function,
5514         parses a type signature into arguments and outputs to
5515         XML.
5516         (bus_driver_handle_introspect): Use it instead of
5517         hardcoding XML for certain signatures.
5518         
5519         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5520         dependency on dbus-daemon.
5521
5522         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5523         argument, pass it to dbus_binding_tool_output_glib_client.
5524
5525         * glib/dbus-binding-tool-glib.c
5526         (generate_client_glue): Protect against multiple inclusion.
5527         (dbus_binding_tool_output_glib_client): Add
5528         G_BEGIN_DECLS/G_END_DECLS.
5529
5530         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5531         Change to just take iface prefix directly.
5532         (write_formal_parameters): Clarify error message.
5533         (check_supported_parameters): New function; checks to see type
5534         signatures of method parameters are supported.
5535         (generate_client_glue): Handle ignore_unsupported flag.
5536         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5537         parameter.
5538
5539         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5540         --ignore-unsupported by default until glib bindings
5541         support arrays.
5542
5543 2005-03-11  Colin Walters  <walters@verbum.org>
5544
5545         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5546         install it.
5547
5548         * bus/print-introspect.c: New file; prints introspection
5549         data for a given name and object path.
5550
5551         * bus/run-with-tmp-session-bus.sh: New file, refactored
5552         from test/glib/run-test.sh.  Creates a temporary session
5553         bus and runs another program.
5554
5555         * test/glib/run-test.sh: Refactor to invoke
5556         run-with-tmp-session-bus.sh.
5557
5558         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5559         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5560         macros instead of hardcoding.
5561
5562         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5563
5564 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5565
5566         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5567         this unref; it doesn't match up evenly in some codepaths.
5568         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5569         this evenly matches with the ref near the top of this function.
5570
5571 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5572
5573         * dbus/dbus-object-tree.c
5574         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5575         and we try to unregister a path that's not registered, still go
5576         through the process of unlocking and don't just return.
5577
5578 2005-03-09  Colin Walters  <walters@verbum.org>
5579
5580         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5581         to this are generated for client-side wrappers.  Invokes a
5582         D-BUS method and returns reply values.  
5583
5584         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5585         function; writes signature string for argument direction.
5586         (write_args_for_direction): Change to pass input values directly
5587         instead of via address, and fix indentation.
5588         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5589         make generated wrappers inlineable.
5590
5591         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5592         note about using dbus_type_is_fixed.
5593
5594         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5595         dbus/dbus-signature.c as dbus_type_is_fixed.
5596
5597         All callers updated.
5598
5599         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5600         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5601
5602         * dbus/dbus-signature.h: Prototype.
5603
5604         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5605         error printf code.
5606
5607         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5608         appropriate instead of just freeing it.
5609         (main): Free returned strings using g_free.
5610
5611         * test/glib/Makefile.am (test-service-glib-glue.h)
5612         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5613
5614         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5615         simply maps a simple D-BUS type to GType.
5616         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5617         GType.
5618         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5619         initialize the value with it.
5620         (dbus_gvalue_binding_type_from_type): Unused, delete.
5621         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5622         various types instead of unmarshalling to value data directly.
5623         Remove can_convert boolean.
5624         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5625         returning directly instead of using can_convert boolean.
5626         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5627         Stores a GValue in a pointer to a value of its corresponding C
5628         type.
5629
5630         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5631         add dbus_gvalue_store.
5632
5633 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5634
5635         Fix a bunch of lifecycle and memory management problems
5636         in the mono bindings.
5637
5638         * mono/Arguments.cs (Arguments): Implement IDisposable
5639
5640         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5641         strictly a static class.
5642
5643         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5644         delegates into this file.
5645         (Connection): Implement IDisposable.
5646         (Dispose): Disconnect the connection and set the raw connection
5647         pointer to IntPtr.Zero.
5648         (~Connection): Call Dispose().
5649         (RegisterObjectPath): Added.  Manages the registration of object
5650         paths so we can cleanly disconnect them at dispose/finalize time.
5651         (UnregisterObjectPath): Ditto.
5652         (set_RawConnection): Unregister all of the object paths when
5653         changing the underlying DBusConnection.  Add them back onto the
5654         new connection, if any.
5655
5656         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5657         more unmanaged resources anymore, so it's not necessary.  Move all
5658         the DBusObjectPathVTable stuff out of here.
5659         (Handler): Save references to our delegates so that they don't get
5660         finalized.  Call Connection.RegisterObjectPath() instead of
5661         dbus_connection_register_object_path() directly.
5662         (Message_Called): Dispose the message after we're finished with
5663         it.
5664
5665         * mono/Message.cs (Message): Implement IDisposable.
5666         (Dispose): Dispose the Arguments, and set the RawMessage to
5667         IntPtr.Zero.
5668         (SendWithReplyAndBlock): We own the ref to the reply that comes
5669         back from dbus_connection_send_with_reply_and_block() so add a
5670         comment about that and unref it after we've constructed a managed
5671         MethodReturn class around it.  Fixes a big, big leak.
5672
5673         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5674         method.
5675         (BuildSignalHandler): After we've sent the Signal message, dispose
5676         of it.
5677         (BuildMethod): Dispose of the method call and reply messages after
5678         we've sent the message and extracted the data we want from the
5679         reply.
5680
5681         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5682         anymore.
5683         (Service_FilterCalled): Dispose of the message after we're
5684         finished with it.
5685
5686 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5687
5688         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5689         After we attach our pending call to the connection, unref
5690         it.  Fixes a leak.
5691  
5692         * mono/Connection.cs (set_RawConnection): Disconnect our
5693         filter and match callbacks from the old connection and
5694         reconnect them to the new connection, if any.
5695
5696         * mono/DBusType/Array.cs: "Code" is a static member, so
5697         don't use "this" to refer to it.  Fix for stricter checking
5698         in Mono 1.1.4.
5699  
5700         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5701         object path that we pass into unmanaged code.
5702  
5703         * mono/DBusType/String.cs (Append): Don't leak the string
5704         that we pass into unmanged code.
5705
5706 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5707         * NEWS: Update for 0.31
5708
5709         * configure.in: Release 0.31
5710         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5711
5712         * qt/Makefile.am: fixed build
5713
5714         * dbus/Makefile.am: soname bump for libdbus
5715
5716         * glib/Makefile.am: soname bump for libdbus-glib
5717
5718 2005-03-05  Havoc Pennington  <hp@redhat.com>
5719
5720         * dbus/dbus-sysdeps.c:
5721         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5722         value
5723         (_dbus_generate_random_bytes_buffer): fix return value
5724
5725         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5726         checks actually work, from Tom Parker <fdo@tevp.net>
5727
5728 2005-03-01  Colin Walters  <walters@verbum.org>
5729
5730         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5731         functions copied from dbus-glib-tool.c.
5732         (main): Convert lots of error code to use them.
5733         Also add some testing for introspection bits.
5734
5735 2005-03-01  Colin Walters  <walters@verbum.org>
5736         
5737         * doc/TODO: Remove introspection signature TODO.
5738
5739 2005-02-27  Colin Walters  <walters@verbum.org>
5740
5741         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5742         Change return value to const char * instead of int so we can do
5743         full signatures.
5744         (struct PropertyInfo, struct ArgInfo): Store char *.
5745         (property_info_new, arg_info_new): Update parameters, strdup.
5746         (property_info_unref, arg_info_unref): Free.
5747
5748         * glib/dbus-gidl.h: Update prototypes.
5749
5750         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5751         (validate_signature): New function, just validates signature and
5752         sets GError.
5753         (parse_property, parse_arg): Invoke validate_signature.  Store
5754         signature instead of just type code.
5755
5756         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5757         function to return a primary type for a signature, dropping
5758         information about types in container types.
5759         (dbus_gvalue_genmarshal_name_from_type)
5760         (dbus_gvalue_binding_type_from_type)
5761         (dbus_gvalue_ctype_from_type): Update to take full signature
5762          instead of type code.
5763         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5764
5765         * glib/dbus-gvalue.h: Update prototypes for above.
5766
5767         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5768         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5769         (introspect_properties, introspect_signals, write_interface):
5770         Update to handle signatures, and remove usage of
5771         _dbus_gutils_type_to_string.
5772         (handle_introspect): Print out type codes instead of e.g. "string"
5773         in hardcoded introspection XML; also use x_AS_STRING constants
5774         instead of hardcoding in string.
5775
5776         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5777         to string.  Remove usage of _dbus_gutils_type_to_string.
5778
5779         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5780
5781         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5782         deletion.
5783         
5784         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5785         (compute_marshaller_name, generate_glue): Handle signature change
5786         to string.
5787         (write_formal_parameters, write_args_for_direction): Ditto, and
5788         remove FIXME.
5789
5790         * tools/dbus-tree-view.c (type_to_string): Delete.
5791         (info_set_func_text): Update to print full signatures.
5792
5793         * test/glib/test-service-glib.xml: Change types to new
5794         introspection format.
5795
5796 2005-02-26  Havoc Pennington  <hp@redhat.com>
5797
5798         * doc/TODO: remove the "guid" item
5799
5800         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5801         (with_bus_thread_func): use open_private
5802
5803         * dbus/dbus-connection.c (dbus_connection_open_private): new
5804         function that works like the old dbus_connection_open()
5805         (dbus_connection_open): now returns an existing connection if
5806         possible
5807
5808         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5809         through the GUID to the transport
5810
5811         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5812         GUID in hex-encoded form.
5813
5814         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5815         pass GUID argument in to the transport
5816
5817         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5818         guid argument
5819
5820         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5821
5822         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5823
5824 2005-02-25  Havoc Pennington  <hp@redhat.com>
5825
5826         * doc/dbus-specification.xml: document the GUID thing
5827
5828         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5829         globally unique ID for the server, and put a "guid=hexencoded"
5830         field in the address
5831
5832         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5833
5834         * dbus/dbus-message.c: ditto
5835
5836         * dbus/dbus-dataslot.c: ditto
5837
5838         * dbus/dbus-list.c: ditto
5839
5840         * dbus/dbus-internals.h: wait, just include
5841         dbus-threads-internal.h here
5842         
5843         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5844         use in main library
5845
5846         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5847
5848 2005-02-24  Colin Walters  <walters@verbum.org>
5849
5850         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5851
5852 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5853
5854         * glib/Makefile.am: added dbus-gobject.h to sources list
5855         so distcheck doesn't fail
5856         
5857 2005-02-24  Havoc Pennington  <hp@redhat.com>
5858
5859         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5860         you must disconnect before unref, since locking and other things
5861         are screwed up otherwise. Fix assorted other locking stuff.
5862
5863         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5864         fix compilation
5865
5866         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5867         into a private header and don't export from the library
5868
5869         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5870
5871 2005-02-24  Colin Walters  <walters@verbum.org>
5872         
5873         * dbus/dbus-signature.c: New file; implements various functions
5874         related to type signatures.  Includes an interator for parsing,
5875         validation functions.
5876         (dbus_type_is_basic): Moved here from
5877         dbus-marshal-basic.c:_dbus_type_is_basic.
5878         (dbus_type_is_container): Moved here from
5879         dbus-marshal-basic.c:_dbus_type_is_container.
5880
5881         All callers of _dbus_type_is_container and _dbus_type_is_basic
5882         updated, and include dbus-signature.h.
5883
5884         * dbus/dbus-signature.h: New file; prototypes for the above.
5885
5886         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5887         dbus-signature.h.
5888
5889         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5890         function factored out of _dbus_first_type_in_signature.
5891         (_dbus_first_type_in_signature_c_str): New function; returns first
5892         type code for a type signature character.
5893
5894         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5895         handle function moves.
5896
5897         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5898
5899         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5900         function; skips to next complete type in type signature.
5901         Implemented using previous skip_one_complete_type.  Now
5902         skip_one_complete_type just delegates to
5903         _dbus_type_signature_next.
5904
5905         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5906         to dbus-signature.c
5907         (_dbus_type_is_container): Ditto.
5908
5909         * doc/dbus-specification.xml: Update introspection sample to
5910         use real type signatures.
5911
5912         * dbus/dbus-test.h: Prototype signature test.
5913
5914         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5915         signature tests.
5916
5917         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5918
5919 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5920
5921         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5922         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5923
5924 2005-02-21  Colin Walters  <walters@verbum.org>
5925
5926         * dbus/dbus-test-main.c (main): Take optional specific test
5927         argument.
5928
5929         * dbus/dbus-test.c (run_test): New function, runs a test function
5930         with no data directory.
5931         (run_data_test): Like above, but takes data directory.
5932         (dbus_internal_do_not_use_run_tests): Take
5933         specific test argument.  Replace lots of cut n' paste code
5934         with run_test and run_data_test.
5935
5936         * dbus/dbus-test.h: Update prototype for
5937         dbus_internal_do_not_use_run_tests.
5938
5939 2005-02-20  Havoc Pennington  <hp@redhat.com>
5940
5941         Fix bugs reported by Daniel P. Berrange
5942         
5943         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
5944         (protected_change_watch): new function
5945         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
5946         (_dbus_server_add_watch): change to work like the
5947         dbus-connection.c equivalents; like those, probably kind of
5948         busted, but should at least mostly work for now
5949         (dbus_server_disconnect): drop the lock if we were already
5950         disconnected, patch from Daniel P. Berrange
5951
5952         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
5953         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
5954         same stuff
5955
5956         * doc/TODO: todo about unscrewing this mess
5957
5958 2005-02-19  Colin Walters  <walters@verbum.org>
5959
5960         * glib/dbus-binding-tool-glib.c
5961         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
5962
5963         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
5964         as errno.h and sys/stat.h.
5965         (lose): New function, prints error with
5966         newline and exits.
5967         (lose_gerror): Similar, but takes GError for message.
5968         (main): Add --output argument to specify output file to write to,
5969         instead of always printing to stdout.  In this mode, determine
5970         timestamps on source files to see whether any are newer than the
5971         target file.  If not, exit.  Also convert a number of error
5972         messages to use lose (since it's shorter), and switch to using
5973         g_io_channel_shutdown.
5974
5975 2005-02-19  Havoc Pennington  <hp@redhat.com>
5976
5977         * glib/dbus-gobject.c
5978         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
5979
5980         * glib/dbus-glib.c: fix doxygen warnings
5981
5982         * glib/dbus-gparser.c (parse_annotation): error if an annotation
5983         is found on an <arg>
5984
5985 2005-02-17  Colin Walters  <walters@verbum.org>
5986
5987         * glib/dbus-gobject.h: Don't export
5988         _dbus_glib_marshal_dbus_message_to_gvalue_array.
5989         
5990         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
5991         (invoke_object_method): Handle it.
5992
5993         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
5994         Handle rename.
5995         
5996 2005-02-17  Colin Walters  <walters@verbum.org>
5997
5998         * bus/.cvsignore, doc/.cvsignore
5999         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6000         Update.
6001
6002 2005-02-17  Colin Walters  <walters@verbum.org>
6003         
6004         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6005         Rename to DBUS_SERVICE_DBUS.
6006         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6007         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6008         Change the value from "org.freedesktop.Local"
6009         to "org.freedesktop.DBus.Local".
6010         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6011         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6012         DBUS_INTERFACE_INTROSPECTABLE.
6013         Change the value from "org.freedesktop.Introspectable"
6014         to "org.freedesktop.DBus.Introspectable".
6015         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6016         DBUS_INTERFACE_PROPERTIES.
6017         Change the value from "org.freedesktop.Properties"
6018         to "org.freedesktop.DBus.Properties".
6019         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6020         DBUS_INTERFACE_PEER.
6021         Change the value from "org.freedesktop.Peer"
6022         to "org.freedesktop.DBus.Peer".
6023         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6024         DBUS_INTERFACE_LOCAL.
6025         Change the value from "org.freedesktop.Local"
6026         to "org.freedesktop.DBus.Local".
6027
6028         All other users of those constants have been changed.
6029
6030         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6031
6032         * glib/dbus-gobject.c (handle_introspect): Use constants.
6033
6034         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6035
6036 2005-02-17  Colin Walters  <walters@verbum.org>
6037
6038         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6039         (parse_node, parse_interface, parse_method, parse_signal)
6040         (parse_property, parse_annotation): Lose if we're currently in an
6041         annotation.
6042         (parse_annotation): New function.
6043         (parser_start_element, parser_end_element): Handle annotation.
6044         (parse_method, parse_interface): Remove support for c_name attribute,
6045         switch to annotations.
6046
6047         * glib/dbus-gidl.h (interface_info_get_binding_names)
6048         (method_info_get_binding_names)
6049         (interface_info_get_binding_name, method_info_get_binding_name)
6050         (interface_info_set_binding_name, method_info_set_binding_name):
6051         Remove.
6052         (interface_info_get_annotations, method_info_get_annotations)
6053         (interface_info_get_annotation, method_info_get_annotation)
6054         (interface_info_add_annotation, method_info_add_annotation):
6055         Prototype.
6056
6057         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6058         for "bindings".
6059         (struct MethodInfo): Ditto.
6060         Straightfoward conversion of binding methods into annotation methods
6061         as prototyped.
6062
6063         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6064
6065         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6066
6067         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6068         Use new annotation API.
6069
6070         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6071         annotation element.
6072         
6073         * doc/dbus-specification.xml: Discuss introspection annotations,
6074         include list of well-known annotations.
6075
6076         * test/glib/test-service-glib.xml: Make validate against new DTD.
6077
6078 2005-02-17  Colin Walters  <walters@verbum.org>
6079
6080         This patch is based on initial work from
6081         Paul Kuliniewicz <kuliniew@purdue.edu>.
6082
6083         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6084         initialization of GValue from dbus type to here.
6085         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6086         for the "glib-genmarshal" program from a DBus type.
6087         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6088         into the C name for it we use in the glib bindings.
6089         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6090         glib C type (not GValue).
6091         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6092
6093         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6094         from dbus-gobject.c.
6095
6096         * glib/dbus-gutils.h: Prototype it.
6097
6098         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6099         (marshal_dbus_message_to_g_marshaller): Use new shared function
6100         dbus_glib_marshal_dbus_message_to_gvalue_array.
6101
6102         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6103         Will be changed once we have annotations.
6104
6105         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6106         GStaticRWLock.  Callers updated.
6107         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6108         (string_table_next): New function for iterating over zero-terminated
6109         string value array.
6110         (string_table_lookup): New function; retrieves specific entry in
6111         array.
6112         (get_method_data): New function; look up method data in object data chunk.
6113         (object_error_domain_prefix_from_object_info)
6114         (object_error_code_from_object_info): New functions, but not implemented yet.
6115         (method_interface_from_object_info): New function; retrieve interface name.
6116         (method_name_from_object_info): New function; retrieve method name.
6117         (method_arg_info_from_object_info): New function; retrieve argument data.
6118         (arg_iterate): New function; iterates over serialized argument data.
6119         (method_dir_signature_from_object_info): New function; returns a
6120         GString holding type signature for arguments for just one
6121         direction (input or output).
6122         (method_input_signature_from_object_info)
6123         (method_output_signature_from_object_info): New functions.
6124         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6125         converts dbus message arguments into a GValue array.  Used for both
6126         signal handling and method invocation.
6127         (struct DBusGlibWriteIterfaceData): New utility structure.
6128         (write_interface): New function; generate introspection XML for
6129         an interface.
6130         (introspect_interfaces): New function; gathers all interface->methods,
6131         generates introspection XML for them.
6132         (handle_introspect): Invoke introspect_interfaces.
6133         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6134         (lookup_object_and_method): New function; examines an incoming message
6135         and attempts to match it up (via interface, method name, and argument
6136         signature) with a known object and method.
6137         (gerror_domaincode_to_dbus_error_name): New function; converts a
6138         GError domain and code into a DBus error name.  Needs GError data
6139         added to object introspection to work well.
6140         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6141         GError.
6142         (invoke_object_method): New function to invoke an object method
6143         looked up via lookup_object_and_method.  Parses the incoming
6144         message, turns it into a GValue array, then invokes the marshaller
6145         specified in the DBusGMethodInfo.  Creates a new message with
6146         either return values or error message as appropriate.
6147         (gobject_message_function): Invoke lookup_object_and_method and
6148         invoke_object_method.
6149
6150         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6151         (enum DBusBindingOutputMode): New enum for binding output modes.
6152         (pretty_print): Print binding names.
6153         (dbus_binding_tool_error_quark): GError bits.
6154         (version): Fix typo.
6155         (main): Create GIOChannel for output.  Parse new --mode argument,
6156         possible values are "pretty-print", "glib-server", "glib-client".
6157         Use mode to invoke appropriate function.
6158         
6159         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6160
6161         * glib/dbus-glib-tool.h: New header, just includes GError bits
6162         for now.
6163
6164         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6165         maps binding style to name.
6166         (struct MethodInfo): Ditto.
6167         (get_hash_keys, get_hash_key): Utility function, returns keys for
6168         a GHashTable.
6169         (interface_info_new, method_info_new): Initialize bindings.
6170         (interface_info_unref, method_info_unref): Destroy bindings.
6171         (method_info_get_binding_names, method_info_get_binding_name)
6172         (interface_info_get_binding_names, interface_info_get_binding_name):
6173         Functions for retrieving binding names.
6174         (method_info_set_binding_name, interface_info_set_binding_name):
6175         Functions for setting binding names.
6176
6177         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6178         for glib binding generation.
6179
6180         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6181         and client-side glib glue generation.
6182
6183         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6184         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6185         dbus-glib-tool.h.
6186
6187         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6188         of using GClosureMarshal directly.
6189         (struct DBusGObjectInfo): Add n_infos member.
6190
6191         * test/glib/test-service-glib.xml: New file; contains introspection data
6192         for MyTestObject used in test-service-glib.c.
6193
6194         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6195         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6196         (my_object_uppercase, my_object_many_args): New test methods.
6197         (main): Use dbus_g_object_class_install_info to include generated object
6198         info.
6199
6200         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6201         as well as client-side bindings.
6202
6203         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6204         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6205         using both the dbus_gproxy stuff directly as well as the generated bindings.
6206
6207 2005-02-15  Havoc Pennington  <hp@redhat.com>
6208
6209         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6210         complete a pending call, don't run filters first.
6211
6212         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6213         dbus_pending_call_steal_reply
6214
6215         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6216         _dbus_connection_block_pending_call
6217         (dbus_pending_call_get_reply): change to steal_reply and return a
6218         ref
6219
6220         * dbus/dbus-connection.c
6221         (dbus_connection_send_with_reply_and_block): port to work in terms
6222         of DBusPendingCall
6223         (_dbus_connection_block_pending_call): replace block_for_reply
6224         with this
6225
6226 2005-02-14  Havoc Pennington  <hp@redhat.com>
6227
6228         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6229         properly handle looking up group information by name; fix 
6230         from j@bootlab.org
6231
6232 2005-02-13  Havoc Pennington  <hp@redhat.com>
6233
6234         * dbus/dbus-connection.c (dbus_connection_return_message) 
6235         (dbus_connection_borrow_message): hold dispatch lock while message
6236         is outstanding
6237         (_dbus_connection_block_for_reply): hold dispatch lock while we
6238         block for the reply, so nobody steals our reply
6239         (dbus_connection_pop_message): hold the dispatch lock while we
6240         pluck the message
6241
6242 2005-02-13  Havoc Pennington  <hp@redhat.com>
6243
6244         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6245         (_dbus_connection_release_dispatch)
6246         (_dbus_connection_acquire_io_path)
6247         (_dbus_connection_release_io_path): make the mutex and condvar
6248         control access to the "acquired" flag. Drop the connection lock
6249         while waiting on the condvar. Hopefully these are baby steps in
6250         roughly the right direction.
6251
6252 2005-02-13  Havoc Pennington  <hp@redhat.com>
6253
6254         * dbus/dbus-connection.c: use separate mutexes for the condition
6255         variables; this is some kind of baseline for sanity, but the
6256         condition variables still aren't used correctly afaict
6257
6258 2005-02-13  Havoc Pennington  <hp@redhat.com>
6259
6260         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6261         fix a double-unlock
6262
6263         * dbus/dbus-connection.c
6264         (_dbus_connection_detach_pending_call_unlocked): add this
6265
6266         Initial semi-correct pass through to fix thread locking; there are
6267         still some issues with the condition variable paths I'm pretty
6268         sure
6269         
6270         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6271         lock/unlock calls
6272
6273         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6274         rename to add _unlocked
6275         (struct DBusConnection): move "dispatch_acquired" and
6276         "io_path_acquired" to use only one bit each.
6277         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6278         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6279         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6280         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6281         (_dbus_connection_remove_timeout) 
6282         (_dbus_connection_toggle_timeout): drop lock when calling out to
6283         user functions; done in a hacky/bad way.
6284         (_dbus_connection_send_and_unlock): add a missing unlock
6285         (_dbus_connection_block_for_reply): add a missing unlock
6286
6287         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6288         drop lock in a hacky probably unsafe way to call out to user
6289         function
6290
6291 2005-02-12  Havoc Pennington  <hp@redhat.com>
6292
6293         * tools/dbus-tree-view.c (info_set_func_text): display more
6294         details on args
6295
6296         * bus/driver.c (bus_driver_handle_list_services): list the bus
6297         driver
6298
6299         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6300
6301         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6302         (method_info_get_n_args): new function
6303
6304 2005-02-12  Havoc Pennington  <hp@redhat.com>
6305
6306         * bus/driver.c (bus_driver_handle_introspect): add introspection
6307         for bus driver
6308
6309 2005-02-12  Havoc Pennington  <hp@redhat.com>
6310
6311         * bus/driver.c: put the signature of each bus driver method in the
6312         table of handlers and check it on incoming calls; this isn't
6313         really useful, but going to add introspect support in a minute.
6314
6315 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6316
6317         * mono/Connection.cs: The unpredictability of finalizers in mono
6318         prevents us from deterministically disconnecting the filters from
6319         the Service class's finalizer, so move tracking of filters and
6320         matches here.  Add API for that.
6321
6322         * mono/Service.cs: Remove the code, add code which calls the
6323         methods now on the Connection class.
6324
6325 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6326
6327         * python/dbus.py (class Sender): added to support dbus signals better
6328         (Bus::add_signal_receiver): added expand_args parameter which defaults
6329         to True.  When expand args is True the signal handler will pass the 
6330         message arguments as parameters to the signal handler.  If False
6331         revert to previous behavior where the signal handler must get the
6332         argument list from the message.  This is to help port applications
6333         like HAL that have a tendancy to send variable length argument lists.
6334         self._match_rule_to_receivers is now a dict of dicts.
6335         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6336         removing it from a list
6337         (Bus::_signal_func): change signal handlers so that interface,
6338         signal_name, service, path and message are packed into a Sender
6339         object and that is passed to the handler.  If expand_args is True
6340         extract the args list from the message and append it to the parameter
6341         list
6342         
6343         * python/dbus_bindings.pyx.in (class Signature): added to support 
6344         signiature types
6345         (MessageIter::__init__): changed iteration limit to match D-BUS
6346         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6347         STRUCT and VARIENT type support
6348         (MessageIter::python_value_to_dbus_sig): made recursive to support
6349         recursive types
6350         (MessageIter::append*): added Signature, dict, tuple 
6351         support
6352
6353         * python/examples/example-client.py: added examples of getting tuples
6354         and dicts
6355
6356         * python/examples/example-service.py: added examples of sending tuples
6357         and dicts
6358
6359         * python/examples/example-signal-recipient.py: Fixed to handle new
6360         signal callback format
6361
6362 2005-02-10  Havoc Pennington  <hp@redhat.com>
6363
6364         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6365         (call dbus_g_proxy_add_signal)
6366
6367         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6368         escape the hostname
6369         (_dbus_server_new_for_domain_socket): escape the path
6370
6371         * dbus/dbus-address.c (dbus_address_escape_value): new
6372         (dbus_address_unescape_value): new
6373         (dbus_parse_address): unescape values
6374
6375         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6376
6377         * doc/dbus-specification.xml: explain how to escape values in
6378         addresses
6379
6380 2005-02-10  Havoc Pennington  <hp@redhat.com>
6381
6382         * dbus/dbus-message-factory.c (generate_special): modify test to
6383         avoid using a non-basic dict key
6384
6385         * dbus/dbus-marshal-validate-util.c: add test for the below
6386
6387         * doc/dbus-specification.xml: require that dict keys are a basic
6388         type
6389
6390         * dbus/dbus-marshal-validate.c
6391         (_dbus_validate_signature_with_reason): require that dict key is a
6392         basic type
6393
6394 2005-02-10  Havoc Pennington  <hp@redhat.com>
6395
6396         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6397         change to be _and_unlock instead of _unlocked
6398
6399         * dbus/dbus-connection.c
6400         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6401         have no_update so we can find this bug quickly in future
6402
6403 2005-02-10  Havoc Pennington  <hp@redhat.com>
6404
6405         * dbus/dbus-message-util.c (verify_test_message): tests for string
6406         array
6407
6408         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6409         support for arrays of string/signature/path
6410
6411 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6412
6413         * dbus/dbus-connection.c
6414         (_dbus_connection_queue_received_message_link,
6415         _dbus_connection_message_sent): Add the path to
6416         the verbose output.
6417         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6418         _dbus_connection_send_preallocated_unlocked(), updated the
6419         dispatch status, and unlocks.  Fixes a bug where certain
6420         situations (like a broken pipe) could cause a Disconnect message
6421         to not be sent, tricking the bus into thinking a service was still
6422         there when the process had quit.
6423         (_dbus_connection_send_preallocated): Call
6424         _dbus_connection_send_preallocated_and_unlock().
6425         (_dbus_connection_send_and_unlock): Added.  Calls
6426         _dbus_connection_send_preallocated_and_unlock().
6427         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6428         (dbus_connection_send_with_reply): Update the dispatch status and
6429         unlock.
6430
6431         * mono/Service.cs (~Service): Added.  Removes the filter so that
6432         we don't get unmanaged code calling back into a GCed delegate.
6433         (RemoveFilter); Added.
6434
6435 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6436
6437         * dbus/dbus-message.c (dbus_message_iter_open_container):
6438         - Removed check for iterator type being an array because
6439         get_arg_type does not work with writer iterators
6440         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6441
6442 2005-02-07  Havoc Pennington  <hp@redhat.com>
6443
6444         * doc/dbus-specification.xml: some more language cleanups; add
6445         stuff about how to deal with invalid protocol and extension
6446         points; add _ to allowed chars in auth commands; add EXTENSION_
6447         auth command prefix
6448
6449 2005-02-06  Havoc Pennington  <hp@redhat.com>
6450
6451         * s/expected/required/ in a couple places for clarity
6452
6453 2005-02-07  Colin Walters  <walters@verbum.org>
6454
6455         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6456         sender or proposed_recipient.
6457
6458 2005-02-06  Havoc Pennington  <hp@redhat.com>
6459
6460         * dbus/dbus-message-factory.c (generate_special): more tests
6461
6462         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6463         array length that exceeds the maximum
6464
6465 2005-02-05  Havoc Pennington  <hp@redhat.com>
6466
6467         * dbus/dbus-message-factory.c (generate_special): more test cases,
6468         increasing coverage
6469
6470         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6471         reason why a signature was invalid
6472
6473         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6474         skip the length of the string before we look at it in validation
6475
6476         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6477         equal_substring
6478
6479         * dbus/dbus-message.c (_dbus_message_loader_new): default
6480         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6481
6482 2005-02-05  Havoc Pennington  <hp@redhat.com>
6483
6484         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6485         if the signature of a variant was empty
6486         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6487         struct with no element type)
6488
6489         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6490         mangled messages to break things
6491
6492 2005-02-04  Havoc Pennington  <hp@redhat.com>
6493
6494         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6495         g_quark_try_string() so it actually can return 0
6496         (dbus_g_proxy_connect_signal): ditto
6497
6498 2005-02-04  Havoc Pennington  <hp@redhat.com>
6499
6500         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6501         bogus warning
6502         (tristring_from_message): assert cleanly on null path/interface
6503         (should not be possible though I decided later)
6504         (dbus_g_proxy_dispose): move proxy manager unregistration here
6505         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6506         g_return_if_fail() checks
6507
6508 2005-02-04  Havoc Pennington  <hp@redhat.com>
6509
6510         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6511
6512         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6513         (with some minor changes)
6514
6515         * doc/dbus-specification.xml: add deprecated attribute to
6516         introspection format
6517
6518 2005-01-31  Havoc Pennington  <hp@redhat.com>
6519
6520         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6521         think it's sort of right
6522
6523 2005-01-30  Havoc Pennington  <hp@redhat.com>
6524
6525         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6526
6527 2005-01-30  Havoc Pennington  <hp@redhat.com>
6528
6529         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6530
6531         * autogen.sh: change to autotools 1.9
6532
6533         * glib/dbus-gproxy.c: completely change how signals work
6534         (dbus_g_proxy_add_signal): new function to specify signature of a
6535         signal
6536         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6537         and g_warning if the incoming message has the wrong signature.
6538
6539 2005-01-30  Havoc Pennington  <hp@redhat.com>
6540
6541         * tools/dbus-names-model.c (have_names_notify): fix this
6542
6543         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6544         up the string array handling a bit 
6545
6546 2005-01-30  Havoc Pennington  <hp@redhat.com>
6547
6548         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6549         (dbus_g_pending_call_cancel): new function
6550
6551         * dbus/dbus-glib.h: move GType decls for connection/message here;
6552         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6553         here, just kind of rationalizing how we handle all that
6554
6555         * tools/dbus-names-model.c: new file for a tree model listing the
6556         services on a bus
6557
6558         * tools/dbus-tree-view.c (model_new): use proper typing on the
6559         model rows
6560
6561 2005-01-30  Havoc Pennington  <hp@redhat.com>
6562
6563         * glib/dbus-gmain.c: add a custom GSource back that just checks
6564         whether the message queue has anything in it; otherwise, there are 
6565         cases where we won't see messages in the queue since there was no 
6566         IO visible to the glib main loop
6567
6568         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6569         increase default message timeout to 25 seconds
6570
6571 2005-01-30  Havoc Pennington  <hp@redhat.com>
6572
6573         * test/glib/test-profile.c (no_bus_stop_server): remove the
6574         warning about the g_warning that I just fixed
6575
6576         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6577         custom source, seems to be a lot easier to understand and work
6578         better.
6579
6580 2005-01-30  Havoc Pennington  <hp@redhat.com>
6581
6582         I think this main loop thing is conceptually broken, but here are 
6583         some band aids. I'll maybe rewrite it in a minute.
6584         
6585         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6586         custom GSource, so don't pass it in; confusing
6587         (gsource_server_finalize, gsource_connection_finalize): add
6588         finalize handlers that remove all the watches.  
6589
6590 2005-01-30  Havoc Pennington  <hp@redhat.com>
6591
6592         * glib/dbus-gobject.c (introspect_properties): fix the XML
6593         generated
6594
6595         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6596         which effectively detects the use of freed messages
6597
6598         * glib/dbus-gobject.c (handle_introspect): modify and return the
6599         reply message instead of the incoming message
6600
6601         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6602         gee, maybe it should SEND THE XML instead of just making a string
6603         and freeing it again ;-)
6604
6605         * tools/dbus-print-message.c (print_message): improve printing of
6606         messages
6607
6608         * configure.in: add debug-glib.service to the output
6609
6610 2005-01-30  Havoc Pennington  <hp@redhat.com>
6611
6612         dbus-viewer introspected and displayed the bus driver
6613         
6614         * dbus/dbus-object-tree.c 
6615         (object_tree_test_iteration): add tests for a handler registered on "/"
6616
6617         * dbus/dbus-object-tree.c
6618         (_dbus_decompose_path): fix to handle path "/" properly
6619         (run_decompose_tests): add tests for path decomposition
6620         
6621         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6622         properly
6623
6624         * glib/dbus-gobject.c (handle_introspect): fix quotes
6625
6626         * test/glib/run-test.sh: support launching the bus, then running
6627         dbus-viewer
6628
6629         * test/glib/test-service-glib.c (main): put in a trivial gobject
6630         subclass and register it on the connection
6631
6632         * bus/driver.c (bus_driver_handle_introspect): implement
6633         introspection of the bus driver service
6634
6635         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6636         identifiers, doctype decl
6637
6638         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6639         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6640         returning the service unchanged.
6641         (bus_driver_handle_message): remove old check for reply_serial in
6642         method calls, now the message type deals with that
6643         (bus_driver_handle_message): handle NULL interface
6644
6645         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6646
6647         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6648         -1 for len
6649
6650         * tools/dbus-viewer.c: add support for introspecting a service on
6651         a bus
6652
6653         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6654         (dbus_g_pending_call_unref): add
6655
6656 2005-01-29  Havoc Pennington  <hp@redhat.com>
6657
6658         * tools/dbus-tree-view.c: add support for displaying properties.
6659         (run dbus-viewer with an introspect xml file as arg, then resize
6660         the window so the tree elements show up, not sure what that is)
6661
6662         * glib/dbus-gobject.c (handle_introspect): return
6663         org.freedesktop.Properties and org.freedesktop.Introspectable
6664         interfaces when we are introspected.
6665
6666         * doc/dbus-specification.xml: allow empty interface name when 
6667         Get/Set a property
6668
6669 2005-01-29  Havoc Pennington  <hp@redhat.com>
6670
6671         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6672         though it uses glib, it could be extended for any binding in
6673         principle
6674
6675         * glib/dbus-gobject.c (gobject_message_function): change to the
6676         new way properties work
6677
6678         * dbus/dbus-protocol.h: add the new interfaces
6679
6680         * doc/dbus-specification.xml: document the introspection format,
6681         Introspectable interface, and add an org.freedesktop.Properties
6682         interface.
6683
6684         * glib/dbus-gparser.c: add support for a <property> element
6685
6686         * glib/dbus-gidl.c: add PropertyInfo
6687
6688         * glib/dbus-gobject.c (handle_introspect): put the outermost
6689         <node> outside the signal and property descriptions.
6690         (introspect_properties): export properties as <property> rather
6691         than as method calls
6692
6693 2005-01-28  Havoc Pennington  <hp@redhat.com>
6694
6695         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6696         related to authentication protocol
6697
6698 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6699
6700         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6701                 - BUS_ACTIVATION -> BUS_STARTER
6702                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6703                 - class MessageIter (__init__): Added recursion checking 
6704                 so we throw a nice error instead of just disconnecting from the
6705                 bus.
6706                 (get): Added arg_type parameter for recursion.
6707                 Removed the nil type
6708                 Added signiture type placeholder (not implemented)
6709                 Added struct type placeholder (not implemented)
6710                 Added varient type placeholder (not implemented)
6711                 Commented out dict type for now     
6712                 (get_element_type): renamed from get_array_type
6713                 (get_*): changed to use the dbus_message_iter_get_basic API
6714                 (get_*_array): removed in favor of recursive get_array method
6715                 (get_array): new recursive method which calls get to marshal
6716                 the elements of the array
6717                 (value_to_dbus_sig): New method returns the corrasponding
6718                 dbus signiture to a python value
6719                 (append): Comment out dict handling for now
6720                 Handle lists with the new recursive API
6721                 Comment out None handling for now
6722                 (append_nil): removed
6723                 (append_*): changed to use dbus_message_iter_append_basic API
6724                 (append_*_array): removed in favor of recursive append_array 
6725                 method
6726                 (__str__): Make it easier to print out recursive iterators
6727                 for debugging
6728                 - class Message (__str__): moved type inspection to the
6729                 MessageIter class' __str__ method
6730                 (get_iter): Added an append parameter wich defaults to False
6731                 If True use the new API's to create an append iterator
6732
6733         * python/dbus.py: Update to use new bindings API
6734                 - TYPE_ACTIVATION -> TYPE_STARTER
6735                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6736                 - class ActivationBus -> class StarterBus
6737                 - class RemoteObject (__call__): get an append iterator
6738                 - (_dispatch_dbus_method_call): get an append iterator
6739                 - class Object (emit_signal): get an append iterator
6740
6741         * python/examples/: Fixed up the examples to work with the new API
6742                 
6743 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6744
6745         * configure.in: Bump version up to 0.30.
6746
6747         * HACKING: Add a release item to bump the version number up after 
6748         a release.
6749
6750 2005-01-28  Havoc Pennington  <hp@redhat.com>
6751
6752         * doc/dbus-specification.xml: update to describe 16-bit types and
6753         dict entries
6754
6755         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6756         assertion
6757
6758         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6759         type
6760
6761         * dbus/dbus-marshal-recursive.c: implement
6762
6763 2005-01-27  Havoc Pennington  <hp@redhat.com>
6764
6765         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6766
6767         * configure.in: find the right type for 16 and 32 bit ints as well
6768         as 64
6769
6770         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6771         the 16-bit types so people don't have to stuff them in 32-bit or
6772         byte arrays.
6773
6774 2005-01-27  Havoc Pennington  <hp@redhat.com>
6775
6776         * dbus/dbus-message.c: byteswap the message if you init an
6777         iterator to read/write from it
6778         
6779         * dbus/dbus-marshal-byteswap.c: new file implementing 
6780         _dbus_marshal_byteswap()
6781
6782         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6783
6784 2005-01-26  Havoc Pennington  <hp@redhat.com>
6785         
6786         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6787         build, apparently - nobody noticed?)
6788         
6789 2005-01-26  Havoc Pennington  <hp@redhat.com>
6790
6791         * dbus/dbus-marshal-recursive.h: remove todo comment
6792
6793 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6794
6795         * Land the mono binding changes to conform to the new APIs.
6796
6797         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6798         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6799
6800         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6801         type code as a string.
6802         (InitAppending): Rename dbus_message_append_iter_init() to
6803         dbus_message_iter_init_append().
6804
6805         * mono/BusDriver.cs: Rename ServiceEventHandler to
6806         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6807         Rename ServiceOwnerChanged to NameOwnerChanged.
6808
6809         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6810         underlying C call.
6811
6812         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6813
6814         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6815         dbus_bus_acquire_service() to dbus_bus_request_name().
6816
6817         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6818         of Type.UnderlyingSystemType to get the correct element type for
6819         the array.
6820         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6821         dbus_message_get_{element|arg}_type() instead of
6822         dbus_message_iter_init_array_iterator().
6823         (Append): Replace dbus_message_iter_append_array() with
6824         dbus_message_iter_open_container() and
6825         dbus_message_iter_close_container().
6826
6827         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6828         types have been removed.
6829         
6830         * mono/DBusType/*.cs: Replace calls of
6831         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6832         but specify the type in the DllImport extern declaration.  Ditto
6833         for dbus_message_iter_append_[type]() ->
6834         dbus_message_iter_append_basic().
6835
6836         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6837         NameOwnerChangedHandler.
6838
6839 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6840
6841         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6842                 - get_base_service -> get_unique_name
6843                 - bus_get_base_service -> bus_get_unique_name
6844                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6845                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6846                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6847                 - bus_activate_service -> bus_start_service_by_name
6848                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6849                 - bus_acquire_service -> bus_request_name
6850                 - dbus_bus_acquire_service -> dbus_bus_request_name
6851                 - bus_service_exists -> bus_name_has_owner
6852                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6853
6854         * python/dbus.py: Rename of methods
6855                 - activate_service -> start_service_by_name
6856                 - bus_acquire_service -> bus_request_name
6857                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6858                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6859
6860         
6861 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6862
6863         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6864         signature for the method that can't be found.
6865
6866         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6867         the message has any arguments, we need to call
6868         _dbus_type_reader_get_current_type(), not
6869         _dbus_type_reader_has_next().
6870
6871 2005-01-24  Havoc Pennington  <hp@redhat.com>
6872
6873         * dbus/dbus-message-factory.c: more testing of message validation
6874
6875         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6876         header
6877
6878 2005-01-23  Havoc Pennington  <hp@redhat.com>
6879
6880         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6881         get this all working, not many tests in the framework yet though
6882
6883 2005-01-22  Havoc Pennington  <hp@redhat.com>
6884
6885         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6886         tutorial, based on work from David Wheeler.
6887
6888 2005-01-21  Havoc Pennington  <hp@redhat.com>
6889
6890         * dbus/dbus-bus.c: add more return_if_fail checks
6891
6892         * dbus/dbus-message.c (load_message): have the "no validation"
6893         mode (have to edit the code to toggle the mode for now though)
6894
6895         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6896         skips all validation; I want to use this at least for benchmark
6897         baseline, I'm not sure if it should be a publicly-available switch.
6898
6899 2005-01-21  Havoc Pennington  <hp@redhat.com>
6900
6901         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6902         toplevel doxygen group as the low-level API stuff
6903
6904         * dbus/dbus.h: note that libdbus is the low-level API
6905
6906 2005-01-20  Havoc Pennington  <hp@redhat.com>
6907
6908         * update-dbus-docs.sh: script to update docs on the web site, only
6909         works for me though. neener.
6910
6911 2005-01-20  Havoc Pennington  <hp@redhat.com>
6912
6913         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6914         code can reveal bugs in it
6915
6916 2005-01-20  Havoc Pennington  <hp@redhat.com>
6917
6918         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6919         select() version, patches from Tor Lillqvist
6920
6921 2005-01-20  Havoc Pennington  <hp@redhat.com>
6922
6923         * doc/dbus-tutorial.xml: replace > with &gt;
6924
6925         * bus/services.c (bus_registry_acquire_service): validate the name
6926         and return a better error if it's no good.
6927
6928         * doc/dbus-specification.xml: note NO_AUTO_START change
6929
6930         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
6931         from AUTO_START, we're toggling the default
6932
6933         * bus/dispatch.c: adapt the tests to change of auto-start default
6934
6935 2005-01-18  Havoc Pennington  <hp@redhat.com>
6936
6937         * rename dbus-daemon-1 to dbus-daemon throughout
6938
6939 2005-01-18  Havoc Pennington  <hp@redhat.com>
6940
6941         * Throughout, grand renaming to strip out the use of "service",
6942         just say "name" instead (or "bus name" when ambiguous).  Did not
6943         change the internal code of the message bus itself, only the
6944         programmer-facing API and messages.
6945         
6946         * doc/dbus-specification.xml: further update the message bus section
6947         
6948         * bus/config-parser.c (all_are_equiv): fix bug using freed string
6949         in error case
6950
6951 2005-01-17  Havoc Pennington  <hp@redhat.com>
6952
6953         * dbus/dbus-types.h: remove 16-bit types since we don't use them
6954         ever
6955
6956         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
6957         "invalid name character" not only non-ASCII
6958
6959         * doc/dbus-specification.xml: further update spec, message bus 
6960         parts are still out-of-date but the marshaling etc. stuff is now
6961         accurate-ish
6962
6963 2005-01-17  Havoc Pennington  <hp@redhat.com>
6964
6965         * doc/dbus-specification.xml: partially update spec
6966
6967 2005-01-17  Havoc Pennington  <hp@redhat.com>
6968
6969         * Throughout, align variant bodies according to the contained
6970         type, rather than always to 8. Should save a fair bit of space in
6971         message headers.
6972         
6973         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
6974         fix handling of case where p == end
6975
6976         * doc/TODO: remove the dbus_bool_t item and variant alignment items
6977
6978 2005-01-17  Havoc Pennington  <hp@redhat.com>
6979
6980         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
6981
6982         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
6983         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
6984         are marshaling/unmarshaling a boolean.
6985
6986 2005-01-16  Havoc Pennington  <hp@redhat.com>
6987
6988         This is about it on what can be disabled/deleted from libdbus
6989         easily, back below 150K anyhow. Deeper cuts are more work than 
6990         just turning the code off as I've done here.
6991         
6992         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
6993         signed int convenience funcs
6994
6995         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
6996         verbose mode
6997
6998         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
6999         things out of libdbus
7000
7001         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7002         
7003         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7004         tests-enabled-only, though it should probably be deleted)
7005
7006         * dbus/dbus-message-util.c: same stuff
7007
7008         * dbus/dbus-auth-util.c: same stuff
7009
7010 2005-01-16  Havoc Pennington  <hp@redhat.com>
7011
7012         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7013
7014         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7015         way for stripping down dbus-userdb.c stuff included in libdbus.
7016         Rename _dbus_parse_uid for consistency.
7017
7018 2005-01-16  Havoc Pennington  <hp@redhat.com>
7019
7020         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7021         name the assertion failed in
7022
7023         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7024         (_dbus_return_val_if_fail): assert that the name of the function
7025         containing the check doesn't start with '_', since we only want to 
7026         use checks on public functions
7027         
7028         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7029         checks to assertions
7030
7031         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7032         change checks to asserts for private function
7033
7034         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7035         to asserts for private function
7036
7037         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7038         broken assertion that was breaking make check
7039         (_dbus_type_reader_array_is_empty): remove this rather than fix
7040         it, was only used in assertions
7041
7042 2005-01-16  Havoc Pennington  <hp@redhat.com>
7043
7044         * test/unused-code-gc.py: hacky script to find code that's used
7045         only by the bus (not libdbus) or used only by tests or not used at
7046         all. It has some false alarms, but looks like we can clean up a
7047         lot of size from libdbus.
7048
7049         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7050         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7051         
7052 2005-01-16  Havoc Pennington  <hp@redhat.com>
7053
7054         * Add and fix docs according to Doxygen warnings throughout
7055         source.
7056         
7057         * dbus/dbus-marshal-recursive.c
7058         (_dbus_type_reader_array_is_empty): change this to just call
7059         array_reader_get_array_len() and make it static
7060
7061         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7062         from get_array_type
7063         (dbus_message_iter_init_append): rename from append_iter_init
7064
7065         * dbus/dbus-marshal-recursive.c
7066         (_dbus_type_reader_get_element_type): rename from
7067         _dbus_type_reader_get_array_type
7068
7069 2005-01-15  Havoc Pennington  <hp@redhat.com>
7070
7071         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7072
7073         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7074         when DBUS_DISABLE_ASSERT
7075         (_dbus_marshal_set_basic): be sure we align for the string length
7076
7077         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7078         this look faster
7079
7080         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7081         inline macro version
7082         (_dbus_string_set_byte): provide inline macro version
7083
7084 2005-01-15  Havoc Pennington  <hp@redhat.com>
7085
7086         * Land the new message args API and type system.
7087
7088         This patch is huge, but the public API change is not 
7089         really large. The set of D-BUS types has changed somewhat, 
7090         and the arg "getters" are more geared toward language bindings;
7091         they don't make a copy, etc.
7092
7093         There are also some known issues. See these emails for details
7094         on this huge patch:
7095         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7096         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7097         
7098         * dbus/dbus-marshal-*: all the new stuff
7099
7100         * dbus/dbus-message.c: basically rewritten
7101
7102         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7103         freed blocks to be all non-nul bytes so using freed memory is less
7104         likely to work right
7105
7106         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7107         DBUS_FAIL_MALLOC=N environment variable, so you can do
7108         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7109         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7110         thorough.
7111
7112         * qt/message.cpp: port to the new message args API
7113         (operator<<): use str.utf8() rather than str.unicode()
7114         (pretty sure this is right from the Qt docs?)
7115
7116         * glib/dbus-gvalue.c: port to the new message args API
7117
7118         * bus/dispatch.c, bus/driver.c: port to the new message args API
7119
7120         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7121         "locked" flag to TRUE and align_offset to 0; I guess we never
7122         looked at these anyhow, but seems cleaner.
7123
7124         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7125         move allocation padding macro to this header; use it to implement
7126         (_DBUS_STRING_STATIC): ability to declare a static string.
7127
7128         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7129         change to return TRUE if the interface is not set.
7130
7131         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7132         to dbus-marshal-validate.[hc]
7133
7134         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7135         dbus-internals.c
7136
7137         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7138         to dbus-marshal-*.[hc]
7139
7140         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7141         function here from dbus-marshal.c
7142
7143 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7144
7145         * NEWS: Update for 0.23.
7146
7147         * configure.in: Release 0.23.
7148
7149 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7150
7151         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7152         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7153         behind.
7154
7155         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7156         uninstall"
7157
7158         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7159         is an enum, get the enum's underlying type.  Another mono
7160         1.1.3 fix.
7161
7162 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7163
7164         Patch from Sjoerd Simons <sjoerd@luon.net>
7165
7166         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7167         DESTDIR.  It breaks stuff.
7168
7169 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7170
7171         Patch from Tambet Ingo <tambet@ximian.com>
7172
7173         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7174         calling type.GetElementType().  The code previously depended on
7175         broken Mono behavior, which was fixed in Mono 1.1.3.
7176
7177         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7178         Activator.CreateInstance() so that the class's constructor is
7179         called with the right parameters.
7180
7181 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7182
7183         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7184
7185         * dbus/dbus-connection.c
7186         (_dbus_connection_queue_received_message_link): Call
7187         _dbus_connection_remove_timeout() instead of the _locked()
7188         variant, since it's always called from
7189         _dbus_connection_handle_watch(), which handles the locking.
7190         Removed the _locked() variant since it's no longer used.
7191
7192 2005-01-03  Havoc Pennington  <hp@redhat.com>
7193
7194         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7195         return
7196         
7197 2004-12-26  Havoc Pennington  <hp@redhat.com>
7198
7199         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7200
7201 2005-01-03  Havoc Pennington  <hp@redhat.com>
7202
7203         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7204         floating point
7205
7206         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7207
7208 2005-01-02  Havoc Pennington  <hp@redhat.com>
7209
7210         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7211
7212 2005-01-01  Havoc Pennington  <hp@redhat.com>
7213
7214         * configure.in: add -Wfloat-equal
7215
7216 2005-01-01  Havoc Pennington  <hp@redhat.com>
7217
7218         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7219         for a variety of reasons '==' doesn't do this.
7220
7221 2004-12-31  Havoc Pennington  <hp@redhat.com>
7222
7223         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7224         I keep wishing I had
7225
7226 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7227
7228         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7229
7230 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7231
7232         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7233         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7234         dbus-protocol.h.  Because they are defines and not enums they are not
7235         autogenerated.
7236
7237 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7238
7239         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7240         dbus_bus_activate_service
7241
7242         * python/dbus.py (Bus.activate_service): activate a service on the
7243         bus.
7244
7245 2004-12-24  Havoc Pennington  <hp@redhat.com>
7246
7247         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7248         file format has also changed and I haven't adapted to that yet
7249         
7250         * Makefile.am: load .gcno files from latest gcc
7251
7252 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7253         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7254
7255         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7256         lowlevel binding
7257
7258         * python/dbus.py (get_unix_user): Added binding to 
7259         call dbus_bindings.bus_get_unix_user
7260
7261         * python/extract.py: Modified the proto_pat regex to
7262         handle unsigned long
7263
7264 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7265
7266         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7267         better POSIX compliance.
7268
7269 2004-12-19  Havoc Pennington  <hp@redhat.com>
7270
7271         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7272         (_dbus_string_insert_8_aligned): new functions
7273
7274         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7275
7276 2004-12-18  Havoc Pennington  <hp@redhat.com>
7277
7278         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7279         macro
7280
7281         * dbus/dbus-message.c: fix a comment, and add a still-unused
7282         not-implemented function
7283
7284         * dbus/dbus-marshal.h: fix comment
7285
7286         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7287
7288 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7289
7290         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7291         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7292         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7293         Type.UnderlyingSystemType to get the actual system type
7294         underneath.  This code previously depended on the broken Mono
7295         behavior, which was fixed in 1.1.3.
7296
7297 2004-11-27  Havoc Pennington  <hp@redhat.com>
7298
7299         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7300         are disabled
7301         (_dbus_string_get_const_data): inline when asserts are disabled
7302
7303         * dbus/dbus-message.c: record the _dbus_current_generation of
7304         creation so we can complain if dbus_shutdown() is used improperly.
7305         Do this only if checks are enabled.
7306
7307         * dbus/dbus-connection.c: ditto
7308         
7309 2004-11-26  Havoc Pennington  <hp@redhat.com>
7310
7311         * test/glib/test-profile.c: add with_bus mode to profile echoes
7312         that go through the bus.
7313
7314         * test/glib/run-test.sh: add ability to run test-profile
7315
7316         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7317         config file reload.
7318
7319 2004-11-26  Havoc Pennington  <hp@redhat.com>
7320
7321         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7322         thing was implemented
7323
7324 2004-11-26  Havoc Pennington  <hp@redhat.com>
7325
7326         * test/glib/test-profile.c: tweak a bit, add support for some
7327         made-up minimal malloc overhead with plain sockets, since in 
7328         real life some sort of buffers are unavoidable thus we could 
7329         count them in the theoretical best case
7330
7331 2004-11-26  Havoc Pennington  <hp@redhat.com>
7332
7333         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7334         where I was trying to cache one too many messages
7335
7336 2004-11-26  Havoc Pennington  <hp@redhat.com>
7337
7338         * dbus/dbus-message.c: reimplement message cache as an array which 
7339         makes the cache about twice as fast and saves maybe 1.5% overall
7340
7341 2004-11-26  Havoc Pennington  <hp@redhat.com>
7342
7343         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7344         message cache lock here
7345
7346 2004-11-26  Havoc Pennington  <hp@redhat.com>
7347
7348         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7349         the "char byte_order" next to each other to save 4 bytes
7350         (dbus_message_new_empty_header): reduce preallocation, since the
7351         message cache should achieve a similar effect
7352         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7353         message cache that keeps a few DBusMessage around in a pool,
7354         another 8% speedup or so.
7355
7356         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7357
7358 2004-11-25  Havoc Pennington  <hp@redhat.com>
7359
7360         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7361         to write, without reading or blocking, try it before the poll()
7362         and skip the poll() if nothing remains to write. This is about a
7363         3% speedup in the echo client/server
7364
7365 2004-11-25  Havoc Pennington  <hp@redhat.com>
7366
7367         The primary change here is to always write() once before adding
7368         the write watch, which gives us about a 10% performance increase.
7369         
7370         * dbus/dbus-transport-unix.c: a number of modifications to cope
7371         with removing messages_pending
7372         (check_write_watch): properly handle
7373         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7374         messages_pending stuff
7375         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7376         AUTHENTICATED cases
7377         (unix_handle_watch): after writing, see if the write watch can be
7378         removed
7379         (unix_do_iteration): assert that write_watch/read_watch are
7380         non-NULL rather than testing that they aren't, since they 
7381         aren't allowed to be NULL. check_write_watch() at the end so 
7382         we add the watch if we did not finish writing (e.g. got EAGAIN)
7383
7384         * dbus/dbus-transport-protected.h: remove messages_pending call,
7385         since it resulted in too much inefficient watch adding/removing; 
7386         instead we now require that the transport user does an iteration 
7387         after queueing outgoing messages, and after trying the first
7388         write() we add a write watch if we got EAGAIN or exceeded our 
7389         max bytes to write per iteration setting
7390
7391         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7392         function
7393
7394         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7395         freed and then accessed, valgrind flagged this bug, fix it
7396
7397         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7398         as the last valid field plus 1, where really it is equal to the
7399         last valid field. Corrects some message corruption issues.
7400
7401         * dbus/dbus-mainloop.c: verbosity changes
7402
7403         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7404         instead of aborting in one of the test codepaths
7405
7406         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7407         caused not printing the pid ever again if a verbose was missing
7408         the newline at the end
7409         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7410
7411         * dbus/dbus-connection.c: verbosity changes; 
7412         (dbus_connection_has_messages_to_send): new function
7413         (_dbus_connection_message_sent): no longer call transport->messages_pending
7414         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7415         try to write() immediately, so we can avoid the write watch. This
7416         is the core purpose of this patchset
7417         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7418         dump the outgoing message queue, so nobody will get confused
7419         trying to send them or thinking stuff is pending to be sent
7420
7421         * bus/test.c: verbosity changes
7422
7423         * bus/driver.c: verbosity/assertion changes
7424
7425         * bus/dispatch.c: a bunch of little tweaks to get it working again
7426         because this patchset changes when/where you need to block.
7427
7428 2004-11-23  Havoc Pennington  <hp@redhat.com>
7429
7430         * test/glib/test-profile.c: modify to accept a plain_sockets
7431         argument in which case it will bench plain sockets instead of
7432         libdbus, for comparison purposes.
7433
7434 2004-11-22  Havoc Pennington  <hp@redhat.com>
7435
7436         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7437         threads for more time, so sysprof can get a grip on it.
7438
7439         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7440         pointless variable
7441
7442 2004-11-13  Havoc Pennington  <hp@redhat.com>
7443
7444         * test/glib/test-profile.c: fix this thing up a bit
7445
7446         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7447         preallocation sizes by a fair bit; not sure if this will be an
7448         overall performance win or not, but it does reduce reallocs.
7449
7450         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7451         the test hack that forced constant realloc if asserts are
7452         disabled, so we can profile sanely. Sprinkle in some
7453         _DBUS_UNLIKELY() which are probably pointless, but before I
7454         noticed the real performance problem I put them in.
7455         (_dbus_string_validate_utf8): micro-optimize this thing a little
7456         bit, though callgrind says it didn't help; then special-case
7457         ascii, which did help a lot; then be sure we detect nul bytes as
7458         invalid, which is a bugfix.
7459         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7460         superstition; use memset to nul the padding instead of a manual
7461         loop.
7462         (_dbus_string_get_length): inline this as a
7463         macro; it showed up in the profile because it's used for loop
7464         tests and so forth
7465
7466 2004-11-10  Colin Walters  <walters@verbum.org>
7467
7468         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7469         for extra paranoia.
7470
7471 2004-11-09  Colin Walters  <walters@verbum.org>
7472
7473         * dbus/dbus-string.c (_dbus_string_get_length): New
7474         function, writes DBusString to C buffer.
7475
7476         * dbus/dbus-string.h: Prototype it.
7477
7478         * dbus/dbus-message.c (dbus_message_type_to_string): New
7479         function, converts message type into C string.
7480
7481         * dbus/dbus-message.h: Prototype it.
7482
7483         * bus/selinux.c (bus_selinux_check): Take source pid,
7484         target pid, and audit data.  Pass audit data to
7485         avc_has_perm.
7486         (log_audit_callback): New function, appends extra
7487         audit information.
7488         (bus_selinux_allows_acquire_service): Also take
7489         service name, add it to audit data.
7490         (bus_selinux_allows_send): Also take message
7491         type, interface, method member, error name,
7492         and destination, and add them to audit data.
7493         (log_cb): Initialize func_audit.
7494         
7495         * bus/selinux.h (bus_selinux_allows_acquire_service)
7496         (bus_selinux_allows_send): Update prototypes 
7497
7498         * bus/services.c (bus_registry_acquire_service): Pass
7499         service name to bus_selinux_allows_acquire_service.
7500
7501         * bus/bus.c (bus_context_check_security_policy): Pass
7502         additional audit data.  Move assignment of dest
7503         to its own line.
7504
7505 2004-11-07  Colin Walters  <walters@verbum.org>
7506
7507         * dbus/dbus-transport-unix.c (do_authentication): Always
7508         initialize auth_completed.
7509         
7510 2004-11-07  Colin Walters  <walters@verbum.org>
7511
7512         * bus/bus.c (load_config): Break into three
7513         separate functions: process_config_first_time_only,
7514         process_config_every_time, and process_config_postinit.
7515         (process_config_every_time): Move call of
7516         bus_registry_set_service_context_table into
7517         process_config_postinit.
7518         (process_config_postinit): New function, does
7519         any processing that needs to happen late
7520         in initialization (and also on reload).
7521         (bus_context_new): Instead of calling load_config,
7522         open config parser here and call process_config_first_time_only
7523         and process_config_every_time directly.  Later, after
7524         we have forked but before changing UID,
7525         invoke bus_selinux_full_init, and then call
7526         process_config_postinit.
7527         (bus_context_reload_config): As in bus_context_new,
7528         load parse file inside here, and call process_config_every_time
7529         and process_config_postinit.
7530
7531         * bus/services.h, bus/services.c
7532         (bus_registry_set_service_context_table): Rename
7533         from bus_registry_set_sid_table.  Take string hash from config
7534         parser, and convert them here into SIDs.
7535
7536         * bus/config-parser.c (struct BusConfigParser): Have
7537         config parser only store a mapping of service->context
7538         string.
7539         (merge_service_context_hash): New function.
7540         (merge_included): Merge context string hashes instead
7541         of using bus_selinux_id_table_union.
7542         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7543         simply create a new string hash.
7544         (bus_config_parser_unref): Unref it.
7545         (start_selinux_child): Simply insert strings into hash,
7546         don't call bus_selinux_id_table_copy_over.
7547
7548         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7549         (bus_selinux_id_table_copy_over): Delete.
7550
7551 2004-11-03  Colin Walters  <walters@verbum.org>
7552
7553         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7554         variables.
7555         
7556 2004-11-03  Colin Walters  <walters@verbum.org>
7557
7558         * bus/test-main.c (test_pre_hook): Fix test logic,
7559         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7560
7561 2004-11-02  Colin Walters  <walters@redhat.com>
7562
7563         * bus/selinux.c (bus_selinux_init): Split into two functions,
7564         bus_selinux_pre_init and bus_selinux_post_init.
7565         (bus_selinux_pre_init): Just determine whether SELinux is
7566         enabled.
7567         (bus_selinux_post_init): Do everything else.
7568
7569         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7570         config file, and bus_selinux_post_init after.  This ensures that
7571         we don't lose the policyreload notification thread that
7572         bus_selinux_init created before forking previously.
7573         
7574         * bus/test-main.c (test_pre_hook): Update for split.
7575
7576 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7577
7578         Patch from Johan Fischer <linux@fischaz.com>
7579         
7580         * mono/doc/Makefile.am (install-data-local): Added directory
7581         install for DESTDIR
7582
7583 2004-10-29  Colin Walters  <walters@redhat.com>
7584
7585         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7586         parameter for fd to write pid to.       
7587
7588         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7589         
7590         * bus/bus.c (bus_context_new): Pass print_pid_fd
7591         to _dbus_become_daemon (bug #1720)
7592
7593 2004-10-29  Colin Walters  <walters@redhat.com>
7594
7595         Patch from Ed Catmur <ed@catmur.co.uk>
7596
7597         * mono/doc/Makefile.am (install-data-local): Handle
7598         DESTDIR.
7599
7600 2004-10-29  Colin Walters  <walters@redhat.com>
7601
7602         * bus/.cvsignore, qt/.cvsignore: Update.
7603
7604 2004-10-29  Colin Walters  <walters@redhat.com>
7605
7606         Patch from Kristof Vansant <de_lupus@pandora.be>
7607
7608         * configure.in: Detect Slackware.
7609         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7610         * bus/rc.messagebus.in: New file.
7611
7612 2004-10-29  Colin Walters  <walters@redhat.com>
7613
7614         * tools/dbus-monitor.c (filter_func): Return
7615         DBUS_HANDLER_RESULT_HANDLED in filter function
7616         for now.  See:
7617         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7618
7619 2004-10-29  Colin Walters  <walters@redhat.com>
7620
7621         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7622
7623         * bus/services.c (bus_registry_acquire_service): 
7624         Correctly retrieve service name from DBusString
7625         for printing.
7626
7627 2004-10-29  Colin Walters  <walters@redhat.com>
7628
7629         * dbus/dbus-glib.h: Update documentation to not
7630         refer to internal APIs.
7631
7632 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7633
7634         * mono/Arguments.cs (GetDBusTypeConstructor):
7635         type.UnderlyingSystemType will return "System.Byte" if you do it
7636         on "byte[]", which is not what we want.  So check the type.IsArray
7637         property and use System.Array instead.
7638
7639 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7640
7641         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7642         the DBusUserInfo structure since this is passed into the function.
7643         This would cause a double free when the function that allocated
7644         the structure would try to free it when an error occured.
7645
7646         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7647         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7648         for service activation to avoid 32bit/64bit parallel install issues
7649
7650 2004-10-21  Colin Walters  <walters@verbum.org>
7651
7652         * AUTHORS: Fix my email address, the @gnu.org one
7653         has been bouncing for some time.  Also add J5.
7654         
7655 2004-10-21  Colin Walters  <walters@verbum.org>
7656
7657         * dbus/dbus-transport-unix.c (do_authentication): Return
7658         authentication status to callers.
7659         (unix_handle_watch): If we completed authentication this round,
7660         don't do another read.  Instead wait until the next iteration,
7661         after we've read any pending data in the auth buffer.
7662         (unix_do_iteration): Ditto.
7663         (unix_handle_watch): Updated for new do_authentication prototype.
7664
7665 2004-10-18  Colin Walters  <walters@verbum.org>
7666
7667         * bus/selinux.c (bus_selinux_enabled): Handle
7668         --disable-selinux case.
7669         
7670 2004-10-18  Colin Walters  <walters@verbum.org>
7671
7672         * bus/selinux.h: Add bus_selinux_enabled.
7673         
7674         * bus/selinux.c (bus_selinux_enabled): Implement it.
7675         
7676         * bus/config-parser.c (struct include): Add
7677         if_selinux_enabled member.
7678         (start_busconfig_child): Parse if_selinux_enabled
7679         attribute for include.
7680         (bus_config_parser_content): Handle it.
7681
7682         * bus/session.conf.in, bus/system.conf.in: Add
7683         inclusion of context mapping to default config files;
7684         conditional on SELinux being enabled.
7685         
7686         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7687         
7688         * test/data/invalid-config-files/badselinux-1.conf, 
7689         test/data/invalid-config-files/badselinux-2.conf:
7690         Test files for bad syntax.
7691         
7692 2004-10-17  Colin Walters  <walters@verbum.org>
7693
7694         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7695         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7696         format specifier mismatches.
7697
7698 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7699
7700         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7701         format string.
7702
7703         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7704         pointer (bug #1540, Leonardo Boiko).
7705
7706 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7707
7708         * mono/BusDriver.cs: Changed BusDriver struct to remove
7709         the ServiceCreated and ServiceDeleted events and replace them
7710         with the new ServiceOwnerChanged event.
7711
7712         * mono/example/BusListener.cs: Added a new example program,
7713         which listens for and reports any ServiceOwnerChanged events
7714         on the bus driver.
7715
7716         * mono/example/Makefile.am (DESTDIR): Build changes for the
7717         new BusListener.cs example.
7718
7719 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7720
7721         * bus/signals.c (bus_match_rule_parse): validate the components of
7722         match rules (bug #1439).
7723
7724         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7725
7726 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7727
7728         * doc/dbus-specification.xml: document ServiceOwnerChanged
7729         signal.
7730         
7731         * bus/driver.c, bus/driver.h, bus/services.c: Use
7732         ServiceOwnerChanged signal instead of ServiceCreated and
7733         ServiceDeleted.
7734         
7735         * bus/dispatch.c: update testcase for the new signal.
7736
7737 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7738
7739         Patch from Nat Friedman <nat@novell.com>
7740
7741         * mono/Makefile.am: A number of small build fixes to allow "make
7742         distcheck" to succeed.
7743
7744         * mono/example/Makefile.am: "make distcheck" fixes.
7745
7746         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7747         key in @srcdir@.
7748
7749         * test/Makefile.am: "make distcheck" fixes.
7750
7751 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7752
7753         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7754
7755         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7756
7757         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7758         messages after the first one (bug #1389).
7759         
7760         * bus/dispatch.c (check_double_hello_message): add a test case for
7761         the double hello message bug.
7762         (check_existent_service_activation): fix check of spawning error.
7763         
7764 2004-09-16  David Zeuthen  <david@fubar.dk>
7765
7766         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7767
7768 2004-09-12  David Zeuthen  <david@fubar.dk>
7769
7770         Patch from Kay Sievers <kay.sievers@vrfy.org>
7771
7772         * bus/bus.c (bus_context_new):
7773         * bus/bus.h:
7774         * bus/main.c (usage)
7775         (main):
7776         Add commandline option --nofork to override configuration file
7777         setting.
7778
7779 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7780
7781         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7782         compilers don't like it (bug #974).
7783
7784 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7785
7786         * qt/connection.*: Applied patch by Jérôme Lodewyck
7787         <lodewyck@clipper.ens.fr> to integrate an existing
7788         connection into the Qt eventloop
7789
7790 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7791
7792         * mono/BusDriver.cs: Added.  This is a class for interacting with
7793         the org.freedesktop.DBus service.
7794
7795         * mono/Message.cs: Added a mechanism to expose the message that is
7796         currently being dispatched via the static Message.Current
7797         property.  Added Message.Sender and Message.Destination
7798         properties.
7799
7800         * mono/Handler.cs: Expose the dispatched message via
7801         Message.Current when handling method calls.
7802
7803         * mono/Service.cs: Expose the dispatched message via
7804         Message.Current when handling signal emissions.
7805         
7806         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7807         Connection.BaseService property.
7808
7809 2004-08-28  Havoc Pennington  <hp@redhat.com>
7810
7811         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7812
7813         More fixes from Steve Grubb
7814         
7815         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7816         (_dbus_listen_tcp_socket): fix fd leak
7817
7818         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7819         EINTR to a bit lower in the code
7820
7821 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7822
7823         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7824         TRUE if we are inquiring about the existence of the built-in
7825         org.freedesktop.DBus service.
7826
7827 2004-08-25  John Palmieri  <johnp@redhat.com>
7828         * bus/config-parser.c:
7829         (struct PolicyType): Add POLICY_CONSOLE
7830         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7831         (start_busconfig_child): Sets up console element when
7832         <policy at_console=""> is encountered in a policy file
7833         (append_rule_from_element): Convert console elements to console
7834         rules.
7835
7836         * bus/policy.c: 
7837         (bus_policy_create_client_policy): Add console rules to the client
7838         policy based on if the client is at the console
7839         (bus_policy_append_console_rule): New function for adding a
7840         console rule to a policy
7841         (bus_policy_merge): Handle console rule merging
7842
7843         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7844         where we check for console user files
7845         
7846         * dbus/dbus-sysdeps.c:
7847         (_dbus_file_exists): New function which checks if the given
7848         file exists
7849         (_dbus_user_at_console): New function which does the system
7850         specific process of checking if the user is at the console
7851
7852         * dbus/dbus-userdb.c:
7853         (_dbus_is_console_user): New function converts a UID to user name
7854         and then calls the system specific _dbus_user_at_console to 
7855         see if the user is at the console and therefor a console user
7856
7857 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7858
7859         * bus/config-parser.c (set_limit):
7860         * bus/dbus-daemon-1.1.in:
7861         * test/data/valid-config-files/many-rules.conf: set the
7862         max_match_rules_per_connection limt from the config file. 
7863
7864         * doc/busconfig.dtd: update the DTD.
7865
7866         * bus/driver.c: remove some unused variables.
7867
7868 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7869
7870         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7871         it's been replaced by dbus_g_bus_get
7872
7873 2004-08-23  Colin Walters  <walters@redhat.com>
7874
7875         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7876
7877         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7878
7879         * bus/selinux.c: Create a thread for policy reload notification.
7880         (bus_selinux_get_policy_root): Implement.
7881
7882         * bus/config-parser.c (start_busconfig_child)
7883         (bus_config_parser_content): Support SELinux-root relative
7884         inclusion.
7885
7886         * configure.in <HAVE_SELINUX>: Add -lpthread.
7887         
7888         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7889         (test_post_hook): Move memory checking into here.
7890         (test_pre_hook, test_post_hook): Move SELinux checks in
7891         here, but conditional on a DBUS_TEST_SELINUX environment
7892         variable.  Unfortunately we can't run the SELinux checks
7893         as a normal user, since they won't have any permissions
7894         for /selinux.  So this will have to be tested manually
7895         for now, until we have virtualization for most of
7896         libselinux.
7897         
7898 2004-08-23  Havoc Pennington  <hp@redhat.com>
7899
7900         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7901         drop supplementary groups, suggested by Steve Grubb
7902
7903 2004-08-20  Colin Walters  <walters@redhat.com>
7904
7905         * bus/config-parser.c (start_busconfig_child): Remove some unused
7906         variables.
7907         
7908         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7909         warning.
7910
7911 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7912
7913         * configure.in: If --enable-mono is passed in, if we can't find
7914         mono error out.
7915
7916         * mono/Makefile.am: Use /gacutil to install assemblies into the
7917         GAC and not /root.
7918
7919 2004-08-12  Havoc Pennington  <hp@redhat.com>
7920
7921         * NEWS: update for 0.22
7922
7923         * configure.in: release 0.22
7924
7925 2004-08-11  Colin Walters  <walters@redhat.com>
7926
7927         * tools/dbus-send.c (main, usage): Add --reply-timeout
7928         argument.
7929
7930 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7931
7932         * bus/bus.c (process_config_first_time_only): get rid of an unused
7933         DBusError that was causing a memoy leak (bug #989).
7934
7935         * dbus/dbus-keyring.c, dbus/dbus-message.c:
7936         fix compilation on Solaris/Forte C (bug #974)
7937
7938         * bus/main.c (main): plug two minuscule memleaks.
7939
7940 2004-08-10  Havoc Pennington  <hp@redhat.com>
7941
7942         * doc/dbus-tutorial.xml: add some more info on GLib bindings
7943
7944 2004-08-09  Havoc Pennington  <hp@redhat.com>
7945
7946         * COPYING: switch to Academic Free License version 2.1 instead of
7947         2.0, to resolve complaints about patent termination clause.
7948
7949 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
7950
7951         * README: added documentation for the --enable-python 
7952         configure switch.
7953
7954 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7955
7956         * bus/config-parser.c (bus_config_parser_new): fix an invalid
7957         _unref in the SELinux support.
7958
7959         * doc/busconfig.dtd: update DTD for SELinux support.
7960
7961         * bus/config-loader-libxml.c: fix error handler and parser
7962         initialisation/cleanup. OOM test now works with libxml2 HEAD.
7963
7964         * configure.in: remove the warning about libxml2.
7965
7966         * dbus/dbus-bus.c: silence doxygen warning.
7967
7968 2004-07-31  Colin Walters  <walters@redhat.com>
7969
7970         * configure.in: Move #error in SELinux check to its own line.
7971
7972 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7973
7974         * dbus/dbus-internals.h (_DBUS_SET_OOM):
7975         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
7976         dbus_error_set.
7977
7978         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
7979         broken by the change in the _SET_OOM macros.
7980
7981 2004-07-31  Colin Walters  <walters@redhat.com>
7982
7983         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
7984         BUS_SET_OOM.
7985
7986 2004-07-31  Colin Walters  <walters@redhat.com>
7987
7988         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
7989         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
7990         AC_MSG_CHECKING.
7991
7992 2004-07-24  Havoc Pennington  <hp@redhat.com>
7993
7994         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7995
7996         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
7997         functionality
7998
7999         * configure.in: add --enable-selinux
8000         
8001         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8002
8003         * bus/main.c (main): initialize and shut down selinux
8004
8005         * bus/connection.c: store SELinux ID on each connection, to avoid 
8006         repeated getting of the string context and converting it into 
8007         an ID
8008
8009         * bus/bus.c (bus_context_get_policy): new accessor, though it
8010         isn't used
8011         (bus_context_check_security_policy): check whether the security
8012         context of sender connection can send to the security context of
8013         recipient connection
8014
8015         * bus/config-parser.c: add parsing for <selinux> and <associate>
8016         
8017         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8018         implement dbus_connection_get_unix_fd()
8019
8020         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8021         function, used by the selinux stuff
8022         
8023 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8024
8025         * bus/config-loader-libxml.c: complete the implementation of
8026         libxml backend for config file loader. Doesn't work with full OOM
8027         test yet. 
8028         
8029         * configure.in: change error when selecting libxml into a warning.
8030         
8031         * test/data/invalid-config-files: add two non-well-formed XML
8032         files. 
8033         
8034         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8035         
8036         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8037         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8038         be necessary to read all the buffer. (bug #894)
8039
8040         * bus/activation.c (bus_activation_activate_service): fix a
8041         potential assertion failure (bug #896). Small optimization in the
8042         case of auto-activation messages.
8043
8044         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8045         add test case for byte-through-vararg bug (#901). patch by Kimmo
8046         Hämäläinen. 
8047
8048 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8049
8050         * python/dbus.py:
8051         * python/dbus_bindings.pyx.in:
8052         Add dbus.init_gthreads (), allow emit_signal to pass
8053         arguments to the signal.
8054         
8055 2004-07-24  Havoc Pennington  <hp@redhat.com>
8056
8057         * AUTHORS: add some people, not really comprehensively, let me
8058         know if I missed you
8059
8060 2004-07-24  Havoc Pennington  <hp@redhat.com>
8061
8062         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8063         Owen
8064
8065         * test/Makefile.am (DIST_SUBDIRS): here also
8066
8067 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8068
8069         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8070         breaking build on Solaris, reported by Farhad Saberi on the ML.
8071
8072         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8073         va_arg invocation to account for integer promotion in the case of
8074         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8075
8076         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8077         _dbus_list_get_first_link, not _dbus_list_get_first.
8078
8079         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8080
8081         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8082         handler functions so that the asserts in _dbus_object_subtree_unref
8083         do not fail.
8084
8085         * dbus/dbus-transport-unix.c (do_reading):
8086         _dbus_transport_queue_messages return value is of type
8087         dbus_bool_t, not DBusDispatchStatus.
8088         
8089 2004-07-19  David Zeuthen  <david@fubar.dk>
8090
8091         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8092
8093         * bus/dispatch.c:
8094         (check_get_connection_unix_user): Debug says GetProperty; but the
8095         method is called GetConnectionUnixUser
8096         (check_get_connection_unix_process_id): New function
8097         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8098         also call check_get_connection_unix_process_id()
8099         
8100         * bus/driver.c:
8101         (bus_driver_handle_get_connection_unix_process_id): New function,
8102         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8103         interface
8104         
8105         * dbus/dbus-auth.c:
8106         (handle_server_data_external_mech): Set pid from the credentials
8107         obtained from the socket
8108         
8109         * dbus/dbus-connection.c:
8110         (dbus_connection_get_unix_process_id): New function
8111         
8112         * dbus/dbus-connection.h: 
8113         Add prototype for dbus_connection_get_unix_process_id
8114         
8115         * dbus/dbus-transport.c:
8116         (_dbus_transport_get_unix_process_id): New function
8117         
8118         * dbus/dbus-transport.h:
8119         Add prototype for _dbus_transport_get_unix_process_id
8120         
8121 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8122
8123         * dbus/dbus-message.c: Message counter fix, patch by Christian
8124         Hammond <chipx86@gnupdate.org>
8125
8126 2004-07-18  Seth Nickell  <seth@gnome.org>
8127
8128         * python/dbus.py:
8129         * python/dbus_bindings.pyx.in:
8130         * python/tests/test-client.py:
8131
8132         Add dbus.ByteArray and dbus_bindings.ByteArray
8133         types so that byte streams can be passed back.
8134
8135         Give jdahlin the heaps of credit that are so
8136         rightfully his.
8137         
8138 2004-07-12  Seth Nickell  <seth@gnome.org>
8139
8140         * python/dbus.py:
8141
8142         Add message argument to the default object_method_handler
8143         function.
8144         
8145         * python/dbus_bindings.pyx.in:
8146
8147         Automatically return NIL when passed an empty list
8148         (we can't pass back a list since lists are typed
8149         and we don't have any idea what type the the client
8150         intended the list to be... :-( )
8151         
8152 2004-07-10  Seth Nickell  <seth@gnome.org>
8153
8154         * python/examples/Makefile.am:
8155
8156         Fix distcheck breakage caused by new examples.
8157
8158 2004-07-10  Seth Nickell  <seth@gnome.org>
8159
8160         * python/dbus.py:
8161
8162         Add "message" argument to service-side dbus.Object
8163         methods. This will break existing services written
8164         using the python bindings, but will allow extraction
8165         of all the message information (e.g. who its from).
8166
8167         Add improved "object oriented" signal handling/emission.
8168         
8169         * python/examples/example-service.py:
8170
8171         Nix this example.
8172         
8173         * python/examples/example-signal-emitter.py:
8174         * python/examples/example-signal-recipient.py:
8175
8176         Two new examples that show how to emit and receive
8177         signals using the new APIs.
8178         
8179         * python/examples/example-signals.py:
8180         * python/examples/gconf-proxy-service.py:
8181         * python/examples/gconf-proxy-service2.py:
8182
8183         Add "message" argument to service methods.
8184
8185 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8186
8187         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8188         * dbus/bus.c (dbus_bus_get_unix_user)
8189         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8190         method of org.freedesktop.DBus interface.
8191
8192         * bus/dispatch.c: test case
8193
8194 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8195
8196         * python/Makefile.am: switched include directory from glib/ to dbus/
8197         since dbus-glib.h moved
8198  
8199 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8200
8201         * configure.in: prevent building the gcj stuff and libxml loader
8202         since they are broken.
8203
8204 2004-06-20  Havoc Pennington  <hp@redhat.com>
8205
8206         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8207         codes from the dbus error names
8208         
8209         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8210         as dbus/dbus-glib.h and that breakage is now visible due to 
8211         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8212         
8213         * glib/dbus-glib.h: s/gproxy/g_proxy/
8214
8215         * dbus/dbus-shared.h: new header to hold stuff shared with
8216         binding APIs
8217         
8218         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8219         than dbus-errors.h
8220
8221         * glib/dbus-glib.h (dbus_set_g_error): move to
8222         dbus-glib-lowlevel.h
8223
8224         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8225         of stuff to enable this
8226
8227         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8228
8229         * a bunch of other changes with the same basic "separate glib 
8230         bindings from dbus.h" theme
8231         
8232 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8233
8234         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8235
8236         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8237
8238 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8239
8240         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8241         the reply value of the ServiceExists message.
8242
8243 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8244
8245         * python/dbus_bindings.pyx.in: No longer need to parse path
8246         elements and pass them as arrays of strings.  The C API now
8247         accepts plain path strings.
8248         (_build_parsed_path): removed 
8249
8250 2004-06-07  Havoc Pennington  <hp@redhat.com>
8251
8252         * doc/TODO: remove auto-activation item since it's done; sort
8253         items by importance/milestone
8254
8255 2004-06-07  Havoc Pennington  <hp@redhat.com>
8256
8257         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8258         random signature when using REQUIRED_FIELDS (this hack won't work
8259         in the long term)
8260
8261         * dbus/dbus-message.c: change the signature to be a header field,
8262         instead of message->signature special-case string. Incremental
8263         step forward. Then we can fix up code to send the signature in the
8264         message, then fix up code to validate said signature, then fix up
8265         code to not put the typecodes inline, etc.
8266         (load_one_message): don't make up the signature after the fact
8267         (decode_header_data): require signature field for the known
8268         message types
8269
8270         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8271
8272         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8273
8274 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8275
8276         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8277
8278         * mono/Handler.cs: Updated to follow new path argument for
8279         (un-)registering objects.
8280
8281         * mono/example/Makefile.am:
8282         * mono/Makefile.am:
8283         * configure.in: Bumped required version for mono and use new -pkg
8284         syntax for deps
8285
8286 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8287
8288         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8289         registration functions take the path argument as char* instead of
8290         char**.
8291
8292         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8293         split off the path decompostion part of
8294         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8295         warnings. 
8296
8297         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8298         
8299 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8300  
8301         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8302         machine approach.  A state is implemented as a function that
8303         handles incoming events as specified for that state.
8304         
8305         * doc/dbus-specification.xml: Update auth protocol state machine
8306         specification to match implementation.  Remove some leftover
8307         base64 examples.
8308
8309 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8310
8311         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8312         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8313         quiet doxygen.
8314
8315         * Doxyfile.in: remove deprecated options.
8316
8317         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8318         glib/test-thread.h, glib/test-thread-client.c,
8319         glib/test-thread-server.c, glib/test-profile.c,
8320         glib/test-dbus-glib.c: remove these unused files.
8321
8322 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8323
8324         * dbus/dbus-object-tree.c
8325         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8326         non-fallback handlers (bug #684).
8327         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8328         (find_subtree_recurse): report wether the returned subtree is an
8329         exact match or a "fallback" match higher up in the tree.
8330         (object_tree_test_iteration): update test case.
8331
8332 2004-06-01  Seth Nickell  <seth@gnome.org>
8333
8334         * python/dbus_bindings.pyx.in:
8335         * python/tests/test-client.py:
8336
8337         Round off basic type support. Add dicts (yay!), and 
8338         remaining array types.
8339
8340         Make MessageIter more general so it works for dicts too.
8341
8342         Mark all loop variables as C integers.
8343         
8344 2004-05-31  Havoc Pennington  <hp@redhat.com>
8345
8346         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8347         "in" before "out"
8348
8349         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8350
8351         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8352         option that runs the tests, and start filling in some code
8353         including for starters just dumping the interfaces to stdout
8354
8355         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8356
8357         * test/data/valid-introspection-files/lots-of-types.xml: test of
8358         an example introspection file
8359
8360         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8361         "node" (I think...)
8362
8363 2004-05-31  Seth Nickell  <seth@gnome.org>
8364
8365         * python/dbus_bindings.pyx.in:
8366         * python/tests/test-client.py:
8367
8368         Test Suite: 1
8369         Python Bindings: 0
8370
8371         Fix string array memory trashing bug... oops...
8372
8373 2004-05-30  Seth Nickell  <seth@gnome.org>
8374
8375         * python/dbus.py:
8376
8377         Add a nicer-but-less-flexible alternate API for handling 
8378         calls to virtual objects in dbus.ObjectTree.
8379
8380         Screw up the argument order to the dbus.Object constructor
8381         for consistency with dbus.ObjectTree (and to make dbus_methods
8382         optional for future extension)
8383         
8384         * python/examples/Makefile.am:
8385         * python/examples/gconf-proxy-service.py:
8386         * python/examples/gconf-proxy-service2.py:
8387
8388         Alternate implementation of gconf-proxy-service using the
8389         nicer dbus.ObjectTree API.
8390         
8391         * python/examples/example-service.py:
8392         * python/tests/test-server.py
8393
8394         Reverse the argument order to deal with dbus.Object constructor
8395         changes.
8396         
8397 2004-05-30  Seth Nickell  <seth@gnome.org>
8398
8399         * python/examples/example-client.py:
8400         * python/examples/example-service.py:
8401
8402         Take it back. Lists seem to work but they're broken
8403         in the test suite. Make the base examples use
8404         lists (works fine).
8405
8406 2004-05-30  Seth Nickell  <seth@gnome.org>
8407
8408         * python/dbus_bindings.pyx.in:
8409         * python/tests/test-client.py:
8410
8411         Add some more tests and fix errors that crop up.
8412         Unfortunately, currently it seems like marshalling
8413         and unmarshalling of lists is completely broken :-(
8414
8415 2004-05-30  Seth Nickell  <seth@gnome.org>
8416
8417         * python/dbus_bindings.pyx.in:
8418
8419         Add support for ObjectPath type.
8420
8421         * python/dbus.py:
8422
8423         Refactor message handling code to a common function.
8424         
8425         * python/tests/test-client.py:
8426         * python/tests/test-server.py:
8427
8428         Add tests that check to make sure values of all types
8429         can be echoed from a service w/o mangling.
8430         
8431 2004-05-29  Seth Nickell  <seth@gnome.org>
8432
8433         * python/dbus.py:
8434
8435         Add ObjectTree class which allows implementation
8436         of trees of "virtual" objects. Basically the python
8437         wrapper for "register_fallback".
8438         
8439         * python/examples/Makefile.am
8440         * python/examples/gconf-proxy-client.py:
8441         * python/examples/gconf-proxy-service.py:
8442
8443         Implement a simple GConf proxy service that supports
8444         get/set on string and int GConf keys using the ObjectTree.
8445         
8446 2004-05-29  Seth Nickell  <seth@gnome.org>
8447
8448         * python/dbus.py:
8449         * python/examples/example-client.py:
8450         * python/examples/example-service.py:
8451         * python/examples/list-system-services.py:
8452
8453         Add SessionBus, SystemBus and ActivationBus classes
8454         so you don't need to know the special little BUS_TYPE
8455         flag.
8456         
8457 2004-05-29  Havoc Pennington  <hp@redhat.com>
8458
8459         * bus/config-parser.c (process_test_valid_subdir): temporarily
8460         stop testing config parser OOM handling, since expat has issues
8461         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8462
8463         * bus/dbus-daemon-1.1.in: change requested_reply to
8464         send_requested_reply/receive_requested_reply so we can send the
8465         replies, not just receive them.
8466
8467         * bus/config-parser.c: parse the new
8468         send_requested_reply/receive_requested_reply
8469
8470         * bus/policy.c (bus_client_policy_check_can_send): add
8471         requested_reply argument and use it
8472
8473         * bus/bus.c (bus_context_check_security_policy): pass through
8474         requested_reply status to message send check
8475
8476         * bus/system.conf.in: adapt to requested_reply change
8477         
8478 2004-05-28  Havoc Pennington  <hp@redhat.com>
8479
8480         * test/glib/test-service-glib.c (main): remove unused variable
8481
8482         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8483
8484         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8485         from the enum, no longer in use.
8486
8487         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8488         works right.
8489
8490         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8491         whether error_name passed in is a valid error name.
8492
8493 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8494
8495         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8496         OBJECT_PATH and OBJECT_PATH_ARRAY
8497
8498 2004-05-28  Seth Nickell  <seth@gnome.org>
8499
8500         * python/examples/Makefile.am:
8501
8502         Forget to add Makefile.am. Do not pass go.
8503
8504 2004-05-28  Michael Meeks  <michael@ximian.com>
8505
8506         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8507         fix no int64 case.
8508
8509         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8510
8511         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8512         (_dbus_message_iter_get_basic_type_array): impl.
8513         drastically simplify ~all relevant _get methods to use these.
8514         (_dbus_message_iter_append_basic_array),
8515         (dbus_message_iter_append_basic): impl
8516         drastically simplify ~all relevant _append methods to use these.
8517
8518         * dbus/dbus-message-builder.c (parse_basic_type) 
8519         (parse_basic_array, lookup_basic_type): impl.
8520         (_dbus_message_data_load): prune scads of duplicate /
8521         cut & paste coding.
8522
8523         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8524         (_dbus_demarshal_basic_type): implement,
8525         (demarshal_and_validate_len/arg): beef up debug.
8526         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8527
8528 2004-05-27  Seth Nickell  <seth@gnome.org>
8529
8530         * configure.in:
8531         * python/Makefile.am:
8532
8533         Include the example python apps in the tarball.
8534         
8535         * python/examples/list-system-services.py
8536
8537         Add a python new example that fetches the list of services
8538         from the system bus.
8539         
8540 2004-05-27  Seth Nickell  <seth@gnome.org>
8541
8542         * python/dbus.py:
8543         * python/dbus_bindings.pyx.in:
8544
8545         Fix failure to notify that a signal was not handled,
8546         resulted in hung functions.
8547         
8548 2004-05-25  Colin Walters  <walters@redhat.com>
8549
8550         * tools/dbus-monitor.c (main): Monitor all types of messages.
8551
8552 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8553
8554         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8555         which unregisters the object path and disposes the handler.
8556
8557 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8558  
8559         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8560          
8561         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8562         operands to && so we call dbus_message_iter_next () for the last
8563         argument also.
8564
8565 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8566
8567         * dbus/dbus-object-tree.c
8568         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8569         children even if the requested path isn't registered.
8570         (object_tree_test_iteration): test object_tree_list_registered.
8571
8572         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8573         it to 0.
8574         
8575 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8576
8577         * doc/TODO: Remove resolved items.
8578
8579         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8580         field.
8581         
8582         * bus/connection.c (bus_connections_expect_reply): Enforce the
8583         per-connection limit on pending replies.
8584         
8585         Patch from Jon Trowbridge <trow@ximian.com>:
8586  
8587         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8588         up a watch that triggers a config reload when one end of the pipe
8589         becomes readable.
8590         (signal_handler): Instead of doing the config reload in our SIGHUP
8591         handler, just write to the reload pipe and let the associated
8592         watch handle the reload when control returns to the main loop.
8593  
8594         * bus/driver.c (bus_driver_handle_reload_config): Added.
8595         Implements a ReloadConfig method for requesting a configuration
8596         file reload via the bus driver.
8597  
8598 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8599
8600         * HACKING: Updated release instructions concerning the wiki page.
8601
8602 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8603
8604         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8605         filter against auth->allowed_mechs; we only add allowed mechs in
8606         record_mechanisms().
8607  
8608         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8609         ALLOWED_MECHS to auth-script format so we can set the list of
8610         allowed mechanisms.
8611  
8612         * data/auth/client-out-of-mechanisms.auth-script: New test to
8613         check client disconnects when it is out of mechanisms to try.
8614  
8615         * dbus/dbus-auth.c (process_command): Remove check for lines
8616         longer that 1 MB; we only buffer up maximum 16 kB.
8617  
8618         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8619         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8620         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8621         assume there might be unused bytes.
8622  
8623         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8624         client-out-of-mechs, it is handled in process_reject(). Move check
8625         for max failures to send_rejected(), as it's a server-only thing.
8626
8627         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8628         send_auth(), send_data(), send_rejected(), send_error(),
8629         send_ok(), send_begin() and send_cancel().
8630
8631 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8632
8633         Remove base64 encoding, replace with hex encoding. Original patch
8634         from trow@ximian.com, added error handling.
8635
8636         * dbus/dbus-string.c (_dbus_string_base64_encode)
8637         (_dbus_string_base64_decode): Remove.
8638         (_dbus_string_hex_decode): Add end_return argument so we can
8639         distinguish between OOM and invalid hex encoding.
8640         (_dbus_string_test): Remove base64 tests and add test case for
8641         invalid hex.
8642
8643         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8644         Replace base64 with hex.
8645
8646         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8647         for invalid hex encoded data in auth protocol.
8648
8649 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8650
8651         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8652         leak.
8653
8654 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8655
8656         * mono/dbus-sharp.dll.config.in: Added for GAC
8657         * mono/dbus-sharp.snk: Added for GAC
8658         * mono/Assembly.cs.in: Added for GAC
8659         * mono/Makefile.am: Changes for GAC installation        
8660         * configure.in: Added refs for dbus-sharp.dll.config.in and
8661         Assembly.cs.in. More fixes for mono testing
8662         * mono/example/Makefile.am: Changed var to CSC
8663         * Makefile.am: Changed flag name to DBUS_USE_CSC
8664
8665 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8666
8667         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8668         * mono/doc/*: Added documentation framework
8669         * configure.in: Added monodoc check
8670         * README: Added description of mono configure flags
8671
8672 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8673
8674         * doc/dbus-specification.xml: Added a "Required" column to the 
8675         header fields table and changed the "zero or more" verbage in
8676         the above paragraph to read "The header must contain the required 
8677         named header fields and zero or more of the optional named header 
8678         fields".
8679         * test/data/invalid-messages/*.message: Added the required PATH 
8680         named header field to the tests so that they don't fail on 
8681         'Missing path field'
8682
8683 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8684
8685         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8686         the stack by implicitly defining variable and parameter types and
8687         removing the hack of defining C pointers as python objects and later
8688         casting them.
8689
8690 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8691
8692         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8693
8694 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8695
8696         * mono/DBusType/Dict.cs: Handle empty dicts
8697         * mono/DBusType/Array.cs: Handle empty arrays
8698         * mono/Arguments.cs: Handle empty arguments
8699
8700 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8701
8702         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8703         field
8704
8705 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8706
8707         * test/data/valid-messages/standard-*.message: Update message
8708         test scripts to new header field names.
8709
8710 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8711
8712         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8713         overflow to times_we_did_each_thing array which would chop off the
8714         first character of the failure_dir string. Increased the size of
8715         the array to 7 to reflect the number of random mutation functions
8716         we have.
8717
8718 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8719
8720         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8721         unix_server->watch here, it is unreffed in disconnect.
8722         (_dbus_server_new_for_tcp_socket): convert NULL host to
8723         "localhost" here so we don't append NULL to address.
8724         
8725         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8726         various addresses, including tcp with no explicit host.
8727
8728 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8729
8730         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8731         fix incorrect setting of .name_offset in the HeaderField (it was
8732         off by two bytes, positioned right after the name and typecode)
8733
8734         * bus/bus.c (bus_context_new, bus_context_unref): test before
8735         calling dbus_server_free_data_slot and _dbus_user_database_unref
8736         in case of an error.
8737
8738         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8739         by libdbus-gtool.
8740
8741 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8742
8743         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8744         _dbus_poll() instead of select().
8745
8746 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8747
8748         * bus/main.c (signal_handler): Reload the configuration files
8749         on SIGHUP.
8750         (main): Set up our SIGHUP handler.
8751
8752         * bus/bus.c (struct BusContext): Store the config file, user and
8753         fork flag in the BusContext.
8754         (process_config_first_time_only): Added.  Contains the code
8755         (previously in bus_context_new) for setting up the BusContext from
8756         the BusConfigParser that should only be run the first time the
8757         config files are read.
8758         (process_config_every_time): Added.  Contains the code (previously
8759         in bus_context_new) for setting up the BusContext from the
8760         BusConfigParser that should be run every time the config files are
8761         read.
8762         (load_config): Added.  Builds a BusConfigParser from the config
8763         files and passes the resulting structure off to
8764         process_config_first_time_only (assuming this is the first time)
8765         and process_config_every_time.
8766         (bus_context_new): All of the config-related code has been moved
8767         to process_config_first_time_only and process_config_every_time.
8768         Now this function just does the non-config-related initializations
8769         and calls load_config.
8770         (bus_context_reload_config): Added.
8771
8772 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8773
8774         * bus/driver.c (bus_driver_handle_get_service_owner):
8775         implement a GetServiceOwner method.
8776         * doc/dbus-specification.xml: document it.
8777         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8778         
8779         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8780         implement, using the bus GetServiceOwner method.
8781
8782         * test/glib/test-dbus-glib.c:
8783         use dbus_gproxy_new_for_service_owner so that we can receive the
8784         signal. 
8785
8786 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8787
8788         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8789         dbus/dbus-message.c, dbus/dbus-protocol.h
8790         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8791
8792         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8793         dbus/dbus-message.c, dbus/dbus-protocol.h
8794         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8795
8796         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8797         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8798         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8799
8800         * doc/dbus-specification.xml (Header Fields Table):
8801         s/SERVICE/DESTINATION
8802         s/SENDER_SERVICE/SENDER
8803
8804
8805 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8806
8807         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8808         a few seconds.
8809
8810 2004-04-13  Michael Meeks  <michael@ximian.com>
8811
8812         * glib/dbus-gobject.c (handle_introspect): split out
8813         (introspect_properties): this.
8814         (handle_introspect): implement this.
8815
8816         * test/glib/Makefile.am: use the absolute path so the bus
8817         daemon's chdir ("/") doesn't kill us dead.
8818
8819         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8820
8821 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8822
8823         * bus/config-parser.c (struct BusConfigParser): Added
8824         included_files field.
8825         (seen_include): Added.  Checks whether or not a file has already
8826         been included by any parent BusConfigParser.
8827         (bus_config_parser_new): Copy the parent's included_files.
8828         (include_file): Track which files have been included, and fail on
8829         circular inclusions.
8830         (process_test_valid_subdir): Changed printf to report if we are
8831         testing valid or invalid conf files.
8832         (all_are_equiv): Changed printf to be a bit clearer about
8833         what we are actually doing.
8834         (bus_config_parser_test): Test invalid configuration files.
8835
8836 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8837
8838         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8839         argument.  If non-null, the newly-constructed BusConfigParser will
8840         be initialized with the parent's BusLimits instead of the default
8841         values.
8842         (include_file): When including a config file, pass in
8843         the current parser as the parent and then copy the BusLimits
8844         from the included BusConfigParser pack to the current parser.
8845         (process_test_valid_subdir): Renamed from process_test_subdir.
8846         (process_test_equiv_subdir): Added.  Walks through a directory,
8847         descending into each subdirectory and loading the config files
8848         it finds there.  If any subdirectory contains two config files
8849         that don't produce identical BusConfigParser structs, fail.
8850         For now, the BusConfigParser's BusPolicies are not compared.
8851         (bus_config_parser_test): Call both process_test_valid_subdir and
8852         process_test_equiv_subdir.
8853
8854         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8855         argument and pass it along to the call to bus_config_parser_new.
8856         Also made a few small changes to allow this code to compile.
8857
8858         * bus/config-loader-expat.c (bus_config_load): Take a parent
8859         argument and pass it along to the call to bus_config_parser_new.
8860
8861         * bus/bus.c (bus_context_new): Load the config file
8862         with a NULL parent argument.
8863
8864 2004-03-29  Michael Meeks  <michael@ximian.com>
8865
8866         * glib/dbus-gobject.c (introspect_properties): split
8867         out, fix mangled 'while' flow control.
8868         (introspect_signals): implement.
8869         (handle_introspect): update.
8870
8871 2004-03-29  Michael Meeks  <michael@ximian.com>
8872
8873         * glib/dbus-gobject.c (set_object_property): split out / 
8874         re-work, use the property type, and not the message type(!)
8875         (get_object_property): ditto.
8876
8877         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8878         (dbus_gvalue_marshal): make this code re-usable, needed
8879         for signals too, also on both proxy and server side.
8880         Re-write for more efficiency / readability.
8881
8882 2004-03-29  Michael Meeks  <michael@ximian.com>
8883
8884         * dbus/dbus-message.c
8885         (dbus_message_new_error_printf): impl.
8886
8887         * dbus/dbus-connection.c
8888         (dbus_connection_unregister_object_path): fix warning.
8889
8890         * configure.in: fix no-mono-installed situation.
8891
8892 2004-03-27  Havoc Pennington  <hp@redhat.com>
8893
8894         Patch from Timo Teräs:
8895         
8896         * tools/dbus-send.c (main): if --print-reply, assume type is
8897         method call; support boolean type args
8898         
8899         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8900         bunch of memleak and logic bugs
8901         
8902 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8903
8904         * mono/Arguments.cs:
8905         * mono/Introspector.cs:
8906         * mono/Handler.cs:
8907         * mono/InterfaceProxy.cs:
8908         * mono/Message.cs
8909         * mono/ProxyBuilder.cs:
8910         * mono/Service.cs:
8911         Added InterfaceProxy class to avoid building proxies for every
8912         object.
8913
8914         * dbus-message.h:
8915         * dbus-message.c (dbus_message_append_args_valist)
8916         (dbus_message_iter_get_object_path)
8917         (dbus_message_iter_get_object_path_array)
8918         (dbus_message_iter_append_object_path)
8919         (dbus_message_iter_append_object_path_array):
8920         Added object_path iter functions to handle OBJECT_PATH arguments
8921         
8922 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8923
8924         First checkin of mono bindings.
8925         * configure.in:
8926         * Makefile.am:
8927         Build stuff for the bindings
8928         * dbus-sharp.pc.in: Added for pkgconfig
8929         
8930 2004-03-21  Havoc Pennington  <hp@redhat.com>
8931
8932         * test/test-service.c (main): remove debug spew
8933
8934 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8935
8936         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
8937         arrays
8938
8939         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
8940         (dbus_message_iter_init_array_iterator)
8941         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
8942         indicate whether the iterator is empty
8943
8944         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
8945         warnings
8946
8947 2004-03-19  Havoc Pennington  <hp@redhat.com>
8948
8949         * NEWS: 0.21 updates
8950
8951         * configure.in: 0.21
8952
8953         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
8954         
8955         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
8956         you don't need pyrex to make dist
8957
8958         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
8959         sources; run moc
8960         
8961 2004-03-18  Richard Hult  <richard@imendio.com>
8962
8963         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
8964         (dbus_message_set_auto_activation): Add doxygen docs.
8965
8966 2004-03-16  Richard Hult  <richard@imendio.com>
8967
8968         * bus/activation.c: (bus_activation_service_created),
8969         (bus_activation_send_pending_auto_activation_messages),
8970         (bus_activation_activate_service):
8971         * bus/activation.h:
8972         * bus/dispatch.c: (bus_dispatch),
8973         (check_nonexistent_service_auto_activation),
8974         (check_service_auto_activated),
8975         (check_segfault_service_auto_activation),
8976         (check_existent_service_auto_activation), (bus_dispatch_test):
8977         * bus/driver.c: (bus_driver_handle_activate_service):
8978         * bus/services.c: (bus_registry_acquire_service):
8979         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
8980         (dbus_message_get_auto_activation):
8981         * dbus/dbus-message.h:
8982         * dbus/dbus-protocol.h: Implement auto-activation.
8983         
8984         * doc/dbus-specification.xml: Add auto-activation to the spec.
8985
8986 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8987
8988         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
8989         fix a bug with CUSTOM types.
8990
8991         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
8992         a unit test for this bug (used to fail).
8993
8994 2004-03-12  Mikael Hallendal  <micke@imendio.com>
8995
8996         * bus/activation.c:
8997         (babysitter_watch_callback): notify all pending activations waiting for
8998           the same exec that the activation failed.
8999         (bus_activation_activate_service): shortcut the activation if we 
9000           already waiting for the same executable to start up.
9001
9002 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9003
9004         * bus/activation.c: 
9005         - Added service file reloading. 
9006           Each service files directory is kept in an hash table in 
9007           BusActivation and each BusActivationEntry knows what .service-file it
9008           was read from. So when you try to activate a service the bus will 
9009           check if it's been updated, removed or if new .service-files has 
9010           been installed.
9011         - Test code at the bottom for the service file reloading.
9012         * bus/test-main.c: (main):
9013         * bus/test.h:
9014         - added service reloading test.
9015         * dbus/dbus-sysdeps.c: 
9016         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9017
9018 2004-03-08  Michael Meeks  <michael@ximian.com>
9019
9020         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9021         bail immediately if disconnected, to avoid busy loop.
9022
9023         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9024         cleanup cut/paste/inefficiency.
9025
9026 2004-03-01  David Zeuthen  <david@fubar.dk>
9027
9028         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9029         bug where args were used twice. This bug resulted in a segfault
9030         on a Debian/PPC system when starting the messagebus daemon. Include
9031         dbus-sysdeps.h for DBUS_VA_COPY
9032
9033         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9034
9035         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9036         appropriate va_copy implementation. From GLib
9037         
9038 2004-02-24  Joe Shaw  <joe@ximian.com>
9039
9040         * bus/services.c (bus_registry_acquire_service): We need to pass
9041         in the service name to dbus_set_error() to prevent a crash.
9042
9043 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9044
9045         * AUTHORS: Reveal my True identity.
9046
9047 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9048
9049         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9050         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9051
9052 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9053
9054         * doc/TODO: Added not about better error check of configuration files.
9055
9056 2003-12-02  Richard Hult  <richard@imendio.com>
9057
9058         * Update AFL version to 2.0 throughout the source files to reflect
9059         the update that was done a while ago.
9060
9061 2003-12-02  Richard Hult  <richard@imendio.com>
9062
9063         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9064         wrote_dict_key to FALSE on the iter that the dict is appended to,
9065         just like when appending other types. Fixes a bug where a dict
9066         couldn't be put inside a dict.
9067         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9068         (message_iter_test, _dbus_message_test): Add test case for dict
9069         inside dict.
9070
9071 2003-12-01  David Zeuthen  <david@fubar.dk>
9072
9073         * python/dbus.py: Add the actual message when calling the reciever
9074         of a signal such that parameters can be inspected. Add the method
9075         remove_signal_receiver
9076         
9077 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9078
9079         * bus/*.[ch]:
9080         * dbus/*.[ch]:
9081         * glib/*.[ch]: Made ref functions return the pointer
9082
9083 2003-11-25  Zack Rusin  <zack@kde.org>
9084
9085         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9086
9087         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9088         wrappers,
9089
9090         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9091         the Integrator and to better fit with the server,
9092
9093 2003-11-24  Zack Rusin  <zack@kde.org>
9094
9095         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9096         the integrator handles it now
9097
9098         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9099         since QTimer wasn't really meant to be used the way DBusTimeout is
9100
9101 2003-11-24  Zack Rusin  <zack@kde.org>
9102
9103         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9104         Integrator class which integrates D-BUS with the Qt event loop,
9105
9106         * qt/connection.h, qt/connection.cpp: Move all the code which
9107         was dealing with D-BUS integration to the Integrator class,
9108         and start using Integrator,
9109
9110 2003-11-23  Zack Rusin  <zack@kde.org>
9111
9112         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9113         wrapper
9114
9115         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9116         switching namespaces to DBusQt, reworking the class,
9117
9118         * Makefile.cvs: switching dependencies so that it matches KDE 
9119         schematics,
9120         
9121         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9122         the library
9123
9124 2003-11-19  Havoc Pennington  <hp@redhat.com>
9125
9126         * NEWS: update
9127
9128         * configure.in: bump version to 0.20
9129
9130         * configure.in (have_qt): add yet another place to look for qt
9131         (someone hand trolltech a .pc file...)
9132
9133 2003-11-01  Havoc Pennington  <hp@redhat.com>
9134
9135         * doc/dbus-specification.xml: add state machine docs on the auth
9136         protocol; just a first draft, I'm sure it's wrong.      
9137
9138 2003-10-28  David Zeuthen  <david@fubar.dk>
9139
9140         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9141         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9142         
9143 2003-10-28  Havoc Pennington  <hp@redhat.com>
9144
9145         * dbus/dbus-message.c (get_next_field): delete unused function
9146
9147 2003-10-28  Havoc Pennington  <hp@redhat.com>
9148
9149         * bus/expirelist.c (do_expiration_with_current_time): detect
9150         failure of the expire_func due to OOM
9151
9152         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9153
9154         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9155         NoReply error that's now created by the bus when the service exits
9156
9157 2003-10-28  Havoc Pennington  <hp@redhat.com>
9158
9159         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9160         tests for set_path, set_interface, set_member, etc.
9161
9162         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9163
9164         * dbus/dbus-message.c (set_string_field): always just delete and
9165         re-append the field; accept NULL for deletion
9166         (re_align_fields_recurse): reimplement
9167         
9168 2003-10-26  Havoc Pennington  <hp@redhat.com>
9169
9170         * dbus/dbus-connection.c: fix docs to properly describe the
9171         disconnected message
9172         (_dbus_connection_notify_disconnected): remove this function; 
9173         we can't synchronously add the disconnected message, we have to 
9174         do it after we've queued any remaining real messages
9175         (_dbus_connection_get_dispatch_status_unlocked): queue the
9176         disconnect message only if the transport has finished queueing all
9177         its real messages and is disconnected.
9178         (dbus_connection_disconnect): update the dispatch status here
9179
9180 2003-10-22  Havoc Pennington  <hp@redhat.com>
9181
9182         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9183
9184         * bus/connection.c (bus_transaction_send_from_driver): set the
9185         destination to the connection's base service
9186
9187 2003-10-20  Havoc Pennington  <hp@redhat.com>
9188
9189         hmm, make check is currently not passing.
9190         
9191         * doc/dbus-specification.xml: add requirement that custom type
9192         names follow the same rules as interface names.
9193
9194         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9195         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9196         'map'
9197
9198         * doc/dbus-specification.xml: update type codes to match
9199         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9200         CUSTOM. Add type OBJECT_PATH to the spec.
9201
9202 2003-10-17  Havoc Pennington  <hp@redhat.com>
9203
9204         * bus/driver.c (create_unique_client_name): use "." as separator
9205         in base service names instead of '-'
9206
9207         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9208         byte at the end of the string
9209
9210         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9211         optimization macros since string validation seems to be a slow
9212         point.
9213         
9214         * doc/dbus-specification.xml: restrict valid
9215         service/interface/member/error names. Add test suite code for the
9216         name validation.
9217
9218         * dbus/dbus-string.c: limit service/interface/member/error names 
9219         to [0-9][A-Z][a-z]_
9220
9221         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9222         format arg to verbose spew
9223
9224         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9225         memory, return instead of g_error
9226
9227         * test/test-service.c (path_message_func): support emitting a
9228         signal on request
9229
9230         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9231         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9232         assuming the activation bus was the session bus so that services
9233         started manually will still register.
9234         (init_connections_unlocked): fix so that in OOM situation we get
9235         the same semantics when retrying the function
9236         
9237         * test/test-service.c (main): change to use path registration, to
9238         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9239         than DBUS_BUS_SESSION
9240
9241 2003-10-16  Havoc Pennington  <hp@redhat.com>
9242
9243         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9244
9245         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9246         coverage of the tests
9247         (coverage-report.txt): don't move the .da and .bbg files around
9248
9249 2003-10-16  Havoc Pennington  <hp@redhat.com>
9250
9251         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9252         to put there
9253
9254 2003-10-16  Havoc Pennington  <hp@redhat.com>
9255
9256         * bus/connection.c (bus_pending_reply_expired): either cancel or
9257         execute, not both
9258         (bus_connections_check_reply): use unlink, not remove_link, as we
9259         don't want to free the link; fixes double free mess
9260
9261         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9262         where no reply was received
9263
9264         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9265         fix a refcount leak
9266
9267         * bus/signals.c (match_rule_matches): add special cases for the
9268         bus driver, so you can match on sender/destination for it.
9269
9270         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9271         DBUS_PRINT_BACKTRACE is set
9272
9273         * dbus/dbus-internals.c: add pid to assertion failure messages
9274
9275         * dbus/dbus-connection.c: add message type code to the debug spew
9276
9277         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9278         sender=foo not service=foo
9279
9280         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9281         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9282         DBUS_ACTIVATION_ADDRESS instead
9283
9284         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9285         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9286
9287         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9288         context struct
9289
9290         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9291         (dbus_message_iter_get_object_path_array): new function (half
9292         finished, disabled for the moment)
9293         
9294         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9295         DBUS_MESSAGE_TYPE_ERROR
9296
9297         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9298         avoid redirecting stderr to /dev/null
9299         (babysit): close stdin if not doing the "exit_with_session" thing
9300
9301         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9302         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9303         stdout/stdin, so things don't get confused
9304         
9305         * bus/system.conf.in: fix to allow replies, I modified .conf
9306         instead of .conf.in again.
9307
9308 2003-10-14  David Zeuthen  <david@fubar.dk>
9309
9310         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9311         argtype to arg_type when raising unknown arg type exception.
9312         Changed type list to reflect the changes in dbus-protocol.h so 
9313         the bindings actually work.
9314
9315 2003-10-14  Havoc Pennington  <hp@redhat.com>
9316
9317         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9318         to have a bug keeping it from outputting the .da files sometimes
9319         (string_get_string): don't append garbage nul bytes to the string.
9320
9321 2003-10-15  Seth Nickell  <seth@gnome.org>
9322
9323         * python/Makefile.am:
9324
9325         Include dbus_h_wrapper.h in the dist tarball.
9326
9327 2003-10-14  Havoc Pennington  <hp@redhat.com>
9328
9329         * bus/bus.c (bus_context_check_security_policy): revamp this to
9330         work more sanely with new policy-based requested reply setup
9331
9332         * bus/connection.c (bus_transaction_send_from_driver): set bus
9333         driver messages as no reply
9334
9335         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9336         requested_reply attribute on allow/deny rules
9337
9338         * bus/system.conf: add <allow requested_reply="true"/>
9339
9340         * bus/driver.c (bus_driver_handle_message): fix check for replies
9341         sent to the bus driver, which was backward. How did this ever work
9342         at all though? I think I'm missing something.
9343
9344         * dbus/dbus-message.c (decode_header_data): require error and
9345         method return messages to have a reply serial field to be valid
9346         (_dbus_message_loader_queue_messages): break up this function;
9347         validate that reply serial and plain serial are nonzero; 
9348         clean up the OOM/error handling.
9349         (get_uint_field): don't return -1 from this
9350         (dbus_message_create_header): fix signed/unsigned bug
9351
9352         * bus/connection.c (bus_connections_expect_reply): save serial of
9353         the incoming message, not reply serial
9354
9355 2003-10-14  Havoc Pennington  <hp@redhat.com>
9356
9357         * bus/connection.c: implement pending reply tracking using
9358         BusExpireList
9359
9360         * bus/bus.c (bus_context_check_security_policy): verify that a
9361         reply is pending in order to allow a reply to be sent. Deny 
9362         messages of unknown type.
9363
9364         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9365
9366         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9367         (bus_context_get_reply_timeout): new
9368
9369 2003-10-13  Seth Nickell  <seth@gnome.org>
9370
9371         * python/Makefile.am:
9372
9373         Pass "make distcheck": remove a couple files from DIST_FILES
9374         that weren't included in the final version.
9375
9376 2003-10-12  Havoc Pennington  <hp@pobox.com>
9377
9378         Added test code that 1) starts an actual bus daemon and 2) uses
9379         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9380         more testing possible, but this is the basic framework.
9381         
9382         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9383         empty proxy lists from the proxy list hash
9384
9385         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9386         couple of return_if_fail checks
9387
9388         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9389         to allocate, so everything is cleared to NULL as it should be.
9390
9391         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9392         source as data to dbus_connection_set_timeout_functions() as the 
9393         timeout functions expected
9394
9395         * test/glib/run-test.sh: add a little script to start up a message
9396         bus and run tests using it
9397
9398         * tools/dbus-launch.1: updates
9399
9400         * tools/dbus-launch.c (main): add --config-file option
9401
9402         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9403         that could never be reached.
9404
9405         * dbus/dbus-message.c (dbus_message_new_method_return) 
9406         (dbus_message_new_error, dbus_message_new_signal): set the
9407         no-reply-expected flag on all these. Redundant, but may
9408         as well be consistent.
9409
9410 2003-10-11  Havoc Pennington  <hp@pobox.com>
9411
9412         * test/decode-gcov.c (function_solve_graph): make broken block
9413         graph a nonfatal error since it seems to be broken. Need to debug
9414         this.
9415
9416         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9417         can't just check type > INVALID < LAST anymore
9418
9419         * dbus/dbus-message.c (dbus_message_get_signature): new function
9420         (dbus_message_has_signature): new function
9421         (struct DBusMessage): add signature field (right now it isn't sent
9422         over the wire, just generated on the fly)
9423         (dbus_message_copy): copy the signature, and init strings to
9424         proper length to avoid some reallocs
9425         (dbus_message_iter_init_array_iterator): return void, since it
9426         can't fail
9427         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9428         (_dbus_message_loader_queue_messages): add silly temporary hack to
9429         fill in message->signature on load
9430
9431         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9432         characters, so they are relatively human-readable.
9433
9434 2003-10-11  Havoc Pennington  <hp@pobox.com>
9435
9436         * dbus/dbus-message.c (_dbus_message_test): add more test
9437         coverage, but #if 0 for now since they uncover a bug 
9438         not fixed yet; I think in re_align_field_recurse()
9439         (re_align_field_recurse): add FIXME about broken assertion
9440
9441         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9442
9443         * bus/connection.c: share a couple code bits with expirelist.c
9444
9445         * bus/expirelist.h, bus/expirelist.c: implement a generic
9446         expire-items-after-N-seconds facility, was going to share between
9447         expiring connections and replies, decided not to use for expiring
9448         connections for now.
9449
9450         * COPYING: include AFL 2.0 (still need to change all the file headers)
9451
9452 2003-10-09  Havoc Pennington  <hp@redhat.com>
9453
9454         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9455         gcc 3.3. Not that we do anything about it yet.
9456
9457         * bus/signals.c (bus_match_rule_parse): impose max length on the
9458         match rule text
9459
9460         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9461
9462 2003-10-09  Havoc Pennington  <hp@redhat.com>
9463
9464         Make matching rules theoretically work (add parser).
9465         
9466         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9467         the case where destination is explicitly specified as bus driver
9468         and someone else is eavesdropping.
9469         
9470         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9471         definition of eavesdropping and assertion
9472
9473         * tools/dbus-send.c (main): use dbus_message_type_from_string
9474
9475         * bus/signals.c (bus_match_rule_parse): implement
9476
9477         * dbus/dbus-message.c (dbus_message_type_from_string): new
9478
9479         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9480
9481 2003-10-02  Havoc Pennington  <hp@pobox.com>
9482
9483         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9484         dbus_gproxy_oneway_call
9485
9486         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9487         (dbus_server_setup_with_g_main): fix to allow calling them more
9488         than once on the same args
9489         (dbus_bus_get_with_g_main): new function
9490
9491 2003-10-02  Havoc Pennington  <hp@redhat.com>
9492
9493         * doc/dbus-tutorial.xml: write some stuff
9494
9495 2003-09-29  Havoc Pennington  <hp@pobox.com>
9496
9497         * configure.in: split checks for Doxygen from XML docs, check for
9498         xmlto
9499
9500         * doc/Makefile.am: XML-ify all the docs, and add a blank
9501         dbus-tutorial.xml
9502
9503 2003-09-29  Havoc Pennington  <hp@pobox.com>
9504
9505         * Merge dbus-object-names branch. To see the entire patch 
9506         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9507         it's huuuuge though.
9508         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9509         
9510 2003-09-28  Havoc Pennington  <hp@pobox.com>
9511
9512         * HACKING: update to reflect new server
9513
9514 2003-09-26  Seth Nickell  <seth@gnome.org>
9515
9516         * python/dbus.py:
9517         * python/examples/example-signals.py:
9518
9519         Start implementing some notions of signals. The API
9520         is really terrible, but they sort of work (with the
9521         exception of being able to filter by service, and to
9522         transmit signals *as* a particular service). Need to
9523         figure out how to make messages come from the service
9524         we registered :-(
9525         
9526         * python/dbus_bindings.pyx.in:
9527
9528         Removed duplicate message_handler callbacks.
9529         
9530 2003-09-25  Havoc Pennington  <hp@redhat.com>
9531
9532         * bus/session.conf.in: fix my mess
9533
9534 2003-09-25  Havoc Pennington  <hp@pobox.com>
9535
9536         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9537
9538 2003-09-25  Seth Nickell  <seth@gnome.org>
9539
9540         * python/examples/example-service.py:
9541
9542         Johan notices complete wrong code in example-service, but
9543         completely wrong in a way that works exactly the same (!).
9544         Johan is confused, how could this possibly work? Example
9545         code fails to serve purpose of making things clear.
9546         Seth fixes.
9547
9548 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9549
9550         * doc/dbus-specification.sgml: don't require header fields
9551         to be 4-byte aligned and specify that fields should be
9552         distinguished from padding by the fact that zero is not
9553         a valid field name.
9554         
9555         * doc/TODO: remove re-alignment item and add item to doc
9556         the OBJECT_PATH type.
9557         
9558         * dbus/dbus-message.c:
9559         (HeaderField): rename the original member to value_offset
9560         and introduce a name_offset member to keep track of where
9561         the field actually begins.
9562         (adjust_field_offsets): remove.
9563         (append_int_field), (append_uint_field),
9564         (append_string_field): don't align the start of the header
9565         field to a 4-byte boundary.
9566         (get_next_field): impl finding the next marhsalled field
9567         after a given field.
9568         (re_align_field_recurse): impl re-aligning a number of
9569         already marshalled fields.
9570         (delete_field): impl deleting a field of any type and
9571         re-aligning any following fields.
9572         (delete_int_or_uint_field), (delete_string_field): remove.
9573         (set_int_field), (set_uint_field): no need to re-check
9574         that we have the correct type for the field.
9575         (set_string_field): ditto and impl re-aligning any
9576         following fields.
9577         (decode_header_data): update to take into account that
9578         the fields aren't 4-byte aligned any more and the new
9579         way to distinguish padding from header fields. Also,
9580         don't exit when there is too much header padding.
9581         (process_test_subdir): print the directory.
9582         (_dbus_message_test): add test to make sure a following
9583         field is re-aligned correctly after field deletion.
9584         
9585         * dbus/dbus-string.[ch]:
9586         (_dbus_string_insert_bytes): rename from insert_byte and
9587         allow the insert of multiple bytes.
9588         (_dbus_string_test): test inserting multiple bytes.
9589
9590         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9591         warning note to docs about having to re-align any
9592         marshalled values following the string.
9593         
9594         * dbus/dbus-message-builder.c:
9595         (append_string_field), (_dbus_message_data_load):
9596         don't align the header field.
9597         
9598         * dbus/dbus-auth.c: (process_test_subdir): print the
9599         directory.
9600         
9601         * test/break-loader.c: (randomly_add_one_byte): upd. for
9602         insert_byte change.
9603         
9604         * test/data/invalid-messages/bad-header-field-alignment.message:
9605         new test case.
9606         
9607         * test/data/valid-messages/unknown-header-field.message: shove
9608         a dict in the unknown field.
9609
9610 2003-09-25  Seth Nickell  <seth@gnome.org>
9611
9612         * python/dbus.py:
9613         * python/dbus_bindings.pyx.in:
9614
9615         Handle return values.
9616         
9617         * python/examples/example-client.py:
9618         * python/examples/example-service.py:
9619
9620         Pass back return values from the service to the client.
9621         
9622 2003-09-24  Seth Nickell  <seth@gnome.org>
9623
9624         * python/dbus.py:
9625
9626         Connect Object methods (when you are sharing an object) up... pass
9627         in a list of methods to be shared. Sharing all the methods just
9628         worked out too weird. You can now create nice Services over the
9629         DBus in Python. :-)
9630         
9631         * python/dbus_bindings.pyx.in:
9632
9633         Keep references to user_data tuples passed into C functions so 
9634         Python doesn't garbage collect on us.
9635
9636         Implement MethodReturn and Error subclasses of Message for creating
9637         DBusMessage's of those types.
9638         
9639         * python/examples/example-client.py:
9640         * python/examples/example-service.py:
9641
9642         Simple example code showing both how create DBus services and objects,
9643         and how to use them.
9644
9645 2003-09-23  Havoc Pennington  <hp@pobox.com>
9646
9647         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9648
9649 2003-09-23  Havoc Pennington  <hp@redhat.com>
9650
9651         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9652         (dbus_gproxy_disconnect_signal): implement
9653         (dbus_gproxy_manager_remove_signal_match): implement
9654         (dbus_gproxy_manager_add_signal_match): implement
9655         (dbus_gproxy_oneway_call): implement
9656
9657 2003-09-23  Havoc Pennington  <hp@pobox.com>
9658
9659         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9660         subclass. This means dropping the transparent thread safety of the
9661         proxy; you now need a separate proxy per-thread, or your own
9662         locking on the proxy. Probably right anyway.
9663         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9664
9665 2003-09-22  Havoc Pennington  <hp@redhat.com>
9666
9667         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9668
9669 2003-09-21  Seth Nickell  <seth@gnome.org>
9670
9671         First checkin of the Python bindings.
9672         
9673         * python/.cvsignore:
9674         * python/Makefile.am:
9675         * python/dbus_bindings.pyx.in:
9676         * python/dbus_h_wrapper.h:
9677
9678         Pieces for Pyrex to operate on, building a dbus_bindings.so
9679         python module for low-level access to the DBus APIs.
9680         
9681         * python/dbus.py:
9682
9683         High-level Python module for accessing DBus objects.
9684
9685         * configure.in:
9686         * Makefile.am:
9687
9688         Build stuff for the python bindings.
9689
9690         * acinclude.m4:
9691
9692         Extra macro needed for finding the Python C header files.
9693
9694 2003-09-21  Havoc Pennington  <hp@pobox.com>
9695
9696         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9697         implementing the proxy manager, didn't get very far.
9698
9699         * dbus/dbus-bus.c (dbus_bus_add_match): new
9700         (dbus_bus_remove_match): new
9701
9702         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9703         path_name argument; adjust the other not-yet-implemented 
9704         gproxy constructors to be what I think they should be.
9705
9706 2003-09-21  Havoc Pennington  <hp@pobox.com>
9707
9708         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9709         by default for message bus connections.
9710
9711         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9712         exit_on_disconnect flag is set and we process the disconnected
9713         signal.
9714         (dbus_connection_set_exit_on_disconnect): new function
9715
9716 2003-09-21  Havoc Pennington  <hp@pobox.com>
9717
9718         Get matching rules mostly working in the bus; only actually
9719         parsing the rule text remains. However, the client side of
9720         "signal connections" hasn't been started, this patch is only the
9721         bus side.
9722         
9723         * dbus/dispatch.c: fix for the matching rules changes
9724         
9725         * bus/driver.c (bus_driver_handle_remove_match)
9726         (bus_driver_handle_add_match): send an ack reply from these
9727         method calls
9728
9729         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9730         arguments, reported by Seth Nickell
9731
9732         * bus/config-parser.c (append_rule_from_element): support
9733         eavesdrop=true|false attribute on policies so match rules 
9734         can be prevented from snooping on the system bus.
9735
9736         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9737         and "destination" in attribute names; fix some docs bugs; 
9738         add eavesdrop=true|false attribute
9739
9740         * bus/driver.c (bus_driver_handle_add_match)
9741         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9742         messages
9743
9744         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9745         rid of broadcast service concept, signals are just always broadcast
9746
9747         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9748         mostly implement matching rules stuff (currently only exposed as signal
9749         connections)
9750
9751 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9752
9753         * doc/dbus-specification.sgml: Change the header field name
9754         to be an enum and update the rest of the spec to reference
9755         the fields using the conventinal name.
9756
9757         * dbus/dbus-protocol.h: update to reflect the spec.
9758
9759         * doc/TODO: add item to remove the 4 byte alignment requirement.
9760         
9761         * dbus/dbus-message.c: Remove the code to generalise the
9762         header/body length and serial number header fields as named
9763         header fields so we can reference field names using the 
9764         protocol values.
9765         (append_int_field), (append_uint_field), (append_string_field):
9766         Append the field name as a byte rather than four chars.
9767         (delete_int_or_uint_field), (delete_string_field): reflect the
9768         fact that the field name and typecode now occupy 4 bytes instead
9769         of 8.
9770         (decode_string_field), (decode_header_data): update to reflect
9771         protocol changes and move the field specific encoding from
9772         decode_string_field() back into decode_header_data().
9773         
9774         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9775         Add utility to aid debugging.
9776         
9777         * dbus/dbus-message-builder.c:
9778         (append_string_field), (_dbus_message_data_load): Update to
9779         reflect protocol changes; Change the FIELD_NAME directive
9780         to HEADER_FIELD and allow it to take the field's conventional
9781         name rather than the actual value.
9782         
9783         * test/data/*/*.message: Update to use HEADER_FIELD instead
9784         of FIELD_NAME; Always align the header on an 8 byte boundary
9785         *before* updating the header length.
9786
9787 2003-09-15  Havoc Pennington  <hp@pobox.com>
9788
9789         * dbus/dbus-pending-call.c: add the get/set object data
9790         boilerplate as for DBusConnection, etc. Use generic object data
9791         for the notify callback.
9792
9793         * glib/dbus-gparser.c (parse_node): parse child nodes
9794
9795         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9796         
9797         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9798         contain functions shared between the convenience lib and the
9799         installed lib
9800
9801         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9802         -export-symbols-regex to the GLib library
9803
9804         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9805         fix the locking in here, and add a default handler for
9806         Introspect() that just returns sub-nodes.
9807
9808 2003-09-14  Havoc Pennington  <hp@pobox.com>
9809
9810         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9811         rather than gfoo consistent
9812
9813         * glib/dbus-gproxy.h: delete for now, move contents to
9814         dbus-glib.h, because the include files don't work right since we
9815         aren't in the dbus/ subdir.
9816         
9817         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9818         (dbus_gproxy_end_call): finish
9819         (dbus_gproxy_begin_call): finish
9820
9821         * glib/dbus-gmain.c (dbus_set_g_error): new
9822
9823         * glib/dbus-gobject.c (handle_introspect): include information
9824         about child nodes in the introspection
9825
9826         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9827         function to help in implementation of introspection
9828
9829         * dbus/dbus-object-tree.c
9830         (_dbus_object_tree_list_registered_and_unlock): new function
9831
9832 2003-09-12  Havoc Pennington  <hp@pobox.com>
9833
9834         * glib/dbus-gidl.h: add common base class for all the foo_info
9835         types
9836
9837         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9838         similar to kdcop
9839
9840         * test/Makefile.am: try test srcdir -ef . in addition to test
9841         srcdir = ., one of them should work (yeah lame)
9842         
9843         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9844         library
9845         
9846         * glib/dbus-gparser.h: make description_load routines return
9847         NodeInfo* not Parser*
9848
9849         * Makefile.am (SUBDIRS): build test dir after all library dirs
9850
9851         * configure.in: add GTK+ detection
9852
9853 2003-09-07  Havoc Pennington  <hp@pobox.com>
9854
9855         * Make Doxygen contented.
9856
9857 2003-09-07  Havoc Pennington  <hp@pobox.com>
9858
9859         * doc/dbus-specification.sgml: more updates
9860
9861 2003-09-06  Havoc Pennington  <hp@pobox.com>
9862
9863         * doc/dbus-specification.sgml: partial updates
9864
9865         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9866         zillionth time; hopefully I edited the right file this time.
9867
9868         * bus/config-parser.c (append_rule_from_element): support
9869         send_type, send_path, receive_type, receive_path
9870
9871         * bus/policy.c: add message type and path to the list of things
9872         that can be "firewalled"
9873
9874 2003-09-06  Havoc Pennington  <hp@pobox.com>
9875
9876         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9877         (dbus_connection_register_object_path): make this not handle
9878         messages to paths below the given path
9879
9880 2003-09-03  Havoc Pennington  <hp@pobox.com>
9881
9882         * test/glib/Makefile.am: add this with random glib-linked test
9883         programs
9884
9885         * glib/Makefile.am: remove the random test programs from here,
9886         leave only the unit tests
9887
9888         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9889         uscore/javacaps conversion, and fix     
9890         (get_object_property, set_object_property): change to .NET
9891         convention for mapping props to methods, set_FooBar/get_FooBar, 
9892         since one language has such a convention we may as well copy it. 
9893         Plus real methods in either getFooBar or get_foo_bar style won't 
9894         collide with this convention.
9895
9896 2003-09-01  Havoc Pennington  <hp@pobox.com>
9897
9898         * glib/dbus-gparser.c: implement
9899
9900         * glib/dbus-gobject.c: start implementing skeletons support
9901
9902         * configure.in: when disabling checks/assert, also define
9903         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9904
9905 2003-09-01  Havoc Pennington  <hp@pobox.com>
9906
9907         * glib/Makefile.am: rearrange a bunch of files and get "make
9908         check" framework set up
9909
9910 2003-08-31  Havoc Pennington  <hp@pobox.com>
9911
9912         * fix build with --disable-tests
9913
9914 2003-08-30  Havoc Pennington  <hp@pobox.com>
9915
9916         * dbus/dbus-connection.c: purge DBusMessageHandler
9917
9918         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9919         use callbacks everywhere
9920
9921 2003-08-30  Havoc Pennington  <hp@pobox.com>
9922
9923         * test/data/valid-config-files/system.d/test.conf: change to 
9924         root for the user so warnings don't get printed
9925
9926         * dbus/dbus-message.c: add dbus_message_get_path,
9927         dbus_message_set_path
9928         
9929         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
9930         dispatching to a path
9931
9932         * dbus/dbus-string.c (_dbus_string_validate_path): add
9933
9934         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
9935         (_dbus_marshal_object_path): implement
9936
9937         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
9938         to contain the path to the target object
9939         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
9940         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
9941
9942 2003-08-30  Havoc Pennington  <hp@pobox.com>
9943
9944         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
9945
9946 2003-08-29  Havoc Pennington  <hp@pobox.com>
9947
9948         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
9949         registered
9950         (struct DBusObjectSubtree): shrink this
9951         a lot, since we may have a lot of them
9952         (_dbus_object_tree_free_all_unlocked): implement
9953         (_dbus_object_tree_dispatch_and_unlock): implement
9954
9955 2003-08-29  Havoc Pennington  <hp@pobox.com>
9956
9957         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
9958
9959 2003-08-28  Havoc Pennington  <hp@pobox.com>
9960
9961         purge DBusObjectID
9962         
9963         * dbus/dbus-connection.c: port to no ObjectID, create a
9964         DBusObjectTree, rename ObjectTree to ObjectPath in public API
9965
9966         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
9967         everything except UnregisterFunction and MessageFunction
9968         
9969         * dbus/dbus-marshal.c: port away from DBusObjectID, 
9970         add DBUS_TYPE_OBJECT_PATH
9971         
9972         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
9973         dbus/dbus-objectid.[hc]: remove these, we are moving to 
9974         path-based object IDs
9975
9976 2003-08-25  Havoc Pennington  <hp@pobox.com>
9977
9978         Just noticed that dbus_message_test is hosed, I wonder when I
9979         broke that. I thought make check was passing earlier...
9980         
9981         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
9982         container tree, will replace most of dbus-object-registry
9983
9984         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
9985         screwup
9986
9987 2003-08-19  Havoc Pennington  <hp@pobox.com>
9988
9989         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
9990         (dbus_message_is_error): fix this function
9991
9992         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
9993         match
9994
9995         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
9996         reflect clarified man page
9997         (bus_client_policy_check_can_send): ditto
9998         
9999         * bus/session.conf.in: fixup
10000
10001         * bus/system.conf.in: fixup
10002
10003 2003-08-18  Havoc Pennington  <hp@redhat.com>
10004
10005         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10006
10007         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10008         dumb bug created earlier (wrong order of args to
10009         decode_header_data())
10010         
10011         * tools/dbus-send.c: port
10012
10013         * tools/dbus-print-message.c (print_message): port
10014
10015         * test/data/*messages: port all messages over
10016         
10017         * dbus/dbus-message-builder.c: support including 
10018         message type
10019         
10020         * bus/driver.c: port over
10021         
10022         * bus/dispatch.c: port over to new stuff
10023
10024         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10025         rename disconnect signal to "Disconnected"
10026
10027 2003-08-17  Havoc Pennington  <hp@pobox.com>
10028
10029         This doesn't compile yet, but syncing up so I can hack on it from
10030         work. What are branches for if not broken code? ;-)
10031         
10032         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10033         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10034         DBUS_HEADER_FIELD_ERROR_NAME
10035         
10036         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10037         for the interface+member pairs
10038         (string_hash): change to use g_str_hash algorithm
10039         (find_direct_function, find_string_function): refactor these to
10040         share most code.
10041         
10042         * dbus/dbus-message.c: port all of this over to support 
10043         interface/member fields instead of name field
10044
10045         * dbus/dbus-object-registry.c: port over
10046         
10047         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10048         from _dbus_string_validate_name
10049
10050         * bus/dbus-daemon-1.1: change file format for the 
10051         <deny>/<allow> stuff to match new message naming scheme
10052
10053         * bus/policy.c: port over
10054
10055         * bus/config-parser.c: parse new format
10056         
10057 2003-08-16  Havoc Pennington  <hp@pobox.com>
10058
10059         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10060         broken assertion
10061
10062         * glib/dbus-gproxy.c: some hacking
10063
10064 2003-08-15  Havoc Pennington  <hp@redhat.com>
10065
10066         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10067
10068         * dbus/dbus-connection.c
10069         (dbus_connection_send_with_reply_and_block): factor out internals;
10070         change to convert any error replies to DBusError instead of 
10071         returning them as a message
10072
10073 2003-08-15  Havoc Pennington  <hp@pobox.com>
10074
10075         * dbus/dbus-connection.c, 
10076         dbus/dbus-pending-call.c: Finish the pending call stuff
10077
10078 2003-08-14  Havoc Pennington  <hp@redhat.com>
10079
10080         * dbus/dbus-pending-call.c: start on new object that will replace
10081         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10082         replies
10083
10084         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10085         with remote interfaces
10086
10087         * dbus/dbus-gidl.c: do the boring boilerplate in here
10088         
10089 2003-08-12  Havoc Pennington  <hp@pobox.com>
10090
10091         * bus/dispatch.c (bus_dispatch): make this return proper 
10092         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10093
10094         * dbus/dbus-errors.c (dbus_set_error): use
10095         _dbus_string_append_printf_valist
10096
10097         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10098         (_dbus_string_append_printf): new
10099
10100         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10101         UNKNOWN_METHOD
10102
10103         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10104         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10105         message is unhandled.
10106
10107 2003-08-11  Havoc Pennington  <hp@pobox.com>
10108
10109         * bus/test.c (client_disconnect_handler): change to return
10110         HANDLED (would have been REMOVE_MESSAGE)
10111
10112         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10113         HANDLED/NOT_YET_HANDLED instead of
10114         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10115         should be used.
10116
10117 2003-08-10  Havoc Pennington  <hp@pobox.com>
10118
10119         * tools/dbus-send.c (main): add --type argument, for now
10120         supporting only method_call and signal types.
10121
10122         * tools/dbus-print-message.c: print message type
10123
10124         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10125         init connection->objects
10126
10127         * doc/dbus-specification.sgml: fix sgml
10128
10129         * bus/*.c: port over to object-instance API changes
10130
10131         * test/test-service.c: ditto
10132         
10133         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10134         name, we will have to fix up the rest of the code to also handle
10135         this
10136         (dbus_message_new): generic message-creation call
10137         (set_string_field): allow appending name field
10138
10139 2003-08-06  Havoc Pennington  <hp@pobox.com>
10140
10141         * dbus/dbus-object-registry.c: implement signal connection 
10142         and dispatch
10143
10144         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10145
10146         * dbus/dbus-internals.c (_dbus_memdup): new function
10147
10148 2003-08-02  Havoc Pennington  <hp@pobox.com>
10149
10150         * dbus/dbus-message.c (dbus_message_get_no_reply)
10151         (dbus_message_set_no_reply): add these and remove
10152         set_is_error/get_is_error
10153
10154         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10155         remove the ERROR flag, since there's now an ERROR type
10156
10157 2003-08-01  Havoc Pennington  <hp@pobox.com>
10158
10159         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10160         implement
10161
10162         * dbus/dbus-message.c (dbus_message_get_type): new function
10163
10164         * doc/dbus-specification.sgml: add "type" byte to messages
10165
10166 2003-08-01  Havoc Pennington  <hp@pobox.com>
10167
10168         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10169         a message type enum to distinguish kinds of message
10170         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10171         that need not be replied to
10172
10173 2003-08-01  Havoc Pennington  <hp@pobox.com>
10174
10175         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10176         (unpack_8_octets): fix no-64-bit-int bug
10177
10178         * dbus/dbus-object-registry.c (validate_id): validate the 
10179         connection ID bits, not just the instance ID.
10180
10181         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10182         the connection-global 33 bits of the object ID
10183
10184         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10185         object ID in the new way
10186
10187         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10188         define server/client/instance bits.
10189
10190 2003-07-30  Havoc Pennington  <hp@pobox.com>
10191
10192         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10193         build
10194
10195 2003-07-13  Havoc Pennington  <hp@pobox.com>
10196
10197         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10198         fields to DBusObjectVTable and DBusObjectInfo
10199
10200 2003-07-12  Havoc Pennington  <hp@pobox.com>
10201
10202         * dbus/dbus-object-registry.c: implement unit test,
10203         fix bugs discovered in process
10204
10205         * dbus/dbus-connection.c: remove handler_table and
10206         register_handler(), add DBusObjectRegistry usage
10207
10208         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10209         (dbus_object_id_set_null): new functions
10210
10211 2003-07-08  Havoc Pennington  <hp@pobox.com>
10212
10213         * dbus/dbus-object.c: implement some of this
10214
10215         * dbus/dbus-object-registry.c
10216         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10217         param
10218         (_dbus_object_registry_new): handle OOM
10219
10220 2003-07-08  Havoc Pennington  <hp@pobox.com>
10221
10222         * dbus/dbus-object.h: sketch out an API for registering objects
10223         with a connection, that allows us to use as little as 24 bytes
10224         per object and lets application code represent an object in 
10225         any conceivable way.
10226
10227         * dbus/dbus-object-registry.c: implement the hard bits of the
10228         DBusConnection aspect of object API. Not yet wired up.
10229         
10230 2003-07-06  Havoc Pennington  <hp@pobox.com>
10231
10232         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10233         (_dbus_marshal_object_id): new
10234         (_dbus_demarshal_object_id): new
10235         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10236         consolidate identical switch cases. Don't conditionalize handling
10237         of DBUS_TYPE_UINT64, need to handle the type always.
10238         (_dbus_marshal_validate_arg): consolidate identical cases, and
10239         handle DBUS_TYPE_OBJECT_ID
10240
10241         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10242
10243         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10244
10245 2003-09-28  Havoc Pennington  <hp@pobox.com>
10246
10247         * real 0.13 release
10248
10249 2003-09-28  Havoc Pennington  <hp@pobox.com>
10250
10251         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10252         to work with Debian db2html
10253
10254 2003-09-28  Havoc Pennington  <hp@pobox.com>
10255
10256         * configure.in: 0.13
10257
10258         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10259         stylesheet-images for benefit of Debian
10260         
10261         Change back to using filesystem-linked sockets for the system
10262         bus, so only root can create the default system bus address.
10263         
10264         * bus/system.conf.in: change to use
10265         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10266
10267         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10268         from here.
10269
10270         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10271         here, and AC_DEFINE DBUS_SYSTEM_PATH
10272
10273 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10274
10275         * doc/TODO:
10276         * doc/busconfig.dtd:
10277         Add busconfig DTD.
10278         
10279 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10280
10281         * doc/dbus-specification.sgml:
10282         Add activation reply values.
10283         
10284 2003-08-05  Havoc Pennington  <hp@redhat.com>
10285
10286         * configure.in: 0.12
10287
10288 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10289
10290         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10291         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10292         (add_watch), (remove_watch), (create_source):
10293         Refcount fds, fixes some reentrancy issues.
10294         
10295 2003-07-30  Havoc Pennington  <hp@redhat.com>
10296
10297         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10298         bus address to be abstract if we have abstract sockets
10299
10300         * NEWS: update
10301
10302 2003-07-28  Havoc Pennington  <hp@redhat.com>
10303
10304         * bus/messagebus.in: fix to avoid processname/servicename 
10305         confusion, from Michael Kearey
10306         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10307         
10308 2003-07-23  Havoc Pennington  <hp@pobox.com>
10309
10310         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10311         fix from Andy Hanton to remove broken "+1"
10312
10313 2003-07-16  Havoc Pennington  <hp@pobox.com>
10314
10315         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10316         babysitter process, as suggested by Thomas Leonard, so 
10317         an "eval `dbus-launch --exit-with-session`" will actually 
10318         return
10319
10320 2003-07-16  Havoc Pennington  <hp@pobox.com>
10321
10322         * configure.in: print out EXPANDED_* variables in the summary at
10323         the end; clean up the code that computes EXPANDED_ variables and
10324         get the ones using exec_prefix right. Should make things work
10325         when you build without --prefix
10326
10327 2003-06-29  Havoc Pennington  <hp@pobox.com>
10328
10329         * mono/Test.cs (class Test): fire up a main loop and run it
10330
10331         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10332         done once, the app has to do it
10333
10334 2003-06-26  Havoc Pennington  <hp@pobox.com>
10335
10336         * mono/Connection.cs: set up connection with the glib main loop
10337
10338 2003-07-01  Havoc Pennington  <hp@redhat.com>
10339
10340         * doc/dbus-specification.sgml: clarify the format of a type code,
10341         change suggested by Jim Blandy
10342
10343 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10344
10345         * doc/Makefile.am:
10346         * tools/Makefile.am: Don't assume srcdir == builddir.
10347
10348         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10349         the allocated block.
10350         (_dbus_memory_test): New function.
10351         * dbus/dbus-test.h: Add _dbus_memory_test ().
10352         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10353
10354         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10355         of %c%c%c%c.
10356         (dbus_message_new): Remove obsolete @todo.
10357
10358         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10359         (_dbus_marshal_set_uint64): Fix comment.
10360
10361         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10362         hardcode FIELD_REPLY_SERIAL.
10363
10364         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10365         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10366
10367         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10368         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10369
10370 2003-06-24  Havoc Pennington  <hp@pobox.com>
10371
10372         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10373
10374 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10375
10376         * configure.in:
10377         * gcj/.cvsignore:
10378         * gcj/Hello.java:
10379         * gcj/Makefile.am:
10380         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10381         * gcj/org/.cvsignore:
10382         * gcj/org/Makefile.am:
10383         * gcj/org/freedesktop/.cvsignore:
10384         * gcj/org/freedesktop/Makefile.am:
10385         * gcj/org/freedesktop/dbus/.cvsignore:
10386         * gcj/org/freedesktop/dbus/Makefile.am:
10387         * gcj/org/freedesktop/dbus/Message.java: (Message),
10388         (Message.Message):
10389         * gcj/org/freedesktop/dbus/natMessage.cc:
10390         Fix the build system.
10391
10392 2003-06-22  Havoc Pennington  <hp@pobox.com>
10393
10394         * mono/Connection.cs: add more bindings
10395
10396         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10397         more than once.
10398
10399 2003-06-22  Havoc Pennington  <hp@pobox.com>
10400
10401         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10402         Start wrapping more stuff.
10403
10404 2003-06-22  Havoc Pennington  <hp@pobox.com>
10405
10406         * mono/Message.cs: implement Message.Wrap() that ensures we only
10407         have a single C# wrapper per DBusMessage, assuming it works which
10408         it probably doesn't.
10409
10410         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10411         (dbus_message_free_data_slot): new
10412         (dbus_message_set_data): new
10413         (dbus_message_get_data): new
10414
10415 2003-06-22  Havoc Pennington  <hp@pobox.com>
10416
10417         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10418         (_dbus_data_slot_allocator_alloc): rework these to keep a
10419         reference count on each slot and automatically manage a global
10420         slot ID variable passed in by address
10421
10422         * bus/bus.c: convert to new dataslot API
10423
10424         * dbus/dbus-bus.c: convert to new dataslot API
10425
10426         * dbus/dbus-connection.c: convert to new dataslot API
10427
10428         * dbus/dbus-server.c: convert to new dataslot API
10429
10430         * glib/dbus-gmain.c: ditto
10431
10432         * bus/test.c: ditto
10433
10434         * bus/connection.c: ditto
10435
10436 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10437
10438         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10439         after the gcj checks so that the correct configuration tags
10440         will be added to libtool.
10441
10442         * dbus-glib-1.pc.in: No need to specify any includes since
10443         dbus-1.pc.in has those.
10444
10445 2003-06-22  Havoc Pennington  <hp@pobox.com>
10446
10447         * mono/*, gcj/*, configure.in, Makefile.am:
10448         Check in makefiles and subdirs for mono and gcj bindings.
10449         Neither binding actually exists, just trying to get through
10450         all the build and other boring bits.
10451
10452 2003-06-21  Philip Blundell  <philb@gnu.org>
10453
10454         * tools/dbus-monitor.1: Updated.
10455
10456         * tools/dbus-send.1: Likewise.
10457
10458 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10459
10460         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10461         for hangup and error after checking read so we won't discard
10462         pending data if both hangup and read are set.
10463
10464 2003-06-19  Philip Blundell  <philb@gnu.org>
10465
10466         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10467
10468         * tools/dbus-send.c: Accept both --system and --session.
10469
10470         * tools/dbus-monitor.c: Same here.
10471
10472 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10473
10474         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10475         from C++ (Patch by Miloslav Trmac).
10476
10477 2003-06-15  Joe Shaw  <joe@assbarn.com>
10478
10479         * configure.in: Check for socklen_t.
10480
10481         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10482
10483         * test/test-segfault.c: Add #include <sys/time.h>
10484
10485         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10486         dbus-launch needs it.
10487
10488 2003-06-09  Havoc Pennington  <hp@redhat.com>
10489
10490         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10491         SUN_LEN, it breaks abstract socket usage
10492
10493         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10494         starts of lines.
10495
10496 2003-06-04  Havoc Pennington  <hp@pobox.com>
10497
10498         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10499         using unix:abstract=/foo, and when listening in a tmpdir
10500         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10501
10502         * dbus/dbus-transport.c (_dbus_transport_open): support
10503         unix:abstract=/foo
10504
10505         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10506         support abstract sockets
10507
10508         * dbus/dbus-transport-unix.c
10509         (_dbus_transport_new_for_domain_socket): support abstract sockets
10510
10511         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10512         toggle as an argument, implement abstract namespace support
10513         (_dbus_listen_unix_socket): ditto
10514
10515         * configure.in: add --enable-abstract-sockets and implement
10516         a configure check for autodetection of the right value.
10517
10518 2003-06-01  Havoc Pennington  <hp@pobox.com>
10519
10520         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10521         in /tmp (though on Linux this will end up being useless,
10522         when we add abstract namespace support)
10523
10524         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10525         subst'ing it
10526
10527 2003-05-28  Colin Walters  <walters@verbum.org>
10528
10529         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10530
10531 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10532
10533         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10534
10535 2003-05-17  Colin Walters  <walters@gnu.org>
10536
10537         * tools/dbus-send.c: Don't exit with an error code if --help was
10538         passed.  Default to using the session bus instead of the system
10539         one.
10540
10541         * tools/dbus-launch.c: Ditto.
10542
10543         * tools/dbus-monitor.c: Ditto.
10544
10545         * tools/dbus-send.1: Update with new arguments.
10546
10547         * tools/dbus-launch.c: Emit code to export variables.  New
10548         arguments -s and -c to specify shell syntax, and a bit of code to
10549         autodetect syntax.  Also, allow specifying a program to run.
10550
10551         * tools/dbus-launch.1: Update with new arguments.
10552
10553         * tools/dbus-send.1: Ditto.
10554
10555         * tools/dbus-monitor.1: Ditto.
10556
10557 2003-05-17  Havoc Pennington  <hp@pobox.com>
10558
10559         * bus/config-parser.c (merge_included): merge in policies from
10560         child configuration file.
10561
10562         * bus/policy.c (bus_policy_merge): function to merge two policies
10563         together
10564
10565 2003-05-16  Havoc Pennington  <hp@redhat.com>
10566
10567         * dbus/dbus-connection.c: disable verbose lock spew
10568
10569         * tools/dbus-send.c: add --print-reply command line option
10570
10571         * tools/dbus-print-message.h (print_message): new util function
10572         shared by dbus-send and dbus-monitor
10573
10574         * tools/dbus-monitor.c (handler_func): exit on disconnect
10575
10576         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10577         disconnected, don't try to use the read_watch
10578
10579         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10580         so we can find this bug more easily
10581
10582 2003-05-16  Havoc Pennington  <hp@redhat.com>
10583
10584         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10585         NULL as DBusHashTable is annoyingly likely to do.
10586
10587 2003-05-16  Colin Walters  <walters@verbum.org>
10588
10589         * tools/dbus-monitor.c: Add --session argument and usage()
10590         function.
10591
10592         * tools/dbus-monitor.1: Update with new --session arg.
10593
10594         * bus/Makefile.am (install-data-hook): Create
10595         $(libdir)/dbus-1.0/services so that the session bus is happy.
10596
10597 2003-05-15  Havoc Pennington  <hp@redhat.com>
10598
10599         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10600         on non-x86. ifdef's are evil.
10601
10602 2003-05-15  Havoc Pennington  <hp@redhat.com>
10603
10604         * configure.in: 0.11
10605
10606         * NEWS: update
10607
10608         * bus/Makefile.am (initddir): apparently we are supposed to put
10609         init scripts in /etc/rc.d/init.d not /etc/init.d
10610
10611         * bus/Makefile.am: remove the "you must --enable-tests to make
10612         check" as it broke distcheck
10613
10614         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10615
10616 2003-05-13  James Willcox  <jwillcox@gnome.org>
10617
10618         * configure.in:
10619         * bus/activation.c: (bus_activation_service_created),
10620         (bus_activation_activate_service):
10621         * bus/driver.c: (bus_driver_send_service_deleted),
10622         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10623         (bus_driver_send_service_acquired),
10624         (bus_driver_send_welcome_message),
10625         (bus_driver_handle_list_services):
10626         * bus/session.conf.in:
10627         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10628         (dbus_bus_service_exists), (dbus_bus_activate_service):
10629         * dbus/dbus-bus.h:
10630
10631         Add some convenience API which lets you activate a service, and did a
10632         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10633         and dbus_message_get_args()
10634
10635 2003-05-11  Havoc Pennington  <hp@pobox.com>
10636
10637         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10638         calling _dbus_marshal_validate_arg() for every byte in a byte
10639         array, etc.
10640
10641         * dbus/dbus-message-handler.c: use atomic reference counting to
10642         reduce number of locks slightly; the global lock in here sucks
10643
10644         * dbus/dbus-connection.c
10645         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10646         update_dispatch_status that can be called with lock held; then use
10647         in a couple places to reduce locking/unlocking
10648         (dbus_connection_send): hold the lock over the whole function
10649         instead of acquiring it twice.
10650
10651         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10652
10653         * bus/connection.c (bus_connections_setup_connection): fix access
10654         to already-freed memory.
10655
10656         * dbus/dbus-connection.c: keep a little cache of linked list
10657         nodes, to avoid using the global linked list alloc lock in the
10658         normal send-message case. Instead we just use the connection lock
10659         that we already have to take.
10660
10661         * dbus/dbus-list.c (_dbus_list_find_last): new function
10662
10663         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10664         change to use a struct for the atomic type; fix docs,
10665         they return value before increment, not after increment.
10666
10667         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10668         (_dbus_string_append_8_aligned): new functions to try to
10669         microoptimize this operation.
10670         (reallocate_for_length): break this out of set_length(), to
10671         improve profile info, and also so we can consider inlining the
10672         set_length() part.
10673
10674         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10675         strings with some preallocation, cuts down on our calls to realloc
10676         a fair bit. Though if we can get the "move entire string to empty
10677         string" optimization below to kick in here, it would be better.
10678
10679         * dbus/dbus-string.c (_dbus_string_move): just call
10680         _dbus_string_move_len
10681         (_dbus_string_move_len): add a special case for moving
10682         an entire string into an empty string; we can just
10683         swap the string data instead of doing any reallocs.
10684         (_dbus_string_init_preallocated): new function
10685
10686 2003-05-11  Havoc Pennington  <hp@pobox.com>
10687
10688         Write a "test-profile" that does echo client-server with threads;
10689         profile reveals lock contention, memcpy/realloc of buffers, and
10690         UTF-8 validation as hot spots. 20% of lock contention eliminated
10691         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10692         contention is global mempool locks for GList and DBusList.
10693
10694         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10695         x86 implementation
10696
10697         * dbus/dbus-connection.c (struct DBusConnection): use
10698         dbus_atomic_t for the reference count
10699
10700         * dbus/dbus-message.c (struct DBusMessage): declare
10701         dbus_atomic_t values as volatile
10702
10703         * configure.in: code to detect ability to use atomic integer
10704         operations in assembly, from GLib patch
10705
10706         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10707         time, tired of it being wrong in threads and forked processes
10708
10709         * glib/test-profile.c: a little program to bounce messages back
10710         and forth between threads and eat CPU
10711
10712         * dbus/dbus-connection.c: add debug spew macros for debugging
10713         thread locks; include config.h at top; fix deadlock in
10714         dbus_connection_flush()
10715
10716 2003-05-08  Havoc Pennington  <hp@pobox.com>
10717
10718         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10719         data from getting written, and there wasn't a good reason to
10720         use _exit really.
10721
10722         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10723         dbus_verbose lines in test coverage
10724         (main): add list of functions sorted by # of untested blocks
10725         to the coverage report
10726
10727         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10728
10729         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10730
10731         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10732         extend test coverage
10733
10734         * test/data/auth/cancel.auth-script: test canceling an
10735         authentication
10736
10737         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10738         aren't used. in CVS history if we end up needing them.
10739
10740 2003-05-04  Havoc Pennington  <hp@pobox.com>
10741
10742         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10743         unit test
10744
10745         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10746         function, which assumed length was in # of strings, not bytes
10747
10748         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10749         missing coverage
10750
10751         * dbus/dbus-connection.c
10752         (_dbus_connection_queue_received_message): disable function for
10753         now, we are only using it in test mode
10754
10755         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10756         remove a mistaken FIXME
10757
10758 2003-05-04  Havoc Pennington  <hp@pobox.com>
10759
10760         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10761         unlock mutex on successful return, patch from Anders Gustafsson
10762
10763 2003-05-04  Havoc Pennington  <hp@pobox.com>
10764
10765         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10766         Anders Gustafsson
10767
10768 2003-05-04  Havoc Pennington  <hp@pobox.com>
10769
10770         * tools/dbus-launch.c: implement
10771
10772         * bus/main.c (main), bus/bus.c (bus_context_new):
10773         implement --print-pid and --fork
10774
10775 2003-05-03  Havoc Pennington  <hp@redhat.com>
10776
10777         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10778         the address had no value, and add to test suite. Fix and
10779         regression test from Miloslav Trmac
10780
10781 2003-05-03  Havoc Pennington  <hp@pobox.com>
10782
10783         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10784         watch is invalid when handled
10785
10786         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10787         dbus-launch utility to launch the bus from a shell script.  Didn't
10788         actually implement dbus-launch yet, it's just a placeholder still.
10789
10790 2003-05-03  Havoc Pennington  <hp@pobox.com>
10791
10792         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10793         daemon; also documents daemon config file, so replaces
10794         doc/config-file.txt. Corrected some stuff from config-file.txt in
10795         the process of moving it.
10796
10797 2003-05-03  Havoc Pennington  <hp@pobox.com>
10798
10799         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10800         add some man pages
10801
10802 2003-05-03  Colin Walters  <walters@verbum.org>
10803
10804         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10805         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10806
10807         * Makefile.am: Update to use new .pc versioning scheme.
10808
10809 2003-05-02  Havoc Pennington  <hp@redhat.com>
10810
10811         * bus/system.conf.in: allow send/receive to/from message bus
10812         service
10813
10814 2003-04-30  Havoc Pennington  <hp@redhat.com>
10815
10816         * configure.in: print a note when building with unit tests and
10817         without assertions
10818
10819 2003-04-30  Havoc Pennington  <hp@redhat.com>
10820
10821         * Makefile.am: add a check-local that complains if you didn't
10822         configure with --enable-tests
10823
10824 2003-04-29  Havoc Pennington  <hp@redhat.com>
10825
10826         * glib/dbus-gmain.c: docs cleanups
10827
10828         * dbus/dbus-types.h: add docs on int64 types
10829
10830         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10831         public API docs section
10832
10833 2003-04-29  Havoc Pennington  <hp@redhat.com>
10834
10835         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10836         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10837         parallel install API version, not with the D-BUS package version.
10838
10839         * HACKING: move some of README over here
10840
10841         * README: updates, and document API/ABI policy
10842
10843         * configure.in: reindentation
10844
10845 2003-04-29  Havoc Pennington  <hp@redhat.com>
10846
10847         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10848         to use this library" to be sure people have the right
10849         expectations.
10850
10851 2003-04-28  Havoc Pennington  <hp@redhat.com>
10852
10853         * configure.in: add --enable-docs which by default is auto yes if
10854         doxygen and db2html found, no otherwise; but can be forced on/off
10855
10856         * doc/Makefile.am: conditionalize whether to build docs on
10857         --enable-docs
10858
10859 2003-04-28  Havoc Pennington  <hp@redhat.com>
10860
10861         * configure.in: 0.10
10862
10863         * NEWS: update
10864
10865         * bus/system.conf.in: add <includedir>system.d</includedir>
10866
10867         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10868         username was provided but not uid
10869
10870         * bus/config-parser.c (struct BusConfigParser): keep track of
10871         whether the parser is toplevel or was included; change some
10872         of the error handling if it's included.
10873
10874 2003-04-27  Havoc Pennington  <hp@pobox.com>
10875
10876         Unbreak my code...
10877
10878         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10879         report correct status if we finish processing authentication
10880         inside this function.
10881
10882         * bus/activation.c (try_send_activation_failure): use
10883         bus_transaction_send_error_reply
10884
10885         * bus/connection.c (bus_connection_get_groups): return an error
10886         explaining the problem
10887
10888         * bus/bus.c (bus_context_check_security_policy): implement
10889         restriction here that inactive connections can only send the
10890         hello message. Also, allow bus driver to send anything to
10891         any recipient.
10892
10893         * bus/connection.c (bus_connection_complete): create the
10894         BusClientPolicy here instead of on-demand.
10895         (bus_connection_get_policy): don't return an error
10896
10897         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10898         sender field in message being replied to
10899
10900         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10901         causing it to return FALSE always
10902
10903         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10904         we checked sender rather than destination
10905
10906 2003-04-25  Havoc Pennington  <hp@redhat.com>
10907
10908         test suite is slightly hosed at the moment, will fix soon
10909
10910         * bus/connection.c (bus_connections_expire_incomplete): fix to
10911         properly disable the timeout when required
10912         (bus_connection_set_name): check whether we can remove incomplete
10913         connections timeout after we complete each connection.
10914
10915         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10916         probably still broken.
10917
10918         * bus/services.c (bus_registry_acquire_service): implement max
10919         number of services owned, and honor allow/deny rules on which
10920         services a connection can own.
10921
10922         * bus/connection.c (bus_connection_get_policy): report errors here
10923
10924         * bus/activation.c: implement limit on number of pending
10925         activations
10926
10927 2003-04-25  Havoc Pennington  <hp@redhat.com>
10928
10929         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
10930         where we used >= 0 instead of != DBUS_UID_UNSET.
10931
10932 2003-04-25  Havoc Pennington  <hp@redhat.com>
10933
10934         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
10935         were toggled without add/remove, fix from Anders Gustafsson
10936
10937 2003-04-24  Havoc Pennington  <hp@redhat.com>
10938
10939         * test/data/valid-config-files/basic.conf: add <limit> tags to
10940         this test
10941
10942         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
10943         <limit> tag in configuration file.
10944
10945 2003-04-24  Havoc Pennington  <hp@redhat.com>
10946
10947         * bus/dispatch.c: somehow missed some name_is
10948
10949         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
10950         (_dbus_timeout_set_interval): new
10951
10952         * bus/connection.c (bus_connections_setup_connection): record time
10953         when each connection is first set up, and expire them after the
10954         auth timeout passes.
10955
10956 2003-04-24  Havoc Pennington  <hp@redhat.com>
10957
10958         * dbus/dbus-message.c (dbus_message_name_is): rename
10959         (dbus_message_service_is): rename
10960         (dbus_message_sender_is): rename
10961         (dbus_message_get_service): rename
10962
10963 2003-04-24  Havoc Pennington  <hp@redhat.com>
10964
10965         * configure.in: add --enable-checks
10966
10967         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
10968
10969         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
10970         to use thread locks.
10971         (_dbus_connection_handler_destroyed_locked): move some private
10972         functions into proper docs group
10973
10974         * dbus/dbus-internals.h: add _dbus_return_if_fail,
10975         _dbus_return_val_if_fail
10976
10977         Throughout: use dbus_return_if_fail
10978
10979 2003-04-23  James Willcox  <jwillcox@gnome.org>
10980
10981         * glib/dbus-glib.h:
10982         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
10983         (dbus_connection_setup_with_g_main),
10984         (dbus_server_setup_with_g_main):
10985         * glib/test-dbus-glib.c: (main):
10986         * glib/test-thread-client.c: (main):
10987         * glib/test-thread-server.c: (new_connection_callback), (main):
10988         * tools/dbus-monitor.c: (main):
10989
10990         Added a GMainContext argument to dbus_connection_setup_with_g_main()
10991         and dbus_server_setup_with_g_main().
10992
10993 2003-04-20  Havoc Pennington  <hp@pobox.com>
10994
10995         * doc/dbus-specification.sgml: document the restrictions on
10996         message and service names
10997
10998 2003-04-22  Havoc Pennington  <hp@redhat.com>
10999
11000         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11001         support, and do some code cleanups to share more code and
11002         speed up array marshal/demarshal.
11003
11004         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11005
11006         * configure.in: generate dbus-arch-deps.h
11007
11008         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11009         64-bit typecodes
11010
11011 2003-04-22  Havoc Pennington  <hp@redhat.com>
11012
11013         * test/data/valid-messages/opposite-endian.message: fix test
11014         to use proper type for rply field
11015
11016         * test/data/invalid-messages: add tests for below validation
11017
11018         * dbus/dbus-message.c (decode_header_data): validate field types,
11019         and validate that named fields are valid names
11020         (decode_name_field): consider messages in the
11021         org.freedesktop.Local. namespace to be invalid.
11022
11023         * dbus/dbus-string.c (_dbus_string_validate_name): new
11024
11025 2003-04-19  Havoc Pennington  <hp@pobox.com>
11026
11027         * bus/driver.c (bus_driver_handle_hello): check limits and
11028         return an error if they are exceeded.
11029
11030         * bus/connection.c: maintain separate lists of active and inactive
11031         connections, and a count of each. Maintain count of completed
11032         connections per user. Implement code to check connection limits.
11033
11034         * dbus/dbus-list.c (_dbus_list_unlink): export
11035
11036         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11037         number of bytes in the message queue for a connection
11038
11039 2003-04-18  Havoc Pennington  <hp@pobox.com>
11040
11041         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11042
11043         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11044         memleaks
11045
11046         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11047         on realloc be sure to update the pointer in the keyring
11048
11049         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11050         offset to avoid writing to unallocated memory
11051
11052         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11053         try the next mechanism, so we properly handle OOM
11054
11055         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11056         on OOM.
11057         (_dbus_keyring_new): fix OOM bug
11058         (_dbus_keyring_new_homedir): always set error; impose a maximum
11059         number of keys we'll load from the file, mostly to speed up the
11060         test suite and make its OOM checks more useful, but also for
11061         general sanity.
11062
11063         * dbus/dbus-auth.c (process_error_server): reject authentication
11064         if we get an error from the client
11065         (process_cancel): on cancel, send REJECTED, per the spec
11066         (process_error_client): send CANCEL if we get an error from the
11067         server.
11068
11069 2003-04-18  Havoc Pennington  <hp@pobox.com>
11070
11071         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11072         debug spew
11073
11074         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11075         handling problem
11076
11077         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11078         about DBUS_TEST_HOMEDIR once
11079
11080         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11081         the environment
11082
11083         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11084         config file so we test the right thing
11085
11086         Throughout: assorted docs improvements
11087
11088 2003-04-18  Havoc Pennington  <hp@pobox.com>
11089
11090         * glib/dbus-gmain.c: adapt to watch changes
11091
11092         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11093
11094         * dbus/dbus-server.h: remove dbus_server_handle_watch
11095
11096         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11097
11098         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11099         like DBusTimeout, so we don't need dbus_connection_handle_watch
11100         etc.
11101
11102 2003-04-17  Havoc Pennington  <hp@redhat.com>
11103
11104         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11105         database usage so it all goes via the DBusUserDatabase cache.
11106
11107 2003-04-17  Havoc Pennington  <hp@redhat.com>
11108
11109         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11110         there was an OOM watch we skipped, we always return TRUE so we
11111         iterate again to have a look at it again. Fixes test suite hang.
11112         Code rearrangement also lets us lose some memset and only iterate
11113         over callbacks once.
11114
11115         * bus/driver.c (bus_driver_handle_message): sense of test for
11116         reply was backward
11117
11118 2003-04-16  Havoc Pennington  <hp@pobox.com>
11119
11120         * doc/dbus-specification.sgml: make spec say serials are unsigned
11121
11122         * dbus/dbus-message.h: change message serials to unsigned
11123
11124         * dbus/dbus-connection.c: adapt to message serials being unsigned
11125
11126 2003-04-15  Havoc Pennington  <hp@pobox.com>
11127
11128         * bus/bus.c: create and keep around a shared DBusUserDatabase
11129         object.
11130
11131         * bus/connection.c (bus_connection_get_groups): don't cache
11132         groups for user in the connection object, since user database
11133         object now does that.
11134
11135 2003-04-16  Havoc Pennington  <hp@redhat.com>
11136
11137         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11138         list of size counters
11139         (_dbus_message_loader_putback_message_link): put back a popped link
11140
11141         * dbus/dbus-connection.c
11142         (dbus_connection_set_max_live_messages_size): rename
11143         max_received_size
11144         (dbus_connection_get_outgoing_size): get size of outgoing
11145         queue
11146         (_dbus_connection_set_connection_counter): remove this cruft
11147
11148 2003-04-14  Havoc Pennington  <hp@redhat.com>
11149
11150         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11151         caching, but at some point we might want to be able to use a
11152         different database.
11153
11154         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11155         SHA1 conf file to test the sha1 auth mechanism, since the regular
11156         test always uses EXTERNAL when available.
11157
11158         * configure.in,
11159         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11160         add conf file that requires use of sha1 auth
11161
11162 2003-04-13  Havoc Pennington  <hp@pobox.com>
11163
11164         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11165         from Philip Blundell to send messages and monitor them.
11166
11167 2003-04-13  Havoc Pennington  <hp@pobox.com>
11168
11169         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11170         callbacks
11171
11172         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11173         users
11174
11175         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11176         fix to only recover unused bytes if we're already authenticated
11177         (_dbus_transport_get_is_authenticated): fix to still mark us
11178         authenticated if there are unused bytes.
11179
11180         * bus/dispatch.c: implement security policy checking
11181
11182         * bus/connection.c (bus_transaction_send_from_driver): new
11183
11184         * bus/bus.c (bus_context_check_security_policy): new
11185
11186         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11187         now we just set the DBusError and it gets converted to an error
11188         reply.
11189
11190         * bus/connection.c (allow_user_function): enable code using actual
11191         data from the config file
11192
11193         * bus/policy.c (list_allows_user): handle wildcard rules for
11194         user/group connection perms
11195
11196 2003-04-13  Havoc Pennington  <hp@pobox.com>
11197
11198         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11199
11200         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11201
11202         * bus/policy.c (bus_policy_append_mandatory_rule)
11203         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11204         (bus_policy_append_group_rule): new functions
11205
11206 2003-04-12  Havoc Pennington  <hp@pobox.com>
11207
11208         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11209
11210         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11211         the pid/gid/uid, just for paranoia.
11212
11213         * test/break-loader.c (randomly_do_n_things): find a byte
11214         containing a type code, and randomly change it to a different
11215         type code.
11216
11217 2003-04-12  Havoc Pennington  <hp@pobox.com>
11218
11219         * bus/policy.h: change BusPolicy to be the thing from the config
11220         file, and rename old BusPolicy to BusClientPolicy
11221
11222         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11223         match change in how policy works
11224
11225         * dbus/dbus-internals.h: mark assert_not_reached as
11226         __attribute((noreturn))__
11227
11228 2003-04-11  Havoc Pennington  <hp@redhat.com>
11229
11230         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11231         the broadcast service. Use boolean return for ServiceExists.
11232
11233 2003-04-11  Havoc Pennington  <hp@redhat.com>
11234
11235         * configure.in: add another directory to look for qt in.
11236
11237 2003-04-11  Havoc Pennington  <hp@redhat.com>
11238
11239         * AUTHORS: add Colin Walters
11240
11241 2003-04-11  Havoc Pennington  <hp@redhat.com>
11242
11243         * NEWS: update
11244
11245         * configure.in: 0.9
11246
11247 2003-04-11  Havoc Pennington  <hp@redhat.com>
11248
11249         * bus/messagebus.in: remove pid file when stopping the
11250         message bus, since the bus won't have privileges to remove it
11251         itself.
11252
11253 2003-04-11  Havoc Pennington  <hp@redhat.com>
11254
11255         * bus/bus.c (bus_context_new): move credentials change after
11256         creating pidfile
11257
11258 2003-04-11  Havoc Pennington  <hp@pobox.com>
11259
11260         * test/decode-gcov.c: add "below average functions" to the
11261         coverage report, and change how some of the code works.
11262
11263         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11264         not in the coverage stats.
11265
11266         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11267         couple places so running the test suite doesn't result in megaspam.
11268
11269 2003-04-11  Havoc Pennington  <hp@pobox.com>
11270
11271         * bus/dispatch.c (check_existent_service_activation): accept a no
11272         memory error in a place we didn't before
11273
11274         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11275         in case the first one failed," since the test suite is less
11276         broken now.
11277
11278 2003-04-10  Havoc Pennington  <hp@pobox.com>
11279
11280         * bus/dispatch.c (check_segfault_service_activation): add test
11281         for launching an executable that just crashes.
11282
11283         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11284         don't leave a million cores. We'll see how portable this is.
11285
11286 2003-04-10  Havoc Pennington  <hp@pobox.com>
11287
11288         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11289         the possible parent failures before we fork, so that we don't
11290         fail to create a babysitter after creating the child.
11291
11292         * bus/activation.c (bus_activation_activate_service): kill child
11293         if we don't successfully complete the activation.
11294
11295 2003-04-10  Havoc Pennington  <hp@redhat.com>
11296
11297         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11298         the connection if it's disconnected
11299
11300         * bus/activation.c (bus_activation_service_created): use new
11301         transaction features to roll back removal of pending activation if
11302         we don't successfully create the service after all. Don't remove
11303         pending activation if the function fails.
11304
11305         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11306         (_dbus_list_insert_after_link): new code to facilitate
11307         services.c fixes
11308
11309         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11310         new functionality, so we can preallocate the ability to insert
11311         into a hash table.
11312
11313         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11314         allowing us to put custom hooks in a transaction to be used for
11315         cancelling said transaction
11316
11317         * doc/dbus-specification.sgml: add some discussion of secondary
11318         service owners, and disallow zero-length service names
11319
11320         * bus/services.c (bus_registry_acquire_service): new function,
11321         splits out part of bus_driver_handle_acquire_service() and fixes
11322         a bug where we didn't remove the service doing the acquiring
11323         from the secondary queue if we failed to remove the current owner
11324         from the front of the queue.
11325
11326 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11327
11328         * doc/dbus-specification.sgml:
11329         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11330
11331 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11332
11333         * bus/.cvsignore:
11334         * glib/.cvsignore:
11335         * test/.cvsignore:
11336         Added files to cvsignore
11337
11338         * dbus/dbus-message.h:
11339         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11340         Make get_named() take two out argument and return a boolean.
11341         (dbus_message_iter_get_args_valist):
11342         Update usage of get_named().
11343         (dbus_message_iter_append_byte):
11344         Fix typo
11345         (dbus_message_iter_append_named)
11346         Fix typo
11347         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11348         More tests.
11349
11350 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11351
11352         * dbus/dbus-marshal.[ch]:
11353         Add array_type_pos argument to _dbus_marshal_validate_arg.
11354         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11355
11356         * dbus/dbus-message.[ch]:
11357         Multi-dimensional arrays have full type specification in the
11358         outermost array. Iter code re-arranged to handle this.
11359         Added some more iter tests.
11360
11361         * doc/dbus-specification.sgml:
11362         Add me to authors.
11363         Remove old FIXME.
11364         Update new array encoding description.
11365         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11366
11367         * test/data/invalid-messages/array-with-mixed-types.message:
11368         * test/data/valid-messages/array-of-array-of-uint32.message:
11369         Change to the new array format.
11370
11371         * test/data/invalid-messages/too-short-dict.message:
11372         Fix bug in test.
11373
11374         * test/data/valid-messages/recursive-types.message:
11375         Fix up and extend test.
11376
11377 2003-04-10  Havoc Pennington  <hp@pobox.com>
11378
11379         * bus/dispatch.c: lots of fixes
11380
11381         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11382         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11383         that was crack, broke the test service.
11384
11385         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11386         handling to avoid piling up errors if we get a failure on the
11387         first address.
11388
11389         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11390         pid in assertion failures.
11391
11392         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11393         to some fixed size of file descriptor array. Don't return TRUE
11394         anytime a timeout exists, that led to lots of busy loop silliness
11395         in the tests.
11396
11397 2003-04-09  Havoc Pennington  <hp@redhat.com>
11398
11399         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11400         I'd checked this in earlier but hadn't.
11401
11402 2003-04-09  Havoc Pennington  <hp@redhat.com>
11403
11404         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11405         the activation test (man this is getting old!)
11406
11407 2003-04-09  Havoc Pennington  <hp@redhat.com>
11408
11409         * test/test-utils.c: use dispatch status function to fix this up
11410
11411         * bus/connection.c (connection_watch_callback): don't dispatch
11412         from here
11413         (connection_timeout_callback): don't dispatch from here
11414         (bus_connections_setup_connection): set the dispatch status function
11415         (bus_connection_disconnected): unset it
11416
11417         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11418         used to add a connection to be dispatched
11419         (_dbus_loop_iterate): do the dispatching at the end of each
11420         iteration
11421
11422         * dbus/dbus-connection.c
11423         (dbus_connection_set_dispatch_status_function): new function
11424         allowing us to fix up main loop usage
11425         (_dbus_connection_last_unref): free all the various function
11426         user data
11427         (dbus_connection_dispatch): call the DispatchStatusFunction
11428         whenever this function returns
11429         (dbus_connection_handle_watch): call DispatchStatusFunction
11430         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11431         (reply_handler_timeout): call DispatchStatusFunction
11432         (dbus_connection_flush): call DispatchStatusFunction
11433
11434 2003-04-09  Havoc Pennington  <hp@redhat.com>
11435
11436         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11437         a memory leak
11438
11439         * bus/dispatch.c (check_service_activated): fix bug in test
11440
11441         * dbus/dbus-mainloop.c (check_timeout): fix this up
11442
11443         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11444         verbose output so we can sort out output from different processes,
11445         e.g. in the activation case.
11446
11447 2003-04-08  Colin Walters  <walters@gnu.org>
11448
11449         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11450         the pid file.
11451         (bus_context_new): Set it.
11452         (bus_context_unref): Use it to delete the pid file.
11453
11454 2003-04-08  Havoc Pennington  <hp@redhat.com>
11455
11456         * test/data/invalid-messages/array-with-mixed-types.message:
11457         regression test that fails for the moment
11458
11459         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11460         tests for convenience
11461
11462         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11463         array of nil, it broke things.
11464
11465         * test/data/invalid-messages/array-of-nil.message: regression test
11466
11467         * test/data/valid-messages/array-of-array-of-uint32.message:
11468         happened to write this so added it to suite
11469
11470 2003-04-08  Havoc Pennington  <hp@redhat.com>
11471
11472         * bus/driver.c (bus_driver_handle_acquire_service): init
11473         retval/reply before checking name
11474
11475         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11476         recursion depth argument
11477
11478         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11479         in the public struct for future extension
11480
11481         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11482         typo
11483
11484         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11485         message
11486
11487         * doc/dbus-specification.sgml: fix typo
11488
11489 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11490
11491         Implemented recursive types, named types and new-style iters
11492
11493         * bus/driver.c:
11494         * glib/test-thread-client.c: (thread_func):
11495         * glib/test-thread-server.c: (handle_test_message):
11496         * test/test-service.c: (handle_echo):
11497         Update to new api
11498
11499         * dbus/Makefile.am:
11500         * dbus/dbus-dict.c:
11501         * dbus/dbus-dict.h:
11502         * dbus/dbus.h
11503         Remove DBusDict
11504
11505         * dbus/dbus-internals.c: (_dbus_type_to_string):
11506         Update for new types.
11507
11508         * dbus/dbus-marshal.[ch]:
11509         Implement recursive types and the new marshalling format.
11510         Remove hardcoded dict marshalling.
11511         Marshal named types.
11512
11513         * dbus/dbus-message-builder.c:
11514         Add BYTE_ARRAY.
11515         Remove references to old types
11516
11517         * dbus/dbus-message.[ch]:
11518         New non-refcounted iter API that supports recursive iters.
11519         Use iters for appending, including support for recursive
11520         iters.
11521         Add byte and named type support.
11522         Update everything to new marshalling formats.
11523         Add tests for new API.
11524
11525         * dbus/dbus-protocol.h:
11526         Remove old array types.
11527         Add types: BYTE, ARRAY, DICT, NAMED
11528
11529         * dbus/dbus-string.c:
11530         * dbus/dbus-sysdeps.c:
11531         Make parse_double locale safe.
11532
11533         * dbus/dbus-test-main.c:
11534         Call setlocale.
11535
11536         * dbus/dbus-test.c:
11537         Kill dict test
11538
11539         * doc/dbus-specification.sgml:
11540         Update spec
11541
11542         * test/data/incomplete-messages/missing-body.message:
11543         * test/data/invalid-messages/bad-boolean.message:
11544         * test/data/invalid-messages/bad-boolean-array.message:
11545         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11546         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11547         * test/data/invalid-messages/too-short-dict.message:
11548         * test/data/valid-messages/dict-simple.message:
11549         * test/data/valid-messages/dict.message:
11550         * test/data/valid-messages/emptiness.message:
11551         * test/data/valid-messages/lots-of-arguments.message:
11552         * test/data/valid-messages/no-padding.message:
11553         * test/data/valid-messages/recursive-types.message:
11554         Add missing NAME fields
11555         Fix up dicts & arrays
11556
11557         * test/data/invalid-messages/dict-with-nil-value.message:
11558         Removed, this is not invalid anymore.
11559
11560         * test/data/valid-messages/recursive-types.message:
11561         Add new test for deeply recursive types.
11562
11563 2003-04-07  Havoc Pennington  <hp@pobox.com>
11564
11565         * bus/driver.c (bus_driver_handle_acquire_service): return an
11566         error if you try to acquire a service that starts with ':'
11567
11568 2003-04-07  Havoc Pennington  <hp@redhat.com>
11569
11570         * doc/dbus-specification.sgml: require that base service names
11571         start with ':' and that the base service is created/deleted
11572         as first and last things a connection does on the bus
11573
11574         * bus/dispatch.c (check_existent_service_activation): lots more
11575         work on the activation test; it doesn't fully pass yet...
11576
11577         * test/test-service.c (main): fix so we don't memleak the
11578         connection to the message bus
11579         (filter_func): accept a message asking us to exit
11580
11581 2003-04-06  Havoc Pennington  <hp@pobox.com>
11582
11583         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11584         from Colin Walters
11585
11586         * configure.in: fixes to Qt detection from Colin Walters
11587
11588         * doc/Makefile.am: Only remove generated docbook dirs if they
11589         exist, from Colin Walters
11590
11591         * dbus/dbus-bus.c: change how we set well-known connections to
11592         NULL, so that it works if a single connection is stored in
11593         two well-known array slots.
11594
11595         * test/Makefile.am: remove a lot of stuff that isn't immediately
11596         useful, it's in CVS history if we want it.
11597
11598         * test/test-service.c: use dbus-mainloop instead of that
11599         watch.[hc] crack
11600
11601 2003-04-06  Havoc Pennington  <hp@pobox.com>
11602
11603         * dbus/Makefile.am: split lists of sources into stuff that goes in
11604         the library, util functions that go in the lib and are also used
11605         elsewhere, and util functions that are used in tests/daemon but
11606         don't go in the lib.
11607
11608         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11609         here so it can be used in test binaries also
11610
11611 2003-04-06  Havoc Pennington  <hp@pobox.com>
11612
11613         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11614         here in the parent process, so we can return an error if it
11615         fails. Also, move some of the code into the child so the parent
11616         is less hosed if we fail midway through.
11617
11618         * bus/bus.c (bus_context_new): move pidfile detection further up
11619         in the function, before we start overwriting sockets and such.
11620
11621         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11622
11623         * configure.in: add --with-system-pid-file and --with-system-socket
11624
11625 2003-04-06  Colin Walters  <walters@verbum.org>
11626
11627         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11628
11629         * bus/system.conf.in: Declare a pidfile.
11630
11631         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11632         create one (if appropriate).
11633
11634         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11635         (struct BusConfigParser) [pidfile]: New.
11636         (element_type_to_name, merge_included, start_busconfig_child)
11637         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11638         (bus_config_parser_unref): Free it.
11639         (bus_config_parser_get_pidfile): New function.
11640
11641         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11642
11643         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11644
11645         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11646
11647         * dbus/dbus-sysdeps.h: Prototype it.
11648
11649 2003-04-06  Havoc Pennington  <hp@pobox.com>
11650
11651         * bus/bus.c (bus_context_new): print the address in here, rather
11652         than in main(), because we need to do it before forking the daemon
11653
11654         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11655         on the service nonexistent error
11656
11657         * bus/driver.c (bus_driver_handle_acquire_service): set the
11658         sender on the AcquireService reply
11659
11660         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11661         server also listen on a UNIX socket so services can connect to it.
11662
11663 2003-04-06  Havoc Pennington  <hp@pobox.com>
11664
11665         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11666         so it detects deadlocks and also we actually init threads when
11667         debugging.
11668
11669 2003-04-06  Havoc Pennington  <hp@pobox.com>
11670
11671         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11672         save the domain socket name, and unlink it when we disconnect the
11673         server. Means that at least when we exit normally, we won't leave
11674         a bunch of junk in /tmp
11675
11676         * dbus/dbus-transport-unix.c
11677         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11678         memory management). (I was making a real change here but then
11679         didn't)
11680
11681 2003-04-06  Havoc Pennington  <hp@pobox.com>
11682
11683         * bus/bus.c (bus_context_new): fix wrong handling of
11684         server_data_slot_unref() in the error case.
11685
11686         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11687         "(condition) != 0" to _dbus_real_assert so that
11688         "_dbus_assert (pointer)" doesn't cause a warning
11689
11690         * bus/main.c (main): accept --print-address option to print out
11691         the message bus address
11692
11693         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11694
11695         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11696         "tmpdir" option to unix: address on client side
11697
11698         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11699         to unix: address
11700
11701         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11702         we can use to create sockets in the test suite.
11703
11704         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11705         cleanly. To be used for testing.
11706
11707         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11708
11709         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11710
11711         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11712         handle trying to call this when there's no servers active
11713
11714 2003-04-05  Havoc Pennington  <hp@pobox.com>
11715
11716         * NEWS: update
11717
11718         * configure.in: 0.8
11719
11720 2003-04-05  Havoc Pennington  <hp@pobox.com>
11721
11722         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11723         crash on startup. Need to get "try starting the daemon"
11724         in the test suite I guess. ;-)
11725
11726         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11727         tracked the number of open connections; it's better done in
11728         application-specific code as you want it to span all servers etc.
11729
11730 2003-04-05  Havoc Pennington  <hp@pobox.com>
11731
11732         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11733         patch from Colin Walters
11734
11735 2003-04-05  Havoc Pennington  <hp@pobox.com>
11736
11737         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11738         reality; in fact multiple mechanisms are allowed.
11739
11740         * dbus/dbus-internals.c (_dbus_real_assert)
11741         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11742         _dbus_assert_not_reached() into functions, so that they don't show
11743         up in basic block counts for test coverage, and don't use up as
11744         much disk space. Does mean slower execution speed though, so
11745         assumes --disable-asserts is the normal production case.
11746
11747 2003-04-05  Havoc Pennington  <hp@pobox.com>
11748
11749         * test/Makefile.am (dist-hook): also dist *.in files
11750
11751         * NEWS: update
11752
11753         * configure.in: 0.7
11754
11755 2003-04-05  Havoc Pennington  <hp@pobox.com>
11756
11757         * dbus/dbus-string.c: docs warning
11758
11759         * dbus/dbus-spawn.c: missing docs
11760
11761         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11762
11763 2003-04-05  Havoc Pennington  <hp@pobox.com>
11764
11765         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11766         magic from GLib
11767
11768         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11769         to -1 once we've reaped the babysitter
11770         (_dbus_babysitter_handle_watch): do as much work as we can, not
11771         just one go of it
11772
11773         * bus/activation.c: add code using DBusBabysitter so that we
11774         handle it when a service fails to start up properly.
11775         (bus_activation_service_created): don't remove the activation
11776         entries as we go, just let them get removed when we free the pending
11777         activation. Unref reply messages after sending them.
11778
11779 2003-04-05  Havoc Pennington  <hp@pobox.com>
11780
11781         * test/decode-gcov.c (main): print per-directory stats in the report
11782
11783         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11784
11785 2003-04-05  Havoc Pennington  <hp@pobox.com>
11786
11787         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11788
11789         * test/decode-gcov.c: hack up a little program to suck data
11790         out of gcov files. Yes this is sort of silly.
11791
11792         * configure.in: define something in config.h and do an
11793         AM_CONDITIONAL when gcov is enabled
11794
11795 2003-04-04  Havoc Pennington  <hp@redhat.com>
11796
11797         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11798         return a "babysitter" object that is used to monitor the status of
11799         the spawned process and reap it when required.
11800
11801         * test/test-segfault.c, test/test-exit.c,
11802         test/test-sleep-forever.c: binaries that do various lame things,
11803         used in the test suite.
11804
11805         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11806
11807 2003-04-03  Havoc Pennington  <hp@pobox.com>
11808
11809         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11810         in preparation for modifying it, dbus-sysdeps is getting
11811         a bit unmanageable.
11812
11813 2003-04-03  Havoc Pennington  <hp@redhat.com>
11814
11815         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11816         have multiple ones
11817
11818         * bus/*.[hc]: adapt to mainloop change
11819
11820 2003-04-03  Havoc Pennington  <hp@redhat.com>
11821
11822         * bus/activation.c (load_directory): fix up memleaks
11823         (bus_activation_entry_free): free the entry
11824
11825         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11826         we get one from the message bus; fix memleaks.
11827
11828         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11829
11830 2003-04-03  Havoc Pennington  <hp@pobox.com>
11831
11832         * bus/config-parser.c (bus_config_parser_unref): free
11833         list of mechanisms, bug discovered by test suite enhancements
11834         (putting system.conf and session.conf into suite)
11835
11836         * test/Makefile.am, test/test-service.c: add placeholder for a
11837         test service that we'll activate as part of test suite. Doesn't
11838         do anything yet.
11839
11840         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11841         setting NULL value, and use system malloc not dbus_malloc()
11842         when we have unavoidable memleakage.
11843
11844         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11845         didn't work, and support DBUS_BUS_ACTIVATION.
11846
11847         * bus/activation.c (child_setup): pass our well-known bus type to
11848         the child
11849
11850         * bus/config-parser.c: support <type> to specify well-known type
11851
11852         * doc/dbus-specification.sgml: document the env variables to
11853         locate well-known buses and find service activator
11854
11855 2003-04-02  Havoc Pennington  <hp@redhat.com>
11856
11857         * test/Makefile.am (all-local): add a rule to copy tests to
11858         builddir, so we can have generated tests. Use this to remove the
11859         silly hack for testing system.conf and session.conf. Will use this
11860         shortly to generate .service files pointing to test binaries.
11861
11862 2003-04-02  Havoc Pennington  <hp@redhat.com>
11863
11864         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11865         current alloc and needed new length, not max of the doubled
11866         allocation and needed new length. Also, when building tests,
11867         don't do the double-allocation stuff, just realloc every time.
11868
11869 2003-04-02  Havoc Pennington  <hp@redhat.com>
11870
11871         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11872         in error messages
11873         (_dbus_string_get_dirname): new
11874         (_dbus_sysdeps_test): new
11875         (_dbus_directory_open): include dirnames in error messages
11876
11877         * bus/config-parser.c: interpret <include> and <includedir> and
11878         <servicedir> relative to config file location if the given
11879         filename is not absolute.
11880
11881         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11882
11883 2003-04-02  Havoc Pennington  <hp@redhat.com>
11884
11885         * bus/connection.c (bus_transaction_send_error_reply): set sender
11886         service for the error, and unref the reply on success
11887
11888         * bus/activation.c: convert to use BusTransaction so OOM can be
11889         handled correctly
11890         (bus_activation_service_created): set sender of the message
11891
11892 2003-04-01  Havoc Pennington  <hp@redhat.com>
11893
11894         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11895         <includedir> (at least mostly)
11896
11897         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11898         first, then the user ID
11899
11900 2003-04-01  Havoc Pennington  <hp@pobox.com>
11901
11902         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11903         function
11904
11905         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11906
11907         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11908
11909         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11910         socket 0777, and unlink any existing socket.
11911
11912         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11913         the configuration file so specifies; set up auth mechanism
11914         restrictions
11915
11916         * bus/config-parser.c (bus_config_parser_content): add support
11917         for <fork> option and fill in code for <auth>
11918
11919         * bus/system.conf.in: add <fork/> to default configuration,
11920         and limit auth mechanisms to EXTERNAL
11921
11922         * doc/config-file.txt (Elements): add <fork>
11923
11924         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11925         (_dbus_change_identity): new function
11926
11927 2003-03-31  Havoc Pennington  <hp@redhat.com>
11928
11929         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
11930         (_dbus_listen_unix_socket): fix off-by-one error in null
11931         termination spotted by Nalin
11932
11933 2003-03-31  Havoc Pennington  <hp@redhat.com>
11934
11935         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
11936         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
11937         having a real home directory available.
11938
11939 2003-03-31  Havoc Pennington  <hp@redhat.com>
11940
11941         * bus/Makefile.am (install-data-hook): create /var/run/dbus
11942
11943         * bus/messagebus.in: add init script for Red Hat /etc/init.d
11944
11945         * configure.in: add support for specifying a style of init script
11946         to install
11947
11948 2003-03-31  Havoc Pennington  <hp@redhat.com>
11949
11950         Fix some annoying DBusString API and fix all affected code.
11951
11952         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
11953         max_length argument
11954         (_dbus_string_get_data): change to return string instead of using
11955         an out param
11956         (_dbus_string_get_const_data): ditto
11957         (_dbus_string_get_data_len): ditto
11958         (_dbus_string_get_const_data_len): ditto
11959
11960 2003-03-31  Havoc Pennington  <hp@redhat.com>
11961
11962         * bus/main.c (main): fix up the command line arguments to be nicer
11963
11964 2003-03-31  Havoc Pennington  <hp@redhat.com>
11965
11966         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
11967         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
11968         final location that lands in the config file
11969
11970         * bus/config-loader-expat.c (bus_config_load): fix type of
11971         XML_Parser variable
11972
11973         * doc/TODO: remove TODO item for dbus_bus_get()
11974
11975         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
11976
11977 2003-03-31  Havoc Pennington  <hp@pobox.com>
11978
11979         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
11980         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
11981         argument since they are always client side
11982
11983         * dbus/dbus-server.c (dbus_server_get_address): new function
11984
11985         * bus/main.c (main): take the configuration file as an argument.
11986
11987         * test/data/valid-config-files/debug-allow-all.conf: new file to
11988         use with dispatch.c tests for example
11989
11990         * bus/test-main.c (main): require test data dir
11991
11992         * bus/bus.c (bus_context_new): change this to take a
11993         configuration file name as argument
11994
11995         * doc/config-file.txt (Elements): add <servicedir>
11996
11997         * bus/system.conf, bus/session.conf: new files
11998
11999         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12000         well-known socket if none set
12001
12002         * configure.in: create system.conf and session.conf
12003
12004 2003-03-30  Havoc Pennington  <hp@pobox.com>
12005
12006         * bus/config-parser.c: hacking
12007
12008         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12009         to shut down, since it could cause weirdness with the DBusList
12010         lock
12011
12012         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12013         link-oriented stack routines
12014         (alloc_link): free the mempool if the first alloc from it fails
12015
12016         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12017
12018         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12019         from GLib
12020         (_dbus_string_skip_white): new
12021
12022         * doc/config-file.txt (Elements): add <includedir>
12023
12024 2003-03-28  Havoc Pennington  <hp@pobox.com>
12025
12026         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12027         (_dbus_string_copy_data): new functions
12028
12029 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12030
12031         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12032         * dbus/dbus-bus.h:
12033         Add dbus_bus_get.
12034
12035         * dbus/dbus-memory.c:
12036         Fix a doc comment.
12037
12038 2003-03-28  Havoc Pennington  <hp@pobox.com>
12039
12040         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12041         I think it may have just been superstition. Not sure.
12042
12043         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12044         failures that were not being handled.
12045
12046         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12047
12048         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12049         row that will fail on out-of-memory.
12050
12051         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12052         function for testing out-of-memory handling.
12053
12054         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12055         allocation functions, they do map exactly to the expat ones.
12056
12057 2003-03-27  Havoc Pennington  <hp@redhat.com>
12058
12059         * bus/config-loader-libxml.c (bus_config_load): add another error
12060         check
12061
12062 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12063
12064         * doc/TODO:
12065         Add note about automatic service activation.
12066
12067         * doc/dbus-specification.sgml:
12068         Rename the specification and clarify a few things.
12069
12070 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12071
12072         * Doxyfile.in:
12073         * dbus/dbus-address.c:
12074         * dbus/dbus-dict.c:
12075         * dbus/dbus-marshal.c:
12076         * dbus/dbus-server-debug-pipe.c:
12077         * dbus/dbus-transport-unix.c:
12078         Fix documentation warnings.
12079
12080 2003-03-26  Havoc Pennington  <hp@pobox.com>
12081
12082         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12083         after every test so it's quick and easy to see which leaked, and
12084         so we test multiple dbus_shutdown() calls
12085
12086         * configure.in: change configure.in XML stuff to also support
12087         expat
12088
12089         * config-loader-libxml.c: some hacking
12090
12091         * config-loader-expat.c: some hacking
12092
12093         * config-parser.c: some hacking, plus tests
12094
12095 2003-03-25  Havoc Pennington  <hp@redhat.com>
12096
12097         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12098
12099         * configure.in: add --with-xml option to specify XML library,
12100         right now only libxml is supported.
12101
12102         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12103         nonworking code between home and work, still just stubs
12104
12105 2003-03-24  Havoc Pennington  <hp@redhat.com>
12106
12107         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12108         file
12109
12110         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12111         NULL argument for "message" if the error is a well-known one,
12112         fill in a generic message in this case.
12113
12114         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12115         favor of DBusError
12116
12117         * bus/test.c (bus_test_flush_bus): add
12118
12119         * bus/policy.c (bus_policy_test): test code stub
12120
12121 2003-03-24  Havoc Pennington  <hp@pobox.com>
12122
12123         * bus/connection.c (bus_connections_setup_connection): set up
12124         the "can this user connect" function, but it always returns
12125         TRUE until we have a config file parser so we can have a config
12126         file that allows connections.
12127
12128 2003-03-23  Havoc Pennington  <hp@pobox.com>
12129
12130         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12131         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12132         the mutex, so we can check for proper memory management
12133         and OOM handling.
12134
12135         * dbus/dbus-dataslot.c: remove the mutex from
12136         DBusDataSlotAllocator and lock it manually when using it,
12137         to simplify fitting it into the global slots framework.
12138
12139         * dbus/dbus-threads.c (init_static_locks): rework how we're
12140         handling global locks so they are easily shut down.
12141
12142         * bus/policy.c (bus_policy_append_rule): fix
12143
12144         * bus/test-main.c (main): check for memleaks
12145
12146         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12147         test suite check for memleaks
12148
12149         * dbus/dbus-memory.c: add support in test mode for tracking
12150         number of outstanding blocks
12151
12152 2003-03-23  Havoc Pennington  <hp@pobox.com>
12153
12154         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12155         policies code
12156
12157         * dbus/dbus-hash.h: add ULONG hash keys
12158
12159         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12160         (_dbus_get_group_id): new function
12161
12162 2003-03-20  Havoc Pennington  <hp@redhat.com>
12163
12164         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12165         new function
12166         (dbus_connection_get_unix_user): new function
12167
12168 2003-03-20  Havoc Pennington  <hp@pobox.com>
12169
12170         * bus/connection.c (bus_connection_send_oom_error): assert that
12171         message has a sender
12172         (connection_execute_transaction): ditto
12173         (bus_connection_preallocate_oom_error): fix to set the sender, and
12174         set recipient to the destination service, not the bus driver
12175
12176         * bus/policy.c: hacking
12177
12178         * dbus/dbus-message.c (dbus_message_service_is): new function
12179         (dbus_message_sender_is): new
12180
12181 2003-03-19  Havoc Pennington  <hp@redhat.com>
12182
12183         * bus/policy.c: start sketching code for policy restrictions on
12184         what connections can do.
12185
12186 2003-03-18  Havoc Pennington  <hp@redhat.com>
12187
12188         * doc/TODO: some notes on high-level todo items. Little nitpick
12189         stuff is all in @todo, so no need to add it here.
12190
12191         * doc/config-file.txt: some notes on how config file might look
12192
12193 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12194
12195         * configure.in: 0.6
12196
12197         * NEWS: Update.
12198
12199 2003-03-17  Havoc Pennington  <hp@redhat.com>
12200
12201         * dbus/dbus-internals.h: add gcc attributes so that
12202         our printf-style functions warn on bad arguments to
12203         format
12204
12205         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12206         format bug
12207
12208         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12209         printf format bug
12210
12211 2003-03-17  Havoc Pennington  <hp@redhat.com>
12212
12213         * bus/test-main.c (main): make it print something as it runs
12214         so make check doesn't look stuck
12215
12216         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12217         from CVS, now obsolete
12218
12219 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12220
12221         * bus/dispatch.c: (bus_dispatch):
12222         Refetch the service name since it may have been reallocated
12223         when dbus_message_set_sender was called.
12224
12225         * dbus/dbus-sysdeps.c: (_dbus_accept):
12226         Add address and address length variables and use them to stop
12227         valgrind from complaining.
12228
12229 2003-03-17  Havoc Pennington  <hp@pobox.com>
12230
12231         All tests pass, no memleaks, no valgrind complaints.
12232
12233         * bus/test.c: refcount handler_slot
12234
12235         * bus/connection.c (bus_connections_new): refcount
12236         connection_data_slot
12237
12238         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12239         bytes so that auth scripts pass.
12240
12241         * bus/dispatch.c: init message_handler_slot so it gets allocated
12242         properly
12243
12244         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12245
12246         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12247         dealloc server_pipe_hash when no longer used for benefit of
12248         leak checking
12249
12250         * dbus/dbus-auth.c (process_command): memleak fix
12251
12252         * bus/dispatch.c (check_hello_message): memleak fix
12253
12254 2003-03-16  Havoc Pennington  <hp@pobox.com>
12255
12256         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12257
12258 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12259
12260         * bus/activation.c (bus_activation_activate_service): Append
12261         the pending activation entry to the list of pending activations.
12262
12263 2003-03-16  Havoc Pennington  <hp@pobox.com>
12264
12265         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12266         connections
12267
12268         * dbus/dbus-address.c (create_entry): fix OOM handling when
12269         failing to alloc entry->method
12270
12271 2003-03-16  Havoc Pennington  <hp@pobox.com>
12272
12273         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12274         the watch
12275
12276         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12277         add some missing dbus_set_result
12278
12279         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12280         alloc the DBusMessageHandler
12281
12282         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12283         the transport here, since we call this from the finalizer; it
12284         resulted in a double-finalize.
12285
12286         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12287         where we tried to use transport->connection that was NULL,
12288         happened when transport was disconnected early on due to OOM
12289
12290         * bus/*.c: adapt to handle OOM for watches/timeouts
12291
12292         * dbus/dbus-transport-unix.c: port to handle OOM during
12293         watch handling
12294
12295         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12296         reference to unused bytes instead of a copy
12297
12298         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12299         out of memory
12300
12301         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12302         FALSE on OOM
12303
12304         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12305         of memory
12306
12307 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12308
12309         * doc/dbus-specification.sgml:
12310         Document reply message for ActivateService.
12311
12312 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12313
12314         * bus/activation.c: (bus_pending_activation_entry_free),
12315         (bus_pending_activation_free), (bus_activation_new),
12316         (bus_activation_unref), (bus_activation_service_created),
12317         (bus_activation_activate_service):
12318         * bus/activation.h:
12319         * bus/bus.c: (bus_context_new):
12320         * bus/desktop-file.c: (new_section):
12321         * bus/driver.c: (bus_driver_send_service_deleted),
12322         (bus_driver_handle_activate_service):
12323         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12324         * bus/services.h:
12325         * dbus/dbus-connection.c:
12326         (dbus_connection_send_with_reply_and_block):
12327         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12328         * dbus/dbus-protocol.h:
12329         Make activation work better. Now pending activations will be queued
12330         and the daemon won't try to activate services that are already registered.
12331
12332 2003-03-16  Havoc Pennington  <hp@pobox.com>
12333
12334         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12335         connection data
12336
12337         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12338         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12339
12340 2003-03-16  Havoc Pennington  <hp@pobox.com>
12341
12342         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12343         this. always run the test suite before commit...
12344
12345         * bus/*: adapt to DBusConnection API changes
12346
12347         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12348         requires renaming stuff to avoid dbus_connection_dispatch name
12349         conflict.
12350
12351         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12352         function
12353
12354         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12355         separate from _dbus_message_loader_return_buffer()
12356
12357         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12358         this, because it's now always broken to use; the number of
12359         messages in queue vs. the number still buffered by the message
12360         loader is undefined/meaningless. Should use
12361         dbus_connection_get_dispatch_state().
12362         (dbus_connection_dispatch): rename from
12363         dbus_connection_dispatch_message
12364
12365 2003-03-16  Havoc Pennington  <hp@pobox.com>
12366
12367         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12368         implementation
12369
12370 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12371
12372         * dbus/dbus-connection.c:
12373         (dbus_connection_send_with_reply_and_block):
12374         Decrease connection->n_incoming when removing an entry
12375         from the list.
12376         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12377         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12378         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12379         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12380         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12381         (dbus_dict_get_byte_array):
12382         Handle NULL arrays and strings. Also add support for byte arrays.
12383
12384         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12385         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12386         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12387         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12388         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12389         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12390         * dbus/dbus-marshal.h:
12391         Add support for marshalling and demarshalling empty arrays and strings.
12392
12393         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12394         (dbus_message_append_string_array),
12395         (dbus_message_iter_get_boolean),
12396         (dbus_message_iter_get_boolean_array),
12397         (dbus_message_iter_get_int32_array),
12398         (dbus_message_iter_get_uint32_array),
12399         (dbus_message_iter_get_double_array),
12400         (dbus_message_iter_get_byte_array),
12401         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12402         (check_message_handling):
12403         Add support for getting empty arrays and dicts.
12404
12405         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12406         Don't do any validation at all for now, that's better than just checking
12407         for ASCII.
12408
12409         * test/data/valid-messages/emptiness.message:
12410         New test message with lots of empty arrays.
12411
12412 2003-03-16  Havoc Pennington  <hp@pobox.com>
12413
12414         * dbus/dbus-connection.c
12415         (_dbus_connection_queue_received_message_link): new function that
12416         can't fail due to OOM
12417
12418         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12419         new function pops a message together with a list link
12420         containing it.
12421
12422         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12423         message queuing functions to avoid needing to alloc memory
12424
12425 2003-03-16  Havoc Pennington  <hp@pobox.com>
12426
12427         Oops - test code was only testing failure of around 30 of the
12428         mallocs in the test path, but it turns out there are 500+
12429         mallocs. I believe this was due to misguided linking setup such
12430         that there was one copy of dbus_malloc etc. in the daemon and one
12431         in the shared lib, and only daemon mallocs were tested. In any
12432         case, the test case now tests all 500+ mallocs, and doesn't pass
12433         yet, though there are lots of fixes in this patch.
12434
12435         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12436         this so that it doesn't need to allocate memory, since it
12437         has no way of indicating failure due to OOM (and would be
12438         annoying if it did).
12439
12440         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12441
12442         * bus/Makefile.am: rearrange to create two self-contained
12443         libraries, to avoid having libraries with overlapping symbols.
12444         that was resulting in weirdness, e.g. I'm pretty sure there
12445         were two copies of global static variables.
12446
12447         * dbus/dbus-internals.c: move the malloc debug stuff to
12448         dbus-memory.c
12449
12450         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12451         empty.
12452
12453         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12454
12455         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12456         on failure.
12457
12458         * bus/dispatch.c (bus_dispatch_add_connection): free
12459         message_handler_slot when no longer using it, so
12460         memory leak checkers are happy for the test suite.
12461
12462         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12463
12464         * bus/bus.c (new_connection_callback): disconnect in here if
12465         bus_connections_setup_connection fails.
12466
12467         * bus/connection.c (bus_connections_unref): fix to free the
12468         connections
12469         (bus_connections_setup_connection): if this fails, don't
12470         disconnect the connection, just be sure there are no side
12471         effects.
12472
12473         * dbus/dbus-string.c (undo_alignment): unbreak this
12474
12475         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12476         leaking
12477         (_dbus_auth_new): fix the order in which we free strings
12478         on OOM failure
12479
12480         * bus/connection.c (bus_connection_disconnected): fix to
12481         not send ServiceDeleted multiple times in case of memory
12482         allocation failure
12483
12484         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12485         get the base service name
12486         (dbus_bus_register_client): don't return base service name,
12487         instead store it on the DBusConnection and have an accessor
12488         function for it.
12489         (dbus_bus_register_client): rename dbus_bus_register()
12490
12491         * bus/dispatch.c (check_hello_message): verify that other
12492         connections on the bus also got the correct results, not
12493         just the one sending hello
12494
12495 2003-03-15  Havoc Pennington  <hp@pobox.com>
12496
12497         Make it pass the Hello handling test including all OOM codepaths.
12498         Now to do other messages...
12499
12500         * bus/services.c (bus_service_remove_owner): fix crash when
12501         removing owner from an empty list of owners
12502         (bus_registry_ensure): don't leave service in the list of
12503         a connection's owned services if we fail to put the service
12504         in the hash table.
12505
12506         * bus/connection.c (bus_connection_preallocate_oom_error): set
12507         error flag on the OOM error.
12508
12509         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12510         handle _dbus_transport_set_connection failure
12511
12512         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12513         to create watches up front and simply enable/disable them as
12514         needed.
12515         (unix_connection_set): this can now fail on OOM
12516
12517         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12518         of enabling/disabling a watch or timeout.
12519
12520         * bus/loop.c (bus_loop_iterate): don't touch disabled
12521         watches/timeouts
12522
12523         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12524
12525 2003-03-15  Havoc Pennington  <hp@pobox.com>
12526
12527         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12528         write useful test code, after all that futzing around ;-)
12529
12530         Test does not yet pass because we can't handle OOM in
12531         _dbus_transport_messages_pending (basically,
12532         dbus_connection_preallocate_send() does not prealloc the write
12533         watch). To fix this, I think we need to add new stuff to
12534         set_watch_functions, namely a SetEnabled function so we can alloc
12535         the watch earlier, then enable it later.
12536
12537         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12538         dbus-memory.c to the convenience lib
12539
12540         * bus/test.c: rename some static functions to keep them clearly
12541         distinct from stuff in connection.c. Handle client disconnection.
12542
12543 2003-03-14  Havoc Pennington  <hp@pobox.com>
12544
12545         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12546         transport, tests more of the real codepath. Set up clients
12547         with bus_setup_debug_client.
12548
12549         * bus/test.c (bus_setup_debug_client): function to set up debug
12550         "clients" on the main loop
12551
12552         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12553         support
12554
12555         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12556         server type
12557
12558         * dbus/dbus-server-debug.c: support a debug server based on pipes
12559
12560         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12561         (_dbus_close): new function
12562
12563         * configure.in: check for socketpair
12564
12565 2003-03-14  Havoc Pennington  <hp@redhat.com>
12566
12567         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12568         cheesy hack
12569
12570         * dbus/dbus-transport-debug.c: rework this a good bit to be
12571         less complicated. hopefully still works.
12572
12573         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12574         manually
12575
12576         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12577         after running it
12578
12579         * dbus/dbus-message.c (dbus_message_copy): rename from
12580         dbus_message_new_from_message, fix it up to copy
12581         all the message fields, add test case
12582
12583         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12584         not quite passing yet
12585
12586 2003-03-14  Havoc Pennington  <hp@pobox.com>
12587
12588         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12589         until no work remains" in test code. (the large diff here
12590         is just code movement, no actual changes)
12591
12592         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12593         1, no point waiting around for test code.
12594         (_dbus_server_debug_accept_transport): unref the timeout
12595         after adding it (right?)
12596
12597         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12598
12599 2003-03-13  Havoc Pennington  <hp@redhat.com>
12600
12601         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12602         out of memory
12603
12604         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12605         of memory
12606
12607         * dbus/dbus-connection.h: Make AddWatchFunction and
12608         AddTimeoutFunction return a bool so they can fail on out-of-memory
12609
12610         * bus/bus.c (bus_context_new): set up timeout handlers
12611
12612         * bus/connection.c (bus_connections_setup_connection): set up
12613         timeout handlers
12614
12615         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12616         can fail
12617
12618         * bus/bus.c (bus_context_new): adapt to changes
12619
12620         * bus/connection.c: adapt to changes
12621
12622         * test/watch.c: adapt to DBusWatch changes
12623
12624         * bus/dispatch.c (bus_dispatch_test): started adding this but
12625         didn't finish
12626
12627 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12628
12629         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12630
12631 2003-03-13  Havoc Pennington  <hp@pobox.com>
12632
12633         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12634         set up a test framework as for the library
12635
12636 2003-03-12  Havoc Pennington  <hp@pobox.com>
12637
12638         Throughout: purge global variables, introduce BusActivation,
12639         BusConnections, BusRegistry, etc. objects instead.
12640
12641         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12642         message bus object
12643
12644         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12645         going to redo this a bit differently I think
12646
12647 2003-03-12  Havoc Pennington  <hp@redhat.com>
12648
12649         Mega-patch that gets the message bus daemon initially handling
12650         out-of-memory. Work still needed. Also lots of random
12651         moving stuff to DBusError instead of ResultCode.
12652
12653         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12654
12655         * dbus/dbus-connection.c
12656         (dbus_connection_send_with_reply_and_block): use DBusError
12657
12658         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12659         DBusResultCode
12660
12661         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12662         code here, as the only failure possible is OOM.
12663
12664         * bus/connection.c (bus_connection_disconnect):
12665         rename bus_connection_disconnected as it's a notification only
12666
12667         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12668         "name" on get_args failure, should be done by get_args;
12669         don't disconnect client for bad args, just return an error.
12670         (bus_driver_handle_service_exists): ditto
12671
12672         * bus/services.c (bus_services_list): NULL-terminate returned array
12673
12674         * bus/driver.c (bus_driver_send_service_lost)
12675         (bus_driver_send_service_acquired): send messages from driver to a
12676         specific client to the client's unique name, not to the broadcast
12677         service.
12678
12679         * dbus/dbus-message.c (decode_header_data): reject messages that
12680         contain no name field
12681         (_dbus_message_get_client_serial): rename to
12682         dbus_message_get_serial and make public
12683         (_dbus_message_set_serial): rename from set_client_serial
12684         (_dbus_message_set_reply_serial): make public
12685         (_dbus_message_get_reply_serial): make public
12686
12687         * bus/connection.c (bus_connection_foreach): allow stopping
12688         iteration by returning FALSE from foreach function.
12689
12690         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12691         (dbus_connection_free_preallocated_send)
12692         (dbus_connection_preallocate_send): new API for sending a message
12693         without possibility of malloc failure.
12694         (dbus_connection_send_message): rename to just
12695         dbus_connection_send (and same for whole function family)
12696
12697         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12698
12699         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12700
12701         * bus/activation.c: handle/return errors
12702
12703         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12704
12705         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12706         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12707         (_dbus_result_from_errno): move to this file
12708
12709 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12710
12711         * dbus/dbus-marshal.c:
12712         (_dbus_marshal_set_string):
12713         Take a length argument so we can marshal the correct string
12714         length.
12715
12716         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12717         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12718         (_dbus_marshal_test):
12719         * dbus/dbus-marshal.h:
12720         Add support for marshalling and demarshalling dicts.
12721
12722         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12723         Add support for TYPE DICT.
12724
12725         * dbus/dbus-message.c: (set_string_field):
12726         Adjust header padding.
12727
12728         (dbus_message_append_args_valist), (dbus_message_append_dict),
12729         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12730         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12731         (check_message_handling), (check_have_valid_message):
12732         * dbus/dbus-message.h:
12733         Add functions for setting and getting dicts.
12734
12735         * dbus/dbus-protocol.h:
12736         Add DBUS_TYPE_DICT.
12737
12738         * dbus/dbus.h:
12739         Add dbus-dict.h
12740
12741         * doc/dbus-specification.sgml:
12742         Add information about how dicts are marshalled.
12743
12744         * test/data/invalid-messages/dict-with-nil-value.message:
12745         * test/data/invalid-messages/too-short-dict.message:
12746         * test/data/valid-messages/dict-simple.message:
12747         * test/data/valid-messages/dict.message:
12748         Add sample messages containing dicts.
12749
12750 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12751
12752         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12753
12754 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12755
12756         * dbus/Makefile.am:
12757         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12758         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12759         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12760         (dbus_dict_set_double), (dbus_dict_set_string),
12761         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12762         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12763         (dbus_dict_set_string_array), (_dbus_dict_test):
12764         * dbus/dbus-dict.h:
12765         Fix according to comments from Havoc.
12766
12767 2003-03-06  Michael Meeks  <michael@server.home>
12768
12769         * configure.in: if we don't have kde-config, disable have_qt.
12770
12771 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12772
12773         * dbus/Makefile.am:
12774         Add dbus-dict.[ch]
12775
12776         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12777         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12778         (dbus_dict_remove), (dbus_dict_get_value_type),
12779         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12780         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12781         (dbus_dict_put_double), (dbus_dict_put_string),
12782         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12783         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12784         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12785         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12786         (dbus_dict_get_double), (dbus_dict_get_string),
12787         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12788         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12789         (dbus_dict_get_string_array), (_dbus_dict_test):
12790         * dbus/dbus-dict.h:
12791         Add DBusDict implementation
12792
12793         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12794         * dbus/dbus-test.h:
12795         Add _dbus_dict_test
12796
12797 2003-03-04  Havoc Pennington  <hp@pobox.com>
12798
12799         * test/data/auth/*: adapt to changes
12800
12801         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12802         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12803         userid
12804
12805         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12806         more stuff from being in a context name, to make the protocol
12807         simpler to deal with
12808
12809         * dbus/dbus-errors.c (dbus_error_has_name): new function
12810         (dbus_error_is_set): new function
12811
12812         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12813         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12814
12815         * dbus/dbus-connection.c (dbus_connection_flush): also read
12816         messages during a flush operation
12817
12818         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12819
12820 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12821
12822         * configure.in: Check for gethostbyname on Solaris.
12823
12824         * dbus/dbus-transport.c: (_dbus_transport_open):
12825         Remove duplicate "tcp" entry.
12826
12827         * doc/dbus-specification.sgml:
12828         Clarify some things.
12829
12830 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12831
12832         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12833         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12834         (_dbus_keyring_test):
12835         * dbus/dbus-md5.c: (_dbus_md5_compute):
12836         * dbus/dbus-sha.c: (_dbus_sha_compute):
12837         Plug memory leaks.
12838
12839 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12840
12841         * README: Add some things.
12842
12843 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12844
12845         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12846         after case DBUS_TYPE_BOOELAN.
12847
12848 2003-03-02  Havoc Pennington  <hp@pobox.com>
12849
12850         * test/break-loader.c (randomly_set_extreme_ints): add test that
12851         sets really huge and small integers
12852
12853         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12854         that length of boolean array fits in the string, and that
12855         string has room for boolean value in single-bool case.
12856
12857         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12858         optional value to "ALIGN" command which is what to fill the
12859         alignment with.
12860
12861         * test/data/valid-messages/no-padding.message: add regression
12862         test for the message padding problem
12863
12864 2003-03-02  Havoc Pennington  <hp@pobox.com>
12865
12866         * dbus/dbus-message.c (decode_header_data): fix to always init
12867         message_padding, from Benjamin Dauvergne
12868
12869 2003-03-02  Havoc Pennington  <hp@pobox.com>
12870
12871         * configure.in: 0.5
12872
12873         * NEWS: Update.
12874
12875 2003-03-01  Joe Shaw  <joe@assbarn.com>
12876
12877         * configure.in: Check for "struct cmsgcred" and try to access its
12878         members for BSD-like unices.
12879
12880         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12881         _dbus_read_credentials_unix_socket().
12882         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12883         read() for reading the credential byte off the unix socket.  Use
12884         struct cmsgcred on systems that support it.
12885
12886 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12887
12888         * glib/Makefile.am:
12889         * configure.in:
12890         Make gthreads-2.0 dependency optional. Don't build thread test if
12891         its not found.
12892
12893 2003-02-27  Havoc Pennington  <hp@pobox.com>
12894
12895         * dbus/dbus-connection.c
12896         (dbus_connection_send_message_with_reply_and_block): fix doh!
12897         doh! doh! bug that resulted in never removing a reply from the
12898         queue, no wonder we called get_reply_serial so much ;-)
12899
12900         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12901         and client serial instead of demarshaling them every time
12902
12903 2003-02-27  Havoc Pennington  <hp@pobox.com>
12904
12905         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12906         more inlined, using dbus-string-private.h, speeds things up
12907         substantially
12908
12909         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12910         when freeing the string
12911         (_dbus_string_steal_data): fix for align offset
12912         (undo_alignment): new function
12913
12914 2003-02-26  Havoc Pennington  <hp@redhat.com>
12915
12916         All kinds of audit fixes from Owen, plus initial attempt to
12917         handle unaligned memory returned from malloc.
12918
12919         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12920         leave room for align_offset and nul byte
12921         (fixup_alignment): function to track an align_offset and
12922         ensure real->str is aligned
12923         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12924         to allow a nul byte plus align offset
12925         (_dbus_string_lock): fix overflow issue
12926         (_dbus_string_init_const_len): add assertions on sanity of len,
12927         assign allocated to be ALLOCATION_PADDING larger than len
12928         (set_length): fixup the overflow handling
12929         (_dbus_string_get_data_len): fix overflow in assertion
12930         (open_gap): detect overflow in size of gap to be opened
12931         (_dbus_string_lengthen): add overflow check
12932         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
12933         (_dbus_string_append): add overflow check
12934         (_dbus_string_append_unichar): overflow
12935         (_dbus_string_delete): fix overflow in assertion
12936         (_dbus_string_copy_len): overflow in assertion
12937         (_dbus_string_replace_len): overflows in assertions
12938         (_dbus_string_find): change to implement in terms of
12939         _dbus_string_find_to
12940         (_dbus_string_find_to): assorted fixage
12941         (_dbus_string_equal_c_str): assert c_str != NULL,
12942         fix logic so the function works
12943         (_dbus_string_ends_with_c_str): fix overflow thingy
12944         (_dbus_string_base64_encode): overflow fix
12945         (_dbus_string_validate_ascii): overflow
12946         (_dbus_string_validate_nul): overflow
12947
12948 2003-02-26  Havoc Pennington  <hp@redhat.com>
12949
12950         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
12951
12952 2003-02-26  Alexander Larsson  <alexl@redhat.com>
12953
12954         * configure.in:
12955         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
12956
12957         * dbus/dbus-connection.c:
12958         * dbus/dbus-connection.h:
12959         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
12960         Add dbus_connection_set_wakeup_main_function and use it when queueing
12961         incoming and outgoing messages.
12962
12963
12964         * dbus/dbus-dataslot.c:
12965         Threadsafe usage of DBusDataSlotAllocator
12966
12967         * dbus/dbus-message.c: (dbus_message_get_args_iter):
12968         dbus_new can fail.
12969
12970         * dbus/dbus-server-unix.c:
12971         Add todo comment
12972
12973         * glib/dbus-gmain.c:
12974         Implement the new wakeup functions for glib.
12975
12976         * glib/Makefile.am:
12977         * glib/test-thread-client.c:
12978         * glib/test-thread-server.c:
12979         * glib/test-thread.h:
12980         Initial cut at some thread test code. Not really done yet.
12981
12982 2003-02-26  Havoc Pennington  <hp@pobox.com>
12983
12984         * dbus/dbus-connection.c
12985         (dbus_connection_send_message_with_reply_and_block): fix crash
12986         where we ref'd the outgoing message instead of the returned reply
12987
12988         * dbus/dbus-transport-unix.c (do_authentication): check read watch
12989         at the end of this function, so if we didn't need to read for
12990         authentication, we reinstall it for receiving messages
12991
12992         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
12993         a NULL sender for peer-to-peer case
12994
12995         * dbus/dbus-transport-unix.c (check_read_watch): handle
12996         !authenticated case correctly
12997
12998         * glib/dbus-gmain.c: add support for DBusServer
12999
13000         * dbus/dbus-server.c: add data slot support
13001
13002         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13003         return values and handle errors
13004
13005         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13006         DBusConnection
13007
13008         * Doxyfile.in (INPUT): add glib subdir
13009
13010         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13011         setup_with_g_main instead of hookup_with_g_main; write docs
13012
13013 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13014
13015         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13016         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13017         * dbus/dbus-message.c: (dbus_message_append_boolean),
13018         (dbus_message_append_boolean_array),
13019         (dbus_message_get_args_valist), (_dbus_message_test):
13020         * dbus/dbus-message.h:
13021         * doc/dbus-specification.sgml:
13022         Various fixes as pointed out by Havoc.
13023
13024         * test/data/invalid-messages/bad-boolean-array.message:
13025         * test/data/invalid-messages/bad-boolean.message:
13026         Add invalid boolean value test cases.
13027
13028 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13029
13030         * dbus/dbus-internals.c: (_dbus_type_to_string):
13031         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13032         (_dbus_marshal_validate_arg):
13033         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13034         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13035         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13036         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13037         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13038         (dbus_message_iter_get_double),
13039         (dbus_message_iter_get_boolean_array), (message_iter_test):
13040         * dbus/dbus-message.h:
13041         * dbus/dbus-protocol.h:
13042         * doc/dbus-specification.sgml:
13043         * test/data/valid-messages/lots-of-arguments.message:
13044         Add support for boolean and boolean array types.
13045
13046 2003-02-23  Havoc Pennington  <hp@pobox.com>
13047
13048         * dbus/dbus-keyring.c: finish most of this implementation and
13049         simple unit test
13050
13051         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13052         these barf if the error isn't cleared to NULL
13053
13054         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13055         (_dbus_create_directory): new function
13056
13057         * dbus/dbus-errors.c (dbus_set_error): fix warning
13058
13059         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13060         (_dbus_string_hex_decode): new function
13061         (test_hex_roundtrip): test code
13062
13063         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13064
13065         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13066
13067         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13068         the save-to-temp/rename trick to atomically write the new file
13069         (_dbus_string_parse_uint): new function
13070
13071 2003-02-22  Havoc Pennington  <hp@pobox.com>
13072
13073         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13074
13075 2003-02-22  Havoc Pennington  <hp@pobox.com>
13076
13077         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13078         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13079
13080         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13081
13082         * dbus/test/data/sha-1: add US government test suite for SHA-1
13083
13084 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13085
13086         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13087         Make string arrays NULL-terminated.
13088
13089         * dbus/dbus-memory.c: (dbus_free_string_array):
13090         * dbus/dbus-memory.h:
13091         New function for freeing NULL-terminated string arrays.
13092
13093         * dbus/dbus-message-builder.c: (append_quoted_string),
13094         (_dbus_message_data_load):
13095         Add support for array types.
13096
13097         * dbus/dbus-message.c: (check_message_handling):
13098         Add more types as test cases.
13099
13100         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13101         (_dbus_string_parse_double):
13102         Add the start offset to the end offset.
13103
13104         * test/data/valid-messages/lots-of-arguments.message:
13105         New test message with lots of arguments.
13106
13107 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13108
13109         * dbus/dbus-message.c: (dbus_message_append_nil),
13110         (dbus_message_append_int32), (dbus_message_append_uint32),
13111         (dbus_message_append_double), (dbus_message_append_string),
13112         (dbus_message_append_int32_array),
13113         (dbus_message_append_uint32_array),
13114         (dbus_message_append_double_array),
13115         (dbus_message_append_byte_array),
13116         (dbus_message_append_string_array):
13117         Fix all out-of-memory handling in these functions.
13118
13119 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13120
13121         * dbus/dbus-message.c: (dbus_message_append_nil):
13122         Fix a silly.
13123
13124 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13125
13126         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13127         (dbus_message_append_nil), (dbus_message_append_int32_array),
13128         (dbus_message_append_uint32_array),
13129         (dbus_message_append_double_array),
13130         (dbus_message_append_byte_array),
13131         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13132         (dbus_message_iter_get_int32_array),
13133         (dbus_message_iter_get_uint32_array),
13134         (dbus_message_iter_get_double_array),
13135         (dbus_message_iter_get_byte_array),
13136         (dbus_message_iter_get_string_array):
13137
13138         * dbus/dbus-message.h:
13139         Add functions for appending and getting arrays.
13140
13141 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13142
13143         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13144         element size at least 8 bytes, fixes mempool tests on
13145         64-bit machines.
13146
13147 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13148
13149         * dbus/dbus-transport-unix.c (unix_do_iteration):
13150         Unlock the connection mutex during a blocking select call.
13151         Add todo about how we need a way to wake up the select.
13152
13153         * dbus/dbus-connection-internal.h:
13154         * dbus/dbus-connection.c:
13155         Add _dbus_connection_lock and _dbus_connection_unlock.
13156
13157 2003-02-19  Havoc Pennington  <hp@pobox.com>
13158
13159         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13160         Doxyfile.in, not Doxyfile
13161
13162         * dbus/dbus-keyring.c: do some hacking on this
13163
13164         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13165
13166         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13167         dbus_error_init
13168         (dbus_set_error): remove dbus_error_init, check for message ==
13169         NULL *before* we sprintf into it, and add @todo about including
13170         system headers in this file
13171
13172         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13173
13174         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13175
13176         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13177         get various bits of user information based on either username
13178         or user ID
13179         (_dbus_homedir_from_username): new function
13180
13181 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13182
13183         * configure.in:
13184         Add check for nonposix getpwnam_r
13185
13186         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13187         Align the pool element size to a sizeof (void *) boundary.
13188
13189         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13190         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13191         General Solaris fixes.
13192
13193         * test/data/valid-messages/simplest-manual.message:
13194         Explicitly state that we want little-endian packing.
13195
13196 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13197
13198         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13199
13200         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13201         Added to create a transport connecting using a tcp/ip socket.
13202
13203         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13204         to a tcp socket at given host and port.
13205         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13206         hostname and port.
13207
13208         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13209
13210         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13211         Added to create a server listening on a TCP/IP socket.
13212
13213 2003-02-19  Havoc Pennington  <hp@pobox.com>
13214
13215         Throughout: mop up all the Doxygen warnings and undocumented
13216         stuff.
13217
13218         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13219         to search any paths.
13220
13221         * dbus/dbus-threads.c: move global mutex initializers to
13222         dbus-internals.h, multiple prototypes was confusing doxygen
13223         besides being kind of ugly
13224
13225         * Doxyfile (PREDEFINED): have Doxygen define
13226         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13227         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13228         (do not abuse the feature! it's for stuff like the autogenerated
13229         macros in dbus-md5.c, not just for things you don't feel like
13230         documenting...)
13231
13232 2003-02-18  Havoc Pennington  <hp@pobox.com>
13233
13234         * dbus/dbus-string.c (_dbus_string_zero): new function
13235
13236         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13237         wrap it in some dbus-friendly API
13238
13239         * dbus/dbus-types.h: add 16-bit types
13240
13241 2003-02-18  Joe Shaw  <joe@assbarn.com>
13242
13243         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13244         credentials from our currently running process.
13245         (get_word): Fix a buglet where we were copying the entire length
13246         instead of relative to our position.
13247
13248         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13249         keys on the stack... it's 640k of data.
13250
13251         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13252         read the credentials byte off the socket, even if we don't have
13253         SO_PEERCRED.
13254         (_dbus_poll): Implement poll() using select() for systems which
13255         don't have it.
13256
13257         * glib/test-dbus-glib.c (main): Print out an error if no
13258         parameters are given.
13259
13260         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13261         can fallback to a secondary auth mechanism if the first fails.
13262
13263 2003-02-18  Havoc Pennington  <hp@pobox.com>
13264
13265         * AUTHORS: add Alex
13266
13267 2003-02-17  Havoc Pennington  <hp@pobox.com>
13268
13269         * doc/dbus-specification.sgml: lots of cosmetic
13270         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13271         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13272         s/server/bus/ (except in authentication section). Add a section
13273         "Message Bus Message Routing"
13274
13275 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13276
13277         Release 0.4
13278
13279         * NEWS: Update
13280
13281 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13282
13283         * doc/dbus-specification.sgml:
13284         Specification updates.
13285
13286 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13287
13288         * bus/activation.c: (bus_activation_init), (child_setup),
13289         (bus_activation_activate_service):
13290         * bus/activation.h:
13291         * bus/main.c: (main):
13292         Set DBUS_ADDRESS environment variable.
13293
13294         * dbus/dbus-errors.c: (dbus_set_error):
13295         Don't use va_copy since that's a C99 feature.
13296
13297         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13298         (_dbus_spawn_async):
13299         * dbus/dbus-sysdeps.h:
13300         Add child_setup_func to _dbus_spawn_async.
13301
13302         * doc/dbus-specification.sgml:
13303         Update specification.
13304
13305         * test/spawn-test.c: (setup_func), (main):
13306         Fix test.
13307
13308 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13309
13310         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13311         Added todo.
13312
13313 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13314
13315         * doc/.cvsignore:
13316         * doc/Makefile.am:
13317         * doc/dbus-test-plan.sgml:
13318         Add test plan document.
13319
13320         * test/Makefile.am:
13321         Fix distcheck.
13322
13323 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13324
13325         * dbus/dbus-message.c: (decode_header_data),
13326         (_dbus_message_loader_return_buffer):
13327         Set the header padding amount when loading a message.
13328
13329 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13330
13331         * bus/dispatch.c: (send_one_message):
13332         Only send broadcast messages to registered connections.
13333
13334         * dbus/dbus-message.c: (dbus_message_name_is):
13335         * dbus/dbus-message.h:
13336         New convenience function.
13337
13338         * dbus/dbus-transport-debug.c: (do_reading):
13339         Only dispatch one message per run.
13340
13341         * test/Makefile.am:
13342         * test/bus-test.c: (new_connection_callback), (die),
13343         (test_hello_client1_handler), (test_hello_client2_handler),
13344         (test_hello_replies), (main):
13345
13346         * test/bus-test-loop.[ch]:
13347         Add these.
13348
13349 2003-02-16  Havoc Pennington  <hp@pobox.com>
13350
13351         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13352         backward conditional
13353
13354 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13355
13356         * dbus/dbus-connection.c:
13357         Implement sent_message_with_reply. (with_reply_and block is still
13358         busted).
13359         Made dispatch_message not lose message if OOM.
13360
13361         * dbus/dbus-errors.h:
13362         Add NoReply error (for reply timeouts).
13363
13364 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13365
13366         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13367         Actually free keys and values when destroying hashtable.
13368
13369 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13370
13371         * dbus/dbus-auth.c: (client_try_next_mechanism):
13372         Plug a leak.
13373
13374         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13375         Return TRUE if there's no thread implementation around.
13376
13377         * glib/dbus-gmain.c: (free_source),
13378         (dbus_connection_hookup_with_g_main):
13379         Make sure to remove the GSource when the connection is finalized.
13380
13381 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13382
13383         * bus/dispatch.c: (bus_dispatch_message_handler):
13384         * dbus/dbus-errors.h:
13385         Return an error if someone tries to send a message to a service
13386         that doesn't exist.
13387
13388 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13389
13390         * bus/activation.c: (load_directory), (bus_activation_init),
13391         (bus_activation_activate_service):
13392         * bus/activation.h:
13393         * bus/driver.c:
13394         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13395         More work on the activation handling.
13396
13397         * dbus/dbus-errors.h:
13398         Add some error messages
13399
13400         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13401         * dbus/dbus-message.h:
13402         New function that creates an error message.
13403
13404         * dbus/dbus-protocol.h:
13405         Add ACTIVATE_SERVER message.
13406
13407         * dbus/dbus-server-unix.c: (unix_handle_watch),
13408         (_dbus_server_new_for_domain_socket):
13409         Call _dbus_fd_set_close_on_exec.
13410
13411         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13412         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13413         (_dbus_fd_set_close_on_exec):
13414         * dbus/dbus-sysdeps.h:
13415         Add _dbus_fd_set_close_on exec function. Also add function that checks
13416         that all open fds are set to close-on-exec and warns otherwise.
13417
13418         * dbus/dbus-transport-unix.c:
13419         (_dbus_transport_new_for_domain_socket):
13420         Call _dbus_fd_set_close_on_exec.
13421
13422 2003-02-16  Havoc Pennington  <hp@pobox.com>
13423
13424         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13425         allow people to avoid setting SIGPIPE to SIG_IGN
13426         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13427         we've been asked not to
13428
13429 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13430
13431         * dbus/dbus-list.c: (_dbus_list_append_link),
13432         (_dbus_list_prepend_link):
13433         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13434         (dbus_realloc):
13435         Warning fixes.
13436
13437 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13438
13439         * bus/Makefile.am:
13440         * bus/activation.c: (bus_activation_entry_free),
13441         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13442         * bus/activation.h:
13443         * bus/main.c: (main):
13444         Add simple activation support, doesn't work yet though.
13445
13446 2003-02-15   Zack Rusin  <zack@kde.org>
13447
13448         * qt/dbus-qthread.cpp:  small casting fix
13449
13450 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13451
13452         * dbus/dbus-errors.c: (dbus_set_error):
13453         * dbus/dbus-errors.h:
13454         Add a few errors and make dbus_set_error void.
13455
13456         * dbus/dbus-sysdeps.c:
13457         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13458         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13459         * dbus/dbus-sysdeps.h:
13460         Add _dbus_spawn_async.
13461
13462         * test/spawn-test.c: (main):
13463         Test for _dbus_spawn_async.
13464
13465 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13466
13467         * dbus/dbus-internals.h:
13468         Fix build without tests.
13469
13470         * dbus/dbus-list.c: (alloc_link):
13471         Fix a segfault when a malloc fails.
13472
13473         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13474         (dbus_malloc0), (dbus_realloc):
13475         Add support for malloc debugging.
13476
13477 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13478
13479         * dbus/dbus-threads.c:
13480         * dbus/dbus-threads.h:
13481         Add condvars. Remove static mutext from API.
13482         Implement static mutexes by initializing them from threads_init.
13483
13484         * glib/dbus-gthread.c:
13485         * qt/dbus-qthread.cpp:
13486         Update with the thread api changes.
13487
13488
13489         * dbus/dbus-list.c:
13490         * dbus/dbus-list.h:
13491         Turn StaticMutex into normal mutex + init function.
13492         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13493         _dbus_list_append_link, _dbus_list_prepend_link
13494
13495
13496         * dbus/dbus-sysdeps.c:
13497         * dbus/dbus-sysdeps.h:
13498         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13499         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13500
13501         * dbus/dbus-protocol.h:
13502         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13503
13504         * dbus/dbus-message.c:
13505         Make ref/unref atomic.
13506         Fix some docs.
13507
13508         * dbus/dbus-connection-internal.h:
13509         * dbus/dbus-connection.c:
13510         * dbus/dbus-connection.h:
13511         Make threadsafe.
13512         Change _peek to _borrow,_return & _steal_borrowed.
13513         Change disconnect callback to event.
13514         Make dbus_connection_dispatch_messages reentrant.
13515
13516         * dbus/dbus-transport.c:
13517         Don't ref the connection on calls to the transport
13518         implementation.
13519
13520         * dbus/dbus-message-handler.c:
13521         Make threadsafe.
13522
13523         * glib/dbus-gmain.c:
13524         Don't use peek_message anymore
13525
13526         * test/Makefile.am:
13527         * test/debug-thread.c:
13528         * test/debug-thread.h:
13529         Simple thread implementation that asserts() on deadlocks in
13530         single-threaded code.
13531
13532         * test/bus-test.c:
13533         (main) Call debug_threads_init.
13534
13535         * test/watch.c:
13536         Use disconnect message instead of disconnect callback.
13537
13538         * bus/connection.c:
13539         * bus/connection.h:
13540         Don't call dbus_connection_set_disconnect_function. Instead export
13541         bus_connection_disconnect.
13542
13543         * bus/dispatch.c:
13544         Call bus_connection_disconnect when we get a disconnected message.
13545
13546 2003-02-15  Havoc Pennington  <hp@pobox.com>
13547
13548         * dbus/dbus-message.c (dbus_message_new): fool around with the
13549         docs
13550
13551 2003-02-14  Havoc Pennington  <hp@pobox.com>
13552
13553         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13554
13555         * dbus/dbus-memory.c: fail if the debug functions indicate we
13556         should
13557
13558         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13559         (_dbus_decrement_fail_alloc_counter): debug functions to
13560         simulate memory allocation failures
13561
13562 2003-02-14  Havoc Pennington  <hp@pobox.com>
13563
13564         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13565         to DBusError
13566
13567 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13568
13569         * bus/driver.c: (bus_driver_handle_hello):
13570         * bus/driver.h:
13571         * bus/services.c: (bus_service_lookup):
13572         Reorder message sending so we get a more sane order.
13573
13574         * test/bus-test.c: (message_handler):
13575         Fix tyop.
13576
13577 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13578
13579         * bus/driver.c: (bus_driver_send_service_deleted),
13580         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13581         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13582         (bus_driver_send_welcome_message),
13583         (bus_driver_handle_list_services),
13584         (bus_driver_handle_acquire_service),
13585         (bus_driver_handle_service_exists):
13586         * dbus/dbus-bus.c: (dbus_bus_register_client),
13587         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13588         * dbus/dbus-errors.c: (dbus_result_to_string):
13589         * dbus/dbus-errors.h:
13590         * dbus/dbus-message.c: (dbus_message_append_args),
13591         (dbus_message_append_args_valist), (dbus_message_get_args),
13592         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13593         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13594         (dbus_message_iter_get_byte_array),
13595         (dbus_message_iter_get_string_array), (message_iter_test),
13596         (check_message_handling), (_dbus_message_test):
13597         * dbus/dbus-message.h:
13598         * test/bus-test.c: (main):
13599         Change fields to arguments in messages, so that they won't be
13600         confused with header fields.
13601
13602         * glib/test-dbus-glib.c: (main):
13603         Remove append_fields from hello message.
13604
13605 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13606
13607         * dbus/dbus-errors.c:
13608         * dbus/dbus-message.c:
13609         * dbus/dbus-string.c:
13610         Documentation fixes.
13611
13612 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13613
13614         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13615         (remove_timeout):
13616         Implement support for timeouts in dbus-glib.
13617
13618 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13619
13620         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13621         * dbus/dbus-message.c: (process_test_subdir):
13622         * test/break-loader.c: (find_breaks_based_on):
13623         Plug some memory leaks.
13624
13625 2003-02-13  Richard Hult  <rhult@codefactory.se>
13626
13627         * bus/main.c: Fix build.
13628
13629         * dbus/dbus-errors.h:
13630         * dbus/dbus-errors.c: Fix copyright for Anders.
13631
13632 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13633
13634         * bus/Makefile.am:
13635         Add utils.[ch]
13636
13637         * bus/connection.c: (bus_connection_foreach):
13638         Fix a warning.
13639
13640         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13641         (unescape_string), (new_section), (parse_section_start),
13642         (parse_key_value), (report_error), (bus_desktop_file_load),
13643         (bus_desktop_file_get_string):
13644         * bus/desktop-file.h:
13645         Use DBusError for error reporting.
13646
13647         * bus/dispatch.c: (send_one_message),
13648         (bus_dispatch_message_handler):
13649         * bus/driver.c: (bus_driver_send_service_deleted),
13650         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13651         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13652         (bus_driver_send_welcome_message),
13653         (bus_driver_handle_list_services),
13654         (bus_driver_handle_acquire_service),
13655         (bus_driver_handle_service_exists):
13656         * bus/loop.c: (bus_loop_run):
13657         * bus/main.c:
13658         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13659
13660         * bus/utils.c: (bus_wait_for_memory):
13661         * bus/utils.h:
13662         New files with general utility functions.
13663
13664         * dbus/dbus-internals.h:
13665         Remove _DBUS_HANDLE_OOM.
13666
13667 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13668
13669         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13670         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13671         * dbus/dbus-errors.h:
13672         Add DBusError structure.
13673
13674 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13675
13676         * test/data/valid-messages/standard-acquire-service.message:
13677         * test/data/valid-messages/standard-hello.message:
13678         * test/data/valid-messages/standard-list-services.message:
13679         * test/data/valid-messages/standard-service-exists.message:
13680         Add some standard messages.
13681
13682 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13683
13684         * bus/driver.c: (bus_driver_send_welcome_message),
13685         (bus_driver_handle_list_services),
13686         (bus_driver_handle_acquire_service),
13687         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13688         Update for API changes in libdbus.
13689
13690         * dbus/dbus-message.c: (dbus_message_new_reply):
13691         * dbus/dbus-message.h:
13692         Remove the name argument. The spec states that replies shouldn't
13693         have a name.
13694
13695 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13696
13697         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13698         (report_error), (bus_desktop_file_load), (lookup_section),
13699         (lookup_line), (bus_desktop_file_get_raw),
13700         (bus_desktop_file_get_string):
13701         * bus/desktop-file.h:
13702         Some fixes, and new functions for getting a key value from a section.
13703
13704 2003-02-13  Havoc Pennington  <hp@pobox.com>
13705
13706         * test/data/auth/fail-after-n-attempts.auth-script: new test
13707
13708         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13709         reject the client.
13710
13711 2003-02-13  Havoc Pennington  <hp@pobox.com>
13712
13713         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13714         dbus_credentials_match were backward
13715
13716         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13717         NO_CREDENTIALS and ROOT_CREDENTIALS
13718
13719         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13720         into here. Never process more commands after we've reached an
13721         end state; store further data as unused bytes.
13722
13723         * test/data/auth/*: add more auth tests
13724
13725         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13726         command to match exact string and EXPECT_UNUSED to match unused
13727         bytes
13728
13729         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13730
13731 2003-02-12  Havoc Pennington  <hp@pobox.com>
13732
13733         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13734         \r off of popped lines
13735
13736         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13737         scripts
13738
13739         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13740         SEND, append \r\n
13741
13742 2003-02-12  Havoc Pennington  <hp@pobox.com>
13743
13744         * dbus/Makefile.am: remove break-loader from the build, since it
13745         moved.
13746
13747         * configure.in: add --enable-gcov to turn on coverage profiling
13748         flags and disable optimization
13749
13750 2003-02-10  Havoc Pennington  <hp@pobox.com>
13751
13752         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13753         initial cut at test framework for DBusAuth from laptop.
13754         Doesn't quite work yet but it compiles and I need to get
13755         it off the 266mhz laptop. ;-)
13756
13757         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13758         fix a memleak in error case
13759
13760 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13761
13762         * bus/Makefile.am:
13763         * bus/desktop-file.c:
13764         * bus/desktop-file.h:
13765         Add a desktop file parser.
13766
13767 2003-02-11  Zack Rusin  <zack@kde.org>
13768
13769         * qt/message.[h|cpp]: sample implementation
13770         of the KDE wrapper for DBusMessage
13771
13772 2003-02-09  Zack Rusin  <zack@kde.org>
13773
13774         * test/bus-test.c: make_it_compile
13775         * doc/dbus-specification.sgml: minimal semantic fix
13776
13777 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13778
13779         Release 0.3
13780
13781         * NEWS: Update
13782
13783 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13784
13785         * dbus/Makefile.am:
13786         * dbus/dbus-break-loader.c:
13787         * test/Makefile.am:
13788         * test/break-loader.c:
13789         Move dbus-break-loader to test/ and rename it to break-loader.
13790
13791 2003-02-02  Havoc Pennington  <hp@pobox.com>
13792
13793         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13794         for code to manage cookies in your home directory
13795
13796         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13797
13798         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13799         to authenticate, then disconnect the client.
13800
13801 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13802
13803         * dbus/dbus-message.c (dbus_message_append_fields):
13804         Correct docs.
13805
13806 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13807
13808         * doc/dbus-specification.sgml:
13809         Update address format section.
13810
13811 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13812
13813         * test/Makefile.am:
13814         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13815         (message_handler), (new_connection_callback), (loop_quit),
13816         (loop_run), (main):
13817         Add bus test.
13818
13819 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13820
13821         * bus/driver.c: (bus_driver_handle_service_exists):
13822         Simplify the code a bit.
13823
13824         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13825         Fix a silly.
13826
13827 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13828
13829         * bus/Makefile.am:
13830         Add libdbus-daemon.la and link to it.
13831
13832 2003-02-01  James Willcox  <jwillcox@gnome.org>
13833
13834         * bus/driver.c: (bus_driver_handle_own_service):
13835         Actually include the service reply code in the message.
13836
13837 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13838
13839         * bus/driver.c: (bus_driver_handle_service_exists):
13840         Don't unref the incoming message.
13841
13842 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13843
13844         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13845
13846 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13847
13848         * dbus/dbus-server.c: (dbus_server_listen):
13849         * dbus/dbus-transport.c: (_dbus_transport_open):
13850         ifdef out the calls to the debug transport and server.
13851
13852 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13853
13854         * dbus/dbus-watch.c (dbus_watch_get_flags):
13855         Add note in the docs that ERROR or HANGUP won't be returned
13856         and are assumed always on.
13857
13858         * glib/dbus-gmain.c (add_watch):
13859         Always add IO_ERR | IO_HUP
13860
13861         * dbus/dbus-message.h:
13862         Add semicolon after dbus_message_iter_get_string_array().
13863         Makes qt code build again
13864
13865 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13866
13867         * bus/driver.c: (create_unique_client_name),
13868         (bus_driver_handle_hello):
13869         Don't take a name, just use a numeric id to identify
13870         each client.
13871
13872         * dbus/Makefile.am:
13873         * dbus/dbus-bus.c: (dbus_bus_register_client),
13874         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13875         * dbus/dbus-bus.h:
13876         Add new convenience functions for communicating with the bus.
13877
13878         * dbus/dbus-message.h:
13879
13880         * dbus/dbus-protocol.h:
13881         Fix a typo.
13882
13883 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13884
13885         * dbus/dbus-message.c (dbus_message_append_fields):
13886         Add some more doc comments.
13887
13888 2003-02-01  Havoc Pennington  <hp@pobox.com>
13889
13890         * dbus/dbus-break-loader.c (randomly_modify_length): change
13891         a 4-byte value in the message as if it were a length
13892
13893         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13894         execute bit on saved files
13895
13896 2003-02-01  Havoc Pennington  <hp@pobox.com>
13897
13898         * dbus/dbus-break-loader.c (main): new program to find messages
13899         that break the loader.
13900
13901         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13902         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13903
13904         * dbus/dbus-string.c (_dbus_string_set_byte): new
13905
13906 2003-01-31  Havoc Pennington  <hp@pobox.com>
13907
13908         * dbus/dbus-message.c: refactor the test code to be more general,
13909         in preparation for writing a "randomly permute test cases to
13910         try to break the loader" program.
13911
13912 2003-01-31  Havoc Pennington  <hp@pobox.com>
13913
13914         * doc/dbus-specification.sgml: work on the specification
13915
13916         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13917         the protocol version of the message.
13918
13919         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13920         no longer specifies that.
13921         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13922         1/2/3/4)
13923
13924         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13925         "break" for DBUS_TYPE_NIL, remove @todo
13926
13927 2003-01-31  Havoc Pennington  <hp@pobox.com>
13928
13929         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
13930         just set_is_error/get_is_error as this is a commonly-used
13931         function, and write docs.
13932
13933 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
13934
13935         * dbus/dbus-address.c: (dbus_address_entry_free):
13936         Free key and value lists.
13937
13938         * dbus/dbus-internals.c: (_dbus_type_to_string):
13939         Add the types we didn't have.
13940
13941         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13942         (_dbus_marshal_validate_arg):
13943         Add NIL types.
13944
13945         * dbus/dbus-message.c: (dbus_message_set_sender):
13946         Remove todo about being able to set sender to NULL.
13947
13948         (dbus_message_set_is_error_reply),
13949         (dbus_message_get_is_error_reply):
13950         * dbus/dbus-message.h:
13951         New functions.
13952
13953         * dbus/dbus-protocol.h:
13954         Add error reply flag.
13955
13956         * test/data/valid-messages/opposite-endian.message:
13957         Add NIL type to test.
13958
13959 2003-01-31  Havoc Pennington  <hp@pobox.com>
13960
13961         * doc/dbus-specification.sgml: fully specify the header.  Add
13962         flags and major protocol version, and change header/body len to
13963         unsigned.
13964
13965         * dbus/dbus-message-builder.c (append_saved_length): append length
13966         as uint32
13967
13968         * dbus/dbus-message.c (dbus_message_create_header): change header
13969         length and body length to unsigned. Add the new fields from the
13970         spec
13971         (_dbus_message_loader_return_buffer): unsigned header/body len
13972
13973 2003-01-30  Havoc Pennington  <hp@pobox.com>
13974
13975         * dbus/dbus-auth.c: rework to use only REJECTED, no
13976         MECHANISMS
13977
13978         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
13979         use REJECTED, suggested by Mark McLoughlin
13980
13981 2003-01-30  Havoc Pennington  <hp@pobox.com>
13982
13983         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
13984         a better way to report errors here. e.g.  "unix address lacks
13985         path" or something. also "no such file" when the path doesn't
13986         exist, etc.
13987
13988         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
13989         leaking list nodes
13990         (dbus_parse_address): add @todo about documenting address format,
13991         and allowing , and ; to be escaped
13992
13993 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
13994
13995         * dbus/Makefile.am:
13996         Add dbus-address.[ch]
13997
13998         * dbus/dbus-address.c: (dbus_address_entry_free),
13999         (dbus_address_entries_free), (create_entry),
14000         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14001         (dbus_parse_address), (_dbus_address_test):
14002         * dbus/dbus-address.h:
14003         New files for dealing with address parsing.
14004
14005         * dbus/dbus-connection.c:
14006         Document timeout functions.
14007
14008         * dbus/dbus-message.c:
14009         Document dbus_message_new_from_message.
14010
14011         * dbus/dbus-server-debug.c:
14012         Document.
14013
14014         * dbus/dbus-server.c: (dbus_server_listen):
14015         Parse address and use correct server implementation.
14016
14017         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14018         * dbus/dbus-string.h:
14019         New function with test.
14020
14021         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14022         * dbus/dbus-test.h:
14023         Add address tests.
14024
14025         * dbus/dbus-transport-debug.c:
14026         Document.
14027
14028         * dbus/dbus-transport.c: (_dbus_transport_open):
14029         Parse address and use correct transport implementation.
14030
14031 2003-01-30  Havoc Pennington  <hp@pobox.com>
14032
14033         * dbus/dbus-message.c: use message->byte_order instead of
14034         DBUS_COMPILER_BYTE_ORDER throughout.
14035         (dbus_message_create_header): pad header to align the
14036         start of the body of the message to 8-byte boundary
14037
14038         * dbus/dbus-marshal.h: make all the demarshalers take const
14039         DBusString arguments.
14040
14041         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14042         validate message args here, so we don't have to do slow validation
14043         later, and so we catch bad messages as they are incoming. Also add
14044         better checks on header_len and body_len. Also fill in
14045         message->byte_order
14046
14047         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14048         implemented properly)
14049         (_dbus_string_validate_nul): new function to check all-nul
14050
14051         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14052         get_arg_end_pos and remove all validation
14053         (_dbus_marshal_validate_arg): actually do validation here.
14054
14055 2003-01-29  Havoc Pennington  <hp@pobox.com>
14056
14057         * dbus/dbus-message.c (check_message_handling): fix assertion
14058         failure on set_client_serial
14059
14060 2003-01-28  Havoc Pennington  <hp@pobox.com>
14061
14062         * dbus/dbus-server-debug.c: Add doc section comments
14063
14064         * dbus/dbus-transport-debug.c: add doc section comments
14065
14066 2003-01-28  Havoc Pennington  <hp@redhat.com>
14067
14068         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14069         the reverse order from how I had it
14070         (_dbus_string_base64_encode): reverse encoding order. I was
14071         basically byteswapping everything during encoding.
14072
14073 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14074
14075         * dbus/dbus-connection-internal.h:
14076         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14077         (_dbus_connection_remove_timeout):
14078         Add functions for adding and removing timeouts.
14079
14080         * dbus/dbus-message.c: (dbus_message_new_from_message):
14081         Add new function that takes a message and creates an exact
14082         copy of it, but with the refcount set to 1.
14083         (check_message_handling):
14084         Fix build error.
14085
14086         * dbus/dbus-server-protected.h:
14087         * dbus/dbus-server.c: (_dbus_server_init_base),
14088         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14089         (dbus_server_set_timeout_functions):
14090         (_dbus_server_remove_timeout):
14091         New functions so that a server can add and remove timeouts.
14092
14093         (dbus_server_listen):
14094         Add commented out call to dbus_server_debug_new.
14095
14096         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14097         Actually set the handler, doh.
14098
14099         * dbus/dbus-transport.c: (_dbus_transport_open):
14100         Add commented out call to dbus_transport_debug_client_new.
14101
14102         * dbus/Makefile.am:
14103         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14104
14105 2003-01-28  Havoc Pennington  <hp@pobox.com>
14106
14107         * dbus/dbus-message.c (check_message_handling): function to check
14108         on the loaded message, iterates over it etc.
14109
14110 2003-01-28  Havoc Pennington  <hp@pobox.com>
14111
14112         * test/Makefile.am (dist-hook): fix make distdir
14113
14114         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14115
14116 2003-01-27  Havoc Pennington  <hp@pobox.com>
14117
14118         * dbus/dbus-mempool.c (time_for_size): replace printf with
14119         _dbus_verbose
14120
14121         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14122         empty lines; fix the SAVE_LENGTH stuff to be
14123         START_LENGTH/END_LENGTH so it actually works; couple other
14124         bugfixes
14125
14126         * test/Makefile.am (dist-hook): add dist-hook for .message files
14127
14128         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14129         can be constant or locked.
14130         (_dbus_string_free): allow freeing a const string as
14131         documented/intended
14132
14133         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14134
14135         * dbus/dbus-test-main.c (main): take an argument which is the
14136         directory containing test data
14137
14138         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14139         argument to this and load all the messages in test/data/
14140         checking that they can be loaded or not loaded as appropriate.
14141
14142 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14143
14144         * bus/dispatch.c: (bus_dispatch_message_handler):
14145         Dispatch messages sent to services.
14146
14147         * bus/driver.c: (bus_driver_send_service_deleted),
14148         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14149         (bus_driver_send_service_acquired):
14150         Add helper functions for sending service related messages.
14151
14152         (bus_driver_send_welcome_message):
14153         Send HELLO_REPLY instead of WELCOME.
14154
14155         (bus_driver_handle_list_services):
14156         Send LIST_SERVICES_REPLY instead of SERVICES.
14157
14158         (bus_driver_handle_own_service),
14159         (bus_driver_handle_service_exists):
14160         New message handlers.
14161
14162         (bus_driver_handle_message):
14163         Invoke new message handlers.
14164
14165         (bus_driver_remove_connection):
14166         Don't remove any services here since that's done automatically
14167         by bus_service_remove_owner now.
14168
14169         * bus/driver.h:
14170         New function signatures.
14171
14172         * bus/services.c: (bus_service_add_owner):
14173         Send ServiceAcquired message if we're the only primary owner.
14174
14175         (bus_service_remove_owner):
14176         Send ServiceAcquired/ServiceLost messages.
14177
14178         (bus_service_set_prohibit_replacement),
14179         (bus_service_get_prohibit_replacement):
14180         Functions for setting prohibit replacement.
14181
14182         (bus_service_has_owner):
14183         New function that checks if a connection is in the owner queue of
14184         a certain service.
14185
14186         * bus/services.h:
14187         Add new function signatures.
14188
14189         * dbus/dbus-list.c: (_dbus_list_test):
14190         Add tests for _dbus_list_remove_last and traversing the list backwards.
14191
14192         * dbus/dbus-list.h:
14193         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14194         go any further, so return NULL then.
14195
14196         * dbus/dbus-protocol.h:
14197         Add new messages, service flags and service replies.
14198
14199 2003-01-26  Havoc Pennington  <hp@pobox.com>
14200
14201         * dbus/dbus-message-builder.c: implement, completely untested.
14202
14203         * test/data/*: add data to be used in testing.
14204         ".message" files are our simple loadable text format.
14205         ".message-raw" will be binary dumps of messages.
14206
14207         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14208
14209 2003-01-26  Havoc Pennington  <hp@pobox.com>
14210
14211         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14212
14213         * dbus/dbus-errors.c (dbus_result_to_string): add
14214         file errors
14215
14216         * dbus/dbus-message-builder.c: new file, will contain code to load
14217         up messages from files. Not implemented yet.
14218
14219 2003-01-26  Havoc Pennington  <hp@pobox.com>
14220
14221         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14222         the sender by setting to NULL
14223
14224 2003-01-26  Havoc Pennington  <hp@pobox.com>
14225
14226         The unit tests pass, but otherwise untested.  If it breaks, the
14227         tests should have been better. ;-)
14228
14229         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14230         the connection.
14231
14232         * dbus/dbus-message.c: redo everything so we maintain
14233         message->header as the only copy of the various fields.
14234         This avoids the possibility of out-of-memory in some cases,
14235         for example dbus_message_lock() can't run out of memory anymore,
14236         and avoids extra copying. Figured I may as well go ahead and do
14237         this since it was busted for dbus_message_lock to not return
14238         failure on OOM, and dbus_message_write_header was totally
14239         unchecked for OOM. Also fixed some random other bugs.
14240
14241         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14242         that strings are nul-terminated. Also, end_pos can be equal
14243         to string length just not greater than, I think.
14244         (_dbus_marshal_set_int32): new function
14245         (_dbus_marshal_set_uint32): new function
14246         (_dbus_marshal_set_string): new function
14247
14248         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14249         a warning, init timeout_list to NULL
14250         (dbus_connection_send_message): don't use uninitialized variable
14251         "serial"
14252
14253         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14254
14255 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14256
14257         * bus/driver.c: (bus_driver_handle_hello),
14258         (bus_driver_send_welcome_message):
14259         Plug leaks
14260
14261 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14262
14263         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14264         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14265         (dbus_connection_unref):
14266         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14267         * dbus/dbus-message.c: (dbus_message_unref),
14268         Plug memory leaks.
14269
14270         (dbus_message_get_fields):
14271         Remove debugging printout.
14272
14273         (_dbus_message_loader_return_buffer):
14274         Don't store the header string.
14275
14276         (_dbus_message_test):
14277         Plug leaks.
14278
14279 2003-01-26  Richard Hult  <rhult@codefactory.se>
14280
14281         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14282         the file descriptor list, since it can change under us.
14283
14284 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14285
14286         * glib/dbus-gmain.c: (dbus_connection_prepare),
14287         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14288         (remove_watch), (dbus_connection_hookup_with_g_main):
14289         Rewrite the glib handling to use its own GSource instead of a
14290         GIOChannel so we can catch messages put in the queue while waiting
14291         for a reply.
14292
14293 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14294
14295         * bus/Makefile.am:
14296         * bus/connection.c: (connection_disconnect_handler),
14297         (connection_watch_callback), (bus_connection_setup):
14298         * bus/dispatch.c: (send_one_message),
14299         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14300         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14301         * bus/dispatch.h:
14302         * bus/driver.c: (bus_driver_send_service_deleted),
14303         (bus_driver_send_service_created), (bus_driver_handle_hello),
14304         (bus_driver_send_welcome_message),
14305         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14306         (bus_driver_handle_message):
14307         * bus/driver.h:
14308         Refactor code, put the message dispatching in its own file. Use
14309         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14310         is disconnected.
14311
14312 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14313
14314         * dbus/dbus-internals.h:
14315         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14316
14317         * dbus/dbus-message.c: (dbus_message_get_sender):
14318         * dbus/dbus-message.h:
14319         Implement dbus_message_get_sender.
14320
14321         * dbus/dbus-protocol.h:
14322         Add message and service defines.
14323
14324 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14325
14326         * dbus/dbus-connection.c: (dbus_connection_send_message):
14327         * dbus/dbus-message-internal.h:
14328         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14329         (dbus_message_write_header):
14330         Remove _dbus_messag_unlock and don't set the client serial on a
14331         message if one already exists.
14332
14333 2003-01-24  Havoc Pennington  <hp@pobox.com>
14334
14335         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14336         list_pool
14337
14338         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14339         on OOM
14340
14341 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14342
14343         * dbus/dbus-list.c: (alloc_link), (free_link):
14344         Use a memory pool for the links.
14345
14346 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14347
14348         * bus/connection.c: (bus_connection_foreach):
14349         * bus/connection.h:
14350         Add new bus_connection_foreach function.
14351
14352         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14353         Add function that broadcasts a message to all clients.
14354
14355         (bus_driver_send_service_created), (bus_driver_handle_hello),
14356         (bus_driver_send_welcome_message),
14357         (bus_driver_handle_list_services), (bus_driver_message_handler):
14358         Implement functions that take care of listing services, and notifying
14359         clients when new services are created.
14360
14361         * bus/services.c: (bus_services_list):
14362         * bus/services.h:
14363         Add new function that returns an array of strings with the currently
14364         registered services.
14365
14366         * glib/dbus-glib.h:
14367         * glib/dbus-gmain.c:
14368         Update copyright year.
14369
14370 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14371
14372         * dbus/dbus-connection.c: (dbus_connection_send_message):
14373         Unlock the message in case it was sent earlier.
14374
14375         (dbus_connection_send_message_with_reply_and_block):
14376         Remove the reply message from the list.
14377
14378         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14379         Set array_len and new_pos correctly.
14380
14381         (_dbus_marshal_test):
14382         Remove debug output.
14383
14384         * dbus/dbus-message-internal.h:
14385         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14386         New function that returns the reply serial.
14387
14388         (_dbus_message_unlock):
14389         New function that unlocks a message and resets its header.
14390
14391         (dbus_message_append_string_array),
14392         (dbus_message_get_fields_valist),
14393         (dbus_message_iter_get_field_type),
14394         (dbus_message_iter_get_string_array),
14395         (dbus_message_get_fields),
14396         (dbus_message_append_fields_valist):
14397         Handle string arrays.
14398
14399         (dbus_message_set_sender):
14400         Make this function public since the bus daemon needs it.
14401
14402         (decode_header_data):
14403         Set the reply serial to -1 initially.
14404
14405         * dbus/dbus-message.h:
14406         Add dbus_message_set_sender.
14407
14408 2003-01-24  Havoc Pennington  <hp@pobox.com>
14409
14410         * doc/dbus-specification.sgml: add some stuff
14411
14412 2003-01-22  Havoc Pennington  <hp@pobox.com>
14413
14414         * doc/dbus-specification.sgml: Start to document the protocol.
14415
14416 2003-01-22  Havoc Pennington  <hp@pobox.com>
14417
14418         * dbus/dbus-connection.c
14419         (dbus_connection_send_message_with_reply_and_block): add some @todo
14420
14421         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14422
14423 2003-01-21  Havoc Pennington  <hp@pobox.com>
14424
14425         (patch untested because can't compile)
14426
14427         * bus/driver.c (create_unique_client_name): make this function
14428         never recycle client names. Also, caller should initialize
14429         the DBusString.
14430
14431         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14432
14433 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14434
14435         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14436         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14437         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14438         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14439         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14440         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14441         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14442         * dbus/dbus-marshal.h:
14443         * dbus/dbus-protocol.h:
14444         Add support for marshalling and demarshalling integer, double
14445         and string arrays.
14446
14447 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14448
14449         * bus/Makefile.am:
14450         Add driver.[ch]
14451
14452         * bus/connection.c: (connection_disconnect_handler):
14453         Remove the connection from the bus driver's list.
14454
14455         (connection_watch_callback): Dispatch messages.
14456
14457         (free_connection_data): Free connection name.
14458
14459         (bus_connection_setup): Add connection to the bus driver's list.
14460         (bus_connection_remove_owned_service):
14461         (bus_connection_set_name), (bus_connection_get_name):
14462         Add functions for setting and getting the connection's name.
14463
14464         * bus/connection.h:
14465         Add function headers.
14466
14467         * bus/driver.c: (create_unique_client_name),
14468         (bus_driver_handle_hello_message),
14469         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14470         (bus_driver_add_connection), (bus_driver_remove_connection):
14471         * bus/driver.h:
14472         * bus/main.c:
14473         * bus/services.c: (bus_service_free):
14474         * bus/services.h:
14475         New file that handles communication and registreation with the bus
14476         itself.
14477
14478 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14479
14480         * dbus/dbus-connection.c: (dbus_connection_send_message):
14481         Add a new client_serial parameter.
14482
14483         (dbus_connection_send_message_with_reply):
14484         Remove a @todo since we've implemented the blocking function.
14485
14486         (dbus_connection_send_message_with_reply_and_block):
14487         New function that sends a message and waits for a reply and
14488         then returns the reply.
14489
14490         * dbus/dbus-connection.h:
14491         Add new functions.
14492
14493         * dbus/dbus-errors.c: (dbus_result_to_string):
14494         * dbus/dbus-errors.h:
14495         Add new DBUS_RESULT.
14496
14497         * dbus/dbus-message-internal.h:
14498         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14499         (_dbus_message_set_sender), (dbus_message_write_header),
14500         (dbus_message_new_reply), (decode_header_data),
14501         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14502         * dbus/dbus-message.h:
14503         Add new functions that set the reply serial and sender.
14504         Also marshal and demarshal them correctly and add test.
14505
14506         * dbus/dbus-protocol.h:
14507         Add new DBUS_MESSAGE_TYPE_SENDER.
14508
14509         * glib/dbus-glib.h:
14510         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14511         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14512         (dbus_connection_hookup_with_g_main):
14513         * glib/test-dbus-glib.c: (main):
14514         Rewrite to use GIOChannel and remove the GSource crack.
14515
14516         * test/echo-client.c: (main):
14517         * test/watch.c: (check_messages):
14518         Update for changed APIs
14519
14520 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14521
14522         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14523
14524         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14525         Create a DBusTimeoutList.
14526         (dbus_connection_set_timeout_functions): Add new function to
14527         set timeout callbacks
14528
14529         * dbus/dbus-connection.h: Add public DBusTimeout API.
14530
14531         * dbus/dbus-message.c: (dbus_message_get_service):
14532         * dbus/dbus-message.h:  New function.
14533
14534         * dbus/dbus-server.c: Fix small doc typo.
14535
14536         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14537
14538 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14539
14540         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14541         of the string, just as long as specified.
14542
14543 2003-01-19  Havoc Pennington  <hp@pobox.com>
14544
14545         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14546         new function
14547
14548         * dbus/dbus-server.c (dbus_server_set_max_connections)
14549         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14550         keep track of current number of connections, and add API for
14551         setting a max (but haven't implemented enforcing the max yet)
14552
14553 2003-01-18  Havoc Pennington  <hp@pobox.com>
14554
14555         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14556         reading/writing if read_watch != NULL or write_watch != NULL.
14557
14558         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14559         the message loader code to actually load message->header and
14560         message->body into the newly-created message.
14561
14562         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14563         in OOM case
14564
14565         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14566         (dbus_connection_get_max_message_size)
14567         (dbus_connection_set_max_live_messages_size)
14568         (dbus_connection_get_max_live_messages_size): implement some
14569         resource limitation functions
14570
14571         * dbus/dbus-resources.c: new file implementing some of the
14572         resource limits stuff
14573
14574         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14575         missing docs, add @todo to handle OOM etc.
14576
14577         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14578         docs
14579
14580 2003-01-18  Havoc Pennington  <hp@pobox.com>
14581
14582         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14583         connection if it hasn't been already.
14584
14585         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14586         replace with DisconnectFunction.
14587
14588 2003-01-18  Havoc Pennington  <hp@pobox.com>
14589
14590         Building --disable-verbose-mode --disable-asserts --disable-tests
14591         cuts the library from 112K to 45K or so
14592
14593         * configure.in: check for varargs macro support,
14594         add --enable-verbose-mode, --enable-asserts.
14595
14596         * dbus/dbus-internals.h (_dbus_assert): support
14597         DBUS_DISABLE_ASSERT
14598         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14599
14600 2003-01-18  Havoc Pennington  <hp@pobox.com>
14601
14602         * dbus/dbus-test.c: include config.h so that tests actually run
14603
14604         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14605         so the failure mode when that assumption fails will be plenty
14606         obvious.
14607
14608 2003-01-18  Havoc Pennington  <hp@pobox.com>
14609
14610         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14611
14612         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14613         the distribution
14614
14615         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14616         since we don't want to use those in make check
14617
14618 2003-01-15  Havoc Pennington  <hp@redhat.com>
14619
14620         Release 0.2
14621
14622         * NEWS: update
14623
14624 2003-01-15  Havoc Pennington  <hp@redhat.com>
14625
14626         * test/Makefile.am: fix so that test source code ends up in the
14627         distribution on make distcheck
14628
14629 2003-01-15  Havoc Pennington  <hp@redhat.com>
14630
14631         Release 0.1.
14632
14633         * NEWS: update
14634
14635 2003-01-15  Havoc Pennington  <hp@redhat.com>
14636
14637         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14638         fix build when --disable-tests
14639
14640         * Makefile.am (EXTRA_DIST): put HACKING in here
14641
14642         * HACKING: document procedure for making a tarball release.
14643
14644 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14645
14646         * bus/connection.c: (connection_error_handler),
14647         (bus_connection_setup):
14648         * bus/main.c: (main):
14649         Make sure that the DBusConnectionData struct is NULLed
14650         out to prevent a segfault.
14651
14652         * dbus/dbus-errors.c: (dbus_result_to_string):
14653         * dbus/dbus-errors.h:
14654         * dbus/dbus-message.c: (dbus_message_get_fields),
14655         (dbus_message_get_fields_valist), (_dbus_message_test):
14656         * dbus/dbus-message.h:
14657         Make dbus_message_get_fields return a result code so we can
14658         track invalid fields as well as oom.
14659
14660 2003-01-11  Havoc Pennington  <hp@pobox.com>
14661
14662         * configure.in: change --enable-test/--enable-ansi action-if-given
14663         to enable_foo=$enableval instead of enable_foo=yes
14664
14665 2003-01-08  Havoc Pennington  <hp@pobox.com>
14666
14667         * dbus/dbus-string.c (_dbus_string_align_length): new function
14668
14669         * dbus/dbus-test-main.c: move main() for test app here
14670         * dbus/dbus-test.c
14671         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14672         symbol to run tests, because dbus-test isn't in the main
14673         library
14674
14675         Code review nitpicks.
14676
14677         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14678         for people with narrow emacs ;-). Assert client_serial was filled
14679         in. Assert message->name != NULL.
14680         (dbus_message_append_fields): have "first_field_type" arg separate
14681         from va list, needed for C++ binding that also uses varargs IIRC
14682         and helps with type safety
14683         (dbus_message_new): add @todo about using DBusString to store
14684         service/name internally
14685         (dbus_message_new): don't leak ->service and ->name on OOM later
14686         in the function
14687         (dbus_message_unref): free the service name
14688         (dbus_message_get_fields): same change to varargs
14689         i.e. first_field_type
14690         (_dbus_message_loader_return_buffer): assert that the message data
14691         is aligned (if not it's a bug in our code). Put in verbose griping
14692         about why we set corrupted = TRUE.
14693         (decode_header_data): add FIXME that char* is evil.  Was going to
14694         add FIXME about evil locale-specific string.h strncmp, but just
14695         switched to wacky string-as-uint32 optimization. Move check for
14696         "no room for field name" above get_const_data_len() to avoid
14697         assertion failure in get_const_data_len if we have trailing 2
14698         bytes or the like. Check for service and name fields being
14699         provided twice. Don't leak service/name on error. Require field
14700         names to be aligned to 4 bytes.
14701
14702         * dbus/dbus-marshal.c: move byte swap stuff to header
14703         (_dbus_pack_int32): uscore-prefix
14704         (_dbus_unpack_int32): uscore-prefix
14705         (_dbus_unpack_uint32): export
14706         (_dbus_demarshal_string): add @todo complaining about use of
14707         memcpy()
14708         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14709         handling allowing corrupt data to go unchecked
14710
14711 2003-01-08  Havoc Pennington  <hp@redhat.com>
14712
14713         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14714         to the select() as needed for authentication. (should be using
14715         _dbus_poll() not select, but for another day)
14716
14717         * dbus/dbus.h: include dbus/dbus-protocol.h
14718
14719 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14720
14721         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14722         dbus-connection.h
14723
14724 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14725
14726         * dbus/dbus-internals.c: (_dbus_type_to_string):
14727         New function that returns a string describing a type.
14728
14729         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14730         * dbus/dbus-marshal.h:
14731         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14732         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14733         (dbus_message_iter_get_byte_array):
14734         * dbus/dbus-message.h:
14735         Add new convenience functions for appending and getting message fields.
14736         Also add demarshalling routines for byte arrays.
14737
14738 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14739
14740         * dbus/dbus-connection-internal.h:
14741         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14742         (_dbus_connection_get_next_client_serial),
14743         (dbus_connection_send_message):
14744         * dbus/dbus-internals.h:
14745         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14746         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14747         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14748         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14749         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14750         (_dbus_verbose_bytes), (_dbus_marshal_test):
14751         * dbus/dbus-marshal.h:
14752         * dbus/dbus-message-internal.h:
14753         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14754         (dbus_message_write_header), (_dbus_message_lock),
14755         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14756         (dbus_message_get_name), (dbus_message_append_int32),
14757         (dbus_message_append_uint32), (dbus_message_append_double),
14758         (dbus_message_append_string), (dbus_message_append_byte_array),
14759         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14760         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14761         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14762         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14763         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14764         (decode_header_data), (_dbus_message_loader_return_buffer),
14765         (message_iter_test), (_dbus_message_test):
14766         * dbus/dbus-message.h:
14767         * dbus/dbus-protocol.h:
14768         * dbus/dbus-test.c: (main):
14769         * dbus/dbus-test.h:
14770         * glib/test-dbus-glib.c: (message_handler), (main):
14771         * test/echo-client.c: (main):
14772         * test/watch.c: (check_messages):
14773         Make messages sendable and receivable for real.
14774
14775 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14776
14777         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14778         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14779         * dbus/dbus-message.c: (dbus_message_append_int32),
14780         (dbus_message_append_uint32), (dbus_message_append_double),
14781         (dbus_message_append_string), (dbus_message_append_byte_array):
14782         Handle OOM restoration.
14783
14784 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14785
14786         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14787         (_dbus_demarshal_string), (_dbus_marshal_test):
14788         * dbus/dbus-marshal.h:
14789         * dbus/dbus-message.c: (dbus_message_get_name),
14790         Document these functions.
14791
14792         (dbus_message_append_int32), (dbus_message_append_uint32),
14793         (dbus_message_append_double), (dbus_message_append_string),
14794         (dbus_message_append_byte_array):
14795         * dbus/dbus-message.h:
14796         Add functions for adding message fields of different types.
14797
14798         * dbus/dbus-protocol.h:
14799         Add the different types.
14800
14801 2003-01-05  Havoc Pennington  <hp@pobox.com>
14802
14803         * bus/connection.c: implement routines for handling connections,
14804         first thing is keeping a list of owned services on each connection
14805         and setting up watches etc.
14806
14807         * bus/services.c: implement a mapping from service names to lists
14808         of connections
14809
14810         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14811
14812         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14813         to use static mutexes for global data
14814
14815         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14816         collection of functions to set/get application-specific data
14817         on the DBusConnection.
14818
14819 2003-01-04  Havoc Pennington  <hp@pobox.com>
14820
14821         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14822         (_dbus_poll): new function
14823
14824         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14825         copied from GLib
14826
14827         * bus/loop.c: initial code for the daemon main loop
14828
14829 2003-01-04  Havoc Pennington  <hp@pobox.com>
14830
14831         * test/watch.c (error_handler): make it safe if the error handler
14832         is called multiple times (if we s/error handler/disconnect
14833         handler/ we should just guarantee it's called only once)
14834
14835         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14836         error handler on disconnect (it's quite possible we should
14837         just change the error handler to a "disconnect handler," I'm
14838         not sure we have any other meaningful errors)
14839
14840         * configure.in: check for getpwnam_r
14841
14842         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14843         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14844         mechanism as in SASL spec, using socket credentials
14845
14846         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14847         (_dbus_send_credentials_unix_socket): new function
14848
14849         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14850         dbus_accept()
14851         (_dbus_write): only check errno if <0 returned
14852         (_dbus_write_two): ditto
14853
14854 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14855
14856         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14857         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14858         (_dbus_marshal_test):
14859         * dbus/dbus-marshal.h:
14860         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14861         to _dbus_marshal_utf8_string. Also fix some tests.
14862
14863 2002-12-28  Harri Porten  <porten@kde.org>
14864
14865         * configure.in: added check for C++ compiler and a very cheesy
14866         check for the Qt integration
14867
14868         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14869
14870         * qt/Makefile.am: added
14871
14872         * qt/.cvsignore: added
14873
14874         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14875         latter, added #ifdef QT_THREAD_SUPPORT guard.
14876
14877         * dbus/Makefile.am: added missing headers for make dist
14878
14879 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14880
14881         * dbus/Makefile.am: fixup export-symbols-regex.
14882
14883 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14884
14885         * acinclude.m4: Add this file and put the
14886         PKG_CHECK_MODULE macro in it.
14887
14888 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14889
14890         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14891         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14892         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14893         (_dbus_marshal_test):
14894         Make the demarshalling routines align the pos argument.
14895         Add string marshalling tests and fix the obvious bugs
14896         discovered.
14897
14898 2002-12-26  Havoc Pennington  <hp@pobox.com>
14899
14900         * dbus/dbus-auth.c: fixes fixes fixes
14901
14902         * dbus/dbus-transport-unix.c: wire up support for
14903         encoding/decoding data on the wire
14904
14905         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14906         (_dbus_auth_decode_data): append to target string
14907         instead of nuking it.
14908
14909 2002-12-26  Havoc Pennington  <hp@pobox.com>
14910
14911         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14912         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14913         doh
14914
14915         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14916         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14917         now). Main point is because I wanted unpack_uint32 to implement
14918         _dbus_verbose_bytes
14919         (_dbus_verbose_bytes): new function
14920
14921         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14922
14923         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14924         mechanism to handle a corrupt message stream
14925         (_dbus_message_loader_new): fix preallocation to only prealloc,
14926         not prelengthen
14927
14928         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
14929         (_dbus_string_test): enhance tests for copy/move and fix the
14930         functions
14931
14932         * dbus/dbus-transport-unix.c: Hold references in more places to
14933         avoid reentrancy problems
14934
14935         * dbus/dbus-transport.c: ditto
14936
14937         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
14938         leak reference count in no-message case
14939
14940         * test/watch.c (do_mainloop): handle adding/removing watches
14941         during iteration over the watches. Also, ref the connection/server
14942         stored on a watch, so we don't try to mangle a destroyed one.
14943
14944         * dbus/dbus-transport-unix.c (do_authentication): perform
14945         authentication
14946
14947         * dbus/dbus-auth.c (get_state): add a state
14948         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
14949         (_dbus_auth_get_unused_bytes): append the unused bytes
14950         to the passed in string, rather than prepend
14951
14952         * dbus/dbus-transport.c (_dbus_transport_init_base): create
14953         the auth conversation DBusAuth
14954
14955         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
14956         (_dbus_transport_new_for_domain_socket): when creating a
14957         transport, pass in whether it's a client-side or server-side
14958         transport so we know which DBusAuth to create
14959
14960 2002-12-03  Havoc Pennington  <hp@pobox.com>
14961
14962         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
14963         _after_ finalizing the derived members
14964         (unix_connection_set): unref watch if we fail to add it
14965
14966         * dbus/dbus-connection.c (dbus_connection_unref): delete the
14967         transport first, so that the connection owned by the
14968         transport will be valid as the transport finalizes.
14969
14970         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
14971         if necessary, and remove watches from the connection.
14972
14973         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
14974
14975 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
14976
14977         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14978         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14979         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14980         (_dbus_marshal_test):
14981         * dbus/dbus-marshal.h:
14982         Add string marshal functions and have the demarshal functions
14983         return the new position.
14984
14985 2002-12-25  Havoc Pennington  <hp@pobox.com>
14986
14987         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
14988         it is a simple protocol that just maps directly to SASL.
14989
14990         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
14991         initial implementation, not actually used yet.
14992
14993         * dbus/dbus-string.c (_dbus_string_find): new function
14994         (_dbus_string_equal): new function
14995         (_dbus_string_base64_encode): new function
14996         (_dbus_string_base64_decode): new function
14997
14998 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
14999
15000         * dbus/Makefile.am:
15001         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15002         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15003         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15004         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15005         * dbus/dbus-marshal.h:
15006         * dbus/dbus-protocol.h:
15007         * dbus/dbus-test.c: (main):
15008         * dbus/dbus-test.h:
15009         Add un-optimized marshalling/demarshalling routines.
15010
15011 2002-12-25  Harri Porten  <porten@kde.org>
15012
15013         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15014
15015 2002-12-24  Zack Rusin  <zack@kde.org>
15016
15017         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15018         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15019         main loop stuff
15020
15021 2002-12-24  Havoc Pennington  <hp@pobox.com>
15022
15023         * glib/dbus-gthread.c: fix include
15024
15025         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15026         I think glib API needs to change, though, as you don't
15027         want to use DBusMessageFunction, you want to use the
15028         DBusMessageHandler object. Probably
15029         dbus_connection_open_with_g_main_loop()
15030         and dbus_connection_setup_g_main_loop() or something like that
15031         (but think of better names...) that just create a connection
15032         that has watch/timeout functions etc. already set up.
15033
15034         * dbus/dbus-connection.c
15035         (dbus_connection_send_message_with_reply): new function just to
15036         show how the message handler helps us deal with replies.
15037
15038         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15039
15040         * dbus/dbus-string.c (_dbus_string_test): free a string that
15041         wasn't
15042
15043         * dbus/dbus-hash.c: use memory pools for the hash entries
15044         (rebuild_table): be more paranoid about overflow, and
15045         shrink table when we can
15046         (_dbus_hash_test): reduce number of sprintfs and write
15047         valid C89. Add tests for case where we grow and then
15048         shrink the hash table.
15049
15050         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15051
15052         * dbus/dbus-connection.c (dbus_connection_register_handler)
15053         (dbus_connection_unregister_handler): new functions
15054
15055         * dbus/dbus-message.c (dbus_message_get_name): new
15056
15057         * dbus/dbus-list.c: fix docs typo
15058
15059         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15060         an object representing a handler for messages.
15061
15062 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15063
15064         * glib/dbus-glib.h:
15065         * glib/dbus-gthread.c: (dbus_gthread_init):
15066         Don't use the gdbus prefix for public functions.
15067
15068 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15069
15070         * Makefile.am:
15071         * configure.in:
15072         Add GLib checks and fixup .pc files
15073
15074         * glib/Makefile.am:
15075         * glib/dbus-glib.h:
15076         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15077         (gdbus_connection_check), (gdbus_connection_dispatch),
15078         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15079         (dbus_connection_gsource_new):
15080         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15081         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15082         * glib/test-dbus-glib.c: (message_handler), (main):
15083         Add GLib support.
15084
15085 2002-12-15  Harri Porten  <porten@kde.org>
15086
15087         * autogen.sh: check for libtoolize before attempting to use it
15088
15089         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15090         struct.
15091
15092         * .cvsignore: ignore more stamp files
15093
15094         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15095
15096         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15097         without make install.
15098
15099 2002-12-15  Havoc Pennington  <hp@pobox.com>
15100
15101         * dbus/dbus-threads.c: add thread stubs that a higher library
15102         layer can fill in. e.g. the GLib wrapper might fill them in with
15103         GThread stuff. We still need to use this thread API to
15104         thread-safe-ize the library.
15105
15106 2002-12-12  Havoc Pennington  <hp@pobox.com>
15107
15108         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15109         below new interfaces and include fewer system headers.
15110
15111         * dbus/dbus-sysdeps.c (_dbus_read): new function
15112         (_dbus_write): new function
15113         (_dbus_write_two): new function
15114         (_dbus_connect_unix_socket): new function
15115         (_dbus_listen_unix_socket): new function
15116
15117         * dbus/dbus-message-internal.h: change interfaces to use
15118         DBusString
15119
15120 2002-12-11  Havoc Pennington  <hp@pobox.com>
15121
15122         * dbus/dbus-types.h: add dbus_unichar
15123
15124         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15125
15126         * dbus/dbus-connection.c (dbus_connection_send_message): return
15127         TRUE on success
15128
15129         * dbus/dbus-transport.c: include dbus-watch.h
15130
15131         * dbus/dbus-connection.c: include dbus-message-internal.h
15132
15133         * HACKING: add file with coding guidelines stuff.
15134
15135         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15136         handling here, for security purposes (as in vsftpd). Not actually
15137         using this class yet.
15138
15139         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15140         system/libc usage here, as in vsftpd, for ease of auditing (and
15141         should also simplify portability). Haven't actually moved all the
15142         system/libc usage into here yet.
15143
15144 2002-11-25  Havoc Pennington  <hp@pobox.com>
15145
15146         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15147         always print the first verbose message.
15148
15149 2002-11-24  Havoc Pennington  <hp@pobox.com>
15150
15151         * test/echo-client.c, test/echo-server.c: cheesy test
15152         clients.
15153
15154         * configure.in (AC_CHECK_FUNCS): check for writev
15155
15156         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15157         function
15158
15159         * dbus/dbus-list.c (_dbus_list_foreach): new function
15160
15161         * dbus/dbus-internals.c (_dbus_verbose): new function
15162
15163         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15164         representing a server that listens for connections.
15165
15166         * dbus/.cvsignore: create
15167
15168         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15169         public API for reporting errors
15170
15171         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15172         public object representing a connection that
15173         sends/receives messages. (Same object used for
15174         both client and server.)
15175
15176         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15177         Basic abstraction for different kinds of stream
15178         that we might read/write messages from.
15179
15180 2002-11-23  Havoc Pennington  <hp@pobox.com>
15181
15182         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15183         _DBUS_INT_MAX
15184
15185         * dbus/dbus-test.c (main): add list test, and include
15186         dbus-test.h as intended
15187
15188         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15189         (_dbus_hash_table_remove_int): return value indicates
15190         whether the entry existed to remove
15191
15192         * dbus/dbus-list.c: add linked list utility class,
15193         with docs and tests
15194
15195         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15196         array sometimes.
15197
15198 2002-11-23  Havoc Pennington  <hp@pobox.com>
15199
15200         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15201         DBUS_END_DECLS to nothing, that should fix this once and for all
15202
15203         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15204
15205         * dbus/dbus-message.c, dbus/dbus-hash.c:
15206         add some missing @brief
15207
15208 2002-11-23  Havoc Pennington  <hp@pobox.com>
15209
15210         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15211         to avoid confusing Doxygen
15212
15213         * dbus/dbus-hash.c: @} not }@
15214
15215         * dbus/dbus-message.c (struct DBusMessage): split out
15216         internals docs
15217
15218 2002-11-23  Havoc Pennington  <hp@pobox.com>
15219
15220         * configure.in: pile on more warning flags if using gcc
15221
15222         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15223         to document static functions
15224
15225         * configure.in: add summary to end of configure so it
15226         looks nice and attractive
15227
15228         * dbus/dbus-hash.c: finish implementation and write unit
15229         tests and docs
15230
15231         * configure.in: add --enable-tests to enable unit tests
15232
15233         * dbus/dbus-test.c: test program to run unit tests
15234         for all files in dbus/*, initially runs a test for
15235         dbus-hash.c
15236
15237         * dbus/dbus-internals.h: file to hold some internal utility stuff
15238
15239 2002-11-22  Havoc Pennington  <hp@redhat.com>
15240
15241         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15242         "ported" away from Tcl
15243
15244         * dbus/dbus-types.h: header for types such as dbus_bool_t
15245
15246 2002-11-22  Havoc Pennington  <hp@redhat.com>
15247
15248         * dbus/dbus.h: fixups for doc warnings
15249
15250         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15251         macros
15252         (QUIET): make it quiet so we can see warnings
15253
15254         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15255
15256 2002-11-22  Havoc Pennington  <hp@redhat.com>
15257
15258         * Makefile.am: include "Doxyfile" target in all-local
15259
15260         * configure.in: generate the Doxyfile
15261
15262         * Doxyfile.in: move Doxyfile here, so we can use
15263         configure to generate a Doxyfile with the right
15264         version number etc.
15265
15266 2002-11-22  Havoc Pennington  <hp@redhat.com>
15267
15268         * dbus/dbus-message.c: move inline docs into .c file
15269
15270         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15271         so all docs are under doc/
15272         (MAN_EXTENSION): generate man pages. Use extension
15273         ".3dbus" which matches ".3qt" on my system,
15274         I guess this is OK, I don't know really.
15275         (FILE_PATTERNS): look for .c files not .h, makes sense
15276         for plain C I think
15277
15278 2002-11-22  Havoc Pennington  <hp@pobox.com>
15279
15280         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15281         because any app can be a server, and any app can be a client,
15282         the bus is a special kind of server.
15283
15284 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15285
15286         * Doxyfile : adding. Still needs Makefile rules to be generated
15287         automatically (just run "doxygen" in the toplevel dir for now to
15288         generate docs)
15289
15290         * dbus/dbus-message.h : Adding sample docs (javadoc since
15291         resembles gtk-doc a little more)
15292
15293         * dbus/dbus.h : Adding sample docs
15294
15295 2002-11-21  Havoc Pennington  <hp@redhat.com>
15296
15297         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15298         so we can allow ourselves to include files directly,
15299         instead of having to use dbus.h
15300
15301         * dbus/dbus.h: fill in
15302
15303         * dbus/dbus-message.h: sketch out a sample header file.
15304         Include griping if you include it directly instead of
15305         via dbus.h
15306
15307         * dbus/dbus-macros.h: new file with macros for extern "C",
15308         TRUE/FALSE, NULL, etc.
15309
15310         * doc/file-boilerplate.c: put include guards in here
15311
15312 2002-11-21  Havoc Pennington  <hp@redhat.com>
15313
15314         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15315
15316         * COPYING: include the GPL as well, and license code
15317         under both AFL and GPL.
15318
15319 2002-11-21  Havoc Pennington  <hp@redhat.com>
15320
15321         * acconfig.h: get rid of this
15322
15323         * autogen.sh (run_configure): add --no-configure option
15324
15325         * configure.in: remove AC_ARG_PROGRAM to make
15326         autoconf complain less. add AC_PREREQ.
15327         add AC_DEFINE third arg.
15328
15329 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15330
15331         * doc/Makefile.am:
15332         Fix references so we can distcheck.
15333
15334 2002-11-21  Havoc Pennington  <hp@redhat.com>
15335
15336         * Initial module creation
15337