* bus/dispatch.c: disabled segfault test on win32 for now
[platform/upstream/dbus.git] / ChangeLog
1 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
2
3         * bus/dispatch.c: disabled segfault test on win32 for now
4
5 2007-03-08  Ralf Habacker  <ralf.habacker@freenet.de>
6
7         * configure.in, cmake/ConfigureChecks.cmake: added check 
8         for setrlimit. 
9         * test/test-segfault.c: only include setrlimit stuff only 
10         when available.  
11
12 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
13
14         * test/test-segfault.c: unix compile fix.
15         * dbus-win.patch: removed obsolate patches.
16
17 2007-03-07  Ralf Habacker  <ralf.habacker@freenet.de>
18
19         * bus/activation.c: removed obsolate include header.
20         * test/test-segfault.c: win32 compile fix, rlimit 
21         isn't available on win32.
22         * dbus-win.patch: removed some more patches, they
23         are applied or obsolate 
24
25 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
26
27         * bus-win.patch: fixes unix listen problems, dbus-test 
28         now runs.
29
30 2007-03-06  Ralf Habacker  <ralf.habacker@freenet.de>
31
32         * cmake/dbus/CMakeLists.txt,cmake/bus/CMakeLists.txt,
33         cmake/CMakeLists.txt: win32 compile fix
34
35 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
36
37         * dbus-win.patch, README.win: added available win32 
38         patches from windbus project (http://sf.net/projects/windbus)
39
40 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
41
42         * bus/activation.c: (bus_activation_activate_service):
43         fixed call to _dbus_spawn_async_with_babysitter().
44
45 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
46
47         * dbus/dbus-spawn.c,dbus/dbus-spawn.h (_dbus_spawn_async_with_babysitter):
48         added environment pointer as function parameter, used on win32.
49
50         * test/spawn-test.c: fixed call to above mentioned function.
51
52 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
53
54         * configure.in,test/test-sleep-forever.c,test/test-names.c: 
55         added configure check for unistd.h.
56
57 2007-03-04  Ralf Habacker  <ralf.habacker@freenet.de>
58
59         * test/Makefile.am: fixed test data copy problem in 
60         out of source build, when sources came from svn or cvs. 
61
62 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
63
64         * dbus/*-win.*,bus/*-win.*: added win32 platform related
65         files. These files are only added to the cmake build system.  
66         The missing dbus-win.patch file will be added later. 
67
68 2007-03-03  Ralf Habacker  <ralf.habacker@freenet.de>
69
70         * cmake: new directory, contains cmake build support.
71         See http://www.cmake.org for more informations.
72         Currently only unix will be buildable because some 
73         win32 required files are still missing. 
74
75 2007-03-03  Thiago Macieira  <thiago@kde.org>
76
77         * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
78         output and add it to the DBusError message we return.
79
80         * tools/dbus-launch.1:
81         * tools/dbus-launch.c: Add option --close-stderr to, well,
82         close stderr before starting dbus-daemon.
83
84 2007-01-31  Havoc Pennington  <hp@redhat.com>
85
86         * bus/dbus-daemon.1.in: write a section in the man page on running
87         a test daemon for debugging purposes
88
89 2007-01-26  Havoc Pennington  <hp@redhat.com>
90
91         * bus/session.conf.in: override all the default limits with much
92         higher limits on the session bus, there is no reason the session
93         bus should have low limits
94
95         * bus/config-parser.c (bus_config_parser_new): increase default
96         limits so they are less likely to be hit; in particular the max
97         replies per connection was way too low
98
99 2006-01-25  Simon McVittie  <simon.mcvittie@collabora.co.uk>
100
101         * doc/dbus-tutorial.xml: Replace Python section of tutorial with
102         a pointer to the tutorial maintained as part of dbus-python
103
104 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
105
106         * dbus/dbus-sysdeps-unix.c: unix compile fix, moved 
107         atomic_exchange_and_add() from dbus/dbus-sysdeps.c 
108         to here, it's used by _dbus_atomic_inc() and _dbus_atomic_dec().
109
110 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
111
112         * tools/dbus-monitor.c: gettimeofday() is not available 
113         on windows so we have to provide our own. It's taken from 
114         lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
115
116 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
117
118         * dbus/dbus-sysdeps-unix.c: moved _dbus_atomic_inc/dec() 
119         from dbus/dbus-sysdeps.c, windows version of _dbus_atomic_inc/dec() 
120         is in dbus-sysdeps-win.c (not in this patch).
121
122         * dbus/dbus-sysdeps.h: DBusAtomic::value is long on windows to fit 
123         with InterlockedInc/Decrement. 
124         - Patches from Christian Ehrlicher
125         
126 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
127
128         * tools/dbus-send.c, tools/dbus-monitor.c: win32 compile fix.
129
130 2006-12-31  Ralf Habacker  <ralf.habacker@freenet.de>
131
132         * dbus/dbus-marshal-recursive.c (type DBusTypeReaderClass):
133         fix mispaced const statement. - Patch from Peter Kümmel
134
135 2006-12-19  Ray Strode  <rstrode@redhat.com>
136
137         * bus/bus.c (process_config_every_time):
138         don't overwrite existing bus context activation object
139         until after we've checked that the new activation is
140         valid.
141
142         * bus/main.c 
143         (signal_handler), (handle_reload_watch):
144         don't call exit() on failure, instead make do and keep
145         going.
146         (close_reload_pipe): new function to turn off
147         hangup-causes-config-reload behavior if an unexpected
148         error occurs
149
150 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
151
152         * dbus/dbus-sysdeps-win-thread.c (_dbus_condvar_wait_win32):
153         correctness fix. - Patch from Christian Ehrlicher
154
155 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
156
157         * dbus/dbus-internals.h: msvc also knows about __FUNCTION__, 
158         we should also use it. - Patch from Christian Ehrlicher
159
160 2006-12-13  Ralf Habacker  <ralf.habacker@freenet.de>
161   
162         * dbus-sysdeps-util.c: added win32 related tests
163
164 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
165
166         * dbus/dbus-string.c (_dbus_string_pop_line),
167         bus/desktop-file.c (parse_section_start,
168         parse_comment_or_blank,parse_key_value,): uses
169         _dbus_string_find_eol() to support platform independent eol style.
170
171 2006-12-12  Ralf Habacker  <ralf.habacker@freenet.de>
172
173         * dbus/dbus-string.[ch] (_dbus_string_find_eol): new function. 
174         * dbus/dbus-string-util.c (_dbus_string_test): added testcases for 
175               _dbus_string_find_eol().
176         Approved by: Havoc Pennington.
177
178 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
179
180         * configure.in: Added switch to disable user_database caching.
181
182         * dbus/dbus-userdb-util.c, dbus/dbus-userdb.c: Add ifdefs to
183         be able disable user_dabase caching.
184
185 2006-12-12  Tim Dijkstra <tim@famdijkstra.org>
186
187         * bus/bus.c, bus/bus.h: Remove DBusUserDatabase from the BusContext 
188         struct. It is unnecessary we have a global one already. Also remove 
189         bus_context_get_user_database function, it is no longer needed.
190         Flush the global database on reload.
191
192         * dbus/dbus-userdb-util.c: Replace _dbus_user_database_get_groups 
193         with _dbus_groups_from_uid. It no longer needs a DBusUserDatabase.
194
195         * dbus/dbus-userdb.c, dbus/dbus-userdb.h: 
196         Add _dbus_user_database_flush_system. 
197         Make more functions DBUS_USERDB_INCLUDES_PRIVATE. 
198         Small unrelated change in _dbus_is_a_number: change 
199         _dbus_string_parse_int to _dbus_string_parse_uint. 
200
201         * bus/connection.c: Change call to _dbus_user_database_get_groups to 
202         _dbus_groups_from_uid.
203
204         * bus/policy.c, bus/policy.h: Change call to 
205         _dbus_user_database_get_groups to _dbus_groups_from_uid. Remove 
206         DBusUserDatabase from bus_policy_allow_user prototype, it no longer 
207         needs it.
208
209 2006-12-12  John (J5) Palmieri  <johnp@redhat.com>
210
211         * bus/signal.c: Fix match_rule_equal errata
212         (CVE-2006-6107 - Patch from Kimmo Hämäläinen 
213         <kimmo.hamalainen@nokia.com>)
214
215 2006-11-19  Thiago Macieira  <thiago@kde.org>
216
217         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock,
218         _dbus_pthread_condvar_wait,
219         _dbus_pthread_condvar_wait_timeout): set pmutex->holder to
220         pthread_self() after coming back from a conditional variable
221         wait as well as in one codepath where it was forgotten.
222         Approved by: Havoc Pennington.
223
224 2006-11-17  Havoc Pennington  <hp@redhat.com>
225
226         * update-dbus-docs.sh: allow setting fd.org username via env
227         variable. Make it run autogen with --enable-xml-docs=yes
228         --enable-doxygen-docs=yes so configure will fail if the required
229         tools are missing.
230
231 2006-11-17  Havoc Pennington  <hp@redhat.com>
232
233         * doc/dbus-faq.xml: minor FAQ tweaks
234
235 2006-11-14  Havoc Pennington  <hp@redhat.com>
236         
237         * dbus/dbus-misc.c, dbus/dbus-misc.h: Move
238         dbus_get_local_machine_id() to its own file, no substantive
239         changes. There are a couple other things we might want to add that
240         are "misc" so moving out of dbus-connection.[hc] which is big
241         enough already.
242         
243 2006-11-14  Havoc Pennington  <hp@redhat.com>
244
245         * dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
246         UUID had the timestamp last, but the implementation had it first;
247         move it to last since I think it's a tiny bit nicer (easier to
248         compare at a glance, faster to sort, less code), and will not
249         cause any practical compatibility problems. Also, always convert
250         the timestamp to big endian.
251
252         * doc/dbus-specification.xml: Clean up the docs on the UUID.
253
254         * tools/dbus-uuidgen.1: more prominently say it is not suitable
255         as a replacement for regular uuidgen/RFC4122.
256
257 2006-11-14  John (J5) Palmieri  <johnp@redhat.com>
258
259         * dbus/dbus-threads.h: fix DBUS_THREAD_FUNCTIONS_ALL_MASK to have
260         the correct value so we don't assert when initalizing recursive threads
261
262         * test/name-test/test-thread-init.c: call dbus_threads_init_default
263         instead of _dbus_threads_init_debug since it is more of a real world
264         test
265
266 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
267
268         * Released 1.0.0
269
270 2006-11-09  John (J5) Palmieri  <johnp@redhat.com>
271
272         * AUTHORS: added Peter and Tor of windows porting fame
273
274 2006-11-08  Havoc Pennington  <hp@redhat.com>
275
276         * doc/dbus-specification.xml: add a note about protocol stability
277
278         * doc/TODO: Remove "important for 1.0" section, replace with
279         "important for 1.2" section
280         
281 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
282
283         * README: remove some of the out of date flags
284
285         * doc/TODO: Remove todo items which are done
286
287 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
288
289         * tools/dbus-monitor.c: Handle sigint so we flush stdout
290         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
291
292 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
293
294         * tools/dbus-monitor.1: update the manpage for dbus-monitor
295         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
296
297 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
298
299         * AUTHORS: Update with all people listed in the ChangeLog
300
301 2006-11-08  John (J5) Palmieri  <johnp@redhat.com>
302
303         * tools/dbus-monitor.c: add profiling tools to dbus-monitor
304         (Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
305
306 2006-11-07  Havoc Pennington  <hp@redhat.com>
307
308         * HACKING: Update release instructions to include stuff about
309         stable releases, branching, etc. May not be totally correct,
310         please fix if needed, but keep instructions up-to-date so we do
311         each stable release consistently in the future.
312
313 2006-11-07  Havoc Pennington  <hp@redhat.com>
314
315         * doc/dbus-specification.xml, doc/dbus-faq.xml, README: various
316         documentation updates. Bump faq/spec versions (not to 1.0; I don't
317         think the spec will be "finished"/1.0 when we ship the 1.0 library).
318
319 2006-11-06  John (J5) Palmieri  <johnp@redhat.com>
320
321         * bus/bus.c: Missed patch - pass in the context to the directory watch
322
323 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
324
325         * Released D-Bus 1.0 RC 3(0.95)
326
327 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
328
329         * bus/activation.c (bus_activation_new): don't fail if we can not read
330         the directory as it may not exist
331
332 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
333
334         * bus/config-parser.c (service_dirs_find_dir): use 
335         _dbus_list_get_next_link so we don't get stuck in an infinite loop
336         (start_busconfig_child): move processing of standard_session_servicedirs
337         tags here because they have no content
338         (bus_config_parser_content): check we don't have content in 
339         standard_session_servicedirs tag
340
341 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
342
343         * tools/Makefile.am: Make sure the /var/lib/dbus directory is created
344         Packagers need to own this directory
345
346 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
347
348         * tools/run-with-tmp-session-bus.sh: fixed script to replace the 
349         <standard_session_servicedirs> tag with a <sevicedir> tag that
350         points to the test service directory
351
352 2006-11-02  John (J5) Palmieri  <johnp@redhat.com>
353
354         * configure.in: Add a check for DIR *dirp->dd_fd
355
356         * dbus/dbus-sysdeps-util-unix: if HAVE_DDFD is defined use 
357         DIR *dirp->dd_fd else use DIR *dirp->__dd_fd.  This takes care
358         of both Solaris and Irix
359
360 2006-11-01  Havoc Pennington  <hp@redhat.com>
361
362         * bus/dbus-daemon.1.in: document standard_session_servicedirs
363
364 2006-11-01  John (J5) Palmieri  <johnp@redhat.com>
365
366         * configure.in: expose DBUS_DATADIR
367         
368         * bus/config-parser.c: add the standard_session_servicedirs element
369         to the parser
370         (bus_config_parser_content): process the standard_session_servicedirs
371         element by getting the standard directories from sysdeps and merging
372         them into the service directory list
373         (test_default_session_servicedirs): make sure we get what we expect
374
375         * bus/session.conf.in: replace the servicedir tag with the 
376         standard_session_servicedirs tag
377
378         * dbus/dbus-list.h: remove the typedef of DBusList and place it in
379         dbus-sysdeps.h to avoid circular header dependencies
380
381         * dbus/dbus-sysdeps.h: add the typedef of DBusList
382
383         * dbus/dbus-sysdeps-unix.c (split_paths_and_append): utility function
384         which takes a string of directories delimited by colons, parses them 
385         out, appends a suffix and puts them in a list ignoring empty elements
386         (_dbus_get_standard_session_servicedirs): returns the standard 
387         directories for a session bus to look for service activation files
388         on Unix which includes the XDG_DATA_HOME, XDG_DATA_DIRS and 
389         DBUS_DATADIR directories
390
391         * test/data/valid-config-files/many-rules.conf: add the 
392         standard_session_servicedirs tag to the valid config file tests
393
394 2006-10-30  Havoc Pennington  <hp@redhat.com>
395
396         * tools/dbus-launch.1, doc/TODO: capture intent to change the
397         command line options of dbus-launch a bit post 1.0
398
399 2006-10-27  Havoc Pennington  <hp@redhat.com>
400         
401         * dbus/dbus-connection.c (dbus_connection_open_private): document
402         how to choose shared vs. private connections
403
404 2006-10-27  Havoc Pennington  <hp@redhat.com>
405
406         * dbus/dbus-test.c: enclose more of the file in the
407         DBUS_BUILD_TESTS check.
408
409         * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for
410         DBUS_DISABLE_ASSERT case.
411
412         * dbus/dbus-connection.c (dbus_connection_get_unix_user): document
413         that it only works on the server side
414
415         * dbus/dbus-bus.c: add a global lock covering the BusData we
416         attach to each connection
417         (internal_bus_get): lock our access to the BusData
418         (dbus_bus_register): lock the entire registration process
419         with _DBUS_LOCK(bus_datas). If we get the lock and 
420         registration is already complete, silently return (vs. previous
421         behavior of aborting).
422         (dbus_bus_set_unique_name): lock the BusData
423         (dbus_bus_get_unique_name): lock the BusData
424
425 2006-10-27  John (J5) Palmieri  <johnp@redhat.com>
426
427         * bus/config-parser.c (service_dirs_find_dir, 
428         service_dirs_append_unique_or_free, 
429         service_dirs_append_link_unique_or_free): New static methods
430         for only appending unique service directory names into
431         the service directory list
432         (merge_included, bus_config_parser_content): Only add unique
433         service directory names into the list
434
435 2006-10-27  Havoc Pennington  <hp@redhat.com>
436
437         * dbus/dbus-sysdeps-pthread.c: make the "count" and "holder"
438         variables volatile, suggested by Thiago. Document struct fields.
439         (PTHREAD_CHECK): remove pthread error checking if assertions are
440         disabled, should reduce the no-assertions case to the bare
441         minimum code.
442
443 2006-10-26  Havoc Pennington  <hp@redhat.com>
444         
445         * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_mutex_lock): change
446         to be recursive
447         (_dbus_pthread_mutex_unlock): make it recursive
448         (_dbus_pthread_condvar_wait): save/restore the recursion count
449         (_dbus_pthread_condvar_wait_timeout): save/restore the recursion count
450
451 2006-10-26  Havoc Pennington  <hp@redhat.com>
452
453         * doc/dbus-specification.xml: clarify the UUID text slightly
454
455         * dbus/dbus-sysdeps-pthread.c: check for and mostly abort on
456         pthread errors. Add DBusMutexPThread and DBusCondVarPThread 
457         in preparation for being able to extend them for e.g. recursive
458         mutexes.
459
460 2006-10-26  Havoc Pennington  <hp@redhat.com>
461
462         * dbus/dbus-threads.[hc]: Documentation improvements. Clarify how 
463         condition variables relate to recursive mutexes.
464         
465         * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, 
466         dbus/dbus-threads.c: Split the platforms-specific thread 
467         implementations into their own files.
468         
469         * dbus/dbus-sysdeps-pthread.c
470         (_dbus_pthread_condvar_wait_timeout): invert the return value, it
471         was backward. Not that anything uses it.
472
473 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
474
475         * dbus-sysdeps-unix.c (_dbus_set_local_creds): Clean up the
476         LOCAL_CREDS vs CMSGCRED stuff a bit.  Prefer CMSGCRED.  This
477         needs to be cleaned up more.
478
479         * doc/TODO: Add a todo that *BSD hackers should look at cleaning
480         up the CREDS issue.
481
482 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
483
484         * configure.in, dbus-1.pc.in: Check to see if thread methods 
485         are in glibc or libpthread and add -lpthread to the link stage 
486         if it is the latter
487
488 2006-10-26  Thiago Macieira  <thiago@kde.org>
489
490         * dbus/dbus-connection.c (_dbus_connection_open_internal): Fix
491         bug 8780: the connection lock is only required while recording
492         the shared connection, so protect only that code
493         section. Don't require connection_lookup_shared to return a
494         locked connection.
495
496 2006-10-26  Thiago Macieira  <thiago@kde.org>
497
498         * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
499         check if get_machine_uuid() returns NULL before proceeding any
500         further: we can't init the X atoms or create a session file
501         name if there is no machine ID.
502         This solves a crash reported by some users if
503         --exit-with-session was used without --autolaunch=<machine-id>
504
505 2006-10-26  John (J5) Palmieri  <johnp@redhat.com>
506
507         * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
508         if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set
509
510         * tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
511         before we run dbus-launch
512
513         * configure.in: define TEST_BUS_BINARY to be the full path to 
514         dbus-daemon in the build root 
515
516 2006-10-25  Sjoerd Simons  <sjoerd@luon.net>
517
518         * dbus/Makefile.am:
519         * tools/Makefile.am:
520         * toos/dbus-uuidgen.1:
521                 Move the machine-id file to /var/lib/dbus 
522
523 2006-10-24  David Zeuthen  <davidz@redhat.com>
524
525         * dbus/dbus-threads.c (init_uninitialized_locks): Fix typo so it's
526         _dbus_assert (thread_init_generation != _dbus_current_generation)
527         not _dbus_assert (thread_init_generation == _dbus_current_generation)
528
529 2006-10-24  Thiago Macieira  <thiago@kde.org>
530
531         * dbus/dbus-sysdeps.h:
532         * dbus/dbus-sysdeps-unix.c: Add function
533         _dbus_make_file_world_readable that chmods a file to 0644.
534
535         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address):
536         Avoid writing to the static "argv" array, thereby avoiding a
537         COW on the child process.
538
539         * dbus/dbus-internals.c (_dbus_create_uuid_file_exclusively):
540         call _dbus_make_file_world_readable on the created file.
541
542 2006-10-23  David Zeuthen  <davidz@redhat.com>
543
544         * dbus/dbus-memory.c: Use atomic variable to protect
545         n_blocks_outstanding otherwise OOM will be reported using SMP on
546         some arches
547         
548         * bus/dispatch.c: Add missing end of line characters
549
550         * bus/desktop-file.c (parse_section_start, parse_key_value) 
551         (bus_desktop_file_load): Propertly handle OOM
552
553         * dbus/dbus-threads.c (init_uninitialized_locks): Check that
554         thread_init_generation equals _dbus_current_generation, not 0
555
556 2006-10-22  Havoc Pennington  <hp@redhat.com>
557
558         * dbus/dbus-connection-internal.h: move prototype of
559         _dbus_bus_notify_shared_connection_disconnected_unlocked() here so
560         it isn't in a public header and doesn't end up in the DBusBus
561         group in Doxygen
562
563 2006-10-21  Havoc Pennington  <hp@redhat.com>
564
565         * Makefile.am (EXTRA_DIST): dist cleanup-man-pages.sh so it's in
566         the tarball if packagers want to run it
567
568         * cleanup-man-pages.sh: Add a script which munges all the internal
569         API man pages out of the Doxygen output. This reduces the size of
570         the installed man pages from 7 to 2 megs, and avoids
571         namespace-polluting pages. Right now (like Doxygen) this script
572         isn't in the build, it's something packagers can do manually.
573
574 2006-10-21  Havoc Pennington  <hp@redhat.com>
575
576         * dbus/dbus-connection.h: don't include the watch/timeout
577         functions in connection section
578
579 2006-10-21  Havoc Pennington  <hp@redhat.com>
580
581         * Documentation! Whee! Doxygen now 100% silent. If you make it
582         angry again, you will be punished.
583         
584 2006-10-21  Havoc Pennington  <hp@redhat.com>
585
586         * More documentation - all public API now documented according to
587         Doxygen
588
589 2006-10-21  Havoc Pennington  <hp@redhat.com>
590
591         * Document a bunch of undocumented stuff
592         
593 2006-10-21  Havoc Pennington  <hp@redhat.com>
594
595         * Clean up Doxygen group markers for public API so Doxygen finds
596         everything (not comprehensively fixed for private API).
597         Means all remaining Doxygen warnings are just about missing docs
598         and thus pretty simple to resolve.
599         
600 2006-10-21  Havoc Pennington  <hp@redhat.com>
601         
602         * dbus/dbus-macros.h: add DBUS_GNUC_DEPRECATED macro
603
604         * dbus/dbus-message.h: mark dbus_message_iter_get_array_len() 
605         as DBUS_GNUC_DEPRECATED
606
607 2006-10-21  Havoc Pennington  <hp@redhat.com>
608
609         * Move all private API into the private Doxygen group sections of
610         the files, so they don't show up in the public API docs
611         
612 2006-10-21  Havoc Pennington  <hp@redhat.com>
613
614         * dbus/dbus-message.h: put #ifndef DBUS_DISABLE_DEPRECATED around 
615         dbus_message_iter_get_array_len().
616
617         * throughout: documentation improvements.
618
619 2006-10-20  Havoc Pennington  <hp@redhat.com>
620
621         * doc/TODO: remove the int64 thing from 1.0 since it doesn't
622         matter, and the message-loader-breaker thing since nobody is going
623         to do it.  Add an item to 1.0 about supporting recursive locks
624         in dbus_threads_init_default() though, since it should be easy.
625
626         * dbus/dbus-connection.c (_dbus_connection_read_write_dispatch):
627         Fix this in the !dispatch case to avoid busy-looping after
628         disconnection
629
630         * More misc docs improvements
631
632 2006-10-19  Havoc Pennington  <hp@redhat.com>
633
634         * more Doxygen-related fixes (lots of moving things from the
635         public to internal section in dbus-connection.c)
636
637 2006-10-19  Havoc Pennington  <hp@redhat.com>
638
639         * Fix a pile of Doxygen warnings and missing docs
640
641 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
642
643         * bus/dir-watch-default.c, bus/dir-watch-dnotify.c, 
644         bus/dir-watch-kqueue.c (bus_watch_directory): Pass in a BusContext 
645         instead of a void *.  kqueue uses this to get the context's loop
646         while the other modules ignore the parameter.  This allows us to
647         avoid platform conditionals
648
649         * bus/bus.c (process_config_postinit): Pass in the context to the 
650         watch
651
652 2006-10-19  John (J5) Palmieri  <johnp@redhat.com>
653
654         * bus/messagebus.in, bus/rc.messagebus.in: run dbus-uuidgen --ensure
655         when starting the system bus
656
657 2006-10-18  John (J5) Palmieri  <johnp@redhat.com>
658
659         * configure.in: More fixups for cross compile (Patch from 
660         Marco Pracucci <development at pracucci dot com>)
661
662 2006-10-17  Havoc Pennington  <hp@redhat.com>
663
664         * tools/dbus-send.c (main): don't close shared connection, fix
665         from Timo Hoenig
666
667 2006-10-17  Havoc Pennington  <hp@redhat.com>
668
669         * configure.in (CPPFLAGS): don't do -DDBUS_API_SUBJECT_TO_CHANGE here
670
671         * dbus/dbus.h: drop the DBUS_API_SUBJECT_TO_CHANGE requirement,
672         since realistically it doesn't look like we'll be changing it
673         anymore.
674
675 2006-10-17  Havoc Pennington  <hp@redhat.com>
676
677         * dbus/dbus-internals.c (_dbus_warn_check_failed): new function to
678         be used for return_if_fail type warnings; prefixes the pid, and
679         fatal by default.
680
681 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
682
683         * configure.in: Released 1.0 RC 2(0.94)
684         Add check for -fPIC and enable it if available
685
686 2006-10-14  John (J5) Palmieri  <johnp@redhat.com>
687
688         * doc/TODO: Remove the check TODO item
689
690 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
691
692         * dbus-transport-socket.c (exchange_credentials):
693         Print out more detailed errors if reading or sending
694         credentials fail (Patch from Julio M. Merino Vidal 
695         <jmmv at NetBSD dot org>)
696
697 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
698
699         * configure.in: when checking for posix getpwnam_r assume true
700         for cross compiles
701
702 2006-10-13  John (J5) Palmieri  <johnp@redhat.com>
703
704         * configure.in: Check for gethostbyname first before we check for it
705         in libnsl.  On gnu systems it is implemeneted 
706
707 2006-10-13  Havoc Pennington  <hp@redhat.com>
708
709         * dbus/dbus-connection.c
710         (dbus_connection_send_with_reply_and_block): fix to handle closed
711         connections, from Tambet Ingo bug #8631
712
713 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
714
715         * configure.in: use AC_TRY_COMPILE for dirfd instead of AC_TRY_RUN
716
717 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
718
719         * test/name-test/Makefile.am: don't link against both libdbus and
720         libdbus-convenience
721
722 2006-10-11  John (J5) Palmieri  <johnp@redhat.com>
723
724         * configure.in: check for dirfd even if it is a macro
725         (Patch from Timothy Redaelli <drizzt at gufi dot org>)
726
727 2006-10-08  John (J5) Palmieri  <johnp@redhat.com>
728
729         * configure.in: define _POSIX_PTHREAD_SEMANTICS on solaris
730         avoid using dirfd on systems that don't have dirfd 
731         (Patch by Brian Cameron <brian dot cameron at sun dot com>) 
732
733 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
734
735         * dbus/dbus-sysdeps.c (_dbus_abort): Remove from 
736         #ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck
737
738         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
739         #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
740         macro because _dbus_abort calls it
741
742         * tools/Makefile.am: Add dbus-launch.h to the source list so distcheck
743         works
744
745 2006-10-02  John (J5) Palmieir  <johnp@redhat.com>
746
747         * dbus/dbus-sysdeps-util-unix.c (dirent_buf_size): Add check for
748         MAXNAMELEN for Mac OSX.  (Patch from Jonas B <sanoix at gmail dot com>)
749
750 2006-10-02  Thiago Macieira  <thiago@kde.org>
751
752         * tools/dbus-launch.c (main): make it complain and abort
753         execution in case an unknown option is given. Also, process
754         the '--' argument as the end of arguments.
755
756 2006-10-01  Havoc Pennington  <hp@redhat.com>
757
758         * tools/dbus-launch.c (print_variables): if no syntax is given,
759         don't print something that's sort-of-half-sh-syntax, just print
760         a plain key-value pairs thing.
761
762         * tools/dbus-launch-x11.c: use machine ID rather than hostname for
763         the local machine representation (but still have the hostname in
764         the display). Remove the hostname from the display if it is
765         localhost. Change session files to be named
766         ~/.dbus/session-bus/machine-display. Change X atoms to be
767         underscore-prefixed so nobody whines about ICCCM compliance.
768         Otherwise name them the same as the env variables.
769         Change session file format to include key-value pairs and an
770         explanatory comment. Keys are the same as the env variables.
771         (set_address_in_x11): X property format can't depend on
772         sizeof(pid_t) on a particular machine, fix to always be 32 bits
773
774         * tools/dbus-launch.c: make --autolaunch take a machine id
775         argument. If --autolaunch is used with a program to run, complain
776         for now (but add a FIXME). Also, don't look for existing bus if 
777         there's a program to run (but add a FIXME).
778
779         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
780         machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
781         just to get this, and avoids duplicating uuid-reading code).
782
783         * tools/dbus-launch.1: clarify various things
784         
785 2006-10-01  Havoc Pennington  <hp@redhat.com>
786
787         * test/test-service.c (path_message_func): remove broken extra
788         unref that was hidden by the bugs in dbus-connection.c/dbus-bus.c
789
790         * test/test-shell-service.c (path_message_func): same fix
791         
792         * dbus/dbus-connection.c
793         (_dbus_connection_get_dispatch_status_unlocked): break up the
794         function a little for clarity and fix the notification of
795         dbus-bus.c to not require dispatch to be complete
796
797         * dbus/dbus-connection.c (dbus_connection_unref): improve the
798         warning when you try to finalize an open connection.
799         
800 2006-10-01  Havoc Pennington  <hp@redhat.com>
801
802         * dbus/dbus-bus.c
803         (internal_bus_get): only weak ref the connection; this means 
804         _dbus_bus_notify_shared_connection_disconnected_unlocked can be
805         called safely in any context
806         (_dbus_bus_notify_shared_connection_disconnected_unlocked): don't
807         unref
808
809         * dbus/dbus-connection.c
810         (_dbus_connection_get_dispatch_status_unlocked): move
811         _dbus_bus_notify_shared_connection_disconnected_unlocked here
812         when queuing Disconnected instead of when the Disconnected message
813         arrives, so dbus_bus_get() won't return closed connections.
814         
815 2006-10-01  Havoc Pennington  <hp@redhat.com>
816
817         * dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref): 
818         Add a hack to make DBusNewConnectionFunction work right.
819
820         * dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
821         the hack here. Also, fix the todo about refcount leak.
822         
823         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
824         and use the hack here
825         
826         * dbus/dbus-connection.c: Kill the "shared" flag vs. the
827         "shareable" flag; this was completely broken, since it meant 
828         dbus_connection_open() returned a connection of unknown
829         shared-ness. Now, we always hold a ref on anything opened 
830         as shareable.
831
832         Move the call to notify dbus-bus.c into
833         connection_forget_shared_unlocked, so libdbus consistently forgets
834         all its knowledge of a connection at once. This exposed numerous
835         places where things were totally broken if we dropped a ref inside
836         get_dispatch_status_unlocked where
837         connection_forget_shared_unlocked was previously, so move
838         connection_forget_shared_unlocked into
839         _dbus_connection_update_dispatch_status_and_unlock. Also move the
840         exit_on_disconnect here.
841
842         (shared_connections_shutdown): this assumed weak refs to the
843         shared connections; since we have strong refs now, the assertion 
844         was failing and stuff was left in the hash. Fix it to close
845         still-open shared connections.
846         
847         * bus/dispatch.c: fixup to use dbus_connection_open_private on the 
848         debug pipe connections
849         
850         * dbus/dbus-connection.c (dbus_connection_dispatch): only notify
851         dbus-bus.c if the closed connection is in fact shared
852         (_dbus_connection_close_possibly_shared): rename from 
853         _dbus_connection_close_internal
854         (dbus_connection_close, dbus_connection_open,
855         dbus_connection_open_private): Improve docs to explain the deal
856         with when you should close or unref or both
857
858         * dbus/dbus-bus.c
859         (_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
860         from _dbus_bus_check_connection_and_unref_unlocked and modify to
861         loop over all connections
862
863         * test/test-utils.c (test_connection_shutdown): don't try to close
864         shared connections.
865
866         * test/name-test/test-threads-init.c (main): fix warnings in here
867
868         * dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
869         env variable to cause blocking waiting for gdb; drop
870         DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace() 
871         unconditionally.
872
873         * configure.in: add -export-dynamic to libtool flags if assertions enabled
874         so _dbus_print_backtrace works.
875
876         * dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
877         instead of _dbus_verbose to print the backtrace, and diagnose lack 
878         of -rdynamic/-export-dynamic
879         
880 2006-09-30  Havoc Pennington  <hp@redhat.com>
881
882         * dbus/dbus-bus.c (dbus_bus_get_private, dbus_bus_get) 
883         (internal_bus_get): fix screwy code formatting. whoever committed
884         that was not paying attention!
885
886 2006-09-30  Havoc Pennington  <hp@redhat.com>
887
888         * configure.in (LT_CURRENT, LT_AGE): increment current and age to
889         reflect addition of interfaces.
890
891         * doc/dbus-specification.xml: describe a new
892         org.freedesktop.DBus.Peer.GetMachineId method
893
894         * dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
895         (_dbus_string_skip_white, _dbus_string_skip_blank): use new
896         DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
897         at end of skip_white
898         (_dbus_string_chop_white): new function
899
900         * bus/connection.c (bus_connections_setup_connection): call
901         dbus_connection_set_route_peer_messages.
902
903         * dbus/dbus-connection.c
904         (_dbus_connection_peer_filter_unlocked_no_update): modify to
905         support a GetMachineId method.
906
907         Also, support a new flag to let the bus pass peer methods through
908         to apps on the bus, which can be set with
909         dbus_connection_set_route_peer_messages.
910
911         Finally, handle and return an error for anything unknown on the
912         Peer interface, which will allow us to extend the Peer interface
913         in the future without fear that we're now intercepting something
914         apps were wanting to see.
915         
916         * tools/dbus-uuidgen.c: a thin wrapper around the functions in 
917         dbus/dbus-uuidgen.c
918
919         * dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
920         binary here, since most of the code is already in libdbus
921
922         * dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
923         uuid from the system config file
924
925         * dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode) 
926         (_dbus_read_uuid_file_without_creating) 
927         (_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
928         uuid-related functions, partly factored out from dbus-server.c
929
930         * dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
931         DBUS_ERROR_FILE_EXISTS instead of EEXIST
932
933         * dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error
934
935         * tools/dbus-cleanup-sockets.1: explain what the point of this
936         thing is a bit more
937
938         * autogen.sh (run_configure): add --config-cache to default
939         configure args
940
941         * dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
942         error set/clear assertions when DBUS_DISABLE_CHECKS is defined
943
944         * tools/dbus-launch.c (main): if xdisplay hasn't been opened,
945         don't try to save address, fixes crash in make check
946         
947 2006-09-30  Thiago Macieira  <thiago@kde.org>
948
949         * configure.in: add DBUS_BINDIR as a #define to C source code.
950
951         * tools/dbus-launch.c
952         * tools/dbus-launch.h
953         * tools/dbus-launch-x11.c:
954         * tools/dbus-launch.1: Add the --autolaunch option to
955         dbus-launch, which makes it scan for an existing session
956         started with --autolaunch. With that option, it also creates
957         an X11 window and saves the bus address and PID to it.
958
959         * dbus/dbus-sysdeps.h:
960         * dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
961         a function that runs "dbus-launch --autolaunch" to retrieve
962         the running D-Bus session address (or start one if none was running)
963
964         * dbus/dbus-transport.c: Add the handler for the "autolaunch:"
965         address protocol, which tries to get the running session from
966         dbus-launch.
967
968         * dbus/dbus-bus.c:
969         * dbus/dbus-internals.h: Make "autolaunch:" be the default
970         D-Bus session bus address.
971
972         * dbus/dbus-connection.c: Fix horrible typo in error message.
973
974 2006-09-18  John (J5) Palmieri  <johnp@redhat.com>
975
976         * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@  
977
978 2006-09-17  Havoc Pennington  <hp@redhat.com>
979
980         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
981         fix so that if unix_user_function is set on windows, we still
982         do the default check that the auth identity matches the bus identity
983
984 2006-09-16  Havoc Pennington  <hp@redhat.com>
985
986         * dbus/dbus-transport.c (_dbus_transport_open): modify to delegate
987         to _dbus_transport_open_platform_specific,
988         _dbus_transport_open_socket,
989         and _dbus_transport_open_debug_pipe
990
991         * dbus/dbus-transport-protected.h: add _dbus_transport_open_platform_specific
992
993 2006-09-16  Havoc Pennington  <hp@redhat.com>
994
995         Attempt auditing public API to remove all cases where a Unix
996         function returns weird emulated goo to Windows. This probably 
997         breaks the bus daemon on Windows, to fix it again we may 
998         need to stop processing unix-specific config options on Windows,
999         and may need to add Windows-specific public API or config options.
1000         
1001         * configure.in (LT_CURRENT, LT_AGE): increment current and age,
1002         to reflect added interfaces; should not break soname.
1003         
1004         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated): do
1005         not invoke unix user function on Windows. Kind of a hacky fix, but 
1006         we don't want a "unix uid" leaking out on Windows.
1007
1008         * dbus/dbus-connection.c (dbus_connection_get_socket): add new API
1009         to get the socket fd on Windows or UNIX
1010         (dbus_connection_get_unix_fd): make this always fail on Windows
1011
1012 2006-09-16  Havoc Pennington  <hp@redhat.com>
1013
1014         * dbus/dbus-server.c (dbus_server_listen): change how this works
1015         to be able to delegate to a set of handlers that can succeed,
1016         fail, or choose not to handle. Allows us to have 
1017         dbus_server_listen_platform_specific.
1018
1019         * dbus/dbus-server-socket.c (_dbus_server_new_for_tcp_socket):
1020         factor out the tcp socket stuff to be used on windows, leaving
1021         unix domain socket only in dbus-socket-unix.c
1022
1023         * dbus/dbus-transport-socket.c
1024         (_dbus_transport_new_for_tcp_socket): factor out the tcp socket
1025         stuff to be used on windows, leaving unix domain socket only 
1026         in dbus-transport-unix.c
1027
1028         * dbus/dbus-connection.c (dbus_connection_get_unix_user): insert
1029         temporary hack to be sure this fails on windows
1030         (dbus_connection_get_unix_process_id): ditto
1031
1032 2006-09-16  Havoc Pennington  <hp@redhat.com>
1033
1034         * dbus/dbus-sysdeps-unix.c (_dbus_open_tcp_socket) 
1035         (_dbus_open_unix_socket, _dbus_open_socket): change API for 
1036         _dbus_open_socket so the domain/type/protocol from system headers
1037         are not required. This is kind of pointless though unless we move
1038         part of _dbus_connect_tcp_socket into sysdeps.c instead of
1039         sysdeps-unix.c, which would mean adding a wrapper around
1040         bind/listen/etc.
1041         Also, add DBusError to the socket-opening functions so they 
1042         don't require use of errno.
1043
1044 2006-09-16  Havoc Pennington  <hp@redhat.com>
1045
1046         * dbus/dbus-sysdeps-unix.h: small change to Peter's patch to make
1047         dbus-sysdeps-unix-util.c build, add unix-specific sysdeps header.
1048
1049         * dbus/dbus-sysdeps.h, dbus-sysdeps-unix.c: patch from Peter 
1050         Kümmel bug #8249 to make the sysdeps.h read/write/open/close
1051         functions specifically for sockets only, and move generic 
1052         read/write/open/close into unix-specific code.
1053
1054 2006-09-14  Havoc Pennington  <hp@redhat.com>
1055
1056         * dbus/dbus-transport-unix.c (unix_do_iteration): fix a valgrind
1057         complaint about accessing revents when poll returns 0, from Julian Seward.
1058
1059 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1060
1061         * Released 1.0 RC 1 (0.93) 
1062
1063 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1064
1065         * dbus/dbus-sysdeps-util-unix.c (_dbus_write_pid_file):
1066         use _dbus_close instead of close
1067
1068 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1069
1070         * dbus/dbus-sysdeps.c: Add support for LOCAL_CREDS socket
1071         credentials.  Fixes "external" authentication under e.g. NetBSD
1072         which does not support any other socket credentials mechanism.
1073         (Patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1074
1075 2006-09-14  John (J5) Palmieri  <johnp@redhat.com>
1076
1077         * dbus/dbus-threads.c: Allow recursive mutex's to be passed into
1078         dbus_threads_init and be used by the dbus mutex functions to
1079         avoid deadlocks.
1080
1081         * doc/TODO: Remove recursive mutex dbus_connection_dispatch TODO item
1082
1083 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1084
1085         * dbus/dbus-sysdeps-util-unix.c (_dbus_directory_get_next_file):
1086         use threadsafe readdir_r instead of readdir
1087
1088 2006-09-13  John (J5) Palmieri  <johnp@redhat.com>
1089
1090         * dbus-threads.c (dbus_threads_init_default): New method for
1091         initializing the internal thread implementation (Patch from
1092         Alexander Larsson <alexl at redhat dot com>)
1093
1094 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1095
1096         * remove a bunch of todo items from the 1.0 list
1097
1098 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1099
1100         * bus/activation.c, bus/desktop-file.c: Distinguish between OOM and
1101         key not found
1102
1103 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1104
1105         * dbus/dbus-internal.c: Add dbus_is_verbose so we can have more
1106         complex debugging code
1107
1108         * dbus/dbus-marshal-basic.c (_dbus_marshal_read_fixed_multi): Move
1109         between the test suite ifdefs
1110         (_dbus_verbose_bytes): return if verbosity is not enabled 
1111
1112 2006-09-11  John (J5) Palmieri  <johnp@redhat.com>
1113
1114         * dbus/dbus-marshal-recursive-util.c, dbus/dbus-marshal-recursive.c:
1115         remove DBusMark
1116
1117 2006-09-10  Havoc Pennington  <hp@redhat.com>
1118
1119        patch mostly by Peter Kümmel, bug #8211
1120         
1121         * dbus/dbus-sysdeps-unix.c: new file, which splits out
1122         unix-specific stuff in dbus-sysdeps.c
1123
1124         * dbus/dbus-sysdeps.c: don't include any UNIX-only headers, 
1125         and move unix-specific stuff to dbus-sysdeps-unix.c
1126
1127         * configure.in: check HAVE_ERRNO_H
1128         
1129 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1130
1131         * bus/test-main.c (main): Initialize threading during tests
1132
1133         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1134         Unlock connection on error
1135         (generate_local_error_message): static method for generating
1136         an error message when we don't have a message to reply to
1137         (_dbus_connection_block_pending_call): Send a disconnect error
1138         instead of just a timeout (NULL) when the bus gets disconnected
1139         while blocking for a reply.
1140         
1141 2006-09-08  John (J5) Palmieri  <johnp@redhat.com>
1142
1143         * dbus/dbus-connection.c (dbus_connection_dispatch): Properly remove
1144         filters (Patch from Kimmo Hämäläinen 
1145         <kimmo dot hamalainen at nokia dot com>)
1146
1147 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1148
1149         * dbus/dbus-connection-internal.h: Add prototype for 
1150         _dbus_connection_test_get_locks to remove warning
1151
1152 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1153
1154         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): Make sure we
1155         close child_err_report_pipe[WRITE_END] on exec (Patch from 
1156         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1157
1158 2006-09-07  John (J5) Palmieri  <johnp@redhat.com>
1159
1160         * Clean up close calls to use _dbus_close (Patch from 
1161         Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>)
1162
1163 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1164
1165         * doc/TODO:
1166         - Remove pending call locking todo item
1167         - dbus_connection_open now holds hard ref.  Remove todo item
1168         - do proper locking on _dbus_bus_check_connection_and_unref
1169           and handle DBUS_BUS_STARTER. Remove todo item
1170         - Warn on closing of a shared connection.  Remove todo item
1171
1172         * bus/bus.c, bus/connection.c, bus/dispatch.c, dbus/dbus-bus.c,
1173         dbus/dbus-connection.c: Use the dbus_connection_close_internal
1174         so we don't get the warning when closing shared connections
1175
1176         * test/test-service.c, test/test-shell-service.c: Applications
1177         don't close shared connections themselves so we unref instead of
1178         close
1179
1180         * test/test-utils.c (test_connection_shutdown): Close the connection
1181
1182         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): Changed to
1183         _dbus_bus_check_connection_and_unref_unlocked since we only call this
1184         method on a locked connection.  
1185         Make sure we call _dbus_connection_unref_unlocked instead of 
1186         dbus_connection_unref also.
1187         Handle DBUS_BUS_STARTER correctly
1188
1189         * dbus/dbus-connection.c (connection_record_shared_unlocked):
1190         Mark as shared and hard ref the connection
1191         (connection_forget_shared_unlocked): Remove the hard ref from the 
1192         connection
1193         (_dbus_connection_close_internal_and_unlock):  New internal function
1194         which takes a locked connection and unlocks it after closing it
1195         (_dbus_connection_close_internal): New internal function which acts
1196         like the origonal dbus_connection_close method by grabbing a connection
1197         lock and calling _dbus_connection_close_internal_and_unlock
1198         (dbus_connection_close): Public close method, warns when the app
1199         trys to close a shared connection
1200
1201 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1202
1203         * bus/driver.c:
1204         (bus_driver_generate_introspect_string): New method for populating
1205         a DBusString with the introspect data
1206         (bus_driver_handle_introspect): Move introspect generation code to 
1207         bus_driver_generate_introspect_string
1208
1209         * bus/main.c:
1210         (introspect): New function which prints out the intropect data and
1211         exits
1212         (main): Add a --introspect switch
1213
1214 2006-09-06  John (J5) Palmieri  <johnp@redhat.com>
1215
1216         * doc/TODO: Removed dtd publishing item.  
1217         It seems the dtd has already been added at
1218         http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd
1219
1220 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1221
1222         * doc/TODO, various source files: Audited todo's and FIXME's and
1223         prepended the ones we should be looking at with 1.0.  Those
1224         prepended with 1.0? need clerification or might not be needed
1225         for 1.0
1226
1227 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1228
1229         * dbus/dbus-pending-call.c: Add some checks so we don't crash on
1230         NULL in the public API (Patch from Kimmo Hämäläinen 
1231         <kimmo dot hamalainen at nokia dot com>)
1232
1233 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1234
1235         * configure.in: Fix for OS-X compile time endian issues (patch from
1236         Benjamin Reed <ranger at befunk dot com>)
1237
1238 2006-09-05  John (J5) Palmieri  <johnp@redhat.com>
1239
1240         * configure.in: Check for no-common compiler flag (OS-X fix from
1241         Benjamin Reed <ranger at befunk dot com>)
1242
1243 2006-09-01  John (J5) Palmieri  <johnp@redhat.com>
1244
1245         * tools/dbus-launch.c: Add a sigterm handler (patch from Frederic Crozat
1246         <fcrozat at mandriva dot com>)
1247
1248 2006-08-29  Havoc Pennington  <hp@redhat.com>
1249
1250         * test/test-service.c (path_message_func): fix lack of return value
1251
1252         * dbus/dbus-sysdeps.c (_dbus_printf_string_upper_bound): fix
1253         formatting, remove #ifdef, and fix docs. #ifdef doesn't make
1254         any more sense than on anything else in this file.
1255         (_dbus_get_tmpdir): add const to return value, and keep the
1256         results of the various getenv around in a static variable.
1257
1258 2006-08-29  Havoc Pennington  <hp@redhat.com>
1259
1260         * dbus/dbus-sysdeps-util.c, dbus/dbus-sysdeps-util-unix.c: change
1261         from Ralf Habacker to move UNIX-specific sysdeps into a separate file.
1262
1263 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1264
1265         * test/Makefile.am: change find to use syntax that works with non
1266         gnu versions of find
1267
1268 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1269
1270         * dbus/dbus-transport.c: fix invalid deref when checking if
1271         a vtable method exists (Patch from Christian Ehrlicher 
1272         <ch dot ehrlicher at gmx dot de>)
1273
1274 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1275
1276         * configure.in, dbus/Makefile.am, test/name-test/run-test.sh, 
1277         test/name-test/Makefile.am: Fixed some issues with getting get dbus 
1278         to build with builddir != srcdir (Taken from a patch by Bernard Leak
1279         <bernard at brenda-arkle dot demon dot co dot uk>)
1280
1281 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1282
1283         * configure.in: Fix DBUS_DAEMONDIR to use EXPANDED_BINDIR for the
1284         default case
1285
1286 2006-08-25  John (J5) Palmieri  <johnp@redhat.com>
1287
1288         * configure.ac, bus/Makefile.am: Generalize kqueue support so that
1289         it works on any system providing this interface, not only FreeBSD.
1290         For example, NetBSD. (Patch by Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1291
1292 2006-08-20  Havoc Pennington  <hp@redhat.com>
1293
1294         * doc/dbus-faq.xml, doc/dbus-tutorial.xml: some improvements to
1295         the docs
1296
1297 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1298
1299         * Released 0.92 
1300
1301 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1302
1303         * dbus/dbus-threads.c (dbus_threads_init): change the documentation
1304         to reflect the init late change
1305
1306         * bus/bus.c (bus_context_new): Check user before we fork so we can
1307         print out an error message a user will be able to see
1308
1309 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1310
1311         Patch provided by Ralf Habacker (ralf dot habacker at freenet dot de) 
1312
1313         * dbus/dbus-sysdeps.c, dbus/dbus-threads.c, dbus/dbus-internals.h:
1314         Add two more global locks for use on windows platforms.  These are
1315         unused on non-windows platforms but are not ifdefed out to avoid
1316         potential bugs (i.e. the few bytes lost does not warrent the extra
1317         maintanence and complexity that having seperate sets of locks would
1318         cause)
1319
1320 2006-08-18  John (J5) Palmieri  <johnp@redhat.com>
1321
1322         * bus/services.c (bus_registry_acquire_service): Return an error
1323         when an application tries to register the org.freedesktop.DBus Bus Name
1324
1325         * bus/services.c (bus_registry_release_service): Return an error
1326         when an application tries to release the org.freedesktop.DBus Bus Name
1327
1328 2006-08-17  Alp Toker  <alp@atoker.com>
1329
1330         * doc/dbus-specification.xml: Fix some minor typos.
1331
1332 2006-08-17  John (J5) Palmieri  <johnp@redhat.com>
1333
1334         * configure.in: use $with_init_scripts instead of $operating_system
1335         to determine where to store the pid since the init scripts manipulate 
1336         the pid file (patch from Marcelo Ricardo Leitner 
1337         <marcelo dot leitner at terra dot com dot br>.  
1338
1339 2006-08-16  John (J5) Palmieri  <johnp@redhat.com>
1340
1341         * dbus/dbus-threads.c: Add static DBusList *uninitialized_mutex_list and
1342         static DBusList *uninitialized_condvar_list to support new late 
1343         initialization threading model.  In this model threads can be initialized
1344         even after the D-Bus API has been used but still needs to be initialized 
1345         before the second thread has been started.  Mutexes and condvar addresses
1346         are stored in the two static lists and are replaced with actuall locks
1347         when threads are initalized.
1348         (_dbus_mutex_new_at_location): New method for creating a mutex and placing
1349         the location into the static list
1350         (_dbus_mutex_free_at_location): New method for removing a mutex location 
1351         from the static list and freeing the mutex
1352         (_dbus_condvar_new_at_location): New method for creating a conditional 
1353         variable and placing the location into the static list
1354         (_dbus_condvar_free_at_location): New method for removing a conditional
1355         variable location from the static list and freeing the conditional variable 
1356         (init_uninitialized_locks): Atomic method which goes through the static 
1357         lists of mutex and condvar location and updates them with actuall locks
1358         (init_global_locks): changed to init_locks
1359         
1360         * dbus/dbus-connection.c:
1361         (_dbus_connection_test_get_locks): New method for tests to check connections
1362         (_dbus_connection_new_for_transport): Use the new at_location mutex and
1363         condvar API
1364         (dbus_connection_allocate_data_slot): Pass in the global lock address
1365         to _dbus_data_slot_allocator_alloc
1366
1367         * dbus/dbus-dataslot.c:
1368         (_dbus_data_slot_allocator_alloc): Use the address of the mutex
1369         instead of the mutex itself
1370
1371         * dbus/dbus-message.c:
1372         (dbus_message_allocate_data_slot): Pass in the global lock address
1373         to _dbus_data_slot_allocator_alloc
1374
1375         * dbus/dbus-pending-call.c:
1376         (dbus_pending_call_allocate_data_slot): Pass in the global lock address
1377         to _dbus_data_slot_allocator_alloc
1378
1379         * dbus/dbus-server.c:
1380         (_dbus_server_init_base): Use the new at_location mutex API
1381         (dbus_server_allocate_data_slot): Pass in the global lock address
1382         to _dbus_data_slot_allocator_alloc
1383
1384         * test/name-test/test-threads-init.c: New test case for late thread
1385         initialization
1386
1387 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1388
1389         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1390         Change _dbus_abort to _dbus_assert_not_reached because _dbus_abort
1391         causes compile problems when asserts are turned off
1392         Keeping _dbus_warn for printing out the message so even if
1393         asserts are turned off the user gets the messages that something is 
1394         wrong 
1395
1396 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1397
1398         Patches by Kjartan Maraas <kmaraas at gnome dot org>
1399
1400         * bus/services.c (bus_service_list_queued_owners):
1401         Add a pointer cast to fix compiler warning
1402
1403         * dbus/dbus-dataslot.c (_dbus_data_slot_list_get):
1404         return a NULL instead of FALSE since the return type
1405         is not expecting a boolean
1406
1407         * dbus/dbus-marshal-basic.c (_dbus_marshal_test):
1408         Remove unused variable
1409
1410         * dbus/dbus-marshal-recursive-util.c (node_new):
1411         return a NULL instead of FALSE since the return type
1412         is not expecting a boolean
1413
1414         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1415         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1416         because we are expecting a pointer not a boolean
1417
1418         * dbus/dbus-sysdeps-util.c (_dbus_get_tmpdir): 
1419         add void as the parameter so some compilers
1420         don't complain
1421
1422         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket,
1423           _dbus_transport_new_for_tcp_socket):
1424         Send a NULL into _dbus_transport_new_for_fd instead of a FALSE
1425         because we are expecting a pointer not a boolean
1426
1427         * test/shell-test.c (test_command_line):
1428         cast the second argument to _dbus_list_append to avoid compiler
1429         warnings
1430
1431         * test/test-names.c (main): remove unused variable
1432
1433         * test/test-service.c (check_hello_from_self_reply):
1434         Initialize echo_message and echo_reply to NULL
1435         
1436         * test/test-shell-service.c (handle_echo):
1437         Remove unused variable and cast the third parameter passed to
1438         dbus_connection_get_object_path_data to avoid compiler warrnings
1439
1440         * test/name-test/test-names.c (clear_message_queue):
1441         Remove unused function
1442
1443         * test/name-test/test-pending-call-dispatch.c:
1444         Fix format string in printf
1445
1446
1447 2006-08-14  John (J5) Palmieri  <johnp@redhat.com>
1448
1449         * dbus/dbus-bus.c:
1450         * test/name-test/test-names.c:
1451         Remove test method dbus_bus_connection_get_unique_name because 
1452         we already have public method dbus_bus_get_unique_name that 
1453         does the exact same thing
1454
1455 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1456
1457         * dbus/dbus-signature.c:
1458         fix typos in Julio's previous patch which cause make check to fail
1459
1460 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1461
1462         * dbus/dbus-address.c (_dbus_address_test): Revert leaking strcmp.  
1463         In any case it was wrong since this is a test checking to see if
1464         address parsing is correct.  There was no need to get the true
1465         tmp directory.  
1466
1467 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1468
1469         * dbus/dbus-macros.h: Revert the addition of stddef.h
1470         as we should not be adding it to library headers 
1471
1472 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1473
1474         * dbus/dbus-signature.c:
1475         Fix the unit tests so that they work if assertions are not enabled.
1476         (patch from Julio M. Merino Vidal  <jmmv at NetBSD dot org>)
1477
1478 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1479
1480         * tools/run-with-tmp-session-bus.sh:
1481         * test/name-test/run-test.sh:
1482         Remove bashisms (patch from Julio M. Merino Vidal
1483         <jmmv at NetBSD dot org>)
1484
1485 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1486
1487         * configure.in: add a version (>= 2.6.0) check for libxml2
1488
1489 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1490
1491         * configure.in: make sure the compiler supports -Wfloat-equal
1492         
1493         * bus/dir-watch-dnotify.c: move functional code after 
1494         variable declerations (C99 fix)  (patches from Jens Granseuer
1495         <jensgr at gmx dot net>
1496
1497 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1498
1499         * dbus/dbus-macros.h:
1500         add #include <stddef.h> so that Sun compilers don't complain about
1501         the defining NULL
1502
1503 2006-08-10  John (J5) Palmieri  <johnp@redhat.com>
1504
1505         * dbus/dbus-sysdeps.c:
1506         * dbus/dbus-address.c:
1507         * bus/activation.c:
1508         * test/shell-test.c:
1509         don't hardcode tmp directory (patch from Dave Meikle 
1510         <dmk at davemeikle dot co dot uk>)
1511
1512 2006-08-09  John (J5) Palmieri  <johnp@redhat.com>
1513
1514         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_alloc):
1515         Change an assert to a detailed warning and abort.  
1516         When allocator->lock != mutex it indicates that the user has failed
1517         to initalize threads before using the D-Bus library.  This warning
1518         helps the user identify the issue and fix their app.
1519
1520 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1521
1522         These are all patches from Kjartan Maraas <kmaraas at gnome dot org>
1523         with cleanups of bugs found from Coverity reports:
1524
1525         * dbus/dbus-sysdeps-util.c (_dbus_write_pid_file):
1526         close the file on error to avoid a leak
1527
1528         * bus/expirelist.c (bus_expire_list_test):
1529         Check for NULL on dbus_new0
1530
1531         * bus/activation.c (update_directory):
1532         remove dead code
1533
1534         * bus/config-parser.c (merge_service_context_hash, start_selinux_child):
1535         Fix some leaks
1536
1537         * bus/bus.c (process_config_every_time):
1538         Fixed a leak
1539
1540         * bus/desktop-file.c (parse_key_value):
1541         Fixed leak
1542
1543         * bus/selinux.c (bus_selinux_id_table_insert):
1544         Fixed leak
1545
1546 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1547
1548         * dbus/dbus-object-tree.c (_dbus_object_subtree_new):
1549         remove dead code
1550
1551 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1552
1553         * tools/run-with-tmp-session-bus.sh: use #!/bin/sh instead of
1554         #!/bin/bash
1555
1556 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1557
1558         * Doxyfile.in: fix the INPUT line so we can generate docs 
1559         when sourcedir != builddir (patch from Cygwin Ports maintainer
1560         <yselkowitz at users dot sourceforge dot net>
1561
1562 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1563
1564         * dbus/dbus-sysdeps.h:
1565         * dbus/dbus-sysdeps.c: 
1566         * dbus/dbus-string.c: 
1567         s/_dbus_printf_length/_dbus_printf_string_upper_bound to comform with
1568         GLib's function which does the same thing
1569
1570         * configure.in:
1571         * bus/Makefile.am:
1572         * bus/dir-watch-default.c:
1573         * bus/dir-watch-dnotify.c:
1574         * bus/dir-watch-kqueue.c:
1575         Add kqueue directory watching for freebsd and split the directory
1576         watching code into seperate files per method/arch
1577         (patches from Timothy Redaelli <drizzt at gufi dotorg>)
1578
1579 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1580
1581         * configure.in:
1582         * tools/Makefile.am:
1583         * tools/dbus-launch.c:
1584         * bus/Makefile.am:
1585         allow --with-dbus-daemondir switch to be used to make the
1586         daemon install to a seperate bindir like /usr/libexec
1587         (patch from Brian Cameron <brian dot cameron at sun dot com)
1588
1589 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1590
1591         * bus/Makefile.am (install-data-hook): removed the slash after 
1592         $(DESTDIR) so we don't get the double slash which does not work
1593         in windows (patch from Andras Porjesz 
1594         <andras dot porjesz at siemens dot com>)
1595
1596 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1597
1598         * dbus/dbus-sysdeps.h:
1599         * dbus/dbus-sysdeps.c: 
1600           add _dbus_printf_length (patch from Peter Kümmel 
1601           <syntheticpp at gmx dot net>)
1602
1603 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1604
1605         * dbus/dbus-internals.c: unistd.h is not used 
1606         (_dbus_verbose_real): only enable verbose printing 
1607         if DBUS_VERBOSE environment var is set to '1'
1608         (patch from Peter Kümmel <syntheticpp at gmx dot net>)
1609
1610 2006-08-08  John (J5) Palmieri  <johnp@redhat.com>
1611
1612         * configure.in: add a GCC flag check for -Wdeclaration-after-statement
1613         so we still compile on older gcc (patch from Frederic Peters 
1614         <fpeters at 0d dot be>
1615
1616 2006-08-04  Havoc Pennington  <hp@redhat.com>
1617
1618         * configure.in: add -Wdeclaration-after-statement
1619
1620         * dbus/dbus-connection.c: change all the pending call stuff to
1621         reflect the fact that pending call operations use the connection
1622         lock
1623
1624         * dbus/dbus-pending-call.c: add locking here
1625
1626         * dbus/dbus-errors.c (struct DBusRealError): don't make the name
1627         field const consistent with how message field is done
1628
1629 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1630
1631         * s/D-BUS/D-Bus/g
1632
1633 2006-08-03  John (J5) Palmieri  <johnp@redhat.com>
1634
1635         * dbus/dbus-object-tree.c: Patch by Benjamin Otte 
1636         <in7y118 at public.uni-hamburg dot de> - fix invalid
1637         read/write reported by valgrind
1638
1639 2006-07-24  John (J5) Palmieri  <johnp@redhat.com>
1640
1641         * Released 0.91
1642
1643 2006-07-22  John (J5) Palmieri  <johnp@redhat.com>
1644
1645         * dbus/dbus-connection.c:
1646         (_dbus_connection_attach_pending_call_unlocked):
1647         (connection_timeout_and_complete_all_pending_calls_unlocked):
1648         Make sure we set timeout_added on pending calls to FALSE when
1649         we remove the timeout from the connection
1650
1651 2006-07-21  John (J5) Palmieri  <johnp@redhat.com>
1652
1653         * Removed some extra bindings stuff lingering around (thanks timo)
1654         * dbus-pendingcall.c (_dbus_pending_call_new): 
1655         s/dbus_connection_ref/_dbus_connection_ref_unlocked fixes assertion
1656         when we tried to take a lock on an already locked connection
1657
1658 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1659
1660         * Released 0.90
1661
1662 2006-07-17  Havoc Pennington  <hp@redhat.com>
1663
1664         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): support 64-bit
1665         ints, reported by Owen Taylor
1666
1667 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1668
1669         * doc/TODO:
1670         * dbus/dbus-bus.c:
1671         * dbus-errors.c:
1672         * dbus/dbus-marshal-validate.c:
1673           Removed TODO items which were fixed or are no longer relevent
1674
1675 2006-07-17  John (J5) Palmieri  <johnp@redhat.com>
1676
1677         * dbus-qt4-1.pc.in, dbus-sharp.pc.in:
1678         Remove stray files from the stripped bindings
1679
1680 2006-07-16  Havoc Pennington  <hp@redhat.com>
1681
1682         * dbus/dbus-pending-call.c (_dbus_pending_call_set_timeout_error):
1683         Improve the error message on reply timeout
1684
1685 2006-07-14  John (J5) Palmieri  <johnp@redhat.com>
1686
1687         * Remove all bindings
1688
1689 2006-07-13  John (J5) Palmieri  <johnp@redhat.com>
1690
1691         * dbus-connection.c (dbus_connection_send_with_reply): return TRUE
1692         and set pending_reply out arg to NULL is connection is disconnected
1693         (connection_timeout_and_complete_all_pending_calls_unlocked): New
1694         static method for cleaning up pending calls on disconnect
1695         (_dbus_connection_get_dispatch_status_unlocked): If we have pending 
1696         calls queued timeouts on disconnect 
1697
1698          * dbus/dbus-pending-call.c (_dbus_pending_call_set_connection):
1699         Remove 
1700
1701 2006-07-13  Carlos Garcia Campos  <carlosgc@gnome.org>
1702
1703         * bus/activation.[ch] (bus_activation_list_services): new function to 
1704         get the list of services that can be activated
1705
1706         * bus/dispatch.c: test coverage for the new bus method
1707         ListActivatableNames
1708
1709         * bus/driver.c: new bus method ListActivatableNames to get the list of
1710         services that can be activated
1711
1712         * doc/dbus-specification.xml: ListActivatableNames method documentation
1713
1714 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1715         * dbus/Makefile.am: add dbus-pending-call-internal.h to the list of
1716         source files
1717
1718 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1719         * dbus/dbus-message-factory.c:
1720         Fix index into an array (patch by Peter Kümmel <syntheticpp at gmx.net>)
1721
1722 2006-07-12  John (J5) Palmieri  <johnp@redhat.com>
1723         * dbus/dbus-connection-internal.h:
1724         * dbus/dbus-connection.c:
1725         * file dbus/dbus-pending-call.c:
1726         * dbus/dbus-pending-call.h:
1727         Make DBusPendingCall an opaque type even to D-Bus internals
1728
1729 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1730
1731         * dbus/dbus-connection.h: remove connection_disconnect and replace with
1732         connection_close
1733
1734         * dbus/dbus-connection.c: include dbus-bus.h
1735         (_dbus_connection_read_write_dispatch): make static
1736
1737 2006-07-07  John (J5) Palmieri  <johnp@redhat.com>
1738
1739         * dbus/dbus-connection.c (dbus_connection_close): removed deprecated
1740         function
1741         (dbus_connection_dispatch): On disconnect unref any shared connections
1742
1743         * dbus/dbus-bus.c (_dbus_bus_check_connection_and_unref): new function
1744         for cleaning up shared connections on disconnect
1745         (internal_bus_get): get a hard refrence to shared connections when
1746         they are created
1747         
1748         * doc/TODO: Remove items which are no longer relevent or have been fixed
1749         Split 1.0 todo items with a 0.90 freeze todo list
1750  
1751 2006-06-14  Ross Burton  <ross@openedhand.com>
1752
1753         * glib/dbus-gobject.c:
1754         Free a leaking GArray (surely not!) in dbus_g_method_return.
1755
1756 2006-06-14  Ross Burton  <ross@openedhand.com>
1757
1758         * tools/Makefile.am:
1759         * tools/dbus-monitor.c:
1760         Don't use the GLib bindings in dbus-monitor (patch from Ralf
1761         Habacker).
1762         
1763 2006-06-14  Ross Burton  <ross@openedhand.com>
1764
1765         * tools/dbus-print-message.c:
1766         Also print the object path when outputting signals or method calls.
1767
1768 2006-06-13  Thiago Macieira <thiago.macieira@trolltech.com>
1769
1770         * qt/src/Makefile.am: install the qdbus.h header.
1771         This allows people to actually use the installed code.
1772
1773 2006-06-12  Ross Burton  <ross@openedhand.com>
1774
1775         * glib/dbus-gproxy.c:
1776         Don't leak a GArray when firing signals (thank Rob Taylor for review).
1777
1778 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1779
1780         * Released 0.62
1781
1782 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1783
1784         * dbus/dbus-arch-deps.h.in: Remove spurious semi-colons that
1785         break pedantic builds. Closes bug 6043 (patch approved by
1786         Havoc back in February).
1787
1788 2006-06-12  Thiago Macieira <thiago.macieira@trolltech.com>
1789
1790         * qt/src/qdbusintegrator.cpp: Fix bug in parsing async methods
1791         that took a QDBusMessage parameter.
1792         * qt/src/qdbusbus.h: Add a default flag for RequestName.
1793         * qt/tools/dbus.cpp: Don't use automatic call because we might
1794         be calling an async method: request a reply.
1795
1796 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1797
1798         * test/qt/*: Update the testcases, including testing the new
1799         functionality of sending null QByteArray and QString over the
1800         bus. Add new headertest test and restore the old
1801         qdbusxmlparser test.
1802
1803 2006-06-11  Thiago Macieira <thiago.macieira@trolltech.com>
1804
1805         * qt/tools/dbuscpp2xml.cpp: Compile on Windows.
1806         * qt/tools/dbusidl2cpp.cpp: Add missing newline.
1807
1808         * qt/examples/Makefile.am:
1809         * qt/examples/chat.h: Use UI-generated files with the ui_*.h
1810         form.
1811
1812         * qt/src/qdbusmarshall.cpp: Allow sending of QString() and
1813         QByteArray() (nulls) over the bus.
1814         * qt/src/qdbusabstractinterface.cpp: Use the correct variable,
1815         the one that has the signature suffix stripped.
1816         * qt/src/qdbusreply.h: Make some methods const.
1817
1818 2006-06-09  Thiago Macieira <thiago.macieira@trolltech.com>
1819
1820         Patch from Timo Hoenig <thoenig@suse.de>.
1821
1822         * qt/dbus/Makefile.am: New file.  Fix "make dist", add all headers
1823         required during build to EXTRA_DIST.
1824         * qt/src/Makefile.am: Fix "make dist", add 'qdbus.h' to EXTRA_DIST.
1825         * qt/Makefile.am: Fix "make dist", add 'dbus' to DIST_SUBDIRS.
1826         * configure.in: Fix "make dist", take care that the Makefile for
1827         qt/dbus is being generated.
1828
1829 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1830
1831         * bus/bus.c: Fix eavesdropping on method calls
1832
1833 2006-06-07  John (J5) Palmieri  <johnp@redhat.com>
1834
1835         * configure.in:
1836         * dbus/dbus-userdb-util.c:
1837         Add Solaris console owner patch from Artem Kachitchkine
1838
1839 2006-06-07  Thiago Macieira <thiago.macieira@trolltech.com>
1840
1841         * qt/Makfile.am:
1842         * qt/src/Makefile.am: Fix the EXTRA_DIST after the
1843         reorganisation. Thanks to Timo Hoenig for pointing this out.
1844
1845 2006-06-06  Robert McQueen  <robot101@debian.org>
1846
1847         * glib/dbus-gtype-specialized.c: Fix obvious leak of GArray in every
1848           call to dbus_g_type_get_struct.
1849
1850 2006-06-06  Robert McQueen  <robot101@debian.org>
1851
1852         * glib/dbus-gvalue-utils.c: Fix the failing test where static string
1853           pointers were put into a GPtrArray-based specialised collection, and
1854           then freed along with the array. GValues which you add into
1855           collections or maps which have the NOCOPY flag set are assumed to not
1856           belong to the caller, so rather than the existing pointer-stealing
1857           semantics, they are copied instead. Given that the main consumers of
1858           this abstraction are the bindings themselves, I don't think this is
1859           too bad, but others should watch their choice of take vs set_static.
1860
1861 2006-06-06  Robert McQueen  <robot101@debian.org>
1862
1863         * glib/dbus-gvalue-utils.c: Spotted a warning about the return value
1864           of g_slist_prepend not being used. Fixed copying of slist-based
1865           specialised collections, then wrote a test case and found that it was
1866           all broken. Went on to fix iterating and appending too. Good thing
1867           nobody uses this code yet.
1868
1869 2006-06-06  Robert McQueen  <robot101@debian.org>
1870
1871         * glib/dbus-gvalue-utils.c: Remove duplicated code by having all of
1872           the iterators use gvalue_take_ptrarray_value (the GValues themselves
1873           are discarded without unsetting, so it makes no difference whether
1874           we take or set_static). Remove cases for G_TYPE_POINTER because
1875           there really is nothing useful we can do with them in our
1876           specialised types - we *need* boxed copy/free functions at the very
1877           least.
1878
1879 2006-06-05  Thiago Macieira <thiago.macieira@trolltech.com>
1880
1881         * qt/dbus: Add directory. I had forgotten to add this
1882         yesterday after the move...
1883
1884         * qt/examples/Makefile.am:
1885         * qt/examples/dbus.cpp: Moved to qt/tools/dbus.cpp.
1886
1887         * qt/tools/Makefile.am:
1888         * qt/tools/dbus.cpp: Moved from qt/examples/dbus.cpp.
1889         Added feature to get and set properties.
1890         Added validation of service, object path and interface names.
1891
1892         * qt/tools/dbusidl2cpp.cpp: Two new features:
1893         1) Allow specifying both the header and the source file names,
1894         by separating them with a colon.
1895         2) Don't write an interface output if the -p switch wasn't
1896         given, but the -a was.
1897
1898         * qt/src/*: Fix usage of Iterators and ConstIterators.
1899         Fix shadowing of variables by other variables (-Wshadow).
1900         Fix keyword-cleanliness in headers.
1901         Fix ASCII-cast (QLatin1String, QLatin1Char).
1902         Fix validation of member names.
1903         Add extra checking of introspection data during XML parsing.
1904         Various bug fixes.
1905
1906 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1907
1908         * dbus/Makefile.am:
1909         * dbus/qdbus.h: Remove unnecessary file. This is mirrored into
1910         qt/dbus/qdbus.h now.
1911
1912 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1913
1914         * configure.in: Make --disable-qt actually do
1915           something. Patch inspired by Zack Rusin.
1916
1917 2006-06-04  Thiago Macieira <thiago.macieira@trolltech.com>
1918
1919         * qt/: Update to Subversion r548032.
1920         This includes a big reorganisation of the files inside the
1921         subdir.
1922
1923 2006-05-30  Sjoerd Simons  <sjoerd@luon.net>
1924
1925         * dbus/dbus-sysdeps.c: Make tcp socket connection error somewhat more
1926         clear:  
1927         "Failed to connect to socket <host>:<port> <error>" instead of
1928         "Failed to connect to socket <host>: <error>:<port>"
1929
1930         * dbus/dbus-transport-unix.c: Fix crash when no host option is given
1931         for a tcp transport. 
1932
1933 2006-05-29  Thiago Macieira  <thiago.macieira@trolltech.com>
1934
1935         * qt/*: Update the QtDBus bindings up to revision 546310 in
1936         Subversion.
1937         This adds the dbuscpp2xml tool, that parses a C++ header and
1938         outputs a D-BUS Introspection XML.
1939
1940 2006-05-21  Havoc Pennington  <hp@redhat.com>
1941
1942         * glib/dbus-gproxy.c: Put in a pile of assertions that the proxy name
1943         is not NULL when it shouldn't be. Also a couple of possible fixes
1944         for #4637 though I don't understand why the bug happens, to be
1945         honest... also the object constructor has an assert name != NULL
1946         and the name is only currently NULL for peer-to-peer proxies that 
1947         I don't think anyone uses? So it should be asserting.
1948         Anyway, for now at least see if we get an earlier assertion failure.
1949
1950         * glib/dbus-gvalue-utils.c: Put in a couple of assertions for
1951         apparently broken code to be sure the tests fail and someone 
1952         will fix them...
1953
1954 2006-05-07  Thiago Macieira  <thiago.macieira@trolltech.com>
1955
1956         * qt/qdbusmarshall.cpp: Fix a problem of demarshalling lists
1957         and arrays when they had a single element: has_next returns
1958         false, even before you read the element. So, instead, check
1959         the array length.
1960
1961 2006-05-06  Thiago Macieira  <thiago.macieira@trolltech.com>
1962
1963         * qt/qdbusmessage.cpp:
1964         * qt/qdbustypehelper_p.h:
1965         * qt/qdbusintegrator.cpp: gcc 3.4 doesn't like Q_FOREACH when
1966         the list is a const-reference
1967
1968 2006-05-03  John (J5) Palmieri  <johnp@redhat.com>
1969
1970         * Adding old doc patch that never got applied
1971         
1972         * dbus/bus.c (dbus_bus_add_match): Add documentation
1973
1974         * doc/dbus-specification.xml: Add documentation for the match rules
1975           and the AddMatch and RemoveMatch methods
1976
1977 2006-05-02  Thiago Macieira  <thiago.macieira@trolltech.com>
1978
1979         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
1980         call (r535506)
1981
1982         * qt/dbusidl2cpp.cpp:
1983         * qt/qdbusabstractadaptor.cpp:
1984         * qt/qdbusabstractadaptor.h: Make QDBusAdaptorConnector be a
1985         sibling of the QDBusAbstractAdaptor objects instead of the
1986         parent. (r535848)
1987
1988         * qt/dbusidl2cpp.cpp:
1989         * qt/qdbusabstractinterface.cpp:
1990         * qt/qdbusabstractinterface.h:
1991         * qt/qdbusabstractinterface_p.h:
1992         * qt/qdbusinterface.cpp: Make properties in interfaces
1993         actually work. The code that was generated would not compile,
1994         due to moc calls to functions that did not exist. They now
1995         shall. (r536571)
1996
1997 2006-04-30  Thiago Macieira  <thiago.macieira@trolltech.com>
1998
1999         * Makefile.am:
2000         * configure.in:
2001         * dbus-qt4-1.pc.in: Add a pkg-config file for libdbus-qt4-1.
2002         Thanks to Brad Hards for providing the patch
2003
2004 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2005
2006         * qt/dbusidl2cpp.cpp: There's no callAsync. Use the correct
2007         call. (r535506)
2008
2009 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2010
2011         * qt/examples/dbus.cpp: Enhance error messages and use
2012         QDBusInterfacePtr.
2013
2014 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2015
2016         * qt/qdbusinterface.h: Rename QDBusRef to QDBusInterfacePtr
2017         and disable the copy operators. (r533772, r534746)
2018
2019         * qt/qdbuserror.h: Remove the automatic cast to bool. (r533929)
2020
2021         * qt/qdbusabstractinterface.cpp:
2022         * qt/qdbusabstractinterface.h: Change the default call mode to
2023         not use the event loop. Add convenience call() methods that
2024         take a CallMode parameter. (r534042)
2025
2026         * qt/qdbusconnection.h: Change the default call mode to not
2027         use the event loop. (r534042)
2028
2029         * qt/qdbusinterface.cpp:
2030         * qt/qdbusinterface.h: Add a method to tell us if the
2031         interface is valid (since we don't return a null pointer
2032         anymore) (r534099)
2033
2034         * qt/qdbusinterface_p.h: Don't crash if metaObject is 0
2035         (r534101)
2036
2037         * qt/qdbusinternalfilters.cpp: Decouple the introspection
2038         function in two so taht we get the chance to introspect
2039         without having a QDBusMessage (r534102)
2040
2041         * qt/qdbusbus.h:
2042         * qt/qdbusconnection.cpp:
2043         * qt/qdbusconnection_p.h:
2044         * qt/qdbusintegrator.cpp: Keep a list of our own names to
2045         avoid a round-trip to the server when attempting to introspect
2046         one of our own objects. Also make sure the filter functions
2047         match the empty interface as well. (r534108)
2048         Don't keep the connection names. Instead, trust the unique
2049         connection name (r534111)
2050         Remove event loop usage (r534112)
2051
2052 2006-04-29  Thiago Macieira  <thiago.macieira@trolltech.com>
2053
2054         * qt/qdbusintegrator.cpp: Fix assertion failure spotted by
2055         Brad Hards.
2056
2057 2006-04-28  Robert McQueen  <robot101@debian.org>
2058
2059         * glib/dbus-gproxy.c: Fix properties so that they can be given in
2060         any order, making it easier for people who inherit from this
2061         object.
2062
2063 2006-04-28  Robert McQueen  <robot101@debian.org>
2064
2065         * glib/dbus-gvalue-utils.c: Patch from Jakub Stachowski to fix leaking
2066         of memory from within pointer arrays and lists. Fixes bug #6300.
2067
2068 2006-04-28  Robert McQueen  <robot101@debian.org>
2069
2070         * glib/dbus-gvalue.c: Patch from Jakub Stachowski to fix a leak in
2071         generating struct signatures. Fixes bug #6083.
2072
2073 2006-04-28  Robert McQueen  <robot101@debian.org>
2074
2075         * qt/Makefile.am: Tweak CLEANFILES from qdbusconnection.moc
2076         to qdbusconnection_p.moc.
2077
2078 2006-04-24 John (J5) Palmieri <johnp@redhat.com>
2079
2080         * README, INSTALL: Doc fixes
2081         Patch from Brad Hards <bradh at frogmouth.net>
2082
2083 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2084
2085         * qt/examples/dbus.cpp: Use the new merged-interface mode for
2086         the dynamic meta object. No need to guess which interface to
2087         call.
2088
2089 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2090
2091         * qt/qdbusconnection_p.h:
2092         * qt/qdbusmetaobject.cpp:
2093         * qt/qdbusmetaobject_p.h:
2094         * qt/qdbusintegrator.cpp: Use the new merged-interface mode
2095         for the dynamic meta object. No need to guess which
2096         interface to call.
2097         * qt/qdbusabstractinterface_p.h:
2098         * qt/qdbusconnection.cpp:
2099         * qt/qdbusintegrator.cpp:
2100         * qt/qdbusinterface.cpp:
2101         * qt/qdbusinterface.h: Make findInterface always return a non-null pointer.
2102         Add a QDBusRef that looks and behaves like DCOPRef.
2103
2104 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2105
2106         * dbus/dbus-connection.c: Interfaces are optional in method
2107         calls, so don't give up if the interface parameter is NULL.
2108         Patch reviewed by Havoc Pennington.
2109
2110 2006-04-23  Thiago Macieira  <thiago.macieira@trolltech.com>
2111
2112         * qt/qdbusreply.h: Add default constructor and operator=
2113           (r532625)
2114         * qt/qdbustypehelper_p.h: Use a clean namespace: no foreach()
2115           in public headers (r532952)
2116         * qt/qdbusabstractinterface.cpp:
2117         * qt/qdbusabstractinterface_p.h: Add the AutoDetect mode and
2118           make it the default (r532951)
2119
2120 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2121
2122         * dbus/dbus-connection.c: Fix asserts
2123         Patch from Tim Moloney <t.moloney at verizon.net>
2124
2125 2006-04-19  John (J5) Palmieri  <johnp@redhat.com>
2126
2127         * mono/Connection.cs, mono/Message.cs: Check Target type
2128         Patch from Aaron Bockover (abockover at novell.com)
2129
2130 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2131
2132         * INSTALL: fine-tune the requirements for the Qt4 binding.
2133
2134 2006-04-16  Daniel P. Berrange  <dan@berrange.com>
2135
2136         * tools/dbus-print-message.c: Added support for printing of all 
2137           remaining data types. Fixed logic for indentation of compound
2138           data types.
2139         
2140 2006-04-15  Daniel P. Berrange  <dan@berrange.com>
2141
2142         * INSTALL: fill out content of file providing DBus specific
2143           build installations, followed by generic Auto* INSTALL file
2144           content
2145         
2146 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2147
2148         * qt/qdbusintegrator.cpp: Work around g++ 3.3 bug.
2149           Patch by Stefan Eilers. (r529537)
2150
2151 2006-04-13  Thiago Macieira  <thiago.macieira@trolltech.com>
2152
2153         * qt/qdbusinternalfilters.cpp: Don't show the parent's
2154           contents (r528208)
2155
2156 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2157
2158         * qt/Makefile.am: fix the dependency for
2159           qdbusconnection_p.moc. It's included in qdbusintegrator.cpp,
2160           not in qdbusconnection.cpp.
2161           Thanks to Jakub Stachowski <stachowski@hypair.net> for
2162           spotting this.
2163
2164 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2165
2166         * qt/examples/listnames.cpp:
2167         * qt/examples/Makefile.am: Three ways to list the names on the
2168           bus.
2169
2170 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2171
2172         * test/qt/tst_hal.cpp: Remove the waiting, since it's not
2173           needed anymore. Requires Qt 4.1.3 to work properly. (r528148)
2174
2175 2006-04-10  Thiago Macieira  <thiago.macieira@trolltech.com>
2176
2177         Merge from Subversion:
2178         * qt/qt-dbus.qdocconf: Update Trolltech's webpage link to
2179           something that exists (r526315)
2180         * qt/qdbusinternalfilters.cpp: Correctly detect non-scriptable
2181           slots/signals (r526316)
2182         * qt/qdbusinternalfilters.cpp: Fix the setProperty call and
2183           also return an unknown-method error if the parameters don't
2184           match for org.freedesktop.DBus.Properties. (r526842)
2185         * qt/examples/dbus.cpp: Allow passing of QVariants (r526843)
2186         * qt/qdbusintegrator.cpp: Restore the proper order of
2187           delivery: don't make method returns be delivered on priority
2188           (r528150)
2189
2190 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2191
2192         * configure.in qt/Makefile.am: add qt/examples
2193         * qt/examples: Add QtDBus example programs:
2194           - hello: Hello, World
2195           - ping: Simple method-calling program
2196           - pong: Simple object-exporting program (not using adaptors)
2197           - complexping: Interactive method-calling program 
2198                 (also gets and sets properties).
2199           - complexpong: Sample program exporting methods, signals and
2200                 properties, using adaptors.
2201           - dbus: Simple implementation of a generic method-calling
2202                 program, similar to 'dbus-send', but with semantics
2203                 similar to 'dcop'.
2204           - chat: Simplistic chat program, implemented using signals
2205                 and the system bus. Looks like IRC.
2206
2207 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2208
2209         * configure.in: Detect QtGui (necessary for one of the
2210           example programs). Note: this increases the minimum required
2211           version of Qt to 4.1.3.
2212
2213 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2214
2215         * test/qt/*: Sync with KDE Subversion revision 523647.
2216         Update the testcases to the new API. Remove testcases for
2217         classes that are no longer public or have been removed.
2218
2219 2006-03-28  Thiago Macieira  <thiago.macieira@trolltech.com>
2220
2221         * qt/*: 
2222         * dbus/qdbus.h: Sync with KDE Subversion revision
2223         523647. Hopefully, this will be the last of the
2224         source-incompatible changes. Documentation has been improved;
2225         support for QList<basic-types> has been added; QDBusObject is
2226         gone; QDBus(Abstract)Interface is now a QObject with
2227         auto-generated meta-object; QDBusIntrospection is marked
2228         private, since QMetaObject can be used now; lots of bugfixes.
2229
2230 2006-03-16  John (J5) Palmieri  <johnp@redhat.com>
2231
2232         Patch from Milosz Derezynski <internalerror at gmail.com>
2233         
2234         * configure.in:
2235         Output the service directory in the configure summary
2236
2237         * dbus-1.pc.in:
2238         Add session_bus_services_dir
2239
2240 2006-03-10  Ross Burton  <ross@openedhand.com>
2241
2242         * tools/dbus-print-message.c:
2243         Add support for object paths and signatures.
2244
2245 2006-03-06  Sjoerd Simons <sjoerd@luon.net>
2246
2247         * bus/bus.c: (bus_context_reload_config): Flush the user database cache on
2248         config reload.
2249         * bus/dbus-daemon.1.in: Also note that SIGHUP flushes the user/group
2250         information caches
2251         * dbus/dbus-hash.c: (_dbus_hash_table_remove_all): 
2252         * dbus/dbus-hash.h: Add function to remove all entries from a hash table
2253         * dbus/dbus-userdb.c: (_dbus_user_database_flush):
2254         * dbus/dbus-userdb.h: Add function to flush all user/group information
2255         caches.
2256
2257 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2258
2259         * qt/dbusidl2cpp.cpp:
2260         * qt/Makefile.am: add the dbusidl2cpp tool, the replacement
2261         for dcopidl2cpp, found in the KDE installations (or the more
2262         modern kalyptus): generate Qt4 C++ code for the input XML
2263         introspection. Currently no IDL parsing.
2264
2265 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2266
2267         * test/qt/*: Update the self-tests.
2268
2269 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2270
2271         * qt/*: 
2272         * dbus/qdbus.h: Sync with KDE Subversion revision 516237. This
2273         represents the first feature-complete version of the Qt4
2274         bindings since I took ove maintainership.
2275
2276 2006-03-06  Thiago Macieira  <thiago.macieira@trolltech.com>
2277
2278         * qt/Doxyfile: Adding a Doxyfile for the Qt4 bindings
2279         dir. This is C++, so we can't use the DBus ones.
2280
2281 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2282
2283         * python/dbus_bindings.pyx: Remove refrence to sys/cdefs.h
2284         (Patch from Artem Kachitchkine <Artem.Kachitchkin at Sun.COM>)
2285
2286 2006-03-02  John (J5) Palmieri  <johnp@redhat.com>
2287
2288         * dbus/dbus-connection.c: 
2289         (_dbus_connection_block_pending_call):
2290         Check to see if our data has already been read off the connection
2291         by another blocking pending call before we block in poll.
2292         (check_for_reply_and_update_dispatch_unlocked):
2293         Code taken from _dbus_connection_block_pending_call - checks for
2294         an already read reply and updates the dispatch if there is one.
2295
2296         * test/name-test/test-pending-call-dispatch.c:
2297         New test for making sure we don't get stuck polling a 
2298         dbus connection which has no data on the socket when
2299         blocking out of order on two or more pending calls.
2300
2301 2006-02-28  Thiago Macieira <thiago.macieira@trolltech.com>
2302
2303         * qt/Makefile.am: Patch by Sjoerd Simons. More .moc issues:
2304         make/automake don't detect that we're talking about the same
2305         .lo file if I specify the full path to the source files.
2306
2307 2006-02-26  Havoc Pennington  <hp@redhat.com>
2308
2309         * bus/dbus-daemon.1.in: improve the language in a couple spots I noticed
2310
2311         * dbus/dbus-bus.c (internal_bus_get): in the error message if the
2312         session bus variable is unset, suggest "man dbus-launch" and "man
2313         dbus-daemon" to figure out how to fix the problem
2314
2315 2006-02-25  Havoc Pennington  <hp@redhat.com>
2316
2317         * glib/dbus-glib-tool.c (usage): fix up the usage message, someone
2318         should make this thing use the new glib options parser
2319
2320 2006-02-25  Thiago Macieira <thiago.macieira@trolltech.com>
2321
2322         * qt/Makefile.am: Patch by Sjoerd Simons. Fix the path to the
2323         .lo files taking moc sources.
2324
2325 2006-02-25  Havoc Pennington  <hp@redhat.com>
2326
2327         * dbus/dbus.h, dbus/Makefile.am: add dbus-signature.h to dbus.h
2328         and install it as a public header
2329
2330 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2331
2332         * Released 0.61
2333
2334 2006-02-24  John (J5) Palmieri  <johnp@redhat.com>
2335         
2336         * proxies.py: Fix the callchain
2337
2338 2006-02-24  John (J5) Palmieri <johnp@redhat.com>
2339         
2340         * patch from Sjoerd Simons <sjoerd at debian.org>:      
2341
2342         * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to 
2343         dbus/dbus-sysdeps.c
2344
2345         * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't
2346         call _dbus_group_info_free_allocated which causes infinite loop,
2347         correctly call _dbus_group_info_free
2348
2349 2006-02-20  Thiago Macieira <thiago.macieira@trolltech.com>
2350
2351         * qt/qdbusinterface_p.h:
2352         * qt/qdbusinterface.cpp: Use the standard
2353         org.freedesktop.DBus.Method.NoReply annotation for the "async"
2354         calls instead of creating one for us.
2355
2356         * qt/qdbusconnection_p.h:
2357         * qt/qdbusintegrator.cpp: Remove debugging code.
2358
2359         * qt/qdbusintegrator.cpp:
2360         * qt/qdbusmessage.cpp:
2361         * qt/qdbusmessage_p.h:
2362         * qt/qdbusmessage.h: Change the behaviour of automatic
2363         reply-sending: now a reply is always sent, unless the caller
2364         didn't request one or if the user slot has already sent one.
2365
2366 2006-02-16  Robert McQueen  <robot101@debian.org>
2367
2368         * configure.in: Patch from Debian packages by Sjoerd Simons
2369         <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc
2370         arguments so it's possible to build both bindings in the
2371         same tree.
2372
2373         * qt/Makefile.am: Fix truncated value so that make dist works.
2374
2375 2006-02-16  Robert McQueen  <robot101@debian.org>
2376
2377         * acinclude.m4, configure.in: Patch from Brad Hards
2378         <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by
2379         improving quoting, re-ordering a few checks, and a few other
2380         aesthetic tidy-ups.
2381
2382 2006-02-16  Robert McQueen  <robot101@debian.org>
2383
2384         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array):
2385         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus
2386         assertion that the next element to read from the iter is fixed in
2387         size. This is not the case when you are at the end of the iter,
2388         because the next element type is INVALID.
2389
2390         * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a
2391         a bogus assert which means that you may not initialise a 0-length
2392         string unless you provide a non-NULL pointer. This prevented
2393         you from marshalling messages containing zero-length arrays in
2394         some cases.
2395
2396         * glib/dbus-gvalue.c (demarshal_collection_array): Another patch
2397         from Rob to correct bogus asserts when trying to demarshal an
2398         array and get_fixed_array got you 0 elements. Append nothing to
2399         the GArray in this case.
2400
2401         * test/glib/test-dbus-glib.c: Add a test case for round-tripping
2402         an empty array via the glib bindings. Without all of the above
2403         patches, this new test fails.
2404
2405 2006-02-16  Robert McQueen  <robot101@debian.org>
2406
2407         * glib/dbus-gmain.c: Make the previous commit compile.
2408
2409         * python/_dbus.py, python/matchrules.py: Patch from Ole Andre
2410         Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to
2411         specify sender_keyword="foo", path_keyword="bar" when adding
2412         a signal listener, so that you can bind to signals generically
2413         but still do something useful in your callback.
2414
2415         * python/dbus_bindings.pyx: Demarshal the byte type as unsigned
2416         chars so that they're not cast to chars and made negative. Thanks
2417         to Jakub Stachowski for reporting this and testing the fix.
2418
2419 2006-02-15  John (J5) Palmieri  <johnp@redhat.com>
2420
2421         * dbus/dbus-glib.h:
2422         * glib/dbus-gmain.h:
2423         (dbus_g_connection_open): new method for openning
2424         a connection to an arbitrary address in the glib bindings
2425
2426         * ChangeLog: checkin last entry which doesn't seem to be commited
2427
2428 2006-02-13  John (J5) Palmieri  <johnp@redhat.com>
2429
2430         * tools/dbus-launch.c: Fixed sh syntax output
2431
2432 2006-02-13  Robert McQueen  <robot101@debian.org>
2433
2434         * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c,
2435         glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c,
2436         glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c,
2437         glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c:
2438         Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big
2439         missing piece of the glib bindings jigsaw puzzle. This modifies
2440         the existing specialised types to have N type parameters (rather
2441         than the current 1 or 2 for arrays and dictionaries respectively).
2442         You can then use this to get a glib type to represent any arbitrary
2443         D-Bus struct type using dbus_g_type_get_struct. The only
2444         implementation of these types is with GValueArrays as before,
2445         but it's now possible to store these in arrays, emit them in
2446         signals, etc.
2447
2448 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2449
2450         * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly
2451         deal with nested arrays (Bug #5823) Patch by Thiago Macieira 
2452         <thiago.macieira at trolltech.com>
2453
2454 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2455
2456         * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
2457         (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
2458
2459 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2460
2461         * bus/connection.c (bus_connections_expect_reply): Make
2462         pending reply limit not common to all connections (Bug #5416)
2463         Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
2464
2465 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2466
2467         * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
2468
2469 2006-02-10  John (J5) Palmieri  <johnp@redhat.com>
2470
2471         * gcj/Makefile.am: point to correct jar command (Bug #4529)
2472         patch from Doug Goldstein <cardoe at gentoo.org>
2473
2474 2006-02-09  Joe Shaw  <joeshaw@novell.com>
2475
2476         * mono/Arguments.cs: Fix a magic number in the mono bindings
2477         that doesn't work on 64 bit arches.  Patch from Peter Johanson.
2478
2479 2006-01-27  Robert McQueen  <robot101@debian.org>
2480
2481         * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
2482         patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
2483         when generating the client-side methods, instead of overloading
2484         CSymbol which broke everything horribly. My apologies.
2485
2486 2006-01-27  Robert McQueen  <robot101@debian.org>
2487
2488         * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
2489         by me and Rob Taylor to add a simple_free function to D-Bus map
2490         and collection types, which allows those types which can be freed
2491         with a GDestroyNotify (such as GHashTables and GArrays, but not
2492         GPtrArrays) to be stored as the values in hashtables.
2493
2494         * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
2495         Patch by Rob Taylor to add nested dicts to the glib tests to check
2496         the above code works, and appears not to leak when called repeatedly.
2497
2498 2006-01-27  Robert McQueen  <robot101@debian.org>
2499
2500         * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
2501         to free a D-Bus allocated string with dbus_free () instead of
2502         g_free ().
2503
2504 2006-01-27  Iain Holmes  <iain@openedhand.com>
2505
2506         * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
2507         method from being called multiple times.
2508
2509 2006-01-19  Robert McQueen  <robot101@debian.org>
2510
2511         * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
2512         <rob.taylor@collabora.co.uk> to add support for generating bindings
2513         to arrays that are represented as GPtrArrays rather than GArrays (ie
2514         size-variable things, such as strings, objects, structs, etc).
2515
2516 2006-01-05  Robert McQueen  <robot101@debian.org>
2517
2518         * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
2519         <ricardo.kekki@movial.fi> to make it possible to inherit from
2520         DBusGProxy, by splitting the DBusGProxy struct into a public part and
2521         a private part, and moving the setting of the DBusGProxyManager into a
2522         connection property, allowing proper GObject construction.
2523
2524 2006-01-05  Robert McQueen  <robot101@debian.org>
2525
2526         * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
2527         <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
2528         annotations when generating glib client bindings.
2529
2530 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2531
2532         * dbus/dbus-shared.h: Call it shared constants instead of shared macros
2533
2534         * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
2535
2536 2005-12-19 John (J5) Palmieri  <johnp@redhat.com>
2537
2538         * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
2539
2540 2005-12-19 John (J5) Palmieri  <johnp@redhat.com> 
2541
2542         * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
2543
2544 2005-12-19  Ross Burton  <ross@openedhand.com>
2545
2546         * doc/dbus-tutorial.xml:
2547         Document the Glib client-side bindings, and list all possible annotations.
2548
2549 2005-12-19  John (J5) Palmieri  <johnp@redhat.com>
2550
2551         * dbus/bus.c (dbus_bus_release_name): Add documentation
2552
2553 2005-12-06  Robert McQueen  <robot101@debian.org>
2554
2555         * python/service.py: s/sucessful/successful/ so we're allocating to
2556         and reading from the same variable. Oops.
2557
2558 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2559
2560         * Released 0.60
2561
2562 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2563
2564         * test/qt/Makefile.am: build from srcdir
2565
2566         * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
2567         Note - this code is wrong and needs to be fixed by the Qt binding
2568         developers.  The flags should be treated as bitfields and not enums.
2569
2570         * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
2571
2572 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2573
2574         * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after, 
2575           link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods 
2576           in production code
2577
2578 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2579
2580         * dbus/dbus-connection.c (dbus_connection_read_write): Add new
2581         method for getting messages off the bus in the absence of a
2582         mainloop.  This method is much like 
2583         dbus_connection_read_write_dispatch except it does not dispatch
2584         the messages to a registered filter function.  Instead it
2585         allows a developer to process messages by directly popping
2586         them off the bus.
2587
2588 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2589
2590         * bus/desktop-file.c (parse_key_value): Ignore locales allowing 
2591         the parser to continue instead of returning error
2592         (bus_desktop_file_load): Do not free parser data when
2593         parse_section_start or parse_key_value fails because it was 
2594         already freed by parser_free (patch from Carlos Garcia Campos  
2595         <carlosgc at gnome.org>)
2596
2597 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2598
2599         * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
2600         dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
2601         glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
2602         test/test-segfault.c, test/test-utils.c,
2603         test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
2604         tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
2605         Various cleanup of dead code and compiler warnings (patch from
2606         Kjartan Maraas <kmaraas at gnome.org>) 
2607
2608 2005-11-30  John (J5) Palmieri  <johnp@redhat.com>
2609
2610         * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
2611         (patch from Carlos Garnacho Parro <carlosg at gnome.org>
2612
2613 2005-11-27  Robert McQueen  <robot101@debian.org>
2614
2615         * python/dbus_bindings.pyx: Repair my previous commit which reverted
2616         part of the preceding one. Oops. Merge patch by Johan Hedberg
2617         <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
2618         on big-endian platforms.
2619
2620         * test/python/test-client.py: Add some 16-bit integers to the test
2621         values.
2622
2623 2005-11-27  Carlos Garcia Campos  <carlosgc@gnome.org>
2624
2625         * glib/dbus-gobject.c: Append a GValue instead of a basic type in
2626         method return message for property getters
2627
2628 2005-11-27  Robert McQueen  <robot101@debian.org>
2629
2630         * python/dbus_bindings.pyx: Fix a bug where doing a strict append
2631         with type v of an instance of dbus.Variant(foo, type='x') caused
2632         it to be boxed twice before sending over the bus.
2633
2634         * python/dbus_bindings.pyx, python/service.py,
2635         test/python/test-client.py: Update the constants for the new
2636         request_name flags, and update comments/test cases now that queueing
2637         is the default action.
2638
2639 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2640
2641         * configure.in:
2642         - Change version to 0.60 for impending release
2643         - upped the sonames because of ABI and API breakage
2644
2645 2005-11-22  John (J5) Palmieri  <johnp@redhat.com>
2646
2647         * configure.in: Add test/name-test/Makefile to the generated
2648         Makefile list
2649
2650         * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
2651         New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
2652         (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
2653         not to queue an ower if it can't be the primary owner
2654
2655         * bus/bus.h: Add new internal BusOwner struct
2656
2657         * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
2658         to bus_registry_ensure and don't set the prohibit_replacement flag
2659         since they are now set per BusOwner and not per name.
2660         (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) 
2661         that returns the list of connections in a name's connection queue
2662         
2663         * bus/services.c (struct BusService): remove prohibit_replacement field
2664         (struct BusOwner): new struct for keeping track of queued connections
2665         and their associated flags for the queue
2666         (struct BusRegistry): add a BusOwner memory pool
2667         (bus_registry_new): initialize the BusOwner memory pool
2668         (bus_registry_unref): free the BusOwner memory pool
2669         (_bus_service_find_owner_link): new internal method for
2670         searching the queue for a specific connection
2671         (bus_owner_set_flags): new method for adding setting the flags on a
2672         bus owner
2673         (bus_owner_new): new method that creates a BusOwner object from the
2674         pool and sets its flags
2675         (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
2676         (bus_registry_ensure): Add the flags parameter
2677         (bus_registry_acquire_service): Switch from using raw connections to
2678         using the BusOwner struct
2679         Add new state machine for dealing with the new set of flags
2680         (bus_registry_set_service_context_table, struct OwnershipCancelData, 
2681         cancel_ownership, free_ownership_cancel_data, 
2682         add_cancel_ownership_to_transaction, struct OwnershipRestoreData, 
2683         restore_ownership, free_ownership_restore_data, 
2684         add_restore_ownership_to_transaction): Switch to using BusOwner 
2685         instead of raw connections
2686         (bus_service_add_owner): Add flags parameter
2687         Switch to using BusOwner instead of raw connections
2688         Add state machine for dealing with the new set of flags
2689         (bus_service_swap_owner): Swaps the first and second owners in the
2690         queue.  Used to make sure proper signals are sent when a service looses 
2691         or gains primary ownership.  We never insert an owner at the top of the
2692         queue.  Instead we insert it in the second position and then swap.
2693         (bus_service_remove_owner): Remove the owner from the queue sending
2694         out the NameLost and NameOwnerChanged signals if the we were the 
2695         primary owner
2696         (bus_service_get_primary_owners_connection): New method that extracts
2697         the connection from the primary owner
2698         (bus_service_get_primary_owner): Returns the BusOwner instead of the 
2699         connection
2700         (bus_service_get_allow_replacement): Changed from the old 
2701         bus_service_get_prohibit_replacement method.  Checks the flags of the 
2702         primary owner and returns if it can be replaced or not
2703         (bus_service_set_prohibit_replacement): removed
2704         (bus_service_has_owner): returns TRUE if and owner with
2705         the specified connection exists in the queue
2706         
2707         * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
2708         method that only compiles if tests are enabled.  Allows us to get the 
2709         unique name of a connection so we can check it against the queue when
2710         doing regression tests
2711
2712         * bus/activation.c (bus_activation_send_pending_auto_activate),
2713         bus/dispatch.c (bus_dispatch),  
2714         bus/driver.c (bus_driver_handle_get_service_owner, 
2715         bus_driver_handle_get_connection_unix_user, 
2716         bus_driver_handle_get_connection_unix_process_id,
2717         bus_driver_handle_get_connection_selinux_security_context),
2718         bus/signals.c (connection_is_primary_owner): 
2719         use bus_service_get_primary_owners_connection instead of
2720         bus_service_get_primary_owner
2721
2722         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, 
2723         _dbus_listen_unix_socket): Calculate the length of the socket
2724         path and use that instead of using a fixed length which was
2725         causing socket names to contain many trailing Nul bytes.
2726
2727         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
2728         (dbus_g_method_get_sender): New method for extracting the sender 
2729         from a DBusGMethodInvocation
2730         (dbus_g_method_return_get_reply): changed name to 
2731         dbus_g_method_get_reply
2732         (dbus_g_method_return_send_reply): changed name to
2733         dbus_g_method_send reply
2734
2735         * doc/dbus-specification.xml: New docs that describe how the new
2736         queueing system works and talks about the changes to the how
2737         we specify socket names
2738
2739         * glib/examples/example-service.c, 
2740         glib/examples/example-signal-emitter.c,
2741         glib/examples/statemachine/statemachine-server.c:
2742         Changed the RequestName flags to the new system
2743
2744         * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
2745         regression test suite for testing various states of the new
2746         queueing system
2747         
2748 2005-11-15  Robert McQueen  <robot101@debian.org>
2749
2750         * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
2751         Taylor to add two methods, dbus_g_method_return_get_reply and
2752         dbus_g_method_return_send_reply, to allow you to get the reply
2753         message from a DBusGMethodInvocation, append arbitrary stuff to it,
2754         and send it. The GLib bindings can't marshal a return value of
2755         something like a(s) if the array is empty - ultimately they should be
2756         made to heed the signature of the out arguments as the Python bindings
2757         now can, but this is a workable interim solution which might have
2758         other applications.
2759
2760 2005-11-15  Robert McQueen  <robot101@debian.org>
2761
2762         * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
2763         method to org.freedesktop.DBus to release a bus name or give up
2764         waiting in the queue for it.
2765
2766         * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
2767         dbus_bus_release_name method to send the ReleaseName method calls.
2768         Add constants for the return values to dbus/dbus-shared.h.
2769
2770         * doc/dbus-specification.xml: Document the new ReleaseName method
2771         in the specification.
2772
2773         * python/dbus_bindings.pyx: Add a low-level python binding for the
2774         release name method.
2775
2776         * python/exceptions.py, python/service.py: Make freeing BusName
2777         objects release the name. Add a NameExistsException, and fix a
2778         bug with creating UnknownMethodException.
2779
2780         * test/python/test-client.py: Add tests for freeing BusName
2781         objects causing names to be released.
2782
2783 2005-11-14  Robert McQueen  <robot101@debian.org>
2784
2785         * python/service.py: Include the traceback in the error reply when we
2786         send an exception over the bus. _BEST_ _PATCH_ _EVER_
2787
2788 2005-11-14  David Zeuthen  <davidz@redhat.com>
2789
2790         Patch from Timo Hoenig <thoenig@suse.de>.
2791
2792         * bus/bus.c: I've recently investigated why the automatic reload
2793         of configuration files does not work as expected.
2794
2795         Currently, reloading configuration files does only work when
2796         running dbus-daemon with --nodaemon.  If we are running as daemon
2797         we're hitting a dnotify bug once we fork the process.
2798
2799         We're initializing the dnotify fds before calling fork().  Once
2800         the child process forked it does still have the fds (and they
2801         still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
2802         getting SIGIO as changes are made to the configuration files.
2803
2804         The attached patch moves the initialization of the dnotify fds to
2805         process_config_postinit().  This is safe for all current code
2806         paths and solves the dnotify disfunction.  If we're running
2807         dbus-daemon as daemon the fds for dnotify are now being
2808         initialized after fork() for the child process.
2809
2810         * configure.in: The current configure.in check for dnotify probes
2811         'x$target_os' for being 'xlinux-gnu'.  I've changed the check to
2812         match for 'xlinux', too. Additionally I have adapted the configure
2813         option's style to match with the others.
2814
2815 2005-11-14  Robert McQueen  <robot101@debian.org>
2816
2817         * python/decorators.py, python/service.py: Add a new argument to the
2818         dbus.service.method decorator called sender_keyword, which if set,
2819         specifies the name of an argument which will be provided the bus
2820         name of the method caller.
2821
2822         * test/python/test-client.py, test/python/test-service.py: Add a
2823         method and test to check the sender_keyword functionality.
2824
2825 2005-11-07  John (J5) Palmieri  <johnp@redhat.com>
2826
2827         * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an 
2828         empty reply so blocking calls don't block forever (Patch from Sjoerd 
2829         Simons <sjoerd at luon.net>)
2830
2831         * AUTHORS: Add Robert McQueen for his work on the Python
2832         Bindings and other parts of D-Bus
2833
2834 2005-11-07  Robert McQueen  <robot101@debian.org>
2835
2836         * python/decorators.py: Change emit_signal function to use the
2837         signature annotation of the signal when marhsalling the arguments from
2838         the service. Fix a bug where the code checking signature length
2839         against argument length referenced the wrong variable.
2840
2841         * python/introspect_parser.py: Avoid adding the type signature of
2842         signal arguments to any methods which occur after them in the
2843         introspection data (!) by making the parser a little more careful
2844         about its current state.
2845
2846         * python/service.py: Remove debug prints from last commit (again :D).
2847
2848         * test/python/test-client.py, test/python/test-service.py: Add test
2849         signals with signature decorators to test the strict marshalling code
2850         gives errors at the right time. Could do with checking the signals
2851         actually get emitted too, given that the test does nothing with
2852         signals at the moment...
2853
2854 2005-11-07  Robert McQueen  <robot101@debian.org>
2855
2856         * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
2857         instances to stop madness of creating new instances representing
2858         the same bus connection all the time, rendering any tracking of
2859         match rules and bus names quite meaningless. Caught a bug where
2860         the private argument to SessionBus() and friends was being passed
2861         in as use_default_mainloop by mistake. Still some problems with
2862         multiple dbus_binding.Connection instances representing the same
2863         low-level connection (eg when you use both SessionBus() and
2864         StarterBus() in same process), but it's a lot better now than it
2865         was.
2866
2867         * python/dbus_bindings.pyx: Add constants with the return values
2868         for bus_request_name().
2869
2870         * python/service.py: Store bus name instances in a per-dbus.Bus cache
2871         and retrieve the same instances for the same name, so deletion can be
2872         done with refcounting. Also now throws some kind of error if you
2873         don't actually get the name you requested, unlike previously...
2874
2875         * test/python/test-client.py: Add tests for instance caching of buses
2876         and bus name objects.
2877
2878 2005-11-04  Robert McQueen  <robot101@debian.org>
2879
2880         * python/dbus_bindings.pyx, test/python/test-client.py: Fix
2881         marshalling of boolean values. Add some booleans to the values in
2882         the test client.
2883
2884         * python/decorators.py, python/service.py: Add an 'async_callbacks'
2885         argument to the dbus.service.method decorator, which allows you to
2886         name arguments to take two callback functions for replying with
2887         return values or an exception.
2888
2889         * test/python/test-client.py, test/python/test-service.py: Add test
2890         case using asynchronous method reply functions, both return values and
2891         errors, and from within both the function itself and from a mainloop
2892         callback.
2893
2894         * python/decorators.py, python/service.py: Perform checking that the
2895         number of method/signal arguments matches the number of types in the
2896         signature at class loading time, not when you first introspect the
2897         class.
2898
2899         * python/service.py: Remove debug print left by the last commit.
2900
2901 2005-11-03  Robert McQueen  <robot101@debian.org>
2902
2903         * python/service.py: Heavy refactoring of method invocation, with
2904         hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
2905         in favour of a new _message_cb that uses seperate functions for
2906         looking up the method to call, marshalling the return values, and
2907         sending exceptions as errors, and is easier to follow as a
2908         consequence.  Fixes some corner cases about returning things that
2909         don't match your declared out_signature, allows exceptions to define
2910         _dbus_error_name and have it be sent over the bus as the error name,
2911         and paves the way for cool stuff like heeding the message no reply
2912         flag, asynchronous method implementations, informing the method of the
2913         sender, and including backtraces in the error messages.
2914
2915         * test/python/test-client.py: Catch and print exceptions thrown in the
2916         async callback tests, rather than passing them to the low-level
2917         bindings to be ignored in a noisy and frustrating manner.
2918
2919 2005-11-03  Robert McQueen  <robot101@debian.org>
2920
2921         * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
2922         functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
2923         tweak others to be consistent.
2924
2925         * test/python/test-client.py: Tweak output of testInheritance.
2926
2927 2005-10-29  Robert McQueen  <robot101@debian.org>
2928
2929         * python/service.py: Major changes to allow multiple inheritance
2930         from classes that define D-Bus interfaces:
2931         
2932          1. Create a new Interface class which is the parent class of
2933             Object, and make the ObjectType metaclass into InterfaceType.
2934         
2935          2. Patch written with Rob Taylor to replace use of method_vtable
2936             with code that walks the class's __MRO__ (method resolution order)
2937             to behave like Python does when invoking methods and allow
2938             overriding as you'd expect. Code is quite tricky because
2939             we have to find two methods, the one to invoke which has the
2940             right name and isn't decorated with the /wrong/ interface,
2941             and the one to pick up the signatures from which is decorated
2942             with the right interface.
2943         
2944             The same caveats apply as to normal multiple inheritance -
2945             this has undefined behaviour if you try and inherit from two
2946             classes that define a method with the same name but are
2947             decorated with different interfaces. You should decorate
2948             your overriding method with the interface you want.
2949         
2950          3. Replace grungy introspection XML generation code in the metaclass
2951             with dictionaries that cope correctly with multiple inheritance
2952             and the overriding of methods. This also uses the signature
2953             decorations to provide correct introspection data, including
2954             the debut appearance of the types of your return values. :D
2955
2956         * test/python/test-client.py, test/python/test-service.py: Add a test
2957         case to try invoking an method that overrides one inherited from a
2958         D-Bus interface class.
2959
2960 2005-10-29  Robert McQueen  <robot101@debian.org>
2961
2962         * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
2963         Add checking for the end of struct character when marshalling a
2964         struct in MessageIter.append_strict.
2965
2966         * python/examples/example-service.py,
2967         python/examples/gconf-proxy-service.py,
2968         python/examples/gconf-proxy-service2.py: Update to use gobject
2969         mainloop directly rather than appearing to depend on gtk.
2970
2971         * python/test/test-client.py, python/test/test-server.py: Remove
2972         obsolete and broken test scripts for old bindings. We have up to date
2973         and working tests in test/python/.
2974
2975 2005-10-29  Robert McQueen  <robot101@debian.org>
2976
2977         * python/decorators.py: Add optional arguments to the method and
2978         signal decorators to allow you to specify the signature of arguments
2979         and return values. Preserve the doc strings of signal functions in the
2980         decorated version, for pydoc and friends.
2981
2982         * python/dbus_bindings.pyx, python/proxies.py: Replace the
2983         parse_signature_block function with an iterable dbus.Signature()
2984         type. Fix a bug in MessageIter.append_strict where you could append
2985         anything by claiming it was a string.
2986
2987         * python/service.py: Use the out_signature decoration on methods to
2988         marshal return values, meaning you no longer require dbus.Array()
2989         or dbus.Dictionary() to indicate the type when returning empty
2990         arrays or dictionaries. Fix a bug where exceptions which are defined
2991         in __main__ are not turned into error replies.
2992
2993         * test/python/test-client.py, test/python/test-service.py: Add test
2994         for correct marshalling of return values according to out_signature.
2995         Fix a bug in the async call test where the error_handler is missing a
2996         self argument.
2997
2998 2005-10-29  Robert McQueen  <robot101@debian.org>
2999
3000         * glib/Makefile.am, glib/examples/Makefile.am,
3001         glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
3002         Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
3003
3004         * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
3005
3006         * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
3007         from Ubuntu by Daniel Silverstone to allow specifying match rules on
3008         the command line.
3009
3010 2005-10-27  Ross Burton  <ross@openedhand.com>
3011
3012         * dbus/dbus-marshal-header.c:
3013         Remove dead code.
3014
3015         * glib/dbus-gobject.c:
3016         Stop compiler warning.
3017
3018 2005-10-25  Ross Burton  <ross@openedhand.com>
3019
3020         * dbus/dbus-auth.c:
3021         * dbus/dbus-server-unix.c:
3022         * dbus/dbus-transport-unix.c:
3023         * glib/dbus-gmain.c:
3024         * glib/dbus-gobject.c:
3025         Add some const keywords.
3026
3027 2005-10-25  Ross Burton  <ross@openedhand.com>
3028
3029         * doc/dbus-specification.xml:
3030         Document the NoReply annotation.
3031
3032         * glib/dbus-binding-tool-glib.h:
3033         * glib/dbus-binding-tool-glib.c:
3034         Respect the NoReply annotation.
3035
3036 2005-10-24  Robert McQueen <robot101@debian.org>
3037
3038         * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
3039         derive from unicode instead of str, and encode/decode UTF-8 when
3040         marshalling/unmarshalling bus messages
3041
3042         * python/introspect_parser.py: encode introspection data as UTF-8
3043         before passing the buffer into libxml2
3044
3045         * test/python/test-client.py: add unicode test strings
3046
3047         * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
3048         ignore generated python test files
3049
3050 2005-10-17  John (J5) Palmieri  <johnp@redhat.com>
3051
3052         * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
3053         and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
3054         (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
3055
3056         * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
3057         DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
3058         when constructing struct signatures
3059
3060         * python/_dbus.py (Bus): handle private connections using the
3061         private keyword in the constructor. defaults to private=False
3062         (Bus::close): new method to close a connection to the bus
3063
3064         * python/dbus_bindings.pyx (Connection::close): renamed method
3065         was previously called disconnect
3066         (bus_get): now supports getting a private connection
3067
3068         * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
3069         keyword is set to True.  if it is, execute the method without waiting
3070         for a reply
3071         (ProxyObject::_introspect_execute_queue): new method for executing
3072         all the pending methods that were waiting for the introspect to
3073         finish.  this is called when introspect either succeeds or fails
3074         (ProxyObject::_introspect_error_handler): call queued methods
3075
3076 2005-10-14  John (J5) Palmieri  <johnp@redhat.com>
3077
3078         * python/dbus_bindings.pyx (MessageIter::append_strict): check for
3079         STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
3080
3081         * python/service.py (Object::_message_cb): handle exceptions correctly
3082         by sending them over the wire to the calling app.  This makes sure
3083         the client returns immediately instead of waiting the 15 seconds to
3084         timeout.
3085
3086         * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect): 
3087         Add a test to benchmark how long it takes to introspect a service and 
3088         call a method which returns a large element (pretty fast)
3089
3090         * test/python/test-service.py (TestObject::GetComplexArray): new test 
3091         method which pushes a lot of data
3092
3093 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3094
3095         * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):        
3096         reclaim memory outside of the loop and use del istead of just setting
3097         the key to None
3098
3099 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3100
3101         * python/service.py (ObjectType::_reflect_on_signal): Always close
3102         signal tag even when there are no arguments
3103
3104 2005-10-13  John (J5) Palmieri  <johnp@redhat.com>
3105
3106         * configure.in: Set mono, mono-docs and Qt3 to default
3107         to no instead of auto when building.  These bindings do not
3108         have full time maintainers and will not be supported for the
3109         1.0 release.
3110
3111 2005-10-12  John (J5) Palmieri  <johnp@redhat.com>
3112
3113         patches from Michael Krivoruchko <misha at sun.com>: 
3114         
3115         * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
3116         _dbus_connection_message_sent, 
3117         _dbus_connection_send_preallocated_unlocked_no_update, 
3118         _dbus_connection_pop_message_link_unlocked): handle the case when path 
3119         is NULL when calling _dbus_verbose
3120
3121         * configure.in: check for functions getpeerucred and getpeereid
3122
3123         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides 
3124         support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+, 
3125         OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid). 
3126         Patch was only tested on Solaris 10 x86 so it might be issues
3127         with other platforms (i.e. BSDs and MacOSX)
3128         
3129
3130 2005-10-05  John (J5) Palmieri  <johnp@redhat.com>
3131
3132         * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal 
3133         instead of marshal basic so we can handle recursive types in a variant
3134
3135         * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
3136         in variants
3137
3138         * test/glib/test-service-glib.c, test-service-glib.xml
3139         (my_object_echo_variant [EchoVariant], 
3140         my_object_process_variant_of_array_of_ints123
3141         [ProcessVariantOfArrayOfInts123]): 
3142         Add two test methods
3143
3144         * python/introspect_parser.py: New module for parsing introspect
3145         data.
3146
3147         * python/dbus_bindings.pyx:
3148         (various places): when throwing errors fix to use errormsg instead 
3149         of message local variable because Pyrex can get confused with other 
3150         message variables (initial patch by Robert McQueen 
3151         <robert.mcqueen at collabora.co.uk>)
3152         (MessageIter::parse_signature_block): new method for getting the next
3153         block in a signiture.
3154         (MessageIter::append_strict): new method for appending values strictly
3155         using the passed in signature instead of guessing at the type
3156         (MessageItter:: append_dict, append_struct, append_array): use 
3157         signatures to marshal children if the signature is available
3158         
3159         * python/exceptions.py (IntrospectionParserException): new exception
3160
3161         * python/proxies.py (ProxyMethod::__call__): Marshal args with 
3162         introspected signatures if available, else we fall back to the
3163         old way of doing things.
3164         (ProxyObject::_introspect_reply_handler ): parse introspection data
3165         
3166         * python/service.py (ObjectType::_reflect_on_method): Properly
3167         terminate <method> if there are no args in the reflection data
3168
3169         * test/python/test-client.py: add tests for talking with the GLib
3170         test server.  This gives us better coverage for introspection since
3171         python to python will always generate arguments as variants.  It also
3172         allows us to test the robustness of the GLib bindings and interlanguage
3173         communications.
3174
3175         
3176 2005-10-03  John (J5) Palmieri  <johnp@redhat.com>
3177
3178         * bus/driver.c (bus_driver_handle_introspect): Add signals
3179         to the introspect data. (patch from Daniel P. Berrange 
3180         <dan at berrange.com>)
3181
3182         * bus/dispatch.c (check_existent_ping): Add testcase for Ping
3183         
3184         * dbus/dbus-connection.c (_dbus_connection_peer_filter,
3185         _dbus_connection_run_builtin_filters): Changed these to
3186         be unlock_no_update functions and call 
3187         _dbus_connection_send_unlocked_no_update instead of
3188         dbus_connection_send to avoid locking errors.
3189         
3190         * doc/TODO: Removed the make Ping test TODO
3191         
3192 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3193
3194         * dbus/Python.pyx: Fixed memory leaks when throwing errors.
3195         We now copy the message from a DBusError and then free 
3196         the error object befor throwing the error
3197
3198         * glib/dbus-glib-tool.c: removed extra comma at the end of the
3199         DBusBindingOutputMode enum which was causing a warning.
3200         #include <time.h> so using time_t is explicitly defined
3201
3202 2005-09-26  John (J5) Palmieri  <johnp@redhat.com>
3203
3204         * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
3205         - dbus/dbus-bus.c
3206         (internal_bus_get): new method that take over the heavy lifting
3207         of dbus_bus_get and adds the ability to get a private connection
3208         to the bus
3209         (dbus_bus_get): wrapper to internal_bus_get that provides the same
3210         interface as in previous versions
3211         (dbus_bus_get_private): new method that is a wrapper to 
3212         internal_bus_get to get a private connection to the bus
3213
3214         - dbus/dbus-bus.h
3215         (dbus_bus_get_private): add as a public libdbus interface
3216
3217         - dbus-1.pc.in: output system_bus_default_address and 
3218         sysconfdir variables so apps can use them when compiling
3219
3220 2005-09-23  Harald Fernengel  <harry@kdevelop.org>
3221         * dbus/qt: New Qt bindings
3222
3223 2005-09-12  Waldo Bastian  <bastian@kde.org>
3224
3225         * dbus/dbus-marshal-validate.c,
3226         doc/dbus-specification.xml, test/Makefile.am,
3227         test/test-names.c: allow hyphens in bus names.
3228
3229 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3230
3231         * test/data/auth/fallback.auth-script: we don't
3232         retry the EXTERNAL method when we know its going
3233         to fail anymore.
3234
3235 2005-09-11  Mark McLoughlin  <mark@skynet.ie>
3236
3237         * dbus/dbus-connection-internal.h: rename
3238         (add|remove|toggle)_(watch|timeout) to unlocked()
3239         
3240         * dbus/dbus-connection.c: ditto.
3241         
3242         * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
3243         Update some callers for the renaming.
3244
3245 2005-09-10  Mark McLoughlin  <mark@skynet.ie>
3246
3247         * dbus/dbus-auth.c: (record_mechanisms): don't
3248         retry the first auth mechanism because we know
3249         we're just going to get rejected again.
3250         
3251         * dbus/dbus-keyring.c: (_dbus_keyring_reload):
3252         Fix thinko ... and what a nasty little bugger to
3253         track down you were ...
3254
3255         * dbus/dbus-connection.c:
3256         (_dbus_connection_add_watch),
3257         (_dbus_connection_remove_watch): add note about
3258         these needing the connection to be locked.
3259         (_dbus_connection_get_dispatch_status_unlocked):
3260         set status to DATA_REMAINS when we queue the
3261         disconnected message.
3262         
3263         * bus/dispatch.c:
3264         (bus_dispatch): fix warning.
3265         (check_existent_service_no_auto_start):
3266         Expect ChildSignaled error too.
3267         (check_existent_hello_from_self): fix another
3268         couple of warnings.
3269         
3270 2005-09-08  Joe Shaw  <joeshaw@novell.com>
3271
3272         Patches from James Willcox <snorp@snorp.net>
3273
3274         * mono/Makefile.am: Add Int16.cs and UInt16.cs
3275
3276         * mono/DBusType/Array.cs: Handle multidimensional arrays, and
3277         support array "out" parameters.
3278
3279         * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
3280         for 16-bit int support.
3281
3282 2005-09-06  John (J5) Palmieri  <johnp@redhat.com>
3283
3284         * Released 0.50
3285
3286         * Patch from Steve Grubb:
3287         - bus/activation.c (bus_activation_service_reload_test): clean up
3288         some indentation
3289         - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional 
3290         - dbus/dbus-message-factory.c (generate_special): fix a couple of
3291         buffer overflows in the test suite.  This is non critical because
3292         it can not be exploited and this code is only run when doing a 
3293         make check.
3294
3295         * Patch from Yaakov Selkowitz: Build fixes for Cygwin
3296         - configure.in: Don't check and link against kdecore, only qt headers
3297         - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
3298         - gcj/org/freedesktop/dbus/Makefile.am:
3299         add libdbus_gcj_1_la_LDFLAGS = -no-undefined
3300         - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
3301         and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
3302         - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
3303         - tools/Makefile.am: Add platform extentions to binaries 
3304         (i.e. .exe on windows)
3305
3306         * configure.in: 
3307         - Make it so if no suitable version of python is found we only 
3308         disable building python instead of exiting the configure script
3309         - Require version 2.4 of glib for glib bindings
3310         - Up version to 0.50
3311
3312         * python/__init__.py: Sync version with libdbus to (0,50,0)
3313         
3314 2005-09-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3315
3316         * dbus/dbus-object-tree.c (find_subtree_recurse):
3317         a couple of optimizations (bug #710):
3318         - do a binary search in the tree
3319         - insert a new child at the right place directly, no need for
3320           qsort anymore
3321         - do the "double alloc" thing when allocating children
3322
3323 2005-08-31  John (J5) Palmieri  <johnp@redhat.com>
3324
3325         * python/Makefile.am: Break on pyrexc errors instead of ignoring them
3326
3327         * python/dbus_bindings.pyx: Memory management foo
3328         (global): remove hacky _user_data_references global list
3329         (GIL_safe_cunregister_function_handler): userdata now stuffed into
3330         tuples. Unref user_data
3331         (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
3332         (Connection::__del__): Remove and replace with __dealloc__ method
3333         (Connection::add_filter): Stuff user_data into a tuple.  Use Py_INCREF
3334         to keep tuple from being deallocated instead of the global var hack
3335         (Connection::register_object_path): Stuff user_data into a tuple.
3336         Use Py_INCREF to keep tuple from being deallocated instead of the 
3337         global var hack
3338         (Connection::register_fallback): Stuff user_data into a tuple.
3339         Use Py_INCREF to keep tuple from being deallocated instead of the 
3340         global var hack
3341         (GIL_safe_pending_call_notification): Don't unref the message
3342         because it gets unreffed when going out of scope.  Py_XDECREF
3343         the user_data
3344         (PendingCall::__del__): Remove and replace with __dealloc__ method
3345         (PendingCall::set_notify): ref the pending call because we will
3346         need it to stick around for when the notify callback gets called
3347         (Message::__del__): Remove and replace with __dealloc__ method
3348
3349         * python/dbus_glib_bindings.pyx (init_gthreads): Changed to 
3350         gthreads_init to match up with the dbus call
3351
3352         * python/glib.py (init_threads): Changed to threads_init to match
3353         up with gobject.threads_init().  init_threads is kept for backwards
3354         compat but will most likely be deprecated in the future
3355
3356         * test/python/test-client.py: 
3357         - revamp to use Python's unittest functionality
3358         - add async call tests
3359         - setup threads in glib and dbus so we make sure locks are working
3360         
3361 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3362
3363         * python/dbus_bindings.pyx 
3364         (_pending_call_notification, cunregister_function_handler, 
3365         cmessage_function_handler): All callback functions have been rearranged 
3366         to workaround a bug in Pyrex when working with the GIL which is Python's 
3367         global lock when dealing with threads.  They have been split into
3368         a wrapper function (which assumes the name of the old function) and
3369         a _GIL_safe_<function name> function which contains the functionality
3370         of the old function.  This ensures that Pyrex does not write code
3371         the lock is released.
3372         
3373
3374 2005-08-30  John (J5) Palmieri  <johnp@redhat.com>
3375
3376         * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
3377         GIL global lock when calling back into Python
3378
3379 2005-08-29  John (J5) Palmieri  <johnp@redhat.com>
3380
3381         * Release 0.36.2
3382
3383         * Add Havoc's patch that never got applied to HEAD (Bug #2436):
3384
3385         * bus/policy.c (bus_policy_allow_user): change default "user is
3386         allowed" to be "user has same uid as the bus itself"; any
3387         allow/deny rules will override.
3388
3389         * bus/session.conf.in: don't allow all users, since now by default
3390         the user that ran the bus can connect.
3391
3392 2005-08-26  Colin Walters  <walters@verbum.org>
3393
3394         * tools/dbus-print-message.c (print_message): Flush stdout
3395         after printing a message, so that redirecting to a file, then
3396         hitting Ctrl-C works.
3397
3398 2005-08-25  John (J5) Palmieri  <johnp@redhat.com>
3399
3400         * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
3401         (EmptyMessage): new class that subclasses Message.  This is a workaround
3402         to a Pyrex bug that fails to call __del__ when the Message object goes out
3403         of scope.  For some reason subclassing Message fixes this bug
3404         (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
3405         - s/Message(_create=0)/EmptyMessage everywhere else
3406         
3407         * test/python/test-{server|client}.py: add the python/.libs directory
3408         to the lookup path so dbus_bindings and dbus_glib_bindings don't
3409         get picked up from the system
3410
3411 2005-08-25  Colin Walters  <walters@verbum.org>
3412
3413         * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
3414         to Ryan Lortie for the suggestion.
3415
3416 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3417
3418         * test/python: Add python regression test
3419
3420         * configure.in: Add test/python/Makefile
3421
3422         * test/Makefile.am: Add the python directory to SUBDIRS
3423
3424 2005-08-24  John (J5) Palmieri  <johnp@redhat.com>
3425
3426         * Release 0.36.1
3427
3428         * python/_dbus.py: 
3429         (Interface::connect_to_signal): propigate keywords for match on args
3430         (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
3431
3432         * python/proxies.py (ProxyObject::connect_to_signal):
3433         propigate keywords for match on args
3434
3435         * Makefile.am: point everything to pyexecdir since python borks
3436         on multilib
3437
3438 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3439
3440         * Release 0.36
3441
3442 2005-08-23  Colin Walters  <walters@verbum.org>
3443
3444         * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
3445
3446 2005-08-23  John (J5) Palmieri  <johnp@redhat.com>
3447
3448         * python/dbus_glib_bindings.pyx: reorder imports and c definitions
3449         to fix some wranings. We now use dbus_bindings.DBusConnection instead
3450         of defining DBusConnection ourselves.
3451
3452 2005-08-18  John (J5) Palmieri  <johnp@redhat.com>
3453
3454         * python/dbus.pth: New path file to fix up problems when installing
3455         c libraries to lib64 and python files to lib.
3456
3457         * python/Makefile.am: install dbus.pth in the correct spot
3458
3459 2005-08-17  John (J5) Palmieri  <johnp@redhat.com>
3460         * ChangeLog: clean up my last entry a bit
3461
3462         * doc/introspect.xsl: New stylesheet for converting introspection data
3463         into browser renderable xhtml. Contributed by Lennart Poettering.
3464
3465         * doc/introspect.dtd: Fixups in the introspect format from Lennart
3466         Poettering.
3467
3468         * doc/dbus-tutorial.xml: 
3469         - Add Colin Walter to the Authors section for authoring the GLib
3470         section
3471         - Add descriptions of the new signature and type functionality
3472         in the Python complex type mapping section
3473         - Add a sidenote on the new args matching functionality in 
3474         the Python bindings
3475         - Fixed up some of the examples to use the gobject.MainLoop
3476         instead of gtk.main
3477         
3478         * python/_dbus.py:
3479         (Bus::_create_args_dict): New. Converts a hash of arg matches
3480         to a more useable format
3481         (Bus::add_signal_receiver): add a **keywords parameter for catching
3482         arg match parameters
3483         (Bus::remove_signal_receiver): add a **keywords parameter for catching
3484         arg match parameters
3485         
3486         * python/matchrules.py:
3487         (MatchTree::exec_matches): Check for arg matches
3488         (SignalMatchRule::add_args_match): New method
3489         (SignalMatchRule::execute): Added args_list parameter as an optimization
3490         so we don't have to marshal the args more than once
3491         (SignalMatchRule::match_args_from_list): New method that checks to see
3492         if the rule's arg matches match an argument list.  Only arguments
3493         set in the rule are checked.
3494         (SignalMatchRule::match_args_from_rule): New method that checks to see
3495         if the rule's arg matches match another rule's.  All args have to match
3496         in order for this method to return true.  If either rule has more args
3497         then it is not a match.
3498         (SignalMatchRule::is_match): Add args match
3499         (SignalMatchRule::repr): Add args to the final output if they exist
3500
3501 2005-08-17  Ross Burton  <ross@burtonini.com>
3502
3503         * glib/dbus-gproxy.c:
3504         (dbus_g_proxy_call_no_reply): unref the message once sent.
3505         (dbus_g_proxy_call): protect against NULL proxy.
3506
3507 2005-08-16  John (J5) Palmieri  <johnp@redhat.com>
3508
3509         * python/__init__.py: Version updated (0, 43, 0)
3510         
3511         * python/dbus_bindings.pyx: 
3512         - Fixed type objects to have self passed into __init__
3513         - Added the Variant type
3514         - Add the ability to specify types or signatures for Array, Variant 
3515         and Dictionary
3516         (Connection::send_with_reply_handlers): return a PendingCall object
3517         (_pending_call_notification): handle the case when an error is returned 
3518         without an error message in the body
3519         (MessageIter::get_boolean): return True or False instead of an integer
3520         (MessageIter::python_value_to_dbus_sig): add direct checking of types 
3521         and add checks for objects with embeded signatures or types (Array, 
3522         Variant and Dictionary)
3523         (MessageIter::append_byte): handle case when the value is a dbus.Byte
3524         (MessageIter::append_dict): handle embeded types or signatures
3525         (MessageIter::append_array): handle embeded types or signatures
3526         (MessageIter::append_variant): new method
3527         
3528         * python/proxies.py:
3529         (DeferedMethod): New. Dummy executable object used when queuing calls 
3530         blocking on introspection data
3531         (ProxyMethod::__call__): add the timeout keyword for specifying longer 
3532         or shorter timeouts for method calls
3533         (ProxyObject): Add first pass at an introspection state machine
3534         (ProxyObject::__init__): Add introspect keyword for turing off an on 
3535         introspection. 
3536         (ProxyObject::_Introspect): Internal Introspect call that bypasses 
3537         the usual mechanisms for sending messages.  This is to avoid a deadlock
3538         where the Intospect call would be queued waiting for the Introspect 
3539         call to finish ;-)
3540         (ProxyObject::_introspect_reply_handler): New.  This method is called 
3541         when introspection returns with no error
3542         (ProxyObject::_introspect_error_handler): New.  This method is called 
3543         when introspection encounters an error
3544         (ProxyObject::__getattr__): Code to handle different introspection 
3545         states.  Queue async calls or block blocking calls if we are 
3546         introspecting.  Pass through as normal if we are not or are done with 
3547         introspecting.
3548         
3549         * python/service.py: Import signal and method from decorators.py
3550
3551         * python/types.py: Add Variant type
3552
3553 2005-08-16  Colin Walters  <walters@verbum.org>
3554
3555         * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
3556         DBusError message is NULL.
3557
3558 2005-08-09  Havoc Pennington  <hp@redhat.com>
3559
3560         * dbus/dbus-errors.c: apply patch from Timo Teras to make a
3561         malloc'd copy of the name parameter
3562
3563 2005-08-09  Havoc Pennington  <hp@redhat.com>
3564
3565         * dbus/dbus-message.c (dbus_message_set_reply_serial): print
3566         warning if the reply serial is set to 0
3567
3568 2005-08-04  Colin Walters  <walters@verbum.org>
3569
3570         * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
3571         (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
3572         (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
3573         (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
3574         (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
3575         (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
3576         (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
3577         * glib/dbus-gvalue.h (dbus_g_value_types_init)
3578         (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
3579         (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
3580         
3581         Prefix name with _ to ensure they're not exported.  All callers
3582         updated.
3583
3584         * glib/dbus-gvalue.c (typecode_to_gtype)
3585         (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
3586         (signature_iter_to_g_type_dict)
3587         (signature_iter_to_g_type_array)
3588         (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
3589         (dbus_gtypes_from_arg_signature):
3590         Move to dbus-gsignature.c.
3591
3592         * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
3593         dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
3594         (dbus_binding_tool_output_glib_client): Ditto.
3595
3596         * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
3597         and dbus-gsignature.h
3598
3599         * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
3600         unused variable.
3601
3602 2005-08-03  Colin Walters  <walters@verbum.org>
3603
3604         * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
3605         catch any incompatible changes accidentally made.
3606
3607 2005-08-03  Havoc Pennington  <hp@redhat.com>
3608
3609         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
3610         typo, from Julien Puydt
3611
3612         * bus/connection.c (bus_connection_disconnected): we were always
3613         doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
3614
3615 2005-08-01  Colin Walters  <walters@verbum.org>
3616
3617         Patch from Joe Markus Clarke:   
3618         
3619         * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
3620         use-after-free.
3621
3622 2005-08-01  Colin Walters  <walters@verbum.org>
3623         
3624         Patch from Joe Markus Clarke:   
3625         
3626         * tools/dbus-send.c (main): 
3627         
3628         Don't use C99 style initializers (bug #3933).
3629         
3630 2005-08-01  Colin Walters  <walters@verbum.org>
3631
3632         Patch from Joe Markus Clarke:   
3633
3634         * glib/dbus-gvalue.c (dbus_g_value_types_init): 
3635         * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init) 
3636         * glib/dbus-gobject.c (write_interface):
3637
3638         Don't use C99 style initializers (bug #3933).
3639
3640 2005-07-31  Havoc Pennington  <hp@redhat.com>
3641
3642         * tools/dbus-viewer.c (load_child_nodes): fix invocation of
3643         dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
3644
3645 2005-07-30  Havoc Pennington  <hp@redhat.com>
3646
3647         * fix a bunch of Doxygen warnings and mistakes
3648
3649 2005-07-30  Havoc Pennington  <hp@redhat.com>
3650
3651         * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
3652         DBUS_BUILD_TESTS since it's now used in production code
3653
3654 2005-07-29  Havoc Pennington  <hp@redhat.com>
3655
3656         * test/glib/test-profile.c (write_junk): initialize the junk
3657         buffer so valgrind doesn't have a breakdown
3658
3659 2005-07-29  Havoc Pennington  <hp@redhat.com>
3660
3661         * bus/signals.c (bus_signals_test): add match_rule_equal() tests
3662         (match_rule_matches): remove unused arg
3663         (test_matching): add tests for match_rule_matches()
3664
3665         * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
3666         do arg0='foo' arg5='bar' in the match rules
3667         (match_rule_matches): don't match if the arg0='foo' doesn't match.
3668
3669         * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
3670
3671 2005-07-29  Ross Burton  <ross@openedhand.com>
3672
3673         * dbus/dbus-connection.c:
3674         Don't create a DBusCondVar which is never used.
3675
3676 2005-07-27  Ross Burton  <ross@openedhand.com>
3677
3678         * dbus/dbus-message.c:
3679         Reduce the size of the maximum cached message to 10K.
3680
3681 2005-07-25  Ross Burton  <ross@openedhand.com>
3682
3683         * glib/dbus-gproxy.c:
3684         Remove matches when all proxies are unregistered.
3685
3686 2005-07-24  Colin Walters  <walters@verbum.org>
3687
3688         * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
3689         typedata; recursive arrays won't have it.
3690
3691         * test/glib/test-dbus-glib.c:
3692         * test/glib/test-service-glib.c:
3693         * test/glib/test-service-glib.xml: Add recursive arrays tests.
3694         
3695 2005-07-20  John (J5) Palmieir  <johnp@redhat.com>
3696
3697         * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
3698         proxies.py, service.py: Cleanup of code after running it through the
3699         pyflakes code checker mostly dealing with undefined names.  
3700         (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
3701
3702 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3703
3704         * NEWS: Update to 0.35.2
3705
3706 2005-07-17  John (J5) Palmieri  <johnp@redhat.com>
3707
3708         * python/_dbus.py: Remove import of the dbus.services
3709         module as it no longer exists (patch from Dimitur Kirov)
3710
3711         * python/service.py (Object::__init__): Fixed typo
3712         s/name/bus_name (patch from Dimitur Kirov)
3713
3714         * python/examples/example-signal-emitter.py: import dbus.glib
3715         to get the main loop and use glib mainloop instead of gtk so
3716         X doesn't have to be running.
3717
3718         * python/examples/example-signal-recipient.py: import dbus.glib
3719         to get the main loop and use glib mainloop instead of gtk so
3720         X doesn't have to be running. Import the decorators module
3721         directly.
3722
3723         * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
3724         didn't pick up on but are needed to build
3725
3726         * configure.in: upped version to 0.35.2
3727
3728         * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
3729         added Colin Walters' SELinux API rename patch from head 
3730         s/unix sercurity context/selinux security context/
3731
3732 2005-07-16  John (J5) Palmieri  <johnp@redhat.com>
3733
3734         * python/Makefile.am: dbus_binding.pxd.in should be included 
3735         in EXTRA_DIST not dbus_binding.pxd
3736         fix up $(srcdir) hopefully for the last time
3737
3738         * NEWS: Update to 0.35.1
3739
3740 2005-07-16  Colin Walters  <walters@verbum.org>
3741
3742         * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
3743         from bus_driver_handle_get_connection_unix_security_context.  Update for
3744         error usage.
3745         (message_handlers): Update for renames.
3746
3747         * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
3748         _dbus_string_init failure correctly.
3749         (bus_selinux_append_context): Convert SID to context.  Append it
3750         as a byte array.
3751         (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
3752         hasn't been called.
3753
3754         * bus/selinux.h: Update prototype.
3755
3756         * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
3757         from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
3758
3759 2005-07-15  Colin Walters  <walters@verbum.org>
3760
3761         * doc/TODO: Add note about convenience wrappers.
3762
3763 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3764
3765         * NEWS: Update to 0.35
3766
3767 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3768
3769         * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
3770         so distcheck doesn't fail
3771
3772         * glib/examples/Makefile.am: Add example-service.xml and 
3773         example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
3774
3775         * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
3776         statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
3777
3778         * python/Makefile.am: Preprend $(srcdir)/ to source files so the
3779         compiler looks in the right places during distcheck
3780
3781 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3782
3783         * glib/example/Makefile.am: Fix a typo which cause make distcheck
3784         to fail
3785
3786 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3787
3788         * python/examples/example-service.py,
3789         python/examples/example-signal-emitter.py: Fixed up examples
3790         for API changes
3791
3792 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3793
3794         * python/__init__.py: Upped to version (0,42,0) because of
3795         the API change
3796
3797 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3798
3799         * ChangeLog: fix date in last entry
3800
3801         * configure.in, bus/system.conf.in: add the ability to configure 
3802         the system bus user at compiletime with the --with-dbus-user flag
3803         (patch from Kristof Vansant)
3804
3805 2005-07-15  John (J5) Palmieri  <johnp@redhat.com>
3806
3807         * bus/dispatch.c, test/test-service.c: Add testcase
3808         for sending messages to oneself (TODO item).
3809
3810         * python/service.py (class Object): Swap ordering of bus_name 
3811         and object_path parameters to better support inheritance.
3812
3813         * doc/dbus-tutorial.xml: change Python docs to reflect change
3814         in parameter ordering and fix the inheritance section.
3815
3816         * doc/TODO: remove sending message to oneself TODO item
3817
3818 2005-07-15  Ross Burton  <ross@openedhand.com>
3819
3820         * glib/dbus-gproxy.c:
3821         Fix a leak when calling methods via the proxy.
3822
3823 2005-07-15  Colin Walters  <walters@verbum.org>
3824
3825         * bus/selinux.c (bus_selinux_append_context): Wrap in
3826         HAVE_SELINUX.
3827
3828 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3829
3830         * python/_dbus.py (Bus::remove_signal_receiver):
3831         don't add a callback to the match if none has been passed in
3832         
3833         * python/matchrules.py (SignalMatchTree::remove): if the rule
3834         being matched does not have a callback treat it as a wildcard
3835         fix matching logic
3836
3837         * doc/dbus-tutorial.xml: Add Python tutorial
3838
3839 2005-07-14  Colin Walters  <walters@verbum.org>
3840
3841         * bus/driver.c
3842         (bus_driver_handle_get_connection_unix_security_context): New function.
3843         (message_handlers): Add.
3844
3845         * bus/selinux.c (bus_selinux_append_context): New function; appends
3846         security context to message.
3847
3848         * bus/selinux.h: Prototype.
3849
3850         * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
3851
3852 2005-07-14  John (J5) Palmieri  <johnp@redhat.com>
3853
3854         * bus/activation.c: clean up all tabs to be 8 spaces 
3855         (bus_activation_activate_service): make sure we clean up
3856         if activation fails
3857
3858         * bus/dispatch.c: clean up all tabs to be 8 spaces 
3859         (check_shell_fail_service_auto_start): New function
3860         tests to make sure we get fail properly when trying to auto start a service
3861         with a faulty command line
3862         (check_shell_service_success_auto_start): New function tests to make sure
3863         auto started services get the arguments on the command line
3864
3865         * test/test-shell-service.c: Added service for testing auto-starting with 
3866         command line arguments
3867
3868         * test/data/valid-service-files/debug-shell-echo-fail.service.in, 
3869         test/data/valid-service-files/debug-shell-echo-success.service.in:
3870         Added service files for testing auto-starting with command line arguments
3871
3872         * */.cvsignore: added a bunch of generated files to various .cvsignore files
3873
3874 2005-07-14  Rodrigo Moya  <rodrigo@novell.com>
3875
3876         * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
3877         
3878         * dbus/Makefile.am: added new files to build.
3879
3880         * bus/activation.c (bus_activation_activate_service): support
3881         activation commands with parameters.
3882
3883         * test/shell-test.c: added test program for the shell parsing
3884         code.
3885
3886 2005-07-13  David Zeuthen  <davidz@redhat.com>
3887
3888         * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
3889         64 bit signed and unsigned parameters
3890
3891 2005-07-13  John (J5) Palmieri  <johnp@redhat.com>
3892
3893         * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
3894
3895         * python/service.py (class Name): renamed BusName to make it clearer
3896         what the object is for (a name on the bus)
3897
3898         * python/examples/example-service.py,
3899         python/examples/example-signal-emitter.py: change the Name object to
3900         BusName
3901
3902 2005-07-12  Colin Walters  <walters@verbum.org>
3903
3904         Patch from Jim Gettys <Jim.Gettys@hp.com>.
3905
3906         * tools/dbus-launch.c: Include sys/select.h.
3907
3908 2005-07-12  John (J5) Palmieri  <johnp@redhat.com>
3909         * python/dbus_bindings.pyx.in: removed
3910
3911         * python/dbus_bindings.pyx: Added.
3912         - Fixed some memleaks (patch from 
3913         Sean Meiners <sean.meiners@linspireinc.com>)
3914         - Broke out the #include "dbus_h_wrapper.h" and put it in its
3915         own pxd file (Pyrex definition)
3916         - Broke out glib dependancies into its own pyx module
3917         
3918         * python/dbus_bindings.pdx: Added.
3919         - Defines C class Connection for exporting to other modules
3920
3921         * python/dbus_glib_bindings.pyx: Added.
3922         - New module to handle lowlevel dbus-glib mainloop integration
3923
3924         * python/glib.py: Added.
3925         - Registers the glib mainloop when you import this module
3926
3927         * python/services.py: Removed (renamed to service.py)
3928         
3929         * python/service.py: Added.
3930         - (class Server): renamed Name
3931
3932         * python/__init__.py: Bump ro version (0,41,0)
3933         -don't import the decorators or service module
3934         by default.  These now reside in the dbus.service namespace
3935
3936         * python/_dbus.py (Bus::__init__): Add code run the main loop 
3937         setup function on creation 
3938
3939         * python/examples/example-service.py,
3940         python/examples/example-signal-emitter.py: update examples
3941
3942         * python/examples/gconf-proxy-service.py,
3943         python/examples/gconf-proxy-service2.py: TODO fix these up
3944
3945         * doc/TODO: Addition
3946         - Added a Python Bindings 1.0 section
3947         - added "Add match on args or match on details to match rules"
3948
3949
3950 2005-07-12  Colin Walters  <walters@verbum.org>
3951
3952         * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h) 
3953         (statemachine-glue.h): 
3954         * glib/examples/Makefile.am (example-service-glue.h) 
3955         (example-signal-emitter-glue.h): 
3956         * glib/Makefile.am (dbus-glib-error-switch.h): 
3957         Add libtool --mode=execute so we use the built library instead
3958         of any installed one.
3959
3960 2005-07-11  Colin Walters  <walters@verbum.org>
3961
3962         * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
3963         (dbus_g_value_types_init): Remove assertion.
3964         (dbus_g_value_get_g_type, dbus_g_value_open)
3965         (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
3966         (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
3967         functions related to DBusGValue.  Now we marshal/demarshal
3968         structures as GValueArray.
3969         (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
3970         structures.
3971         (signature_iter_to_g_type_array): Don't call
3972         signature_iter_to_g_type_struct.
3973         (signature_iter_to_g_type_struct): Delete.
3974         (dbus_gvalue_to_signature): Delete.
3975         (dbus_gvalue_to_signature): New function with same name as other
3976         one; we can convert structures to signatures.
3977         (demarshal_valuearray): New function.
3978         (get_type_demarshaller): Use it.
3979         (demarshal_recurse): Delete.
3980         (marshal_proxy): New function.
3981         (marshal_map): Warn if we can't determine signature from type.
3982         (marshal_collection_ptrarray): Ditto.
3983         (marshal_collection_array): Ditto.
3984         (get_type_marshaller): Use marshal_valuearray.
3985         (marshal_recurse): Delete.
3986         (_dbus_gvalue_test): Add some tests.
3987
3988         * dbus/dbus-glib.h (struct _DBusGValueIterator): 
3989         (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
3990         (dbus_g_value_open, dbus_g_value_iterator_get_value)
3991         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
3992         (dbus_g_value_free): Remove prototypes.
3993
3994         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
3995         G_TYPE_VALUE_ARRAY.
3996
3997         * glib/examples/example-service.c:
3998         * glib/examples/example-client.c: Implement GetTuple.
3999
4000         * test/glib/test-dbus-glib.c:
4001         * test/glib/test-service-glib.c:
4002         * test/glib/test-service-glib.xml: Add structure tests.
4003
4004 2005-07-10  Colin Walters  <walters@verbum.org>
4005
4006         * doc/TODO: Knock off some GLib items with this patch.
4007
4008         * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error) 
4009         (_dbus_gvalue_signals_error): New functions.
4010
4011         * glib/dbus-gvalue-utils.h: Prototype them.
4012
4013         * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
4014         and change to not output const/retval flags for input args.  All
4015         callers updated.
4016         (invoke_object_method): Refactor to handle return values.  Add
4017         some more comments in various places.  Remove debug g_print.
4018
4019         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
4020
4021         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
4022         Handle G_TYPE_NONE.
4023         (compute_gsignature): New function; refactored from code from
4024         compute_marshaller and compute_marshaller_name.  Enhance to
4025         handle return values and async ops more cleanly.  Update for
4026         async ops returning NONE instead of BOOLEAN.
4027         (compute_marshaller, compute_marshaller_name): Call compute_gsignature
4028         and output appropriate string.
4029         (generate_glue): Handle return value annotation.  Also don't dump
4030         constness flag for input arguments.
4031
4032         * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
4033         files shared between installed library and utilities.
4034         (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
4035         (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
4036         binding tool can access gtype utility functions.
4037
4038         * test/glib/test-service-glib.c: 
4039         * test/glib/test-service-glib.xml: 
4040         * test/glib/test-dbus-glib.c: Add some tests for return values.
4041
4042 2005-07-09  Colin Walters  <walters@verbum.org>
4043
4044         * glib/dbus-gparser.c (parse_annotation): Add annotations to
4045         argument if available, not method.
4046
4047         * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
4048         (invoke_object_method): First, remove some redundant
4049         GValues (object_value, error_value) in favor of working on
4050         array directly.  Second, rework constness to be less buggy.
4051         Now we iterate directly over the argument metadata instead
4052         of parallel iterating over output signature and metadata.
4053
4054         * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
4055
4056         * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
4057         annotation on input args.
4058         
4059 2005-07-09  Colin Walters  <walters@verbum.org>
4060
4061         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
4062         Define.
4063
4064         * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
4065         annotation.
4066
4067         * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
4068         (method_dir_signature_from_object_info): Handle arg_iterate change.
4069         (write_interface): Ditto.
4070         (lookup_object_info): Don't barf if format_version is > 0.
4071         (invoke_object_method): Handle arg constness.
4072
4073         * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
4074         (arg_info_new): Create.
4075         (arg_info_unref): Destroy.
4076         (arg_info_get_annotations, arg_info_get_annotation) 
4077         (arg_info_add_annotation): New functions.
4078
4079         * glib/dbus-gidl.h: Prototype them.
4080
4081         * glib/dbus-gparser.c (parse_annotation): Allow annotations in
4082         args, disallow them in properties.
4083         (parse_annotation): Handle arg annotations.
4084
4085         * test/glib/test-service-glib.xml: 
4086         * test/glib/test-service-glib.c: Update to make some methods
4087         const.
4088
4089 2005-07-08  Colin Walters  <walters@verbum.org>
4090
4091         * test/glib/test-service-glib.xml: 
4092         * test/glib/test-service-glib.c:
4093         * test/glib/test-dbus-glib.c: Test a{sv}.
4094
4095         * glib/examples/statemachine/statemachine.c:
4096         * glib/examples/statemachine/statemachine-server.c:
4097         * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
4098         add progress bar, etc.
4099
4100         * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
4101         needed anymore due to generic array/map marshalling.
4102         (dbus_g_value_types_init): Don't register basic arrays or the
4103         string/string hash.
4104         (dbus_gtype_from_signature_iter): Don't try to recurse into
4105         variants.
4106         (dbus_gtype_to_signature): Check collection/map before type
4107         metadata.
4108         (demarshal_garray_basic): Renamed to demarshal_collection_array.
4109         (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
4110         generic map creation/append functions instead of hash table
4111         specifically.
4112         (get_type_demarshaller): Handle maps.
4113         (demarshal_collection): Dispatch on collection type to either
4114         demarshal_collection_ptrarray or demarshal_collection_array.
4115         (get_type_marshaller): Handle maps.
4116         (marshal_collection): Dispatch collection type to either
4117         marshal_collection_ptrarray or marshal_collection_array.
4118         (_dbus_gvalue_test): New test.
4119
4120         * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
4121         (hash_free_from_gtype): Use it to free GValues.
4122         (hashtable_append): New function.
4123         (ptrarray_append): Fix prototype.
4124         (slist_append): Ditto.
4125         (_dbus_gvalue_utils_test): Extend tests.
4126
4127         * glib/dbus-gtype-specialized.c
4128         (dbus_g_type_specialized_init_append): Renamed from
4129         dbus_g_type_specialized_collection_init_append.  Remove const from
4130         value, since we steal it.
4131         (dbus_g_type_specialized_map_append): New function.
4132
4133         * glib/dbus-gtype-specialized.h: Update prototypes.
4134         Add DBusGTypeSpecializedMapAppendFunc.
4135
4136         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4137         _dbus_gvalue_test.
4138         
4139         * glib/dbus-gtest.h: Prototype it.
4140
4141 2005-07-08  Ross Burton  <ross@openedhand.com>
4142
4143         * dbus/dbus-glib.h:
4144         Add DBysGAsyncData for the async bindings.
4145
4146         * glib/dbus-binding-tool-glib.c:
4147         Re-enable the async bindings.
4148
4149         * test/glib/test-dbus-glib.c:
4150         Add a test for the generated async bindings.
4151
4152 2005-07-08  Colin Walters  <walters@verbum.org>
4153
4154         * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
4155         connection concept.
4156         
4157 2005-07-08  Colin Walters  <walters@verbum.org>
4158         
4159         * tools/Makefile.am: Kill of print-introspect in favor of using
4160         dbus-send --print-reply=literal.
4161
4162         * test/glib/test-service-glib.xml: 
4163         * test/glib/test-service-glib.c (my_object_get_objs): New test
4164         for "ao".
4165
4166         * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
4167         (main): Test GetObjs.
4168
4169         * glib/examples/statemachine/Makefile.am:
4170         * glib/examples/statemachine/sm-marshal.list:
4171         * glib/examples/statemachine/statemachine-client.c:
4172         * glib/examples/statemachine/statemachine-server.c:
4173         * glib/examples/statemachine/statemachine-server.xml:
4174         * glib/examples/statemachine/statemachine.c:
4175         * glib/examples/statemachine/statemachine.h:
4176         * glib/examples/statemachine/statemachine.xml:
4177
4178         New example.
4179
4180         * glib/examples/example-service.c (main): Move invocation
4181         of dbus_g_object_type_install_info earlier, to emphasize it
4182         should only be done once.
4183
4184         * glib/examples/example-signal-emitter.c (main): Ditto.
4185
4186         * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
4187
4188         * glib/dbus-gvalue.h (dbus_gtype_to_signature)
4189         (dbus_gvalue_marshal): Update prototypes.
4190
4191         * glib/dbus-gvalue.c: Update all marshalling functions to take
4192         const GValue instead of GValue.
4193         (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
4194         types.
4195         (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
4196         change.
4197         (dbus_gtype_to_signature): Handle generic collecitons and maps.
4198         Return a newly-allocated string.
4199         (demarshal_proxy, demarshal_object_path, demarshal_object)
4200         (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
4201         we get the wrong types from message.
4202         (get_type_demarshaller): New function, extracted from
4203         dbus_gvalue_demarshal.
4204         (demarshal_collection): New function, demarshals generic
4205         collection.
4206         (dbus_gvalue_demarshal): Just invoke result of
4207         get_type_demarshaller.  Throw error if we don't have one.
4208         (marshal_garray_basic): Abort on OOM.
4209         (get_type_marshaller): New function, extracted from
4210         dbus_gvalue_marshal.
4211         (collection_marshal_iterator, marshal_collection): New functions;
4212         implements generic marshalling for an iteratable specialized
4213         collection.
4214         (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
4215
4216         * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
4217         G_TYPE_STRING.
4218         (ptrarray_value_from_gvalue): Ditto.
4219         (ptrarray_append, ptrarray_free): New functions.
4220         (slist_constructor, slist_iterator, slist_copy_elt, slist_copy) 
4221         (slist_append, slist_end_append, slist_free): New functions.
4222         (dbus_g_type_specialized_builtins_init): Add append fuctions
4223         for GPtrArray and GSList.  Register GSList.
4224         (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
4225
4226         * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
4227         New.
4228         (dbus_g_type_specialized_collection_init_append)
4229         (dbus_g_type_specialized_collection_append)
4230         (dbus_g_type_specialized_collection_end_append): Prototype.
4231         (DBusGTypeSpecializedCollectionVtable): Add append_func and
4232         end_append_func.
4233
4234         * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append) 
4235         (dbus_g_type_specialized_collection_append) 
4236         (dbus_g_type_specialized_collection_end_append): New functions.
4237         (dbus_g_type_map_value_iterate): Take const GValue.
4238         (dbus_g_type_collection_value_iterate): Ditto.
4239
4240         * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
4241         _dbus_gvalue_utils_test.
4242         
4243         * glib/dbus-gtest.h: Prototype it.
4244
4245         * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
4246         using uninitialized owner_list.
4247         (dbus_g_proxy_begin_call_internal): Move return_if_fail to
4248         public API.
4249         (dbus_g_proxy_end_call_internal): Update to use error set
4250         from dbus_gvalue_demarshal instead of setting it here.
4251         (dbus_g_proxy_begin_call): Move return_if_fail here.
4252
4253         * glib/dbus-gobject.c (write_interface): Update for
4254         dbus_gtype_to_signature returning new string.
4255
4256         * configure.in: Add glib/examples/statemachine.
4257
4258 2005-07-08  Joe Shaw  <joeshaw@novell.com>
4259
4260         * configure.in: Add a configure option, --with-console-auth-dir
4261         
4262         * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
4263         new setting.  Patch from Kay Sievers.
4264
4265 2005-07-06  Colin Walters  <walters@verbum.org>
4266
4267         * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
4268         (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
4269         (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
4270         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
4271         Delete in favor of dbus_g_proxy_begin_call and
4272         dbus_g_proxy_cancel_call.
4273         (DBusGProxyCall, DBusGProxyCallNotify): New.
4274         (dbus_g_proxy_begin_call): Change prototype to take callback, user
4275         data, and destroy function.  This replaces
4276         dbus_g_pending_call_set_notify.
4277         (dbus_g_proxy_cancel_call): Prototype.
4278         (DBusGAsyncData): Delete, shouldn't be needed anymore.
4279
4280         * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
4281         pending_calls map.
4282         (struct _DBusGProxyManager): Add bus_proxy member, which is an
4283         internal proxy for calls to the bus. Remove
4284         pending_nameowner_calls, now the internal proxy keeps track.
4285         (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
4286         pending_nameowner_calls.
4287         (got_name_owner_cb): Update prototype, and use
4288         dbus_g_proxy_end_call.
4289         (got_name_owner_cb): Remove reference to pending_nameowner_calls.
4290         (dbus_g_proxy_manager_register): Delete directly libdbus code in
4291         favor of using internal proxy.
4292         (dbus_g_proxy_manager_unregister): Update to use
4293         dbus_g_proxy_cancel_call for any pending GetNameOwner call.
4294         (dbus_g_proxy_init): Initialize pending calls map.
4295         (dbus_g_proxy_constructor): New.
4296         (dbus_g_proxy_class_init): Add get/set property functions,
4297         constructor, and add NAME, PATH, and INTERFACE properties.
4298         (cancel_pending_call): New function.
4299         (dbus_g_proxy_dispose): Iterate over any outstanding calls and
4300         cancel them.
4301         (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
4302         (GPendingNotifyClosure): New structure.
4303         (d_pending_call_notify, d_pending_call_free): Moved here from
4304         dbus-glib.c.
4305         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
4306         ordering.
4307         (manager_begin_bus_call): New internal function for talking to
4308         internal bus proxy.
4309         (dbus_g_proxy_new): Construct object using GObjet properties.
4310         (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
4311         Create closure of same, and insert call into map of pending calls.
4312         (dbus_g_proxy_end_call_internal): Take call id instead of pending
4313         call.  Look up pending call in current set.  Remove it when we've
4314         completed.
4315         (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
4316         (dbus_g_proxy_begin_call): Change API to take callback, user data,
4317         and destroy function directly.
4318         (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
4319         (dbus_g_proxy_call): Invoke with NULL callback.
4320         (dbus_g_proxy_cancel_call): New function, replaces
4321         dbus_g_pending_call_cancel.
4322
4323         * glib/dbus-gparser.c (validate_signature): Fix call to
4324         dbus_set_g_error.
4325
4326         * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
4327         New quark for attaching metadata to GType.
4328         (info_hash): Delete.
4329         (lookup_object_info): Look up using quark.
4330         (dbus_g_object_type_install_info): Check that a type is classed,
4331         not that it's an object.  Also just install type data using quark
4332         instead of using global hash.
4333
4334         * glib/dbus-glib.c (dbus_g_pending_call_ref) 
4335         (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
4336         (GPendingNotifyClosure): Delete.
4337         (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
4338         (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
4339
4340         * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
4341         client method generation until we can fix it...
4342         
4343         * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
4344         (load_from_service_thread_func): Ditto.
4345
4346         * tools/dbus-names-model.c (struct NamesModel): Hold
4347         DBusGProxyCall.
4348         (have_names_notify): Update prototype, use
4349         dbus_g_proxy_cancel_call.
4350         (names_model_reload): Update for new dbus_g_proxy_begin_call API.
4351
4352         * tools/dbus-monitor.c (filter_func): Update for print_message
4353         API change.
4354
4355         * test/glib/test-dbus-glib.c: Add more tests for async
4356         invocations.  Update many begin_call/end_call pairs to just use
4357         dbus_g_proxy_call.
4358
4359         * tools/dbus-send.c (main): Add --print-reply=literal mode.  This
4360         allows us to dump print-introspect.c.
4361
4362         * tools/dbus-print-message.h (print_message): Add literal argument
4363         to print_message which is intended to allow printing arguments without
4364         metadata like "string=".
4365
4366         * tools/dbus-print-message.c (print_iter): Add literal argument.
4367         (print_message): Allow printing string messages literally.
4368
4369 2005-07-05  Colin Walters  <walters@verbum.org>
4370
4371         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
4372         Remove value refcount leak, original patch from Jorn Baayen
4373         <jorn@openedhand.com>.  Also remove useless extra value in favor
4374         of prepending to value array directly.
4375
4376 2005-07-02  Colin Walters  <walters@verbum.org>
4377
4378         * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
4379
4380 2005-07-01  Colin Walters  <walters@verbum.org>
4381
4382         Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
4383         
4384         * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
4385         (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
4386         G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
4387         and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
4388
4389 2005-06-30  Colin Walters  <walters@verbum.org>
4390
4391         * test/glib/test-dbus-glib.c:
4392         * test/glib/test-service-glib.c:
4393         * test/glib/test-service-glib.xml: Update tests for new error
4394         setting bits, also add async tests (patch from Ross Burton).
4395
4396         * test/glib/Makefile.am (test_service_glib_LDADD): Add
4397         DBUS_GLIB_THREADS_LIBS.
4398
4399         * glib/dbus-gproxy.c (get_name_owner)
4400         (dbus_g_pending_call_end_valist): Ditto.
4401
4402         * glib/dbus-gobject.c (error_metadata): New mapping from GError
4403         domain (GQuark) to DBusGErrorInfo.  
4404         (gerror_domaincode_to_dbus_error_name): Attempt to look up error
4405         quark in error_metadata.  Take message interface as default
4406         error message interface.
4407         (gerror_to_dbus_error_message): Pass message interface.
4408         (dbus_set_g_error): Resurrected.
4409         (dbus_g_error_info_free): New function.
4410         (dbus_g_object_type_install_info): Use g_type_class_ref instead
4411         of _peek to actually create the object class if it hasn't been
4412         created yet.
4413         (dbus_g_error_domain_register): New function.
4414
4415         * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
4416
4417         * glib/dbus-gparser.c (validate_signature): Ditto.
4418
4419         * dbus/dbus-glib.h (dbus_g_error_set): Delete.
4420         (dbus_g_error_domain_register): Prototype.
4421
4422         * glib/dbus-glib.c (dbus_g_error_set): Delete.
4423         Update tests.
4424
4425 2005-06-29  Colin Walters  <walters@verbum.org>
4426
4427         * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY.  Add
4428         DBUS_TYPE_G_OBJECT_PATH.
4429
4430         * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
4431         for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
4432         be handled more generically).  Add DBUS_TYPE_G_OBJECT_PATH.
4433         (dbus_g_object_path_get_g_type): New function.
4434         (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
4435         to DBUS_TYPE_G_OBJECT_PATH by default.
4436         (demarshal_proxy): Remove unused name variable.
4437         (demarshal_object_path, marshal_object_path): New functions.
4438         (demarshal_proxy_array, marshal_proxy_array): Delete.
4439         
4440         * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
4441         DBUS_TYPE_G_OBJECT_PATH to char *.
4442         (dbus_g_type_get_lookup_function): Map builtin
4443         DBUS_TYPE_G_OBJECT_PATH.
4444
4445         * test/glib/test-dbus-glib.c
4446         * test/glib/test-service-glib.c (my_object_objpath): 
4447         Adapt tests to new object path marshalling.
4448
4449 2005-06-29  John (J5) Palmieri  <johnp@redhat.com>
4450
4451         * configure.in: force check for Python >= 2.4
4452
4453 2005-06-29  Colin Walters  <walters@verbum.org>
4454         
4455         Patch from Ross Burton <ross@openedhand.com>
4456         
4457         * glib/dbus-gobject.c (invoke_object_method): Unset object
4458         value in all cases, not only in async case.
4459
4460 2005-06-29  Colin Walters  <walters@verbum.org>
4461
4462         * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
4463         name_call for keeping track of any outgoing GetNameOwner call.
4464         Also add for_owner and associated.
4465         (struct _DBusGProxyManager): Add owner_names, which is hash table
4466         that maps a base name to a list of names it owns (that we're
4467         interested in).  Add pending_nameowner_calls which is a list of
4468         all outstanding GetNameOwner; avoids us having to iterate over
4469         every proxy.  Add unassociated_proxies which keeps track of name
4470         proxies with no associated name owner.
4471         (dbus_g_proxy_manager_unref): Destroy owner_names.
4472         (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
4473         name refcounts.
4474         (find_name_in_info, name_owner_foreach)
4475         (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
4476         (dbus_g_proxy_manager_monitor_name_owner)
4477         (dbus_g_proxy_manager_unmonitor_name_owner)
4478         (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
4479         New functions; they manipulate the owner_names mapping.
4480         (got_name_owner_cb): New function.
4481         (get_name_owner): New function, extracted from
4482         dbus_g_proxy_new_for_name_owner.
4483         (dbus_g_proxy_manager_register): For now we need to keep track of
4484         all NameOwnerChanged.  Also if the proxy is for a name, if we
4485         don't already know the name owner, queue a new GetNameOwner
4486         request and add it to our list of unassociated proxies.  Otherwise
4487         inc the refcount.
4488         (dbus_g_proxy_manager_unregister): If this proxy is for a name,
4489         cancel any pending GetNameOwner call, etc.
4490         (dbus_g_proxy_manager_filter): Handle NameOwnerChanged.  Also use
4491         the owner_names mapping to look up the current names for the
4492         signal source, and dispatch to any proxies for that name.
4493         (dbus_g_proxy_new): Initialize new members.
4494         (dbus_g_proxy_new_for_name): Delete unused proxy variable.
4495         (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
4496         (dbus_g_pending_call_end_valist): New function, extracted from
4497         dbus_g_proxy_end_call_internal.  Useful when we don't have a proxy
4498         but want to use the GLib infrastructure.  Also note how many
4499         arguments in reply were over.
4500         (dbus_g_pending_call_end): New function, just call
4501         dbus_g_pending_call_end_valist.
4502         (dbus_g_proxy_end_call_internal): Just call
4503         dbus_g_pending_call_end_valist.
4504
4505         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
4506         of builtin marshaller for STRING_STRING_STRING.
4507
4508         * test/glib/test-dbus-glib.c: 
4509         * test/glib/test-service-glib.c:
4510         * test/glib/test-service-glib.xml:
4511         Extend tests to cover name proxies, destruction of owner proxies,
4512         etc.
4513         
4514         * glib/examples/example-signal-recipient.c
4515         (dbus_g_proxy_new_for_name_owner): Create a name proxy.
4516         
4517         * tools/dbus-send.c (main): Print D-BUS error name in addition
4518         to message.
4519
4520 2005-06-28  John (J5) Palmieri  <johnp@redhat.com>
4521
4522         * python/dbus_bindings.pyx.in (cunregister_function_handler,
4523         cmessage_function_handler): Patch from 
4524         Anthony Baxter <anthony@interlink.com.au> fixes threading problems
4525         by using the Py_GILState_Ensure/Release to synchronize with the
4526         python runtime.
4527         
4528 2005-06-28  Ray Strode  <rstrode@redhat.com>
4529
4530         *  dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
4531         babysitter helper process on last unref, bug #2813.
4532
4533 2005-06-27  Colin Walters  <walters@verbum.org>
4534
4535         * test/glib/test-dbus-glib.c: 
4536         * test/glib/test-service-glib.c:
4537         * test/glib/test-service-glib.xml:
4538         Test hash table signal emitting.
4539
4540         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
4541         types to their fundamental basis types, since this is what
4542         marshallers operate on.  Also add an entry for VOID__BOXED.
4543         (dbus_g_object_register_marshaller_array): Convert to fundamental.
4544
4545 2005-06-26  Havoc Pennington  <hp@redhat.com>
4546
4547         * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
4548         from Don Park
4549
4550 2005-06-26  Colin Walters  <walters@verbum.org>
4551
4552         * glib/dbus-glib.c (dbus_set_g_error): Delete.
4553         (dbus_g_error_set): New public function from its ashes; used by
4554         both service-side method implementation and GLib bindings
4555         internals.
4556         (dbus_g_error_has_name, dbus_g_error_get_name): New function.
4557         (_dbus_glib_test): Add some tests.
4558
4559         * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
4560
4561         * test/glib/test-service-glib.c (my_object_throw_error): Use
4562         dbus_g_error_set.
4563
4564         * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
4565         errors thrown by dbus_g_error_set.
4566
4567         * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
4568
4569         * glib/dbus-gparser.c (validate_signature): Ditto.
4570
4571         * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) 
4572         (dbus_g_proxy_end_call_internal): Ditto.
4573
4574         * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
4575         converts DBUS_ERROR_x to DBUS_GERROR_x.
4576         (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
4577
4578         * doc/TODO: Remove error TODO.
4579
4580         * doc/dbus-tutorial.xml: Update with documentation about error
4581         handling.
4582
4583         * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
4584         sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
4585         GERROR.  Also add DBUS_GERROR_REMOTE_EXCEPTION.
4586
4587 2005-06-22  Colin Walters  <walters@verbum.org>
4588         
4589         Patch from Ross Burton <ross@openedhand.com>
4590
4591         * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
4592
4593 2005-06-20  Colin Walters  <walters@verbum.org>
4594
4595         * configure.in: Add glib/examples.
4596
4597         * glib/Makefile.am: Add examples/
4598
4599         * glib/examples/.cvsignore
4600         * glib/examples/Makefile.am
4601         * glib/examples/example-client.c
4602         * glib/examples/example-service.c
4603         * glib/examples/example-service.xml
4604         * glib/examples/example-signal-emitter.c
4605         * glib/examples/example-signal-emitter.xml
4606         * glib/examples/example-signal-recipient.c:
4607         New files; GLib binding examples, ported from
4608         python/examples.
4609
4610 2005-06-20  Colin Walters  <walters@verbum.org>
4611
4612         * dbus/dbus-glib.h: 
4613         * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
4614         dbus_g_proxy_call.
4615
4616         * glib/dbus-binding-tool-glib.c: 
4617         * doc/dbus-tutorial.xml: 
4618         * test/glib/test-dbus-glib.c: Update for rename.
4619         
4620 2005-06-20  Colin Walters  <walters@verbum.org>
4621
4622         Patch suggested by Ross Burton <ross@openedhand.com>
4623
4624         * glib/dbus-gobject.c (export_signals): Free signal name.
4625         (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
4626         memory leak.  Add a bit of documentation.
4627         (dbus_g_method_return_error): Free context, and note we do
4628         so.
4629
4630 2005-06-18  Murray Cumming  <murrayc@murrayc.com>
4631
4632         * dbus/dbus-glib.h:
4633         * glib/dbus-gobject.c:
4634         * glib/dbus-gproxy.c:
4635         * glib/dbus-gvalue.c: Predeclare structs as 
4636         typedef struct _Something Something instead of 
4637         typedef struct Something Something, so we can 
4638         redeclare the prototypes. Other GNOME libraries 
4639         do this already.
4640
4641 2005-06-17  Colin Walters  <walters@verbum.org>
4642
4643         * tools/dbus-names-model.c (have_names_notify): Fix call
4644         to dbus_g_proxy_end_call.
4645         
4646 2005-06-17  Colin Walters  <walters@verbum.org>
4647
4648         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
4649         spew warnings if we get malformed remote signals.
4650
4651         * glib/dbus-gobject.c (propsig_iterate): New function.
4652         (lookup_object_info): New function, extracted from
4653         lookup_object_and_method.
4654         (introspect_properties, introspect_signals): Delete; these
4655         are merged into write_interface.
4656         (write_interface): Write out signals and properties here;
4657         dump the org.gtk.object stuff and use the interface given
4658         in the introspection data blob.  Also fix up property XML.
4659         (lookup_values): New function.
4660         (introspect_interfaces): Gather a mapping from interface to a
4661         list of its methods, signals, and properties, then write out
4662         each interface.
4663         (lookup_object_and_method): Use lookup_object_info.
4664         (struct DBusGSignalClosure): Add interface.
4665         (dbus_g_signal_closure_new): Add interface. Don't dup signame;
4666         we can just use the constant data.
4667         (dbus_g_signal_closure_finalize): Don't free signal name.
4668         (signal_emitter_marshaller): Use interface from signal closure.
4669         (export_signals): Only export signals mentioned in introspection
4670         blob.
4671         (dbus_g_connection_register_g_object): Warn if we have no
4672         introspection data for an object.
4673         (funcsig_equal): Remove unused variable.
4674         (dbus_g_object_register_marshaller): Take varargs instead of
4675         list.
4676         (dbus_g_object_register_marshaller_array): New function,
4677         extracted from old dbus_g_object_register_marshaller.
4678
4679         * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
4680         signals and property data.
4681         (write_quoted_string): New function, extracted from generate_glue.
4682         (generate_glue): Write signals and properties to introspection
4683         blob.
4684
4685         * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
4686         exported_signals and exported_properties.
4687         (dbus_g_object_register_marshaller): Update prototype.
4688         (dbus_g_object_register_marshaller_array): Prototype.
4689         
4690         * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
4691
4692         * test/glib/test-service-glib.c: Add new test signals and method
4693         to emit them.
4694
4695         * test/glib/test-service-glib.xml: Add some test signals.
4696
4697         * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
4698         and my-object-marshal.h
4699         (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
4700         my-object-marshal.c.
4701         (my-object-marshal.c, my-object-marshal.h): Implement.
4702
4703         * test/glib/.cvsignore: Update.
4704
4705         * doc/TODO: Remove two GLib TODO items fixed by this
4706         patch.
4707
4708 2005-06-16  Colin Walters  <walters@verbum.org>
4709
4710         * doc/TODO: Update for GLib bindings.
4711         
4712 2005-06-16  Colin Walters  <walters@verbum.org>
4713
4714         * glib/dbus-binding-tool-glib.c:
4715         * glib/dbus-gobject.c:
4716         * glib/dbus-gproxy.c:  Add Nokia copyright; Patch
4717         from Ross Burton, for his GLib bindings work.
4718
4719 2005-06-16  Colin Walters  <walters@verbum.org>
4720
4721         * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
4722         to iterate instead of walking to G_TYPE_INVALID.
4723
4724         Patch based on a patch from Ryan Gammon.
4725
4726 2005-06-16  Colin Walters  <walters@verbum.org>
4727
4728         * bus/bus.c (bus_context_new): Set parser to NULL
4729         after we unref it (Patch from Chris Boscolo, #2174).
4730         
4731 2005-06-16  Colin Walters  <walters@verbum.org>
4732
4733         * python/dbus_bindings.pyx.in: Import size_t,
4734         __int64_t, __uint64_t, and __signed.
4735
4736         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
4737         Define cmsg struct, output it.
4738         (_dbus_read_credentials_unix_socket):
4739         Use cmsg struct.
4740         
4741         Patch from Joe Markus Clarke for FreeBSD support.
4742         
4743 2005-06-16  Colin Walters  <walters@verbum.org>
4744
4745         * tools/dbus-send.c (append_array): Use strtok.
4746         (append_dict): New function.
4747         (type_from_name): New function, extracted from main.
4748         (main): Handle sending dicts.
4749
4750         * tools/dbus-print-message.c (print_iter): Print dict
4751         entries.
4752         
4753 2005-06-16  Colin Walters  <walters@verbum.org>
4754
4755         * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
4756         values as the empty string (#2948).
4757         
4758 2005-06-16  Colin Walters  <walters@verbum.org>
4759
4760         * dbus/Makefile.am:
4761         * mono/doc/Makefile.am:
4762         * test/glib/Makefile.am:
4763
4764         Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
4765
4766 2005-06-16  Colin Walters  <walters@verbum.org>
4767
4768         * dbus/dbus-marshal-header.c (_dbus_header_load): Set
4769         header byte order from expected byte order (Patch from Chris Wilson, #3475).
4770
4771         * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): 
4772         Increment pointer after swapping fixed array.  Add assertion
4773         for array length.
4774                 
4775 2005-06-15  Colin Walters  <walters@verbum.org>
4776
4777         * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
4778         Fix call to dbus_set_error.  (Patch from Michael Banck, #3461)
4779         
4780 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4781
4782         * NEWS: Update to 0.34
4783
4784 2005-06-15  David Zeuthen  <davidz@redhat.com>
4785
4786         * configure.in (LT_CURRENT): Revert back to 1 as the library
4787         hasn't changed and we've certainly not committed to protocol
4788         stability yet.  All this does is to break ABI. See commit note
4789         from hp@redhat.com 2005-05-05 for details.
4790         
4791 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4792
4793         * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method 
4794         (_dbus_connection_run_builtin_filters): New method
4795         (dbus_connection_dispatch): Run the builtin filters which in turn
4796         runs the peer filter which handles Ping messages.
4797
4798         * doc/TODO: 
4799          - Ping isn't handled: This patch fixes it
4800          
4801          - Add a test case for the Ping message: added TODO item
4802
4803 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4804
4805         * dbus/dbus-message.c:
4806         (dbus_message_has_path): New method
4807         (dbus_message_has_interface): New method
4808         (dbus_message_has_member): New method
4809
4810         * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
4811         New method
4812
4813         * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that 
4814         the keyring directory is private to the user
4815
4816         * doc/TODO:
4817          - The convenience functions in dbus-bus.h should perhaps have
4818          the signatures that they would have if they were autogenerated
4819          stubs. e.g. the acquire service function. We should also evaluate
4820          which of these functions to include, in light of the fact that
4821          GLib/Qt native stubs will probably also exist.: Punted
4822
4823          - add dbus_message_has_path(), maybe has_member/interface:
4824          fixed in this patch
4825
4826          - in dbus-keyring.c, enforce that the keyring dir is not
4827          world readable/writable: Fixed in this patch
4828
4829 2005-06-15  John (J5) Palmieri  <johnp@redhat.com>
4830
4831         * dbus/dbus-marshal-validate.h: Added a new validation
4832         error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for 
4833         out of memory errors when validating signitures
4834
4835         * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
4836         in places where we previously used DBUS_VALID and a FALSE return 
4837         value to indicate OOM
4838         
4839         * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
4840         Use a stack to track the number of elements inside containers.  The 
4841         stack values are then used to validate that dict entries have only two
4842         elements within them.
4843         (validate_body_helper): check the reason for failure when validating
4844         varients
4845         
4846         * dbus/dbus-message.c (load_message): use 
4847         DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used 
4848         DBUS_VALID and a FALSE return value to indicate OOM
4849
4850         * doc/TODO: remove "- validate dict entry number of fields" as this
4851         patch fixes it
4852
4853 2005-06-14  David Zeuthen  <davidz@redhat.com>
4854
4855         * bus/bus.c (process_config_every_time): Drop existing conf-dir
4856         watches (if applicable) and add new watches
4857
4858         * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
4859         (main): Setup SIGIO signal handler if using D_NOTIFY
4860
4861         * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
4862
4863         * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
4864         (merge_included): Also merge conf_dirs list
4865         (bus_config_parser_unref): Clear conf_dirs list
4866         (include_dir): Add directory to conf_dirs list
4867         (bus_config_parser_get_conf_dirs): New function
4868
4869         * bus/dir-watch.[ch]: New files
4870
4871         * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
4872
4873         * configure.in: Add checks for D_NOTIFY on Linux
4874
4875 2005-06-14  Colin Walters  <walters@verbum.org>
4876
4877         * glib/dbus-binding-tool-glib.c:
4878         * glib/dbus-gobject.c:
4879         * glib/dbus-gvalue.c: Fix indentation and brace style.
4880         
4881 2005-06-14  Ross Burton <ross@openedhand.com>.
4882
4883         * glib/dbus-glib.h: Make DBusGMethodInvocation
4884         a private structure.  Rearrange prototypes a bit.
4885         
4886         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
4887         documentation for first_arg_type.
4888         
4889         * glib/dbus-gobject.c: Move DBusGMethodInvocation
4890         here, add documentation.  Move dbus_g_method_return
4891         and dbus_g_method_return_error into public API
4892         section.
4893
4894 2005-06-14  Colin Walters  <walters@verbum.org>
4895
4896         * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
4897         Add missing return statements, noticed by Ross Burton.
4898         
4899 2005-06-13  Ross Burton <ross@openedhand.com>.
4900
4901         * glib/dbus-gobject.c: Handle errors on message
4902         demarshalling by sending error message back.
4903         * glib/dbus-gvalue.c: Initialize return variables.
4904
4905 2005-06-13  Colin Walters  <walters@verbum.org>
4906
4907         * glib/Makefile.am: Fix thinko in last patch.
4908
4909 2005-06-13  Colin Walters  <walters@verbum.org>
4910
4911         * glib/Makefile.am: Move dbus-gtype-specialized.c
4912         and dbus-gtype-specialized.h into a _HEADERS variable,
4913         install them.
4914
4915 2005-06-12  Colin Walters  <walters@verbum.org>
4916
4917         Async signals and various bugfixes and testing by
4918         Ross Burton <ross@openedhand.com>.
4919
4920         * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
4921         (dbus_gvalue_genmarshal_name_from_type)
4922         (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
4923         (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
4924         (dbus_g_value_types_init, dbus_gtype_from_signature)
4925         (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
4926         (dbus_gtypes_from_arg_signature): New function prototypes.
4927         (dbus_gvalue_demarshal): Take context and error arguments.
4928         (dbus_gvalue_demarshal_variant): New function.
4929         (dbus_gvalue_demarshal_message): New function.
4930         (dbus_gvalue_store): Delete.
4931
4932         * glib/dbus-gvalue.c:
4933
4934         File has been almost entirely rewritten; now we special-case
4935         more types such as DBUS_TYPE_SIGNATURE, handle arrays and
4936         hash tables correctly, etc.  Full support for recursive values
4937         is not yet complete.
4938
4939         * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
4940         argument of signal to G_TYPE_POINTER since we now pass a
4941         structure.
4942         (lookup_g_marshaller): Delete in favor of
4943         _dbus_gobject_lookup_marshaller.
4944         (marshal_dbus_message_to_g_marshaller): Use
4945         _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
4946         to handle remote signal callbacks.
4947         (dbus_g_proxy_new_from_proxy): New function; creates a new
4948         DBusGProxy by copying an existing one.
4949         (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
4950         (dbus_g_proxy_get_path): New functions.
4951         (dbus_g_proxy_marshal_args_to_message): New function;
4952         factored out of existing code.
4953         (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
4954         from a varargs array.
4955         (dbus_g_proxy_begin_call_internal): New function.
4956         (dbus_g_proxy_end_call_internal): New function.
4957         (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
4958         as arguments; simply invoke dbus_g_proxy_begin_call_internal
4959         after collecting args into value array.
4960         (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
4961         invoke dbus_g_proxy_end_call_internal.
4962         (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
4963         end_call_internal.
4964         (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
4965         types.
4966         (array_free_all): New function.
4967         (dbus_g_proxy_add_signal): Take GTypes.
4968
4969         * glib/dbus-gobject.h:
4970         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4971         (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
4972         Prototype.
4973
4974         * glib/dbus-gobject.c: Add a global marshal_table hash which
4975         stores mappings from type signatures to marshallers.  Change lots
4976         of invocations of dbus_gtype_to_dbus_type to
4977         dbus_gtype_to_signature.
4978         (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
4979         (introspect_signals): Fix test for query.return_type.
4980         (set_object_property): Update invocation of dbus_gvalue_demarshal.
4981         (invoke_object_method): Many changes.  Handle asynchronous
4982         invocations.  Convert arguments with
4983         dbus_gvalue_demarshal_message.  Handle errors.  Use
4984         DBusSignatureIter instead of strlen on args. Handle all arguments
4985         generically.  Special-case variants.
4986         (dbus_g_method_return, dbus_g_method_return_error): New function.
4987         (DBusGSignalClosure): New structure, closes over signal
4988         information.
4989         (dbus_g_signal_closure_new): New function.
4990         (dbus_g_signal_closure_finalize): New function.
4991         (signal_emitter_marshaller): New function; is special marshaller
4992         which emits signals on bus.
4993         (export_signals): New function; introspects object signals and
4994         connects to them.
4995         (dbus_g_object_type_install_info): Take GType instead of
4996         GObjectClass.
4997         (dbus_g_connection_register_g_object): Invoke export_signals.
4998         (dbus_g_connection_lookup_g_object): New function.
4999         (DBusGFuncSignature) New structure; used for mapping type
5000         signatures to marshallers.
5001         (funcsig_hash): New function; hashes DBusGFuncSignature.
5002         (funcsig_equal): New function; compares DBusGFuncSignature.
5003         (_dbus_gobject_lookup_marshaller): New function.
5004         (dbus_g_object_register_marshaller): New function; used to
5005         register a marshaller at runtime for a particular signature.
5006
5007         * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
5008
5009         * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
5010         which notes a server method implementation should be
5011         asynchronous.
5012
5013         * glib/dbus-binding-tool-glib.c
5014         (dbus_binding_tool_output_glib_server): Call
5015         dbus_g_value_types_init.
5016         (write_formal_parameters): Use dbus_gtype_from_signature.  Handle
5017         variants specially.
5018         (dbus_g_type_get_lookup_function): Turn GType into an invocation
5019         of a lookup function.
5020         (write_args_for_direction): Use dbus_g_type_get_lookup_function.
5021         (write_untyped_out_args): New method; write output arguments.
5022         (write_formal_declarations_for_direction): Function for
5023         writing prototypes.
5024         (write_formal_parameters_for_direction): Function for
5025         writing implementations.
5026         (write_typed_args_for_direction): Function for writing
5027         arguments prefixed with GTypes.
5028         (write_async_method_client): Write out async version
5029         of method.
5030
5031         * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
5032         (dbus_g_type_get_marshal_name): Move mapping from GType
5033         to marshal name into here.
5034         (dbus_g_type_get_c_name): Move into here.
5035         (compute_marshaller): Convert signature to type with
5036         dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
5037         (compute_marshaller_name): Ditto.
5038         (compute_marshaller): Handle async signal annotations.
5039         (gather_marshallers): Return if we don't have a known
5040         prefix.
5041         (generate_glue): Collect introspection blob here, and
5042         write all of the blob at the end.  This allows an object
5043         with multiple interfaces to work.
5044         Mark async methods in introspection blob.
5045
5046         * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
5047         dbus-gtype-specialized.c, dbus-gtype-specialized.h,
5048         dbus-gvalue-utils.h, dbus-gvalue-utils.c.
5049
5050         * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
5051         avoids people accidentally using DBUS_TYPE_* which should
5052         not be necessary anymore.
5053         Do include dbus-gtype-specialized.h, which are utilities
5054         for GLib container types.
5055         Add various #defines for types such as
5056         DBUS_TYPE_G_BOOLEAN_ARRAY.
5057         (DBusGValueIterator, DBusGValue): Define, not fully used
5058         yet.
5059         (dbus_g_value_get_g_type): Type for recursive value.
5060         (dbus_g_value_open, dbus_g_value_iterator_get_value)
5061         (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
5062         (dbus_g_value_free): Prototypes.
5063         (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
5064         (dbus_g_proxy_set_interface): Prototype.
5065         (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
5066         (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
5067         types.
5068         (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
5069         Accessors.
5070         (DBusGAsyncData, DBusGMethodInvocation): Structures for
5071         doing async invocations.
5072         (dbus_g_method_return, dbus_g_method_return_error):
5073         Prototypes.
5074         * doc/dbus-tutorial.xml: Update GLib section.
5075         
5076         * tools/dbus-viewer.c (load_child_nodes): Update
5077         for new invocation type of dbus_g_proxy_end_call.
5078         (load_from_service_thread_func): Ditto.
5079
5080         * tools/print-introspect.c (main): Ditto.
5081
5082         * tools/dbus-names-model.c (have_names_notify)
5083         (names_model_reload, names_model_set_connection)
5084         Use GTypes.
5085
5086         * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
5087         needed since Python bindings use GLib bindings.
5088
5089         * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
5090         Add --prefix argument.
5091
5092         * tools/Makefile.am: Define DBUS_COMPILATION.  Remove
5093         unneeded --ignore-unsupported arg.
5094         
5095         * test/glib/test-service-glib.c: 
5096         * test/glib/test-service-glib.xml:
5097         * test/glib/test-dbus-glib.c: Add many more tests.
5098
5099 2005-06-06  David Zeuthen  <davidz@redhat.com>
5100
5101         * doc/TODO: Add item about need to remove deprecated functions.
5102
5103         * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
5104
5105         * dbus/dbus-connection.c (dbus_connection_disconnect): New function
5106         to repair the ABI which was broken with the last commit.
5107
5108 2005-06-02  John (J5) Palmieri <johnp@redhat.com>
5109
5110         *  dbus/dbus-connection.c, dbus/dbus-connection.h 
5111         (dbus_connection_disconnect): renamed to dbus_connection_close 
5112         for API symmetry with dbus_connection_open
5113         (_dbus_connection_open_internal): 
5114         s/dbus_connection_disconnect/dbus_connection_close
5115
5116         * dbus/dbus-bus.c (dbus_bus_get):
5117         s/dbus_connection_disconnect/dbus_connection_close
5118
5119         * bus/connection.c (bus_connections_unref, 
5120         bus_connections_setup_connection, bus_connections_expire_incomplete):
5121         s/dbus_connection_disconnect/dbus_connection_close
5122
5123         * bus/dispatch.c (bus_dispatch, kill_client_connection, 
5124         kill_client_connection_unchecked, check_hello_connection):
5125         s/dbus_connection_disconnect/dbus_connection_close
5126
5127         * bus/bus.c (new_connection_callback):
5128         s/dbus_connection_disconnect/dbus_connection_close
5129
5130         * tools/dbus-send.c (main):
5131         s/dbus_connection_disconnect/dbus_connection_close
5132
5133         * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
5134         s/dbus_connection_disconnect/dbus_connection_close
5135         
5136         * test/test-service.c (path_message_func, filter_func):
5137         s/dbus_connection_disconnect/dbus_connection_close
5138         
5139         * doc/TODO: remove connection_open/connection_disconnect lacks symmetry         item that was just fixed
5140         
5141 2005-05-25  Colin Walters  <walters@verbum.org>
5142
5143         * dbus/dbus-protocol.h: Move various bus service #defines such
5144           as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
5145           dbus/dbus-shared.h.
5146         * dbus/dbus-shared.h: Various defines moved here.
5147         * dbus/dbus-marshal-header.c: Include dbus-shared.h.
5148
5149 2005-05-25  John (J5) Palmieri  <johnp@redhat.com>
5150
5151         * python/__init__.py: Python bindings deserve a minor version
5152         update.  Upped to (0, 40, 2)
5153
5154 2005-05-24  John (J5) Palmieri  <johnp@redhat.com>
5155
5156         * python/decorators.py: add explicitly_pass_message decorator
5157         for passing in the dbus message as keyword for edge case signal
5158         handling
5159
5160         * python/matchrules.py (SignalMatchRule.__repr__): fix output
5161         to conform with what dbus expects for match rules
5162         (SignalMatchRule.execute): add the dbus message as a keyword
5163         if the signal handler has requested it
5164
5165         * python/examples/example/signal-recipient.py: added some more
5166         examples on how to hook up to signals
5167
5168 2005-05-23  John (J5) Palmieri  <johnp@redhat.com>
5169
5170         * python/decorators.py: import dbus_bindings
5171
5172         * python/matchrules.py (SignalMatchRule, SignalMatchTree, 
5173         SignalMatchNode): new classes that implement wildcard signal
5174         callback matching using a tree lookup. Heavily modified from a
5175         patch sent by Celso Pinto (fd.o bug #3241)
5176
5177         * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
5178         use new match classes to handle signals.
5179
5180 2005-05-19  John (J5) Palmieri  <johnp@redhat.com>
5181         
5182         * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
5183
5184 2005-05-18  Havoc Pennington  <hp@redhat.com>
5185
5186         * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
5187         gettext. Not really worth requiring yet perhaps, but any
5188         production quality 1.0 would require it so we should go ahead and
5189         get things set up. We do have a couple token calls to
5190         bindtextdomain in the code already.
5191
5192 2005-05-16  John (J5) Palmieri  <johnp@redhat.com>
5193
5194         * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
5195         when using recursive g_main_loops
5196
5197         * python/_dbus.py (class Bus): add the ProxyObjectClass
5198         alias for ProxyObject to make it easier for the Twisted 
5199         networking framework to integrate dbus.
5200
5201         * python/proxies.py (class ProxyObject): add the ProxyMethodClass
5202         alias for ProxyMethod to make it easier for the Twisted 
5203         networking framework to integrate dbus. 
5204
5205 2005-05-11  Ross Burton  <ross@openedhand.com>
5206
5207         * glib/dbus-glib-tool.c: Add --prefix argument.
5208         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5209         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
5210         Add prefix argument.
5211         (generate_glue): Pass prefix argument down.
5212         (dbus_binding_tool_output_glib_server): Pass prefix to
5213         glib-genmarshal.
5214         
5215 2005-05-11  Colin Walters  <walters@verbum.org>
5216
5217         * tools/dbus-send.c (append_array): New function.
5218         (append_arg): Broken out from main.
5219         (main): Add cheesy hack to send arrays and variants.
5220         (usage): Update.
5221         * tools/dbus-print-message.c (print_iter): Broken out
5222         from main.
5223
5224 2005-05-11  Colin Walters  <walters@verbum.org>
5225
5226         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
5227         New function, returns signature string for signature iter.
5228         * dbus/dbus-signature.h: Prototype it.
5229         * dbus/dbus-message.c (dbus_message_iter_get_signature):
5230         New function, returns signature string for message iter.
5231         (dbus_message_iter_get_array_len): New function, returns
5232         length of array.
5233         (dbus_message_iter_get_fixed_array): Fix assertion; this
5234         function should be used when the iter is pointing to the
5235         contents of an array
5236         * dbus/dbus-message.h: Prototypes.
5237         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
5238         New function; returns length of an array.
5239         * dbus/dbus-marshal-recursive.h: Prototype it.
5240         
5241 2005-05-11  Colin Walters  <walters@verbum.org>
5242
5243         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
5244         compilation error.
5245         
5246 2005-05-08  Havoc Pennington  <hp@redhat.com>
5247
5248         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
5249         daemon's pid, not the parent's pid, to the file descriptor.
5250         Reported by Taj Morton.
5251
5252 2005-05-05  Havoc Pennington  <hp@redhat.com>
5253
5254         * configure.in (LT_*): add notes on how the libtool versioning
5255         works to save thinking. Increment soname to indicate protocol
5256         breakage (though really the library interface hasn't changed I
5257         guess)
5258
5259         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
5260         verify the GUID received from server matches what we were
5261         expecting, if we had an expectation
5262
5263         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
5264         (_dbus_auth_get_guid_from_server): new function
5265         (send_begin): parse the OK args
5266
5267         * doc/dbus-specification.xml: add GUID to the auth protocol
5268
5269 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
5270
5271         * Fix my name in previous changelog ;)
5272
5273         * python/proxies.py (ProxyObject.__getattr__): add further patch
5274         from Anthony Baxter to throw an AttributeError when python 
5275         __special__ functions are called instead of marshling them over 
5276         the bus (Bug#1685 comment 3).
5277
5278 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
5279
5280         * python/Makefile.am: changed to use pyexecdir for the binding
5281         shared libraries (Bug#2494)
5282
5283         * python/exceptions.py: bring exceptions over from the bindings
5284         so they can be used in applications (Bug#2036)
5285         Make all exceptions derive from DBusException
5286
5287         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
5288         of classes so that print obj doesn't throw an exception (Bug #1685)
5289
5290 2005-05-03  Ross Burton  <ross@openedhand.com>
5291
5292         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
5293         Return if we get an error during registration.  Set up a
5294         weak reference on object to unregister if object is destroyed.
5295         (unregister_gobject): New function.
5296         
5297 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
5298
5299         * python/dbus_bindings.pyx.in: 
5300         - added new type classes for hinting to the marashaler what type 
5301         to send over the wire
5302         - added int16 and uint16 marshalers
5303         - Fixed a bug in the type constants that caused int32 to go out
5304         as uint16 over the wire
5305         * python/dbus.py: split up into different files and renamed _dbus.py
5306         * python/__init__.py, python/_util.py, python/decorators.py, 
5307         python/exceptions.py, python/proxies.py, python/services.py,
5308         python/types.py: new files split off from dbus.py
5309         * python/Makefile.am: Add new files, remove dbus.py and 
5310         install all python files to <python module dir>/dbus
5311         * python/examples/*: Added #!/usr/bin/env python to the top of
5312         every example.  Patch provided by Tatavarty Kalyan
5313
5314 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5315
5316         * NEWS: Update to 0.33
5317
5318 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
5319
5320         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
5321         method for doing async calls
5322         (_pending_call_notification): New C function for handling pendning call
5323         callbacks
5324         (set_notify): New method for setting pending call notification
5325         
5326         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
5327         Async capabilities added to remote method calls
5328         (Sender): class removed
5329         (RemoteService): class removed
5330         (ObjectTree): class removed for now
5331         (RemoteObject): Renamed to ProxyObject
5332         (RemoteMethod): Renamed to ProxyMethod
5333         (method): Decorator added for decorating python methods as dbus methods
5334         (signal): Decorator added for decorating python methods as signal emitters
5335         (ObjectType): Metaclass added for generating introspection data and the
5336         method callback vtable
5337         (Interface): Wrapper class added to wrap objects in a dbus interface
5338         (Object): Uses ObjectType as its metaclass and exports Introspect
5339         of the org.freedesktop.DBus.Introspectable interface
5340         (ValidationException, UnknownMethodException): new exceptions
5341
5342         * python/examples/*: Modified to fit with the new bindings
5343
5344 2005-04-23  Havoc Pennington  <hp@redhat.com>
5345
5346         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
5347         reported by Tony Houghton
5348
5349         * test/test-service.c (main): test
5350         dbus_connection_get_object_path_data()
5351
5352         * dbus/dbus-object-tree.c (find_handler): be sure we always init
5353         the exact_match
5354         (_dbus_object_tree_get_user_data_unlocked): new function used by
5355         dbus_connection_get_object_path_data()
5356         (do_register): add assertion test for get_user_data_unlocked
5357         (object_tree_test_iteration): more tests
5358
5359         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
5360         new function from Dan Reed to let you get the user data from 
5361         dbus_connection_register_object_path()
5362
5363 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
5364
5365         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
5366         in numerous places that did not account for the NULL terminator
5367         (signature_from_seed): changed the manual string copy loop to 
5368         just use strcpy instead
5369         make check should now pass
5370
5371 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
5372
5373         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
5374         so that it allows messages that are not signals to pass in 
5375         NULL as the interface.
5376
5377 2005-04-18  David Zeuthen  <davidz@redhat.com>
5378
5379         * glib/dbus-gmain.c (io_handler_destroy_source): 
5380         (timeout_handler_destroy_source, connection_setup_free): 
5381         Also unref the source to avoid memory leaks.
5382
5383 2005-04-13  David Zeuthen  <davidz@redhat.com>
5384
5385         * bus/config-parser.c (bus_config_parser_new): Bump this to a
5386         more reasonable, yet still totally arbitrary, value :-). 
5387
5388 2005-04-13  David Zeuthen  <davidz@redhat.com>
5389
5390         * doc/TODO: Added an "important for 1.0" item about selinux
5391         allow/deny messages
5392
5393 2005-04-13  David Zeuthen  <davidz@redhat.com>
5394
5395         * bus/selinux.c: Add c-file-style to top of file
5396         (log_audit_callback): Don't free the data here anymore
5397         (bus_selinux_check): Don't take spid and tpid since appending
5398         that to auxdata may OOM.
5399         (bus_selinux_allows_acquire_service): Handle OOM and signal back
5400         to the caller if we are OOM by taking an error object.
5401         (bus_selinux_allows_send): -do-
5402
5403         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
5404         and bus_selinux_allows_send
5405
5406         * bus/bus.c (bus_context_check_security_policy): Pass error and
5407         pass on OOM thrown by bus_selinux_allows_send()
5408
5409         * bus/services.c (bus_registry_acquire_service): Pass error and
5410         pass on OOM thrown by bus_selinux_allows_acquire_service()
5411
5412 2005-04-13  Havoc Pennington  <hp@redhat.com>
5413
5414         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
5415         message at a time to avoid monopolizing the main loop, bug 
5416         #2953 from Benjamin Otte
5417
5418 2005-04-09  Havoc Pennington  <hp@redhat.com>
5419
5420         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
5421         possible overlap, fix from Daniel Reed
5422         (fixup_alignment): fix signedness warnings
5423         (_dbus_string_append_unichar): ditto
5424
5425 2005-04-09  Havoc Pennington  <hp@redhat.com>
5426
5427         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
5428
5429         * glib/dbus-glib-tool.c (main): fix warning
5430
5431         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
5432
5433         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
5434         add a new function that can be used in simple applications that
5435         don't have a main loop and are willing to block
5436
5437 2005-04-05  David Zeuthen  <davidz@redhat.com>
5438
5439         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
5440
5441         * glib/dbus-gmain.c:
5442         (io_handler_destroy_source): Remove from list of IO handlers
5443         of the ConnectionSetup object
5444         (timeout_handler_destroy_source): -do- for timeout handlers
5445         (io_handler_source_finalized): Don't remove from list since
5446         we now do that in io_handler_destroy_source(). Renamed from
5447         io_handler_source_destroyed
5448         (timeout_handler_source_destroyed): -do- for timeout handlers
5449         (connection_setup_free): It is now safe to iterate over all
5450         IO and timeout handlers as the _destroy_source removes them
5451         from the list synchronously
5452
5453 2005-03-30  Havoc Pennington  <hp@redhat.com>
5454
5455         * configure.in: change check to gtk 2.4
5456
5457         * tools/dbus-viewer.c (name_combo_changed_callback): remove
5458         gtk_combo_box_get_active_text() usage to decrement GTK requirement
5459         to 2.4
5460
5461 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5462
5463         * News: Update 0.32
5464
5465         * HACKING: Fixed realease instructions.  configure.in should be updated to
5466           the next release by the person who made the last release.
5467
5468 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
5469
5470         * python/lvalue_cast_post_process.py - removed.  Patch has been
5471           submitted to Pyrex maintainers that fixes gcc4.0 errors
5472
5473         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
5474
5475 2005-03-24  Daniel Reed  <n@ml.org>
5476
5477         * tools/Makefile.am: Make print-introspect and
5478         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
5479
5480 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
5481
5482         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
5483
5484         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
5485           had in Red Hat packages for a while but for some reason never 
5486           got merged upstream
5487           (_dbus_is_a_number): New checks if a string
5488           can be converted to a number and does the conversion if it can
5489           (_dbus_user_database_lookup): Add check to see if the given username
5490           is a udi.  This allows udi's to be used instead of usernames in the
5491           config file.
5492           (_dbus_user_database_lookup_group): Add check to see if the given groupname
5493           is a gdi.  This allows gdi's to be used instead of groupnames in the
5494           config file.
5495
5496 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
5497
5498         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
5499           code so that it compiles with gcc4.0
5500
5501         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
5502           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
5503           results back to dbus_binding.c
5504
5505 2005-03-20  Colin Walters  <walters@verbum.org>
5506
5507         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
5508
5509         * configure.in: Require GTK+ 2.6.
5510         
5511 2005-03-20  Colin Walters  <walters@verbum.org>
5512
5513         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
5514
5515 2005-03-17  Tom Parker  <palfrey@tevp.net>
5516
5517         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
5518         print DBUS_UID_UNSET; instead print passed username.  Also
5519         be sure to actually use gid looked up in cache.
5520         
5521         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
5522         for DBUS_GID_UNSET and groupname.
5523
5524 2005-03-17  Colin Walters  <walters@verbum.org>
5525
5526         * bus/print-introspect.c: Move to tools/.
5527         * bus/run-with-tmp-session-bus.sh: Ditto.
5528         
5529         * glib/Makefile.am (dbus-glib-bindings.h): Move
5530         generation to tools/Makefile.am.
5531
5532         * test/glib/run-test.sh: Update to handle move
5533         of run-with-tmp-session-bus.sh.
5534
5535         * test/glib/test-service-glib.c: Update to handle
5536         move of dbus-glib-bindings.h.
5537
5538         * tools/print-introspect.c: Moved here
5539         from bus/, and ported to GLib bindings.
5540
5541         * tools/run-with-tmp-session-bus.sh: Moved here
5542         from bus/.
5543
5544         * tools/Makefile.am: Generate dbus-glib-bindings.h
5545         and dbus-bus-introspect.xml here.
5546
5547         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
5548         Update.
5549
5550 2005-03-17  Colin Walters  <walters@verbum.org>
5551
5552         * bus/driver.c (write_args_for_direction): Use
5553         _dbus_string_get_const_data to retrieve string;
5554         _dbus_string_get_const_data_len doesn't actually return
5555         a NULL-terminated substring.
5556
5557         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
5558         (main): Change to use org_freedesktop_DBus_request_name
5559         instead of using g_proxy_begin_call/end_call.
5560
5561 2005-03-15  Joe Shaw  <joeshaw@novell.com>
5562
5563         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
5564         generating the finalizer.  Fixes from Ben Maurer.
5565
5566 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5567
5568         * mono/BusDriver.cs: Update method names: ListServices
5569         becomes ListNames; GetOwner becomes GetNameOwner.
5570
5571         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
5572         onto the eval stack when removing the delegate.
5573
5574 2005-03-12  Joe Shaw  <joeshaw@novell.com>
5575
5576         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
5577         LT_CURRENT.  Set it to the autoconf variable.
5578                                                                                 
5579         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
5580         classes that disconnects the signal handler delegate from the
5581         service object.  Fixes a big leak of proxy objects on the
5582         client side of things.  Patch from Ben Maurer
5583         <bmaurer@ximian.com>
5584
5585 2005-03-12  Colin Walters  <walters@verbum.org>
5586
5587         * bus/driver.c (write_args_for_direction): New function,
5588         parses a type signature into arguments and outputs to
5589         XML.
5590         (bus_driver_handle_introspect): Use it instead of
5591         hardcoding XML for certain signatures.
5592         
5593         * bus/Makefile.am (dbus-bus-introspect.xml): Add
5594         dependency on dbus-daemon.
5595
5596         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
5597         argument, pass it to dbus_binding_tool_output_glib_client.
5598
5599         * glib/dbus-binding-tool-glib.c
5600         (generate_client_glue): Protect against multiple inclusion.
5601         (dbus_binding_tool_output_glib_client): Add
5602         G_BEGIN_DECLS/G_END_DECLS.
5603
5604         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
5605         Change to just take iface prefix directly.
5606         (write_formal_parameters): Clarify error message.
5607         (check_supported_parameters): New function; checks to see type
5608         signatures of method parameters are supported.
5609         (generate_client_glue): Handle ignore_unsupported flag.
5610         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
5611         parameter.
5612
5613         * glib/Makefile.am (dbus-glib-bindings.h): Pass
5614         --ignore-unsupported by default until glib bindings
5615         support arrays.
5616
5617 2005-03-11  Colin Walters  <walters@verbum.org>
5618
5619         * glib/Makefile.am: Generate dbus-glib-bindings.h and
5620         install it.
5621
5622         * bus/print-introspect.c: New file; prints introspection
5623         data for a given name and object path.
5624
5625         * bus/run-with-tmp-session-bus.sh: New file, refactored
5626         from test/glib/run-test.sh.  Creates a temporary session
5627         bus and runs another program.
5628
5629         * test/glib/run-test.sh: Refactor to invoke
5630         run-with-tmp-session-bus.sh.
5631
5632         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
5633         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
5634         macros instead of hardcoding.
5635
5636         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
5637
5638 2005-03-11  Joe Shaw  <joeshaw@novell.com>
5639
5640         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
5641         this unref; it doesn't match up evenly in some codepaths.
5642         (_dbus_connection_block_pending_call): Unref at every exitpoint;
5643         this evenly matches with the ref near the top of this function.
5644
5645 2005-03-09  Joe Shaw  <joeshaw@novell.com>
5646
5647         * dbus/dbus-object-tree.c
5648         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
5649         and we try to unregister a path that's not registered, still go
5650         through the process of unlocking and don't just return.
5651
5652 2005-03-09  Colin Walters  <walters@verbum.org>
5653
5654         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
5655         to this are generated for client-side wrappers.  Invokes a
5656         D-BUS method and returns reply values.  
5657
5658         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
5659         function; writes signature string for argument direction.
5660         (write_args_for_direction): Change to pass input values directly
5661         instead of via address, and fix indentation.
5662         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
5663         make generated wrappers inlineable.
5664
5665         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
5666         note about using dbus_type_is_fixed.
5667
5668         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
5669         dbus/dbus-signature.c as dbus_type_is_fixed.
5670
5671         All callers updated.
5672
5673         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
5674         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
5675
5676         * dbus/dbus-signature.h: Prototype.
5677
5678         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
5679         error printf code.
5680
5681         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
5682         appropriate instead of just freeing it.
5683         (main): Free returned strings using g_free.
5684
5685         * test/glib/Makefile.am (test-service-glib-glue.h)
5686         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
5687
5688         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
5689         simply maps a simple D-BUS type to GType.
5690         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
5691         GType.
5692         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
5693         initialize the value with it.
5694         (dbus_gvalue_binding_type_from_type): Unused, delete.
5695         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
5696         various types instead of unmarshalling to value data directly.
5697         Remove can_convert boolean.
5698         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
5699         returning directly instead of using can_convert boolean.
5700         (dbus_gvalue_store): New function; not related to D-BUS per-se.
5701         Stores a GValue in a pointer to a value of its corresponding C
5702         type.
5703
5704         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
5705         add dbus_gvalue_store.
5706
5707 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5708
5709         Fix a bunch of lifecycle and memory management problems
5710         in the mono bindings.
5711
5712         * mono/Arguments.cs (Arguments): Implement IDisposable
5713
5714         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
5715         strictly a static class.
5716
5717         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
5718         delegates into this file.
5719         (Connection): Implement IDisposable.
5720         (Dispose): Disconnect the connection and set the raw connection
5721         pointer to IntPtr.Zero.
5722         (~Connection): Call Dispose().
5723         (RegisterObjectPath): Added.  Manages the registration of object
5724         paths so we can cleanly disconnect them at dispose/finalize time.
5725         (UnregisterObjectPath): Ditto.
5726         (set_RawConnection): Unregister all of the object paths when
5727         changing the underlying DBusConnection.  Add them back onto the
5728         new connection, if any.
5729
5730         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
5731         more unmanaged resources anymore, so it's not necessary.  Move all
5732         the DBusObjectPathVTable stuff out of here.
5733         (Handler): Save references to our delegates so that they don't get
5734         finalized.  Call Connection.RegisterObjectPath() instead of
5735         dbus_connection_register_object_path() directly.
5736         (Message_Called): Dispose the message after we're finished with
5737         it.
5738
5739         * mono/Message.cs (Message): Implement IDisposable.
5740         (Dispose): Dispose the Arguments, and set the RawMessage to
5741         IntPtr.Zero.
5742         (SendWithReplyAndBlock): We own the ref to the reply that comes
5743         back from dbus_connection_send_with_reply_and_block() so add a
5744         comment about that and unref it after we've constructed a managed
5745         MethodReturn class around it.  Fixes a big, big leak.
5746
5747         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
5748         method.
5749         (BuildSignalHandler): After we've sent the Signal message, dispose
5750         of it.
5751         (BuildMethod): Dispose of the method call and reply messages after
5752         we've sent the message and extracted the data we want from the
5753         reply.
5754
5755         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
5756         anymore.
5757         (Service_FilterCalled): Dispose of the message after we're
5758         finished with it.
5759
5760 2005-03-08  Joe Shaw  <joeshaw@novell.com>
5761
5762         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
5763         After we attach our pending call to the connection, unref
5764         it.  Fixes a leak.
5765  
5766         * mono/Connection.cs (set_RawConnection): Disconnect our
5767         filter and match callbacks from the old connection and
5768         reconnect them to the new connection, if any.
5769
5770         * mono/DBusType/Array.cs: "Code" is a static member, so
5771         don't use "this" to refer to it.  Fix for stricter checking
5772         in Mono 1.1.4.
5773  
5774         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
5775         object path that we pass into unmanaged code.
5776  
5777         * mono/DBusType/String.cs (Append): Don't leak the string
5778         that we pass into unmanged code.
5779
5780 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
5781         * NEWS: Update for 0.31
5782
5783         * configure.in: Release 0.31
5784         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
5785
5786         * qt/Makefile.am: fixed build
5787
5788         * dbus/Makefile.am: soname bump for libdbus
5789
5790         * glib/Makefile.am: soname bump for libdbus-glib
5791
5792 2005-03-05  Havoc Pennington  <hp@redhat.com>
5793
5794         * dbus/dbus-sysdeps.c:
5795         (pseudorandom_generate_random_bytes_buffer): fix to have no return
5796         value
5797         (_dbus_generate_random_bytes_buffer): fix return value
5798
5799         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
5800         checks actually work, from Tom Parker <fdo@tevp.net>
5801
5802 2005-03-01  Colin Walters  <walters@verbum.org>
5803
5804         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
5805         functions copied from dbus-glib-tool.c.
5806         (main): Convert lots of error code to use them.
5807         Also add some testing for introspection bits.
5808
5809 2005-03-01  Colin Walters  <walters@verbum.org>
5810         
5811         * doc/TODO: Remove introspection signature TODO.
5812
5813 2005-02-27  Colin Walters  <walters@verbum.org>
5814
5815         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
5816         Change return value to const char * instead of int so we can do
5817         full signatures.
5818         (struct PropertyInfo, struct ArgInfo): Store char *.
5819         (property_info_new, arg_info_new): Update parameters, strdup.
5820         (property_info_unref, arg_info_unref): Free.
5821
5822         * glib/dbus-gidl.h: Update prototypes.
5823
5824         * glib/dbus-gparser.c (basic_type_from_string): Delete.
5825         (validate_signature): New function, just validates signature and
5826         sets GError.
5827         (parse_property, parse_arg): Invoke validate_signature.  Store
5828         signature instead of just type code.
5829
5830         * glib/dbus-gvalue.c (base_type_from_signature): New utility
5831         function to return a primary type for a signature, dropping
5832         information about types in container types.
5833         (dbus_gvalue_genmarshal_name_from_type)
5834         (dbus_gvalue_binding_type_from_type)
5835         (dbus_gvalue_ctype_from_type): Update to take full signature
5836          instead of type code.
5837         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
5838
5839         * glib/dbus-gvalue.h: Update prototypes for above.
5840
5841         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
5842         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
5843         (introspect_properties, introspect_signals, write_interface):
5844         Update to handle signatures, and remove usage of
5845         _dbus_gutils_type_to_string.
5846         (handle_introspect): Print out type codes instead of e.g. "string"
5847         in hardcoded introspection XML; also use x_AS_STRING constants
5848         instead of hardcoding in string.
5849
5850         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
5851         to string.  Remove usage of _dbus_gutils_type_to_string.
5852
5853         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
5854
5855         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
5856         deletion.
5857         
5858         * glib/dbus-binding-tool-glib.c (compute_marshaller)
5859         (compute_marshaller_name, generate_glue): Handle signature change
5860         to string.
5861         (write_formal_parameters, write_args_for_direction): Ditto, and
5862         remove FIXME.
5863
5864         * tools/dbus-tree-view.c (type_to_string): Delete.
5865         (info_set_func_text): Update to print full signatures.
5866
5867         * test/glib/test-service-glib.xml: Change types to new
5868         introspection format.
5869
5870 2005-02-26  Havoc Pennington  <hp@redhat.com>
5871
5872         * doc/TODO: remove the "guid" item
5873
5874         * test/glib/test-profile.c (no_bus_thread_func): use open_private
5875         (with_bus_thread_func): use open_private
5876
5877         * dbus/dbus-connection.c (dbus_connection_open_private): new
5878         function that works like the old dbus_connection_open()
5879         (dbus_connection_open): now returns an existing connection if
5880         possible
5881
5882         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
5883         through the GUID to the transport
5884
5885         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
5886         GUID in hex-encoded form.
5887
5888         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5889         pass GUID argument in to the transport
5890
5891         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
5892         guid argument
5893
5894         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
5895
5896         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
5897
5898 2005-02-25  Havoc Pennington  <hp@redhat.com>
5899
5900         * doc/dbus-specification.xml: document the GUID thing
5901
5902         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
5903         globally unique ID for the server, and put a "guid=hexencoded"
5904         field in the address
5905
5906         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
5907
5908         * dbus/dbus-message.c: ditto
5909
5910         * dbus/dbus-dataslot.c: ditto
5911
5912         * dbus/dbus-list.c: ditto
5913
5914         * dbus/dbus-internals.h: wait, just include
5915         dbus-threads-internal.h here
5916         
5917         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
5918         use in main library
5919
5920         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
5921
5922 2005-02-24  Colin Walters  <walters@verbum.org>
5923
5924         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
5925
5926 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
5927
5928         * glib/Makefile.am: added dbus-gobject.h to sources list
5929         so distcheck doesn't fail
5930         
5931 2005-02-24  Havoc Pennington  <hp@redhat.com>
5932
5933         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
5934         you must disconnect before unref, since locking and other things
5935         are screwed up otherwise. Fix assorted other locking stuff.
5936
5937         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
5938         fix compilation
5939
5940         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
5941         into a private header and don't export from the library
5942
5943         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
5944
5945 2005-02-24  Colin Walters  <walters@verbum.org>
5946         
5947         * dbus/dbus-signature.c: New file; implements various functions
5948         related to type signatures.  Includes an interator for parsing,
5949         validation functions.
5950         (dbus_type_is_basic): Moved here from
5951         dbus-marshal-basic.c:_dbus_type_is_basic.
5952         (dbus_type_is_container): Moved here from
5953         dbus-marshal-basic.c:_dbus_type_is_container.
5954
5955         All callers of _dbus_type_is_container and _dbus_type_is_basic
5956         updated, and include dbus-signature.h.
5957
5958         * dbus/dbus-signature.h: New file; prototypes for the above.
5959
5960         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
5961         dbus-signature.h.
5962
5963         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
5964         function factored out of _dbus_first_type_in_signature.
5965         (_dbus_first_type_in_signature_c_str): New function; returns first
5966         type code for a type signature character.
5967
5968         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
5969         handle function moves.
5970
5971         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
5972
5973         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
5974         function; skips to next complete type in type signature.
5975         Implemented using previous skip_one_complete_type.  Now
5976         skip_one_complete_type just delegates to
5977         _dbus_type_signature_next.
5978
5979         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
5980         to dbus-signature.c
5981         (_dbus_type_is_container): Ditto.
5982
5983         * doc/dbus-specification.xml: Update introspection sample to
5984         use real type signatures.
5985
5986         * dbus/dbus-test.h: Prototype signature test.
5987
5988         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
5989         signature tests.
5990
5991         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
5992
5993 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
5994
5995         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
5996         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
5997
5998 2005-02-21  Colin Walters  <walters@verbum.org>
5999
6000         * dbus/dbus-test-main.c (main): Take optional specific test
6001         argument.
6002
6003         * dbus/dbus-test.c (run_test): New function, runs a test function
6004         with no data directory.
6005         (run_data_test): Like above, but takes data directory.
6006         (dbus_internal_do_not_use_run_tests): Take
6007         specific test argument.  Replace lots of cut n' paste code
6008         with run_test and run_data_test.
6009
6010         * dbus/dbus-test.h: Update prototype for
6011         dbus_internal_do_not_use_run_tests.
6012
6013 2005-02-20  Havoc Pennington  <hp@redhat.com>
6014
6015         Fix bugs reported by Daniel P. Berrange
6016         
6017         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
6018         (protected_change_watch): new function
6019         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
6020         (_dbus_server_add_watch): change to work like the
6021         dbus-connection.c equivalents; like those, probably kind of
6022         busted, but should at least mostly work for now
6023         (dbus_server_disconnect): drop the lock if we were already
6024         disconnected, patch from Daniel P. Berrange
6025
6026         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
6027         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
6028         same stuff
6029
6030         * doc/TODO: todo about unscrewing this mess
6031
6032 2005-02-19  Colin Walters  <walters@verbum.org>
6033
6034         * glib/dbus-binding-tool-glib.c
6035         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
6036
6037         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
6038         as errno.h and sys/stat.h.
6039         (lose): New function, prints error with
6040         newline and exits.
6041         (lose_gerror): Similar, but takes GError for message.
6042         (main): Add --output argument to specify output file to write to,
6043         instead of always printing to stdout.  In this mode, determine
6044         timestamps on source files to see whether any are newer than the
6045         target file.  If not, exit.  Also convert a number of error
6046         messages to use lose (since it's shorter), and switch to using
6047         g_io_channel_shutdown.
6048
6049 2005-02-19  Havoc Pennington  <hp@redhat.com>
6050
6051         * glib/dbus-gobject.c
6052         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
6053
6054         * glib/dbus-glib.c: fix doxygen warnings
6055
6056         * glib/dbus-gparser.c (parse_annotation): error if an annotation
6057         is found on an <arg>
6058
6059 2005-02-17  Colin Walters  <walters@verbum.org>
6060
6061         * glib/dbus-gobject.h: Don't export
6062         _dbus_glib_marshal_dbus_message_to_gvalue_array.
6063         
6064         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
6065         (invoke_object_method): Handle it.
6066
6067         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
6068         Handle rename.
6069         
6070 2005-02-17  Colin Walters  <walters@verbum.org>
6071
6072         * bus/.cvsignore, doc/.cvsignore
6073         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
6074         Update.
6075
6076 2005-02-17  Colin Walters  <walters@verbum.org>
6077         
6078         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
6079         Rename to DBUS_SERVICE_DBUS.
6080         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
6081         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
6082         Change the value from "org.freedesktop.Local"
6083         to "org.freedesktop.DBus.Local".
6084         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
6085         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
6086         DBUS_INTERFACE_INTROSPECTABLE.
6087         Change the value from "org.freedesktop.Introspectable"
6088         to "org.freedesktop.DBus.Introspectable".
6089         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
6090         DBUS_INTERFACE_PROPERTIES.
6091         Change the value from "org.freedesktop.Properties"
6092         to "org.freedesktop.DBus.Properties".
6093         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
6094         DBUS_INTERFACE_PEER.
6095         Change the value from "org.freedesktop.Peer"
6096         to "org.freedesktop.DBus.Peer".
6097         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
6098         DBUS_INTERFACE_LOCAL.
6099         Change the value from "org.freedesktop.Local"
6100         to "org.freedesktop.DBus.Local".
6101
6102         All other users of those constants have been changed.
6103
6104         * bus/driver.c (bus_driver_handle_introspect): Use constants.
6105
6106         * glib/dbus-gobject.c (handle_introspect): Use constants.
6107
6108         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
6109
6110 2005-02-17  Colin Walters  <walters@verbum.org>
6111
6112         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
6113         (parse_node, parse_interface, parse_method, parse_signal)
6114         (parse_property, parse_annotation): Lose if we're currently in an
6115         annotation.
6116         (parse_annotation): New function.
6117         (parser_start_element, parser_end_element): Handle annotation.
6118         (parse_method, parse_interface): Remove support for c_name attribute,
6119         switch to annotations.
6120
6121         * glib/dbus-gidl.h (interface_info_get_binding_names)
6122         (method_info_get_binding_names)
6123         (interface_info_get_binding_name, method_info_get_binding_name)
6124         (interface_info_set_binding_name, method_info_set_binding_name):
6125         Remove.
6126         (interface_info_get_annotations, method_info_get_annotations)
6127         (interface_info_get_annotation, method_info_get_annotation)
6128         (interface_info_add_annotation, method_info_add_annotation):
6129         Prototype.
6130
6131         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
6132         for "bindings".
6133         (struct MethodInfo): Ditto.
6134         Straightfoward conversion of binding methods into annotation methods
6135         as prototyped.
6136
6137         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
6138
6139         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
6140
6141         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
6142         Use new annotation API.
6143
6144         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
6145         annotation element.
6146         
6147         * doc/dbus-specification.xml: Discuss introspection annotations,
6148         include list of well-known annotations.
6149
6150         * test/glib/test-service-glib.xml: Make validate against new DTD.
6151
6152 2005-02-17  Colin Walters  <walters@verbum.org>
6153
6154         This patch is based on initial work from
6155         Paul Kuliniewicz <kuliniew@purdue.edu>.
6156
6157         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
6158         initialization of GValue from dbus type to here.
6159         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
6160         for the "glib-genmarshal" program from a DBus type.
6161         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
6162         into the C name for it we use in the glib bindings.
6163         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
6164         glib C type (not GValue).
6165         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
6166
6167         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
6168         from dbus-gobject.c.
6169
6170         * glib/dbus-gutils.h: Prototype it.
6171
6172         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
6173         (marshal_dbus_message_to_g_marshaller): Use new shared function
6174         dbus_glib_marshal_dbus_message_to_gvalue_array.
6175
6176         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
6177         Will be changed once we have annotations.
6178
6179         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
6180         GStaticRWLock.  Callers updated.
6181         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
6182         (string_table_next): New function for iterating over zero-terminated
6183         string value array.
6184         (string_table_lookup): New function; retrieves specific entry in
6185         array.
6186         (get_method_data): New function; look up method data in object data chunk.
6187         (object_error_domain_prefix_from_object_info)
6188         (object_error_code_from_object_info): New functions, but not implemented yet.
6189         (method_interface_from_object_info): New function; retrieve interface name.
6190         (method_name_from_object_info): New function; retrieve method name.
6191         (method_arg_info_from_object_info): New function; retrieve argument data.
6192         (arg_iterate): New function; iterates over serialized argument data.
6193         (method_dir_signature_from_object_info): New function; returns a
6194         GString holding type signature for arguments for just one
6195         direction (input or output).
6196         (method_input_signature_from_object_info)
6197         (method_output_signature_from_object_info): New functions.
6198         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
6199         converts dbus message arguments into a GValue array.  Used for both
6200         signal handling and method invocation.
6201         (struct DBusGlibWriteIterfaceData): New utility structure.
6202         (write_interface): New function; generate introspection XML for
6203         an interface.
6204         (introspect_interfaces): New function; gathers all interface->methods,
6205         generates introspection XML for them.
6206         (handle_introspect): Invoke introspect_interfaces.
6207         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
6208         (lookup_object_and_method): New function; examines an incoming message
6209         and attempts to match it up (via interface, method name, and argument
6210         signature) with a known object and method.
6211         (gerror_domaincode_to_dbus_error_name): New function; converts a
6212         GError domain and code into a DBus error name.  Needs GError data
6213         added to object introspection to work well.
6214         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
6215         GError.
6216         (invoke_object_method): New function to invoke an object method
6217         looked up via lookup_object_and_method.  Parses the incoming
6218         message, turns it into a GValue array, then invokes the marshaller
6219         specified in the DBusGMethodInfo.  Creates a new message with
6220         either return values or error message as appropriate.
6221         (gobject_message_function): Invoke lookup_object_and_method and
6222         invoke_object_method.
6223
6224         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
6225         (enum DBusBindingOutputMode): New enum for binding output modes.
6226         (pretty_print): Print binding names.
6227         (dbus_binding_tool_error_quark): GError bits.
6228         (version): Fix typo.
6229         (main): Create GIOChannel for output.  Parse new --mode argument,
6230         possible values are "pretty-print", "glib-server", "glib-client".
6231         Use mode to invoke appropriate function.
6232         
6233         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
6234
6235         * glib/dbus-glib-tool.h: New header, just includes GError bits
6236         for now.
6237
6238         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
6239         maps binding style to name.
6240         (struct MethodInfo): Ditto.
6241         (get_hash_keys, get_hash_key): Utility function, returns keys for
6242         a GHashTable.
6243         (interface_info_new, method_info_new): Initialize bindings.
6244         (interface_info_unref, method_info_unref): Destroy bindings.
6245         (method_info_get_binding_names, method_info_get_binding_name)
6246         (interface_info_get_binding_names, interface_info_get_binding_name):
6247         Functions for retrieving binding names.
6248         (method_info_set_binding_name, interface_info_set_binding_name):
6249         Functions for setting binding names.
6250
6251         * glib/dbus-binding-tool-glib.h: New file, has prototypes
6252         for glib binding generation.
6253
6254         * glib/dbus-binding-tool-glib.c: New file, implements server-side
6255         and client-side glib glue generation.
6256
6257         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
6258         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
6259         dbus-glib-tool.h.
6260
6261         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
6262         of using GClosureMarshal directly.
6263         (struct DBusGObjectInfo): Add n_infos member.
6264
6265         * test/glib/test-service-glib.xml: New file; contains introspection data
6266         for MyTestObject used in test-service-glib.c.
6267
6268         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
6269         (my_object_do_nothing, my_object_increment, my_object_throw_error)
6270         (my_object_uppercase, my_object_many_args): New test methods.
6271         (main): Use dbus_g_object_class_install_info to include generated object
6272         info.
6273
6274         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
6275         as well as client-side bindings.
6276
6277         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
6278         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
6279         using both the dbus_gproxy stuff directly as well as the generated bindings.
6280
6281 2005-02-15  Havoc Pennington  <hp@redhat.com>
6282
6283         * dbus/dbus-connection.c (dbus_connection_dispatch): always
6284         complete a pending call, don't run filters first.
6285
6286         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
6287         dbus_pending_call_steal_reply
6288
6289         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
6290         _dbus_connection_block_pending_call
6291         (dbus_pending_call_get_reply): change to steal_reply and return a
6292         ref
6293
6294         * dbus/dbus-connection.c
6295         (dbus_connection_send_with_reply_and_block): port to work in terms
6296         of DBusPendingCall
6297         (_dbus_connection_block_pending_call): replace block_for_reply
6298         with this
6299
6300 2005-02-14  Havoc Pennington  <hp@redhat.com>
6301
6302         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
6303         properly handle looking up group information by name; fix 
6304         from j@bootlab.org
6305
6306 2005-02-13  Havoc Pennington  <hp@redhat.com>
6307
6308         * dbus/dbus-connection.c (dbus_connection_return_message) 
6309         (dbus_connection_borrow_message): hold dispatch lock while message
6310         is outstanding
6311         (_dbus_connection_block_for_reply): hold dispatch lock while we
6312         block for the reply, so nobody steals our reply
6313         (dbus_connection_pop_message): hold the dispatch lock while we
6314         pluck the message
6315
6316 2005-02-13  Havoc Pennington  <hp@redhat.com>
6317
6318         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
6319         (_dbus_connection_release_dispatch)
6320         (_dbus_connection_acquire_io_path)
6321         (_dbus_connection_release_io_path): make the mutex and condvar
6322         control access to the "acquired" flag. Drop the connection lock
6323         while waiting on the condvar. Hopefully these are baby steps in
6324         roughly the right direction.
6325
6326 2005-02-13  Havoc Pennington  <hp@redhat.com>
6327
6328         * dbus/dbus-connection.c: use separate mutexes for the condition
6329         variables; this is some kind of baseline for sanity, but the
6330         condition variables still aren't used correctly afaict
6331
6332 2005-02-13  Havoc Pennington  <hp@redhat.com>
6333
6334         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6335         fix a double-unlock
6336
6337         * dbus/dbus-connection.c
6338         (_dbus_connection_detach_pending_call_unlocked): add this
6339
6340         Initial semi-correct pass through to fix thread locking; there are
6341         still some issues with the condition variable paths I'm pretty
6342         sure
6343         
6344         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
6345         lock/unlock calls
6346
6347         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
6348         rename to add _unlocked
6349         (struct DBusConnection): move "dispatch_acquired" and
6350         "io_path_acquired" to use only one bit each.
6351         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
6352         (dbus_connection_set_watch_functions): hacky fix to reentrancy
6353         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
6354         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
6355         (_dbus_connection_remove_timeout) 
6356         (_dbus_connection_toggle_timeout): drop lock when calling out to
6357         user functions; done in a hacky/bad way.
6358         (_dbus_connection_send_and_unlock): add a missing unlock
6359         (_dbus_connection_block_for_reply): add a missing unlock
6360
6361         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
6362         drop lock in a hacky probably unsafe way to call out to user
6363         function
6364
6365 2005-02-12  Havoc Pennington  <hp@redhat.com>
6366
6367         * tools/dbus-tree-view.c (info_set_func_text): display more
6368         details on args
6369
6370         * bus/driver.c (bus_driver_handle_list_services): list the bus
6371         driver
6372
6373         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
6374
6375         * glib/dbus-gidl.c (signal_info_get_n_args): new function
6376         (method_info_get_n_args): new function
6377
6378 2005-02-12  Havoc Pennington  <hp@redhat.com>
6379
6380         * bus/driver.c (bus_driver_handle_introspect): add introspection
6381         for bus driver
6382
6383 2005-02-12  Havoc Pennington  <hp@redhat.com>
6384
6385         * bus/driver.c: put the signature of each bus driver method in the
6386         table of handlers and check it on incoming calls; this isn't
6387         really useful, but going to add introspect support in a minute.
6388
6389 2005-02-11  Joe Shaw  <joeshaw@novell.com>
6390
6391         * mono/Connection.cs: The unpredictability of finalizers in mono
6392         prevents us from deterministically disconnecting the filters from
6393         the Service class's finalizer, so move tracking of filters and
6394         matches here.  Add API for that.
6395
6396         * mono/Service.cs: Remove the code, add code which calls the
6397         methods now on the Connection class.
6398
6399 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
6400
6401         * python/dbus.py (class Sender): added to support dbus signals better
6402         (Bus::add_signal_receiver): added expand_args parameter which defaults
6403         to True.  When expand args is True the signal handler will pass the 
6404         message arguments as parameters to the signal handler.  If False
6405         revert to previous behavior where the signal handler must get the
6406         argument list from the message.  This is to help port applications
6407         like HAL that have a tendancy to send variable length argument lists.
6408         self._match_rule_to_receivers is now a dict of dicts.
6409         (Bus::remove_signal_receiver): pop handler off the dict intead of 
6410         removing it from a list
6411         (Bus::_signal_func): change signal handlers so that interface,
6412         signal_name, service, path and message are packed into a Sender
6413         object and that is passed to the handler.  If expand_args is True
6414         extract the args list from the message and append it to the parameter
6415         list
6416         
6417         * python/dbus_bindings.pyx.in (class Signature): added to support 
6418         signiature types
6419         (MessageIter::__init__): changed iteration limit to match D-BUS
6420         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
6421         STRUCT and VARIENT type support
6422         (MessageIter::python_value_to_dbus_sig): made recursive to support
6423         recursive types
6424         (MessageIter::append*): added Signature, dict, tuple 
6425         support
6426
6427         * python/examples/example-client.py: added examples of getting tuples
6428         and dicts
6429
6430         * python/examples/example-service.py: added examples of sending tuples
6431         and dicts
6432
6433         * python/examples/example-signal-recipient.py: Fixed to handle new
6434         signal callback format
6435
6436 2005-02-10  Havoc Pennington  <hp@redhat.com>
6437
6438         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
6439         (call dbus_g_proxy_add_signal)
6440
6441         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6442         escape the hostname
6443         (_dbus_server_new_for_domain_socket): escape the path
6444
6445         * dbus/dbus-address.c (dbus_address_escape_value): new
6446         (dbus_address_unescape_value): new
6447         (dbus_parse_address): unescape values
6448
6449         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
6450
6451         * doc/dbus-specification.xml: explain how to escape values in
6452         addresses
6453
6454 2005-02-10  Havoc Pennington  <hp@redhat.com>
6455
6456         * dbus/dbus-message-factory.c (generate_special): modify test to
6457         avoid using a non-basic dict key
6458
6459         * dbus/dbus-marshal-validate-util.c: add test for the below
6460
6461         * doc/dbus-specification.xml: require that dict keys are a basic
6462         type
6463
6464         * dbus/dbus-marshal-validate.c
6465         (_dbus_validate_signature_with_reason): require that dict key is a
6466         basic type
6467
6468 2005-02-10  Havoc Pennington  <hp@redhat.com>
6469
6470         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
6471         change to be _and_unlock instead of _unlocked
6472
6473         * dbus/dbus-connection.c
6474         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
6475         have no_update so we can find this bug quickly in future
6476
6477 2005-02-10  Havoc Pennington  <hp@redhat.com>
6478
6479         * dbus/dbus-message-util.c (verify_test_message): tests for string
6480         array
6481
6482         * dbus/dbus-message.c (dbus_message_append_args_valist): add
6483         support for arrays of string/signature/path
6484
6485 2005-02-10  Joe Shaw  <joeshaw@novell.com>
6486
6487         * dbus/dbus-connection.c
6488         (_dbus_connection_queue_received_message_link,
6489         _dbus_connection_message_sent): Add the path to
6490         the verbose output.
6491         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
6492         _dbus_connection_send_preallocated_unlocked(), updated the
6493         dispatch status, and unlocks.  Fixes a bug where certain
6494         situations (like a broken pipe) could cause a Disconnect message
6495         to not be sent, tricking the bus into thinking a service was still
6496         there when the process had quit.
6497         (_dbus_connection_send_preallocated): Call
6498         _dbus_connection_send_preallocated_and_unlock().
6499         (_dbus_connection_send_and_unlock): Added.  Calls
6500         _dbus_connection_send_preallocated_and_unlock().
6501         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
6502         (dbus_connection_send_with_reply): Update the dispatch status and
6503         unlock.
6504
6505         * mono/Service.cs (~Service): Added.  Removes the filter so that
6506         we don't get unmanaged code calling back into a GCed delegate.
6507         (RemoveFilter); Added.
6508
6509 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
6510
6511         * dbus/dbus-message.c (dbus_message_iter_open_container):
6512         - Removed check for iterator type being an array because
6513         get_arg_type does not work with writer iterators
6514         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
6515
6516 2005-02-07  Havoc Pennington  <hp@redhat.com>
6517
6518         * doc/dbus-specification.xml: some more language cleanups; add
6519         stuff about how to deal with invalid protocol and extension
6520         points; add _ to allowed chars in auth commands; add EXTENSION_
6521         auth command prefix
6522
6523 2005-02-06  Havoc Pennington  <hp@redhat.com>
6524
6525         * s/expected/required/ in a couple places for clarity
6526
6527 2005-02-07  Colin Walters  <walters@verbum.org>
6528
6529         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
6530         sender or proposed_recipient.
6531
6532 2005-02-06  Havoc Pennington  <hp@redhat.com>
6533
6534         * dbus/dbus-message-factory.c (generate_special): more tests
6535
6536         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
6537         array length that exceeds the maximum
6538
6539 2005-02-05  Havoc Pennington  <hp@redhat.com>
6540
6541         * dbus/dbus-message-factory.c (generate_special): more test cases,
6542         increasing coverage
6543
6544         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
6545         reason why a signature was invalid
6546
6547         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
6548         skip the length of the string before we look at it in validation
6549
6550         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
6551         equal_substring
6552
6553         * dbus/dbus-message.c (_dbus_message_loader_new): default
6554         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
6555
6556 2005-02-05  Havoc Pennington  <hp@redhat.com>
6557
6558         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
6559         if the signature of a variant was empty
6560         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
6561         struct with no element type)
6562
6563         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
6564         mangled messages to break things
6565
6566 2005-02-04  Havoc Pennington  <hp@redhat.com>
6567
6568         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
6569         g_quark_try_string() so it actually can return 0
6570         (dbus_g_proxy_connect_signal): ditto
6571
6572 2005-02-04  Havoc Pennington  <hp@redhat.com>
6573
6574         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
6575         bogus warning
6576         (tristring_from_message): assert cleanly on null path/interface
6577         (should not be possible though I decided later)
6578         (dbus_g_proxy_dispose): move proxy manager unregistration here
6579         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
6580         g_return_if_fail() checks
6581
6582 2005-02-04  Havoc Pennington  <hp@redhat.com>
6583
6584         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
6585
6586         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
6587         (with some minor changes)
6588
6589         * doc/dbus-specification.xml: add deprecated attribute to
6590         introspection format
6591
6592 2005-01-31  Havoc Pennington  <hp@redhat.com>
6593
6594         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
6595         think it's sort of right
6596
6597 2005-01-30  Havoc Pennington  <hp@redhat.com>
6598
6599         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
6600
6601 2005-01-30  Havoc Pennington  <hp@redhat.com>
6602
6603         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
6604
6605         * autogen.sh: change to autotools 1.9
6606
6607         * glib/dbus-gproxy.c: completely change how signals work
6608         (dbus_g_proxy_add_signal): new function to specify signature of a
6609         signal
6610         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
6611         and g_warning if the incoming message has the wrong signature.
6612
6613 2005-01-30  Havoc Pennington  <hp@redhat.com>
6614
6615         * tools/dbus-names-model.c (have_names_notify): fix this
6616
6617         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
6618         up the string array handling a bit 
6619
6620 2005-01-30  Havoc Pennington  <hp@redhat.com>
6621
6622         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
6623         (dbus_g_pending_call_cancel): new function
6624
6625         * dbus/dbus-glib.h: move GType decls for connection/message here;
6626         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
6627         here, just kind of rationalizing how we handle all that
6628
6629         * tools/dbus-names-model.c: new file for a tree model listing the
6630         services on a bus
6631
6632         * tools/dbus-tree-view.c (model_new): use proper typing on the
6633         model rows
6634
6635 2005-01-30  Havoc Pennington  <hp@redhat.com>
6636
6637         * glib/dbus-gmain.c: add a custom GSource back that just checks
6638         whether the message queue has anything in it; otherwise, there are 
6639         cases where we won't see messages in the queue since there was no 
6640         IO visible to the glib main loop
6641
6642         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
6643         increase default message timeout to 25 seconds
6644
6645 2005-01-30  Havoc Pennington  <hp@redhat.com>
6646
6647         * test/glib/test-profile.c (no_bus_stop_server): remove the
6648         warning about the g_warning that I just fixed
6649
6650         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
6651         custom source, seems to be a lot easier to understand and work
6652         better.
6653
6654 2005-01-30  Havoc Pennington  <hp@redhat.com>
6655
6656         I think this main loop thing is conceptually broken, but here are 
6657         some band aids. I'll maybe rewrite it in a minute.
6658         
6659         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
6660         custom GSource, so don't pass it in; confusing
6661         (gsource_server_finalize, gsource_connection_finalize): add
6662         finalize handlers that remove all the watches.  
6663
6664 2005-01-30  Havoc Pennington  <hp@redhat.com>
6665
6666         * glib/dbus-gobject.c (introspect_properties): fix the XML
6667         generated
6668
6669         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
6670         which effectively detects the use of freed messages
6671
6672         * glib/dbus-gobject.c (handle_introspect): modify and return the
6673         reply message instead of the incoming message
6674
6675         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
6676         gee, maybe it should SEND THE XML instead of just making a string
6677         and freeing it again ;-)
6678
6679         * tools/dbus-print-message.c (print_message): improve printing of
6680         messages
6681
6682         * configure.in: add debug-glib.service to the output
6683
6684 2005-01-30  Havoc Pennington  <hp@redhat.com>
6685
6686         dbus-viewer introspected and displayed the bus driver
6687         
6688         * dbus/dbus-object-tree.c 
6689         (object_tree_test_iteration): add tests for a handler registered on "/"
6690
6691         * dbus/dbus-object-tree.c
6692         (_dbus_decompose_path): fix to handle path "/" properly
6693         (run_decompose_tests): add tests for path decomposition
6694         
6695         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
6696         properly
6697
6698         * glib/dbus-gobject.c (handle_introspect): fix quotes
6699
6700         * test/glib/run-test.sh: support launching the bus, then running
6701         dbus-viewer
6702
6703         * test/glib/test-service-glib.c (main): put in a trivial gobject
6704         subclass and register it on the connection
6705
6706         * bus/driver.c (bus_driver_handle_introspect): implement
6707         introspection of the bus driver service
6708
6709         * dbus/dbus-protocol.h: add #defines for the XML namespace,
6710         identifiers, doctype decl
6711
6712         * bus/driver.c (bus_driver_handle_get_service_owner): handle
6713         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
6714         returning the service unchanged.
6715         (bus_driver_handle_message): remove old check for reply_serial in
6716         method calls, now the message type deals with that
6717         (bus_driver_handle_message): handle NULL interface
6718
6719         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
6720
6721         * glib/dbus-gloader-expat.c (description_load_from_string): allow
6722         -1 for len
6723
6724         * tools/dbus-viewer.c: add support for introspecting a service on
6725         a bus
6726
6727         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
6728         (dbus_g_pending_call_unref): add
6729
6730 2005-01-29  Havoc Pennington  <hp@redhat.com>
6731
6732         * tools/dbus-tree-view.c: add support for displaying properties.
6733         (run dbus-viewer with an introspect xml file as arg, then resize
6734         the window so the tree elements show up, not sure what that is)
6735
6736         * glib/dbus-gobject.c (handle_introspect): return
6737         org.freedesktop.Properties and org.freedesktop.Introspectable
6738         interfaces when we are introspected.
6739
6740         * doc/dbus-specification.xml: allow empty interface name when 
6741         Get/Set a property
6742
6743 2005-01-29  Havoc Pennington  <hp@redhat.com>
6744
6745         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
6746         though it uses glib, it could be extended for any binding in
6747         principle
6748
6749         * glib/dbus-gobject.c (gobject_message_function): change to the
6750         new way properties work
6751
6752         * dbus/dbus-protocol.h: add the new interfaces
6753
6754         * doc/dbus-specification.xml: document the introspection format,
6755         Introspectable interface, and add an org.freedesktop.Properties
6756         interface.
6757
6758         * glib/dbus-gparser.c: add support for a <property> element
6759
6760         * glib/dbus-gidl.c: add PropertyInfo
6761
6762         * glib/dbus-gobject.c (handle_introspect): put the outermost
6763         <node> outside the signal and property descriptions.
6764         (introspect_properties): export properties as <property> rather
6765         than as method calls
6766
6767 2005-01-28  Havoc Pennington  <hp@redhat.com>
6768
6769         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
6770         related to authentication protocol
6771
6772 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
6773
6774         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
6775                 - BUS_ACTIVATION -> BUS_STARTER
6776                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
6777                 - class MessageIter (__init__): Added recursion checking 
6778                 so we throw a nice error instead of just disconnecting from the
6779                 bus.
6780                 (get): Added arg_type parameter for recursion.
6781                 Removed the nil type
6782                 Added signiture type placeholder (not implemented)
6783                 Added struct type placeholder (not implemented)
6784                 Added varient type placeholder (not implemented)
6785                 Commented out dict type for now     
6786                 (get_element_type): renamed from get_array_type
6787                 (get_*): changed to use the dbus_message_iter_get_basic API
6788                 (get_*_array): removed in favor of recursive get_array method
6789                 (get_array): new recursive method which calls get to marshal
6790                 the elements of the array
6791                 (value_to_dbus_sig): New method returns the corrasponding
6792                 dbus signiture to a python value
6793                 (append): Comment out dict handling for now
6794                 Handle lists with the new recursive API
6795                 Comment out None handling for now
6796                 (append_nil): removed
6797                 (append_*): changed to use dbus_message_iter_append_basic API
6798                 (append_*_array): removed in favor of recursive append_array 
6799                 method
6800                 (__str__): Make it easier to print out recursive iterators
6801                 for debugging
6802                 - class Message (__str__): moved type inspection to the
6803                 MessageIter class' __str__ method
6804                 (get_iter): Added an append parameter wich defaults to False
6805                 If True use the new API's to create an append iterator
6806
6807         * python/dbus.py: Update to use new bindings API
6808                 - TYPE_ACTIVATION -> TYPE_STARTER
6809                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
6810                 - class ActivationBus -> class StarterBus
6811                 - class RemoteObject (__call__): get an append iterator
6812                 - (_dispatch_dbus_method_call): get an append iterator
6813                 - class Object (emit_signal): get an append iterator
6814
6815         * python/examples/: Fixed up the examples to work with the new API
6816                 
6817 2005-01-28  Joe Shaw  <joeshaw@novell.com>
6818
6819         * configure.in: Bump version up to 0.30.
6820
6821         * HACKING: Add a release item to bump the version number up after 
6822         a release.
6823
6824 2005-01-28  Havoc Pennington  <hp@redhat.com>
6825
6826         * doc/dbus-specification.xml: update to describe 16-bit types and
6827         dict entries
6828
6829         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
6830         assertion
6831
6832         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
6833         type
6834
6835         * dbus/dbus-marshal-recursive.c: implement
6836
6837 2005-01-27  Havoc Pennington  <hp@redhat.com>
6838
6839         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
6840
6841         * configure.in: find the right type for 16 and 32 bit ints as well
6842         as 64
6843
6844         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
6845         the 16-bit types so people don't have to stuff them in 32-bit or
6846         byte arrays.
6847
6848 2005-01-27  Havoc Pennington  <hp@redhat.com>
6849
6850         * dbus/dbus-message.c: byteswap the message if you init an
6851         iterator to read/write from it
6852         
6853         * dbus/dbus-marshal-byteswap.c: new file implementing 
6854         _dbus_marshal_byteswap()
6855
6856         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
6857
6858 2005-01-26  Havoc Pennington  <hp@redhat.com>
6859         
6860         * dbus/dbus-marshal-validate-util.c: break this out (and fix
6861         build, apparently - nobody noticed?)
6862         
6863 2005-01-26  Havoc Pennington  <hp@redhat.com>
6864
6865         * dbus/dbus-marshal-recursive.h: remove todo comment
6866
6867 2005-01-25  Joe Shaw  <joeshaw@novell.com>
6868
6869         * Land the mono binding changes to conform to the new APIs.
6870
6871         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
6872         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
6873
6874         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
6875         type code as a string.
6876         (InitAppending): Rename dbus_message_append_iter_init() to
6877         dbus_message_iter_init_append().
6878
6879         * mono/BusDriver.cs: Rename ServiceEventHandler to
6880         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
6881         Rename ServiceOwnerChanged to NameOwnerChanged.
6882
6883         * mono/Connection.cs: Rename BaseService to UniqueName, and the
6884         underlying C call.
6885
6886         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
6887
6888         * mono/Service.cs: Rename Exists to HasOwner, internally rename
6889         dbus_bus_acquire_service() to dbus_bus_request_name().
6890
6891         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
6892         of Type.UnderlyingSystemType to get the correct element type for
6893         the array.
6894         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
6895         dbus_message_get_{element|arg}_type() instead of
6896         dbus_message_iter_init_array_iterator().
6897         (Append): Replace dbus_message_iter_append_array() with
6898         dbus_message_iter_open_container() and
6899         dbus_message_iter_close_container().
6900
6901         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
6902         types have been removed.
6903         
6904         * mono/DBusType/*.cs: Replace calls of
6905         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
6906         but specify the type in the DllImport extern declaration.  Ditto
6907         for dbus_message_iter_append_[type]() ->
6908         dbus_message_iter_append_basic().
6909
6910         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
6911         NameOwnerChangedHandler.
6912
6913 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
6914
6915         * python/dbus_bindings.pyx.in: Rename of methods and bindings
6916                 - get_base_service -> get_unique_name
6917                 - bus_get_base_service -> bus_get_unique_name
6918                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
6919                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
6920                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
6921                 - bus_activate_service -> bus_start_service_by_name
6922                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
6923                 - bus_acquire_service -> bus_request_name
6924                 - dbus_bus_acquire_service -> dbus_bus_request_name
6925                 - bus_service_exists -> bus_name_has_owner
6926                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
6927
6928         * python/dbus.py: Rename of methods
6929                 - activate_service -> start_service_by_name
6930                 - bus_acquire_service -> bus_request_name
6931                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
6932                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
6933
6934         
6935 2005-01-24  Joe Shaw  <joeshaw@novell.com>
6936
6937         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
6938         signature for the method that can't be found.
6939
6940         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
6941         the message has any arguments, we need to call
6942         _dbus_type_reader_get_current_type(), not
6943         _dbus_type_reader_has_next().
6944
6945 2005-01-24  Havoc Pennington  <hp@redhat.com>
6946
6947         * dbus/dbus-message-factory.c: more testing of message validation
6948
6949         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
6950         header
6951
6952 2005-01-23  Havoc Pennington  <hp@redhat.com>
6953
6954         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
6955         get this all working, not many tests in the framework yet though
6956
6957 2005-01-22  Havoc Pennington  <hp@redhat.com>
6958
6959         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
6960         tutorial, based on work from David Wheeler.
6961
6962 2005-01-21  Havoc Pennington  <hp@redhat.com>
6963
6964         * dbus/dbus-bus.c: add more return_if_fail checks
6965
6966         * dbus/dbus-message.c (load_message): have the "no validation"
6967         mode (have to edit the code to toggle the mode for now though)
6968
6969         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
6970         skips all validation; I want to use this at least for benchmark
6971         baseline, I'm not sure if it should be a publicly-available switch.
6972
6973 2005-01-21  Havoc Pennington  <hp@redhat.com>
6974
6975         * glib/dbus-gmain.c: don't put the GLib bindings in the same
6976         toplevel doxygen group as the low-level API stuff
6977
6978         * dbus/dbus.h: note that libdbus is the low-level API
6979
6980 2005-01-20  Havoc Pennington  <hp@redhat.com>
6981
6982         * update-dbus-docs.sh: script to update docs on the web site, only
6983         works for me though. neener.
6984
6985 2005-01-20  Havoc Pennington  <hp@redhat.com>
6986
6987         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
6988         code can reveal bugs in it
6989
6990 2005-01-20  Havoc Pennington  <hp@redhat.com>
6991
6992         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
6993         select() version, patches from Tor Lillqvist
6994
6995 2005-01-20  Havoc Pennington  <hp@redhat.com>
6996
6997         * doc/dbus-tutorial.xml: replace > with &gt;
6998
6999         * bus/services.c (bus_registry_acquire_service): validate the name
7000         and return a better error if it's no good.
7001
7002         * doc/dbus-specification.xml: note NO_AUTO_START change
7003
7004         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
7005         from AUTO_START, we're toggling the default
7006
7007         * bus/dispatch.c: adapt the tests to change of auto-start default
7008
7009 2005-01-18  Havoc Pennington  <hp@redhat.com>
7010
7011         * rename dbus-daemon-1 to dbus-daemon throughout
7012
7013 2005-01-18  Havoc Pennington  <hp@redhat.com>
7014
7015         * Throughout, grand renaming to strip out the use of "service",
7016         just say "name" instead (or "bus name" when ambiguous).  Did not
7017         change the internal code of the message bus itself, only the
7018         programmer-facing API and messages.
7019         
7020         * doc/dbus-specification.xml: further update the message bus section
7021         
7022         * bus/config-parser.c (all_are_equiv): fix bug using freed string
7023         in error case
7024
7025 2005-01-17  Havoc Pennington  <hp@redhat.com>
7026
7027         * dbus/dbus-types.h: remove 16-bit types since we don't use them
7028         ever
7029
7030         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7031         "invalid name character" not only non-ASCII
7032
7033         * doc/dbus-specification.xml: further update spec, message bus 
7034         parts are still out-of-date but the marshaling etc. stuff is now
7035         accurate-ish
7036
7037 2005-01-17  Havoc Pennington  <hp@redhat.com>
7038
7039         * doc/dbus-specification.xml: partially update spec
7040
7041 2005-01-17  Havoc Pennington  <hp@redhat.com>
7042
7043         * Throughout, align variant bodies according to the contained
7044         type, rather than always to 8. Should save a fair bit of space in
7045         message headers.
7046         
7047         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
7048         fix handling of case where p == end
7049
7050         * doc/TODO: remove the dbus_bool_t item and variant alignment items
7051
7052 2005-01-17  Havoc Pennington  <hp@redhat.com>
7053
7054         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
7055
7056         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
7057         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
7058         are marshaling/unmarshaling a boolean.
7059
7060 2005-01-16  Havoc Pennington  <hp@redhat.com>
7061
7062         This is about it on what can be disabled/deleted from libdbus
7063         easily, back below 150K anyhow. Deeper cuts are more work than 
7064         just turning the code off as I've done here.
7065         
7066         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
7067         signed int convenience funcs
7068
7069         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
7070         verbose mode
7071
7072         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
7073         things out of libdbus
7074
7075         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
7076         
7077         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
7078         tests-enabled-only, though it should probably be deleted)
7079
7080         * dbus/dbus-message-util.c: same stuff
7081
7082         * dbus/dbus-auth-util.c: same stuff
7083
7084 2005-01-16  Havoc Pennington  <hp@redhat.com>
7085
7086         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
7087
7088         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
7089         way for stripping down dbus-userdb.c stuff included in libdbus.
7090         Rename _dbus_parse_uid for consistency.
7091
7092 2005-01-16  Havoc Pennington  <hp@redhat.com>
7093
7094         * dbus/dbus-internals.c (_dbus_real_assert): print the function
7095         name the assertion failed in
7096
7097         * dbus/dbus-internals.h (_dbus_return_if_fail) 
7098         (_dbus_return_val_if_fail): assert that the name of the function
7099         containing the check doesn't start with '_', since we only want to 
7100         use checks on public functions
7101         
7102         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
7103         checks to assertions
7104
7105         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
7106         change checks to asserts for private function
7107
7108         * dbus/dbus-message.c (_dbus_message_set_serial): checks
7109         to asserts for private function
7110
7111         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
7112         broken assertion that was breaking make check
7113         (_dbus_type_reader_array_is_empty): remove this rather than fix
7114         it, was only used in assertions
7115
7116 2005-01-16  Havoc Pennington  <hp@redhat.com>
7117
7118         * test/unused-code-gc.py: hacky script to find code that's used
7119         only by the bus (not libdbus) or used only by tests or not used at
7120         all. It has some false alarms, but looks like we can clean up a
7121         lot of size from libdbus.
7122
7123         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
7124         dbus/Makefile.am: initially move 10K of binary size out of libdbus
7125         
7126 2005-01-16  Havoc Pennington  <hp@redhat.com>
7127
7128         * Add and fix docs according to Doxygen warnings throughout
7129         source.
7130         
7131         * dbus/dbus-marshal-recursive.c
7132         (_dbus_type_reader_array_is_empty): change this to just call
7133         array_reader_get_array_len() and make it static
7134
7135         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
7136         from get_array_type
7137         (dbus_message_iter_init_append): rename from append_iter_init
7138
7139         * dbus/dbus-marshal-recursive.c
7140         (_dbus_type_reader_get_element_type): rename from
7141         _dbus_type_reader_get_array_type
7142
7143 2005-01-15  Havoc Pennington  <hp@redhat.com>
7144
7145         * test/glib/test-profile.c (with_bus_server_filter): fix crash
7146
7147         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
7148         when DBUS_DISABLE_ASSERT
7149         (_dbus_marshal_set_basic): be sure we align for the string length
7150
7151         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
7152         this look faster
7153
7154         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
7155         inline macro version
7156         (_dbus_string_set_byte): provide inline macro version
7157
7158 2005-01-15  Havoc Pennington  <hp@redhat.com>
7159
7160         * Land the new message args API and type system.
7161
7162         This patch is huge, but the public API change is not 
7163         really large. The set of D-BUS types has changed somewhat, 
7164         and the arg "getters" are more geared toward language bindings;
7165         they don't make a copy, etc.
7166
7167         There are also some known issues. See these emails for details
7168         on this huge patch:
7169         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
7170         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
7171         
7172         * dbus/dbus-marshal-*: all the new stuff
7173
7174         * dbus/dbus-message.c: basically rewritten
7175
7176         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
7177         freed blocks to be all non-nul bytes so using freed memory is less
7178         likely to work right
7179
7180         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
7181         DBUS_FAIL_MALLOC=N environment variable, so you can do
7182         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
7183         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
7184         thorough.
7185
7186         * qt/message.cpp: port to the new message args API
7187         (operator<<): use str.utf8() rather than str.unicode()
7188         (pretty sure this is right from the Qt docs?)
7189
7190         * glib/dbus-gvalue.c: port to the new message args API
7191
7192         * bus/dispatch.c, bus/driver.c: port to the new message args API
7193
7194         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
7195         "locked" flag to TRUE and align_offset to 0; I guess we never
7196         looked at these anyhow, but seems cleaner.
7197
7198         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
7199         move allocation padding macro to this header; use it to implement
7200         (_DBUS_STRING_STATIC): ability to declare a static string.
7201
7202         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
7203         change to return TRUE if the interface is not set.
7204
7205         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
7206         to dbus-marshal-validate.[hc]
7207
7208         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
7209         dbus-internals.c
7210
7211         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
7212         to dbus-marshal-*.[hc]
7213
7214         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
7215         function here from dbus-marshal.c
7216
7217 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7218
7219         * NEWS: Update for 0.23.
7220
7221         * configure.in: Release 0.23.
7222
7223 2005-01-12  Joe Shaw  <joeshaw@novell.com>
7224
7225         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
7226         dbus DLL with --debug.  Clean up after the .mdb files this leaves
7227         behind.
7228
7229         * mono/doc/Makefile.am: Need to uninstall the docs on "make
7230         uninstall"
7231
7232         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
7233         is an enum, get the enum's underlying type.  Another mono
7234         1.1.3 fix.
7235
7236 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7237
7238         Patch from Sjoerd Simons <sjoerd@luon.net>
7239
7240         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
7241         DESTDIR.  It breaks stuff.
7242
7243 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7244
7245         Patch from Tambet Ingo <tambet@ximian.com>
7246
7247         * mono/DBusType/Array.cs (Get): Get the underlying element type by
7248         calling type.GetElementType().  The code previously depended on
7249         broken Mono behavior, which was fixed in Mono 1.1.3.
7250
7251         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
7252         Activator.CreateInstance() so that the class's constructor is
7253         called with the right parameters.
7254
7255 2005-01-11  Joe Shaw  <joeshaw@novell.com>
7256
7257         Patch from Timo Teräs <ext-timo.teras@nokia.com>
7258
7259         * dbus/dbus-connection.c
7260         (_dbus_connection_queue_received_message_link): Call
7261         _dbus_connection_remove_timeout() instead of the _locked()
7262         variant, since it's always called from
7263         _dbus_connection_handle_watch(), which handles the locking.
7264         Removed the _locked() variant since it's no longer used.
7265
7266 2005-01-03  Havoc Pennington  <hp@redhat.com>
7267
7268         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
7269         return
7270         
7271 2004-12-26  Havoc Pennington  <hp@redhat.com>
7272
7273         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
7274
7275 2005-01-03  Havoc Pennington  <hp@redhat.com>
7276
7277         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
7278         floating point
7279
7280         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
7281
7282 2005-01-02  Havoc Pennington  <hp@redhat.com>
7283
7284         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
7285
7286 2005-01-01  Havoc Pennington  <hp@redhat.com>
7287
7288         * configure.in: add -Wfloat-equal
7289
7290 2005-01-01  Havoc Pennington  <hp@redhat.com>
7291
7292         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
7293         for a variety of reasons '==' doesn't do this.
7294
7295 2004-12-31  Havoc Pennington  <hp@redhat.com>
7296
7297         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
7298         I keep wishing I had
7299
7300 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7301
7302         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
7303
7304 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
7305
7306         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
7307         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
7308         dbus-protocol.h.  Because they are defines and not enums they are not
7309         autogenerated.
7310
7311 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
7312
7313         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
7314         dbus_bus_activate_service
7315
7316         * python/dbus.py (Bus.activate_service): activate a service on the
7317         bus.
7318
7319 2004-12-24  Havoc Pennington  <hp@redhat.com>
7320
7321         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
7322         file format has also changed and I haven't adapted to that yet
7323         
7324         * Makefile.am: load .gcno files from latest gcc
7325
7326 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
7327         * Patch from Rob Taylor <robtaylor@fastmail.fm>
7328
7329         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
7330         lowlevel binding
7331
7332         * python/dbus.py (get_unix_user): Added binding to 
7333         call dbus_bindings.bus_get_unix_user
7334
7335         * python/extract.py: Modified the proto_pat regex to
7336         handle unsigned long
7337
7338 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7339
7340         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
7341         better POSIX compliance.
7342
7343 2004-12-19  Havoc Pennington  <hp@redhat.com>
7344
7345         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
7346         (_dbus_string_insert_8_aligned): new functions
7347
7348         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
7349
7350 2004-12-18  Havoc Pennington  <hp@redhat.com>
7351
7352         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
7353         macro
7354
7355         * dbus/dbus-message.c: fix a comment, and add a still-unused
7356         not-implemented function
7357
7358         * dbus/dbus-marshal.h: fix comment
7359
7360         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
7361
7362 2004-12-17  Joe Shaw  <joeshaw@novell.com>
7363
7364         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
7365         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
7366         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
7367         Type.UnderlyingSystemType to get the actual system type
7368         underneath.  This code previously depended on the broken Mono
7369         behavior, which was fixed in 1.1.3.
7370
7371 2004-11-27  Havoc Pennington  <hp@redhat.com>
7372
7373         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
7374         are disabled
7375         (_dbus_string_get_const_data): inline when asserts are disabled
7376
7377         * dbus/dbus-message.c: record the _dbus_current_generation of
7378         creation so we can complain if dbus_shutdown() is used improperly.
7379         Do this only if checks are enabled.
7380
7381         * dbus/dbus-connection.c: ditto
7382         
7383 2004-11-26  Havoc Pennington  <hp@redhat.com>
7384
7385         * test/glib/test-profile.c: add with_bus mode to profile echoes
7386         that go through the bus.
7387
7388         * test/glib/run-test.sh: add ability to run test-profile
7389
7390         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
7391         config file reload.
7392
7393 2004-11-26  Havoc Pennington  <hp@redhat.com>
7394
7395         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
7396         thing was implemented
7397
7398 2004-11-26  Havoc Pennington  <hp@redhat.com>
7399
7400         * test/glib/test-profile.c: tweak a bit, add support for some
7401         made-up minimal malloc overhead with plain sockets, since in 
7402         real life some sort of buffers are unavoidable thus we could 
7403         count them in the theoretical best case
7404
7405 2004-11-26  Havoc Pennington  <hp@redhat.com>
7406
7407         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
7408         where I was trying to cache one too many messages
7409
7410 2004-11-26  Havoc Pennington  <hp@redhat.com>
7411
7412         * dbus/dbus-message.c: reimplement message cache as an array which 
7413         makes the cache about twice as fast and saves maybe 1.5% overall
7414
7415 2004-11-26  Havoc Pennington  <hp@redhat.com>
7416
7417         * dbus/dbus-threads.c (init_global_locks): forgot to put the
7418         message cache lock here
7419
7420 2004-11-26  Havoc Pennington  <hp@redhat.com>
7421
7422         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
7423         the "char byte_order" next to each other to save 4 bytes
7424         (dbus_message_new_empty_header): reduce preallocation, since the
7425         message cache should achieve a similar effect
7426         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
7427         message cache that keeps a few DBusMessage around in a pool,
7428         another 8% speedup or so.
7429
7430         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
7431
7432 2004-11-25  Havoc Pennington  <hp@redhat.com>
7433
7434         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
7435         to write, without reading or blocking, try it before the poll()
7436         and skip the poll() if nothing remains to write. This is about a
7437         3% speedup in the echo client/server
7438
7439 2004-11-25  Havoc Pennington  <hp@redhat.com>
7440
7441         The primary change here is to always write() once before adding
7442         the write watch, which gives us about a 10% performance increase.
7443         
7444         * dbus/dbus-transport-unix.c: a number of modifications to cope
7445         with removing messages_pending
7446         (check_write_watch): properly handle
7447         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
7448         messages_pending stuff
7449         (check_read_watch): properly handle WAITING_FOR_MEMORY and
7450         AUTHENTICATED cases
7451         (unix_handle_watch): after writing, see if the write watch can be
7452         removed
7453         (unix_do_iteration): assert that write_watch/read_watch are
7454         non-NULL rather than testing that they aren't, since they 
7455         aren't allowed to be NULL. check_write_watch() at the end so 
7456         we add the watch if we did not finish writing (e.g. got EAGAIN)
7457
7458         * dbus/dbus-transport-protected.h: remove messages_pending call,
7459         since it resulted in too much inefficient watch adding/removing; 
7460         instead we now require that the transport user does an iteration 
7461         after queueing outgoing messages, and after trying the first
7462         write() we add a write watch if we got EAGAIN or exceeded our 
7463         max bytes to write per iteration setting
7464
7465         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
7466         function
7467
7468         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
7469         freed and then accessed, valgrind flagged this bug, fix it
7470
7471         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
7472         as the last valid field plus 1, where really it is equal to the
7473         last valid field. Corrects some message corruption issues.
7474
7475         * dbus/dbus-mainloop.c: verbosity changes
7476
7477         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
7478         instead of aborting in one of the test codepaths
7479
7480         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
7481         caused not printing the pid ever again if a verbose was missing
7482         the newline at the end
7483         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
7484
7485         * dbus/dbus-connection.c: verbosity changes; 
7486         (dbus_connection_has_messages_to_send): new function
7487         (_dbus_connection_message_sent): no longer call transport->messages_pending
7488         (_dbus_connection_send_preallocated_unlocked): do one iteration to
7489         try to write() immediately, so we can avoid the write watch. This
7490         is the core purpose of this patchset
7491         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
7492         dump the outgoing message queue, so nobody will get confused
7493         trying to send them or thinking stuff is pending to be sent
7494
7495         * bus/test.c: verbosity changes
7496
7497         * bus/driver.c: verbosity/assertion changes
7498
7499         * bus/dispatch.c: a bunch of little tweaks to get it working again
7500         because this patchset changes when/where you need to block.
7501
7502 2004-11-23  Havoc Pennington  <hp@redhat.com>
7503
7504         * test/glib/test-profile.c: modify to accept a plain_sockets
7505         argument in which case it will bench plain sockets instead of
7506         libdbus, for comparison purposes.
7507
7508 2004-11-22  Havoc Pennington  <hp@redhat.com>
7509
7510         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
7511         threads for more time, so sysprof can get a grip on it.
7512
7513         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
7514         pointless variable
7515
7516 2004-11-13  Havoc Pennington  <hp@redhat.com>
7517
7518         * test/glib/test-profile.c: fix this thing up a bit
7519
7520         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
7521         preallocation sizes by a fair bit; not sure if this will be an
7522         overall performance win or not, but it does reduce reallocs.
7523
7524         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
7525         the test hack that forced constant realloc if asserts are
7526         disabled, so we can profile sanely. Sprinkle in some
7527         _DBUS_UNLIKELY() which are probably pointless, but before I
7528         noticed the real performance problem I put them in.
7529         (_dbus_string_validate_utf8): micro-optimize this thing a little
7530         bit, though callgrind says it didn't help; then special-case
7531         ascii, which did help a lot; then be sure we detect nul bytes as
7532         invalid, which is a bugfix.
7533         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
7534         superstition; use memset to nul the padding instead of a manual
7535         loop.
7536         (_dbus_string_get_length): inline this as a
7537         macro; it showed up in the profile because it's used for loop
7538         tests and so forth
7539
7540 2004-11-10  Colin Walters  <walters@verbum.org>
7541
7542         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
7543         for extra paranoia.
7544
7545 2004-11-09  Colin Walters  <walters@verbum.org>
7546
7547         * dbus/dbus-string.c (_dbus_string_get_length): New
7548         function, writes DBusString to C buffer.
7549
7550         * dbus/dbus-string.h: Prototype it.
7551
7552         * dbus/dbus-message.c (dbus_message_type_to_string): New
7553         function, converts message type into C string.
7554
7555         * dbus/dbus-message.h: Prototype it.
7556
7557         * bus/selinux.c (bus_selinux_check): Take source pid,
7558         target pid, and audit data.  Pass audit data to
7559         avc_has_perm.
7560         (log_audit_callback): New function, appends extra
7561         audit information.
7562         (bus_selinux_allows_acquire_service): Also take
7563         service name, add it to audit data.
7564         (bus_selinux_allows_send): Also take message
7565         type, interface, method member, error name,
7566         and destination, and add them to audit data.
7567         (log_cb): Initialize func_audit.
7568         
7569         * bus/selinux.h (bus_selinux_allows_acquire_service)
7570         (bus_selinux_allows_send): Update prototypes 
7571
7572         * bus/services.c (bus_registry_acquire_service): Pass
7573         service name to bus_selinux_allows_acquire_service.
7574
7575         * bus/bus.c (bus_context_check_security_policy): Pass
7576         additional audit data.  Move assignment of dest
7577         to its own line.
7578
7579 2004-11-07  Colin Walters  <walters@verbum.org>
7580
7581         * dbus/dbus-transport-unix.c (do_authentication): Always
7582         initialize auth_completed.
7583         
7584 2004-11-07  Colin Walters  <walters@verbum.org>
7585
7586         * bus/bus.c (load_config): Break into three
7587         separate functions: process_config_first_time_only,
7588         process_config_every_time, and process_config_postinit.
7589         (process_config_every_time): Move call of
7590         bus_registry_set_service_context_table into
7591         process_config_postinit.
7592         (process_config_postinit): New function, does
7593         any processing that needs to happen late
7594         in initialization (and also on reload).
7595         (bus_context_new): Instead of calling load_config,
7596         open config parser here and call process_config_first_time_only
7597         and process_config_every_time directly.  Later, after
7598         we have forked but before changing UID,
7599         invoke bus_selinux_full_init, and then call
7600         process_config_postinit.
7601         (bus_context_reload_config): As in bus_context_new,
7602         load parse file inside here, and call process_config_every_time
7603         and process_config_postinit.
7604
7605         * bus/services.h, bus/services.c
7606         (bus_registry_set_service_context_table): Rename
7607         from bus_registry_set_sid_table.  Take string hash from config
7608         parser, and convert them here into SIDs.
7609
7610         * bus/config-parser.c (struct BusConfigParser): Have
7611         config parser only store a mapping of service->context
7612         string.
7613         (merge_service_context_hash): New function.
7614         (merge_included): Merge context string hashes instead
7615         of using bus_selinux_id_table_union.
7616         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
7617         simply create a new string hash.
7618         (bus_config_parser_unref): Unref it.
7619         (start_selinux_child): Simply insert strings into hash,
7620         don't call bus_selinux_id_table_copy_over.
7621
7622         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
7623         (bus_selinux_id_table_copy_over): Delete.
7624
7625 2004-11-03  Colin Walters  <walters@verbum.org>
7626
7627         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
7628         variables.
7629         
7630 2004-11-03  Colin Walters  <walters@verbum.org>
7631
7632         * bus/test-main.c (test_pre_hook): Fix test logic,
7633         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
7634
7635 2004-11-02  Colin Walters  <walters@redhat.com>
7636
7637         * bus/selinux.c (bus_selinux_init): Split into two functions,
7638         bus_selinux_pre_init and bus_selinux_post_init.
7639         (bus_selinux_pre_init): Just determine whether SELinux is
7640         enabled.
7641         (bus_selinux_post_init): Do everything else.
7642
7643         * bus/main.c (main): Call bus_selinux_pre_init before parsing
7644         config file, and bus_selinux_post_init after.  This ensures that
7645         we don't lose the policyreload notification thread that
7646         bus_selinux_init created before forking previously.
7647         
7648         * bus/test-main.c (test_pre_hook): Update for split.
7649
7650 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
7651
7652         Patch from Johan Fischer <linux@fischaz.com>
7653         
7654         * mono/doc/Makefile.am (install-data-local): Added directory
7655         install for DESTDIR
7656
7657 2004-10-29  Colin Walters  <walters@redhat.com>
7658
7659         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
7660         parameter for fd to write pid to.       
7661
7662         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
7663         
7664         * bus/bus.c (bus_context_new): Pass print_pid_fd
7665         to _dbus_become_daemon (bug #1720)
7666
7667 2004-10-29  Colin Walters  <walters@redhat.com>
7668
7669         Patch from Ed Catmur <ed@catmur.co.uk>
7670
7671         * mono/doc/Makefile.am (install-data-local): Handle
7672         DESTDIR.
7673
7674 2004-10-29  Colin Walters  <walters@redhat.com>
7675
7676         * bus/.cvsignore, qt/.cvsignore: Update.
7677
7678 2004-10-29  Colin Walters  <walters@redhat.com>
7679
7680         Patch from Kristof Vansant <de_lupus@pandora.be>
7681
7682         * configure.in: Detect Slackware.
7683         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
7684         * bus/rc.messagebus.in: New file.
7685
7686 2004-10-29  Colin Walters  <walters@redhat.com>
7687
7688         * tools/dbus-monitor.c (filter_func): Return
7689         DBUS_HANDLER_RESULT_HANDLED in filter function
7690         for now.  See:
7691         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
7692
7693 2004-10-29  Colin Walters  <walters@redhat.com>
7694
7695         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
7696
7697         * bus/services.c (bus_registry_acquire_service): 
7698         Correctly retrieve service name from DBusString
7699         for printing.
7700
7701 2004-10-29  Colin Walters  <walters@redhat.com>
7702
7703         * dbus/dbus-glib.h: Update documentation to not
7704         refer to internal APIs.
7705
7706 2004-10-27  Joe Shaw  <joeshaw@novell.com>
7707
7708         * mono/Arguments.cs (GetDBusTypeConstructor):
7709         type.UnderlyingSystemType will return "System.Byte" if you do it
7710         on "byte[]", which is not what we want.  So check the type.IsArray
7711         property and use System.Array instead.
7712
7713 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
7714
7715         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
7716         the DBusUserInfo structure since this is passed into the function.
7717         This would cause a double free when the function that allocated
7718         the structure would try to free it when an error occured.
7719
7720         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
7721         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
7722         for service activation to avoid 32bit/64bit parallel install issues
7723
7724 2004-10-21  Colin Walters  <walters@verbum.org>
7725
7726         * AUTHORS: Fix my email address, the @gnu.org one
7727         has been bouncing for some time.  Also add J5.
7728         
7729 2004-10-21  Colin Walters  <walters@verbum.org>
7730
7731         * dbus/dbus-transport-unix.c (do_authentication): Return
7732         authentication status to callers.
7733         (unix_handle_watch): If we completed authentication this round,
7734         don't do another read.  Instead wait until the next iteration,
7735         after we've read any pending data in the auth buffer.
7736         (unix_do_iteration): Ditto.
7737         (unix_handle_watch): Updated for new do_authentication prototype.
7738
7739 2004-10-18  Colin Walters  <walters@verbum.org>
7740
7741         * bus/selinux.c (bus_selinux_enabled): Handle
7742         --disable-selinux case.
7743         
7744 2004-10-18  Colin Walters  <walters@verbum.org>
7745
7746         * bus/selinux.h: Add bus_selinux_enabled.
7747         
7748         * bus/selinux.c (bus_selinux_enabled): Implement it.
7749         
7750         * bus/config-parser.c (struct include): Add
7751         if_selinux_enabled member.
7752         (start_busconfig_child): Parse if_selinux_enabled
7753         attribute for include.
7754         (bus_config_parser_content): Handle it.
7755
7756         * bus/session.conf.in, bus/system.conf.in: Add
7757         inclusion of context mapping to default config files;
7758         conditional on SELinux being enabled.
7759         
7760         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
7761         
7762         * test/data/invalid-config-files/badselinux-1.conf, 
7763         test/data/invalid-config-files/badselinux-2.conf:
7764         Test files for bad syntax.
7765         
7766 2004-10-17  Colin Walters  <walters@verbum.org>
7767
7768         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
7769         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
7770         format specifier mismatches.
7771
7772 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7773
7774         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
7775         format string.
7776
7777         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
7778         pointer (bug #1540, Leonardo Boiko).
7779
7780 2004-09-28  Jon Trowbridge  <trow@ximian.com>
7781
7782         * mono/BusDriver.cs: Changed BusDriver struct to remove
7783         the ServiceCreated and ServiceDeleted events and replace them
7784         with the new ServiceOwnerChanged event.
7785
7786         * mono/example/BusListener.cs: Added a new example program,
7787         which listens for and reports any ServiceOwnerChanged events
7788         on the bus driver.
7789
7790         * mono/example/Makefile.am (DESTDIR): Build changes for the
7791         new BusListener.cs example.
7792
7793 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7794
7795         * bus/signals.c (bus_match_rule_parse): validate the components of
7796         match rules (bug #1439).
7797
7798         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
7799
7800 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7801
7802         * doc/dbus-specification.xml: document ServiceOwnerChanged
7803         signal.
7804         
7805         * bus/driver.c, bus/driver.h, bus/services.c: Use
7806         ServiceOwnerChanged signal instead of ServiceCreated and
7807         ServiceDeleted.
7808         
7809         * bus/dispatch.c: update testcase for the new signal.
7810
7811 2004-09-20  Jon Trowbridge  <trow@ximian.com>
7812
7813         Patch from Nat Friedman <nat@novell.com>
7814
7815         * mono/Makefile.am: A number of small build fixes to allow "make
7816         distcheck" to succeed.
7817
7818         * mono/example/Makefile.am: "make distcheck" fixes.
7819
7820         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
7821         key in @srcdir@.
7822
7823         * test/Makefile.am: "make distcheck" fixes.
7824
7825 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7826
7827         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
7828
7829         * doc/busconfig.dtd: update the DTD for the at_console attribute.
7830
7831         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
7832         messages after the first one (bug #1389).
7833         
7834         * bus/dispatch.c (check_double_hello_message): add a test case for
7835         the double hello message bug.
7836         (check_existent_service_activation): fix check of spawning error.
7837         
7838 2004-09-16  David Zeuthen  <david@fubar.dk>
7839
7840         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
7841
7842 2004-09-12  David Zeuthen  <david@fubar.dk>
7843
7844         Patch from Kay Sievers <kay.sievers@vrfy.org>
7845
7846         * bus/bus.c (bus_context_new):
7847         * bus/bus.h:
7848         * bus/main.c (usage)
7849         (main):
7850         Add commandline option --nofork to override configuration file
7851         setting.
7852
7853 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7854
7855         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
7856         compilers don't like it (bug #974).
7857
7858 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
7859
7860         * qt/connection.*: Applied patch by Jérôme Lodewyck
7861         <lodewyck@clipper.ens.fr> to integrate an existing
7862         connection into the Qt eventloop
7863
7864 2004-08-30  Jon Trowbridge  <trow@ximian.com>
7865
7866         * mono/BusDriver.cs: Added.  This is a class for interacting with
7867         the org.freedesktop.DBus service.
7868
7869         * mono/Message.cs: Added a mechanism to expose the message that is
7870         currently being dispatched via the static Message.Current
7871         property.  Added Message.Sender and Message.Destination
7872         properties.
7873
7874         * mono/Handler.cs: Expose the dispatched message via
7875         Message.Current when handling method calls.
7876
7877         * mono/Service.cs: Expose the dispatched message via
7878         Message.Current when handling signal emissions.
7879         
7880         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
7881         Connection.BaseService property.
7882
7883 2004-08-28  Havoc Pennington  <hp@redhat.com>
7884
7885         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
7886
7887         More fixes from Steve Grubb
7888         
7889         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
7890         (_dbus_listen_tcp_socket): fix fd leak
7891
7892         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
7893         EINTR to a bit lower in the code
7894
7895 2004-08-26  Jon Trowbridge  <trow@ximian.com>
7896
7897         * bus/driver.c (bus_driver_handle_service_exists): Respond with
7898         TRUE if we are inquiring about the existence of the built-in
7899         org.freedesktop.DBus service.
7900
7901 2004-08-25  John Palmieri  <johnp@redhat.com>
7902         * bus/config-parser.c:
7903         (struct PolicyType): Add POLICY_CONSOLE
7904         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
7905         (start_busconfig_child): Sets up console element when
7906         <policy at_console=""> is encountered in a policy file
7907         (append_rule_from_element): Convert console elements to console
7908         rules.
7909
7910         * bus/policy.c: 
7911         (bus_policy_create_client_policy): Add console rules to the client
7912         policy based on if the client is at the console
7913         (bus_policy_append_console_rule): New function for adding a
7914         console rule to a policy
7915         (bus_policy_merge): Handle console rule merging
7916
7917         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
7918         where we check for console user files
7919         
7920         * dbus/dbus-sysdeps.c:
7921         (_dbus_file_exists): New function which checks if the given
7922         file exists
7923         (_dbus_user_at_console): New function which does the system
7924         specific process of checking if the user is at the console
7925
7926         * dbus/dbus-userdb.c:
7927         (_dbus_is_console_user): New function converts a UID to user name
7928         and then calls the system specific _dbus_user_at_console to 
7929         see if the user is at the console and therefor a console user
7930
7931 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
7932
7933         * bus/config-parser.c (set_limit):
7934         * bus/dbus-daemon-1.1.in:
7935         * test/data/valid-config-files/many-rules.conf: set the
7936         max_match_rules_per_connection limt from the config file. 
7937
7938         * doc/busconfig.dtd: update the DTD.
7939
7940         * bus/driver.c: remove some unused variables.
7941
7942 2004-08-24  Mikael Hallendal  <micke@imendio.com>
7943
7944         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
7945         it's been replaced by dbus_g_bus_get
7946
7947 2004-08-23  Colin Walters  <walters@redhat.com>
7948
7949         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
7950
7951         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
7952
7953         * bus/selinux.c: Create a thread for policy reload notification.
7954         (bus_selinux_get_policy_root): Implement.
7955
7956         * bus/config-parser.c (start_busconfig_child)
7957         (bus_config_parser_content): Support SELinux-root relative
7958         inclusion.
7959
7960         * configure.in <HAVE_SELINUX>: Add -lpthread.
7961         
7962         * bus/test-main.c (test_pre_hook, test_post_hook): New.
7963         (test_post_hook): Move memory checking into here.
7964         (test_pre_hook, test_post_hook): Move SELinux checks in
7965         here, but conditional on a DBUS_TEST_SELINUX environment
7966         variable.  Unfortunately we can't run the SELinux checks
7967         as a normal user, since they won't have any permissions
7968         for /selinux.  So this will have to be tested manually
7969         for now, until we have virtualization for most of
7970         libselinux.
7971         
7972 2004-08-23  Havoc Pennington  <hp@redhat.com>
7973
7974         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
7975         drop supplementary groups, suggested by Steve Grubb
7976
7977 2004-08-20  Colin Walters  <walters@redhat.com>
7978
7979         * bus/config-parser.c (start_busconfig_child): Remove some unused
7980         variables.
7981         
7982         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
7983         warning.
7984
7985 2004-08-17  Joe Shaw  <joeshaw@novell.com>
7986
7987         * configure.in: If --enable-mono is passed in, if we can't find
7988         mono error out.
7989
7990         * mono/Makefile.am: Use /gacutil to install assemblies into the
7991         GAC and not /root.
7992
7993 2004-08-12  Havoc Pennington  <hp@redhat.com>
7994
7995         * NEWS: update for 0.22
7996
7997         * configure.in: release 0.22
7998
7999 2004-08-11  Colin Walters  <walters@redhat.com>
8000
8001         * tools/dbus-send.c (main, usage): Add --reply-timeout
8002         argument.
8003
8004 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8005
8006         * bus/bus.c (process_config_first_time_only): get rid of an unused
8007         DBusError that was causing a memoy leak (bug #989).
8008
8009         * dbus/dbus-keyring.c, dbus/dbus-message.c:
8010         fix compilation on Solaris/Forte C (bug #974)
8011
8012         * bus/main.c (main): plug two minuscule memleaks.
8013
8014 2004-08-10  Havoc Pennington  <hp@redhat.com>
8015
8016         * doc/dbus-tutorial.xml: add some more info on GLib bindings
8017
8018 2004-08-09  Havoc Pennington  <hp@redhat.com>
8019
8020         * COPYING: switch to Academic Free License version 2.1 instead of
8021         2.0, to resolve complaints about patent termination clause.
8022
8023 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
8024
8025         * README: added documentation for the --enable-python 
8026         configure switch.
8027
8028 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8029
8030         * bus/config-parser.c (bus_config_parser_new): fix an invalid
8031         _unref in the SELinux support.
8032
8033         * doc/busconfig.dtd: update DTD for SELinux support.
8034
8035         * bus/config-loader-libxml.c: fix error handler and parser
8036         initialisation/cleanup. OOM test now works with libxml2 HEAD.
8037
8038         * configure.in: remove the warning about libxml2.
8039
8040         * dbus/dbus-bus.c: silence doxygen warning.
8041
8042 2004-07-31  Colin Walters  <walters@redhat.com>
8043
8044         * configure.in: Move #error in SELinux check to its own line.
8045
8046 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8047
8048         * dbus/dbus-internals.h (_DBUS_SET_OOM):
8049         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
8050         dbus_error_set.
8051
8052         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
8053         broken by the change in the _SET_OOM macros.
8054
8055 2004-07-31  Colin Walters  <walters@redhat.com>
8056
8057         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
8058         BUS_SET_OOM.
8059
8060 2004-07-31  Colin Walters  <walters@redhat.com>
8061
8062         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
8063         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
8064         AC_MSG_CHECKING.
8065
8066 2004-07-24  Havoc Pennington  <hp@redhat.com>
8067
8068         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
8069
8070         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
8071         functionality
8072
8073         * configure.in: add --enable-selinux
8074         
8075         * bus/policy.c (bus_policy_merge): add FIXME to a comment
8076
8077         * bus/main.c (main): initialize and shut down selinux
8078
8079         * bus/connection.c: store SELinux ID on each connection, to avoid 
8080         repeated getting of the string context and converting it into 
8081         an ID
8082
8083         * bus/bus.c (bus_context_get_policy): new accessor, though it
8084         isn't used
8085         (bus_context_check_security_policy): check whether the security
8086         context of sender connection can send to the security context of
8087         recipient connection
8088
8089         * bus/config-parser.c: add parsing for <selinux> and <associate>
8090         
8091         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
8092         implement dbus_connection_get_unix_fd()
8093
8094         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
8095         function, used by the selinux stuff
8096         
8097 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8098
8099         * bus/config-loader-libxml.c: complete the implementation of
8100         libxml backend for config file loader. Doesn't work with full OOM
8101         test yet. 
8102         
8103         * configure.in: change error when selecting libxml into a warning.
8104         
8105         * test/data/invalid-config-files: add two non-well-formed XML
8106         files. 
8107         
8108         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
8109         
8110         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
8111         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
8112         be necessary to read all the buffer. (bug #894)
8113
8114         * bus/activation.c (bus_activation_activate_service): fix a
8115         potential assertion failure (bug #896). Small optimization in the
8116         case of auto-activation messages.
8117
8118         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
8119         add test case for byte-through-vararg bug (#901). patch by Kimmo
8120         Hämäläinen. 
8121
8122 2004-07-28  Anders Carlsson  <andersca@gnome.org>
8123
8124         * python/dbus.py:
8125         * python/dbus_bindings.pyx.in:
8126         Add dbus.init_gthreads (), allow emit_signal to pass
8127         arguments to the signal.
8128         
8129 2004-07-24  Havoc Pennington  <hp@redhat.com>
8130
8131         * AUTHORS: add some people, not really comprehensively, let me
8132         know if I missed you
8133
8134 2004-07-24  Havoc Pennington  <hp@redhat.com>
8135
8136         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
8137         Owen
8138
8139         * test/Makefile.am (DIST_SUBDIRS): here also
8140
8141 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8142
8143         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
8144         breaking build on Solaris, reported by Farhad Saberi on the ML.
8145
8146         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
8147         va_arg invocation to account for integer promotion in the case of
8148         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
8149
8150         * bus/services.c (bus_service_remove_owner): fix bug #902, use
8151         _dbus_list_get_first_link, not _dbus_list_get_first.
8152
8153         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
8154
8155         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
8156         handler functions so that the asserts in _dbus_object_subtree_unref
8157         do not fail.
8158
8159         * dbus/dbus-transport-unix.c (do_reading):
8160         _dbus_transport_queue_messages return value is of type
8161         dbus_bool_t, not DBusDispatchStatus.
8162         
8163 2004-07-19  David Zeuthen  <david@fubar.dk>
8164
8165         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
8166
8167         * bus/dispatch.c:
8168         (check_get_connection_unix_user): Debug says GetProperty; but the
8169         method is called GetConnectionUnixUser
8170         (check_get_connection_unix_process_id): New function
8171         (bus_dispatch_test): Actually call check_get_connection_unix_user();
8172         also call check_get_connection_unix_process_id()
8173         
8174         * bus/driver.c:
8175         (bus_driver_handle_get_connection_unix_process_id): New function,
8176         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
8177         interface
8178         
8179         * dbus/dbus-auth.c:
8180         (handle_server_data_external_mech): Set pid from the credentials
8181         obtained from the socket
8182         
8183         * dbus/dbus-connection.c:
8184         (dbus_connection_get_unix_process_id): New function
8185         
8186         * dbus/dbus-connection.h: 
8187         Add prototype for dbus_connection_get_unix_process_id
8188         
8189         * dbus/dbus-transport.c:
8190         (_dbus_transport_get_unix_process_id): New function
8191         
8192         * dbus/dbus-transport.h:
8193         Add prototype for _dbus_transport_get_unix_process_id
8194         
8195 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8196
8197         * dbus/dbus-message.c: Message counter fix, patch by Christian
8198         Hammond <chipx86@gnupdate.org>
8199
8200 2004-07-18  Seth Nickell  <seth@gnome.org>
8201
8202         * python/dbus.py:
8203         * python/dbus_bindings.pyx.in:
8204         * python/tests/test-client.py:
8205
8206         Add dbus.ByteArray and dbus_bindings.ByteArray
8207         types so that byte streams can be passed back.
8208
8209         Give jdahlin the heaps of credit that are so
8210         rightfully his.
8211         
8212 2004-07-12  Seth Nickell  <seth@gnome.org>
8213
8214         * python/dbus.py:
8215
8216         Add message argument to the default object_method_handler
8217         function.
8218         
8219         * python/dbus_bindings.pyx.in:
8220
8221         Automatically return NIL when passed an empty list
8222         (we can't pass back a list since lists are typed
8223         and we don't have any idea what type the the client
8224         intended the list to be... :-( )
8225         
8226 2004-07-10  Seth Nickell  <seth@gnome.org>
8227
8228         * python/examples/Makefile.am:
8229
8230         Fix distcheck breakage caused by new examples.
8231
8232 2004-07-10  Seth Nickell  <seth@gnome.org>
8233
8234         * python/dbus.py:
8235
8236         Add "message" argument to service-side dbus.Object
8237         methods. This will break existing services written
8238         using the python bindings, but will allow extraction
8239         of all the message information (e.g. who its from).
8240
8241         Add improved "object oriented" signal handling/emission.
8242         
8243         * python/examples/example-service.py:
8244
8245         Nix this example.
8246         
8247         * python/examples/example-signal-emitter.py:
8248         * python/examples/example-signal-recipient.py:
8249
8250         Two new examples that show how to emit and receive
8251         signals using the new APIs.
8252         
8253         * python/examples/example-signals.py:
8254         * python/examples/gconf-proxy-service.py:
8255         * python/examples/gconf-proxy-service2.py:
8256
8257         Add "message" argument to service methods.
8258
8259 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
8260
8261         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
8262         * dbus/bus.c (dbus_bus_get_unix_user)
8263         * doc/dbus-specification.xml: implement GetConnectionUnixUser
8264         method of org.freedesktop.DBus interface.
8265
8266         * bus/dispatch.c: test case
8267
8268 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
8269
8270         * python/Makefile.am: switched include directory from glib/ to dbus/
8271         since dbus-glib.h moved
8272  
8273 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8274
8275         * configure.in: prevent building the gcj stuff and libxml loader
8276         since they are broken.
8277
8278 2004-06-20  Havoc Pennington  <hp@redhat.com>
8279
8280         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
8281         codes from the dbus error names
8282         
8283         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
8284         as dbus/dbus-glib.h and that breakage is now visible due to 
8285         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
8286         
8287         * glib/dbus-glib.h: s/gproxy/g_proxy/
8288
8289         * dbus/dbus-shared.h: new header to hold stuff shared with
8290         binding APIs
8291         
8292         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
8293         than dbus-errors.h
8294
8295         * glib/dbus-glib.h (dbus_set_g_error): move to
8296         dbus-glib-lowlevel.h
8297
8298         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
8299         of stuff to enable this
8300
8301         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
8302
8303         * a bunch of other changes with the same basic "separate glib 
8304         bindings from dbus.h" theme
8305         
8306 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
8307
8308         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
8309
8310         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
8311
8312 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8313
8314         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
8315         the reply value of the ServiceExists message.
8316
8317 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
8318
8319         * python/dbus_bindings.pyx.in: No longer need to parse path
8320         elements and pass them as arrays of strings.  The C API now
8321         accepts plain path strings.
8322         (_build_parsed_path): removed 
8323
8324 2004-06-07  Havoc Pennington  <hp@redhat.com>
8325
8326         * doc/TODO: remove auto-activation item since it's done; sort
8327         items by importance/milestone
8328
8329 2004-06-07  Havoc Pennington  <hp@redhat.com>
8330
8331         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
8332         random signature when using REQUIRED_FIELDS (this hack won't work
8333         in the long term)
8334
8335         * dbus/dbus-message.c: change the signature to be a header field,
8336         instead of message->signature special-case string. Incremental
8337         step forward. Then we can fix up code to send the signature in the
8338         message, then fix up code to validate said signature, then fix up
8339         code to not put the typecodes inline, etc.
8340         (load_one_message): don't make up the signature after the fact
8341         (decode_header_data): require signature field for the known
8342         message types
8343
8344         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
8345
8346         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
8347
8348 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
8349
8350         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
8351
8352         * mono/Handler.cs: Updated to follow new path argument for
8353         (un-)registering objects.
8354
8355         * mono/example/Makefile.am:
8356         * mono/Makefile.am:
8357         * configure.in: Bumped required version for mono and use new -pkg
8358         syntax for deps
8359
8360 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8361
8362         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
8363         registration functions take the path argument as char* instead of
8364         char**.
8365
8366         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
8367         split off the path decompostion part of
8368         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
8369         warnings. 
8370
8371         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
8372         
8373 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8374  
8375         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
8376         machine approach.  A state is implemented as a function that
8377         handles incoming events as specified for that state.
8378         
8379         * doc/dbus-specification.xml: Update auth protocol state machine
8380         specification to match implementation.  Remove some leftover
8381         base64 examples.
8382
8383 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
8384
8385         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
8386         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
8387         quiet doxygen.
8388
8389         * Doxyfile.in: remove deprecated options.
8390
8391         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
8392         glib/test-thread.h, glib/test-thread-client.c,
8393         glib/test-thread-server.c, glib/test-profile.c,
8394         glib/test-dbus-glib.c: remove these unused files.
8395
8396 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8397
8398         * dbus/dbus-object-tree.c
8399         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
8400         non-fallback handlers (bug #684).
8401         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
8402         (find_subtree_recurse): report wether the returned subtree is an
8403         exact match or a "fallback" match higher up in the tree.
8404         (object_tree_test_iteration): update test case.
8405
8406 2004-06-01  Seth Nickell  <seth@gnome.org>
8407
8408         * python/dbus_bindings.pyx.in:
8409         * python/tests/test-client.py:
8410
8411         Round off basic type support. Add dicts (yay!), and 
8412         remaining array types.
8413
8414         Make MessageIter more general so it works for dicts too.
8415
8416         Mark all loop variables as C integers.
8417         
8418 2004-05-31  Havoc Pennington  <hp@redhat.com>
8419
8420         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
8421         "in" before "out"
8422
8423         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
8424
8425         * glib/dbus-glib-tool.c (main): set up to have a --self-test
8426         option that runs the tests, and start filling in some code
8427         including for starters just dumping the interfaces to stdout
8428
8429         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
8430
8431         * test/data/valid-introspection-files/lots-of-types.xml: test of
8432         an example introspection file
8433
8434         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
8435         "node" (I think...)
8436
8437 2004-05-31  Seth Nickell  <seth@gnome.org>
8438
8439         * python/dbus_bindings.pyx.in:
8440         * python/tests/test-client.py:
8441
8442         Test Suite: 1
8443         Python Bindings: 0
8444
8445         Fix string array memory trashing bug... oops...
8446
8447 2004-05-30  Seth Nickell  <seth@gnome.org>
8448
8449         * python/dbus.py:
8450
8451         Add a nicer-but-less-flexible alternate API for handling 
8452         calls to virtual objects in dbus.ObjectTree.
8453
8454         Screw up the argument order to the dbus.Object constructor
8455         for consistency with dbus.ObjectTree (and to make dbus_methods
8456         optional for future extension)
8457         
8458         * python/examples/Makefile.am:
8459         * python/examples/gconf-proxy-service.py:
8460         * python/examples/gconf-proxy-service2.py:
8461
8462         Alternate implementation of gconf-proxy-service using the
8463         nicer dbus.ObjectTree API.
8464         
8465         * python/examples/example-service.py:
8466         * python/tests/test-server.py
8467
8468         Reverse the argument order to deal with dbus.Object constructor
8469         changes.
8470         
8471 2004-05-30  Seth Nickell  <seth@gnome.org>
8472
8473         * python/examples/example-client.py:
8474         * python/examples/example-service.py:
8475
8476         Take it back. Lists seem to work but they're broken
8477         in the test suite. Make the base examples use
8478         lists (works fine).
8479
8480 2004-05-30  Seth Nickell  <seth@gnome.org>
8481
8482         * python/dbus_bindings.pyx.in:
8483         * python/tests/test-client.py:
8484
8485         Add some more tests and fix errors that crop up.
8486         Unfortunately, currently it seems like marshalling
8487         and unmarshalling of lists is completely broken :-(
8488
8489 2004-05-30  Seth Nickell  <seth@gnome.org>
8490
8491         * python/dbus_bindings.pyx.in:
8492
8493         Add support for ObjectPath type.
8494
8495         * python/dbus.py:
8496
8497         Refactor message handling code to a common function.
8498         
8499         * python/tests/test-client.py:
8500         * python/tests/test-server.py:
8501
8502         Add tests that check to make sure values of all types
8503         can be echoed from a service w/o mangling.
8504         
8505 2004-05-29  Seth Nickell  <seth@gnome.org>
8506
8507         * python/dbus.py:
8508
8509         Add ObjectTree class which allows implementation
8510         of trees of "virtual" objects. Basically the python
8511         wrapper for "register_fallback".
8512         
8513         * python/examples/Makefile.am
8514         * python/examples/gconf-proxy-client.py:
8515         * python/examples/gconf-proxy-service.py:
8516
8517         Implement a simple GConf proxy service that supports
8518         get/set on string and int GConf keys using the ObjectTree.
8519         
8520 2004-05-29  Seth Nickell  <seth@gnome.org>
8521
8522         * python/dbus.py:
8523         * python/examples/example-client.py:
8524         * python/examples/example-service.py:
8525         * python/examples/list-system-services.py:
8526
8527         Add SessionBus, SystemBus and ActivationBus classes
8528         so you don't need to know the special little BUS_TYPE
8529         flag.
8530         
8531 2004-05-29  Havoc Pennington  <hp@redhat.com>
8532
8533         * bus/config-parser.c (process_test_valid_subdir): temporarily
8534         stop testing config parser OOM handling, since expat has issues
8535         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
8536
8537         * bus/dbus-daemon-1.1.in: change requested_reply to
8538         send_requested_reply/receive_requested_reply so we can send the
8539         replies, not just receive them.
8540
8541         * bus/config-parser.c: parse the new
8542         send_requested_reply/receive_requested_reply
8543
8544         * bus/policy.c (bus_client_policy_check_can_send): add
8545         requested_reply argument and use it
8546
8547         * bus/bus.c (bus_context_check_security_policy): pass through
8548         requested_reply status to message send check
8549
8550         * bus/system.conf.in: adapt to requested_reply change
8551         
8552 2004-05-28  Havoc Pennington  <hp@redhat.com>
8553
8554         * test/glib/test-service-glib.c (main): remove unused variable
8555
8556         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
8557
8558         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
8559         from the enum, no longer in use.
8560
8561         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
8562         works right.
8563
8564         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
8565         whether error_name passed in is a valid error name.
8566
8567 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
8568
8569         * dbus/dbus-message.c (dbus_message_get_args): Added support for
8570         OBJECT_PATH and OBJECT_PATH_ARRAY
8571
8572 2004-05-28  Seth Nickell  <seth@gnome.org>
8573
8574         * python/examples/Makefile.am:
8575
8576         Forget to add Makefile.am. Do not pass go.
8577
8578 2004-05-28  Michael Meeks  <michael@ximian.com>
8579
8580         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
8581         fix no int64 case.
8582
8583         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
8584
8585         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
8586         (_dbus_message_iter_get_basic_type_array): impl.
8587         drastically simplify ~all relevant _get methods to use these.
8588         (_dbus_message_iter_append_basic_array),
8589         (dbus_message_iter_append_basic): impl
8590         drastically simplify ~all relevant _append methods to use these.
8591
8592         * dbus/dbus-message-builder.c (parse_basic_type) 
8593         (parse_basic_array, lookup_basic_type): impl.
8594         (_dbus_message_data_load): prune scads of duplicate /
8595         cut & paste coding.
8596
8597         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
8598         (_dbus_demarshal_basic_type): implement,
8599         (demarshal_and_validate_len/arg): beef up debug.
8600         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
8601
8602 2004-05-27  Seth Nickell  <seth@gnome.org>
8603
8604         * configure.in:
8605         * python/Makefile.am:
8606
8607         Include the example python apps in the tarball.
8608         
8609         * python/examples/list-system-services.py
8610
8611         Add a python new example that fetches the list of services
8612         from the system bus.
8613         
8614 2004-05-27  Seth Nickell  <seth@gnome.org>
8615
8616         * python/dbus.py:
8617         * python/dbus_bindings.pyx.in:
8618
8619         Fix failure to notify that a signal was not handled,
8620         resulted in hung functions.
8621         
8622 2004-05-25  Colin Walters  <walters@redhat.com>
8623
8624         * tools/dbus-monitor.c (main): Monitor all types of messages.
8625
8626 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
8627
8628         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
8629         which unregisters the object path and disposes the handler.
8630
8631 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
8632  
8633         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
8634          
8635         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
8636         operands to && so we call dbus_message_iter_next () for the last
8637         argument also.
8638
8639 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8640
8641         * dbus/dbus-object-tree.c
8642         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
8643         children even if the requested path isn't registered.
8644         (object_tree_test_iteration): test object_tree_list_registered.
8645
8646         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
8647         it to 0.
8648         
8649 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
8650
8651         * doc/TODO: Remove resolved items.
8652
8653         * bus/expirelist.h (struct BusExpireList): remove unused n_items
8654         field.
8655         
8656         * bus/connection.c (bus_connections_expect_reply): Enforce the
8657         per-connection limit on pending replies.
8658         
8659         Patch from Jon Trowbridge <trow@ximian.com>:
8660  
8661         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
8662         up a watch that triggers a config reload when one end of the pipe
8663         becomes readable.
8664         (signal_handler): Instead of doing the config reload in our SIGHUP
8665         handler, just write to the reload pipe and let the associated
8666         watch handle the reload when control returns to the main loop.
8667  
8668         * bus/driver.c (bus_driver_handle_reload_config): Added.
8669         Implements a ReloadConfig method for requesting a configuration
8670         file reload via the bus driver.
8671  
8672 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
8673
8674         * HACKING: Updated release instructions concerning the wiki page.
8675
8676 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
8677
8678         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
8679         filter against auth->allowed_mechs; we only add allowed mechs in
8680         record_mechanisms().
8681  
8682         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
8683         ALLOWED_MECHS to auth-script format so we can set the list of
8684         allowed mechanisms.
8685  
8686         * data/auth/client-out-of-mechanisms.auth-script: New test to
8687         check client disconnects when it is out of mechanisms to try.
8688  
8689         * dbus/dbus-auth.c (process_command): Remove check for lines
8690         longer that 1 MB; we only buffer up maximum 16 kB.
8691  
8692         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8693         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
8694         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
8695         assume there might be unused bytes.
8696  
8697         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
8698         client-out-of-mechs, it is handled in process_reject(). Move check
8699         for max failures to send_rejected(), as it's a server-only thing.
8700
8701         * dbus/dbus-auth.c: Factor out protocol reply code into functions
8702         send_auth(), send_data(), send_rejected(), send_error(),
8703         send_ok(), send_begin() and send_cancel().
8704
8705 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
8706
8707         Remove base64 encoding, replace with hex encoding. Original patch
8708         from trow@ximian.com, added error handling.
8709
8710         * dbus/dbus-string.c (_dbus_string_base64_encode)
8711         (_dbus_string_base64_decode): Remove.
8712         (_dbus_string_hex_decode): Add end_return argument so we can
8713         distinguish between OOM and invalid hex encoding.
8714         (_dbus_string_test): Remove base64 tests and add test case for
8715         invalid hex.
8716
8717         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
8718         Replace base64 with hex.
8719
8720         * test/data/auth/invalid-hex-encoding.auth-script: New test case
8721         for invalid hex encoded data in auth protocol.
8722
8723 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8724
8725         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
8726         leak.
8727
8728 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8729
8730         * mono/dbus-sharp.dll.config.in: Added for GAC
8731         * mono/dbus-sharp.snk: Added for GAC
8732         * mono/Assembly.cs.in: Added for GAC
8733         * mono/Makefile.am: Changes for GAC installation        
8734         * configure.in: Added refs for dbus-sharp.dll.config.in and
8735         Assembly.cs.in. More fixes for mono testing
8736         * mono/example/Makefile.am: Changed var to CSC
8737         * Makefile.am: Changed flag name to DBUS_USE_CSC
8738
8739 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
8740
8741         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
8742         * mono/doc/*: Added documentation framework
8743         * configure.in: Added monodoc check
8744         * README: Added description of mono configure flags
8745
8746 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
8747
8748         * doc/dbus-specification.xml: Added a "Required" column to the 
8749         header fields table and changed the "zero or more" verbage in
8750         the above paragraph to read "The header must contain the required 
8751         named header fields and zero or more of the optional named header 
8752         fields".
8753         * test/data/invalid-messages/*.message: Added the required PATH 
8754         named header field to the tests so that they don't fail on 
8755         'Missing path field'
8756
8757 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
8758
8759         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
8760         the stack by implicitly defining variable and parameter types and
8761         removing the hack of defining C pointers as python objects and later
8762         casting them.
8763
8764 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
8765
8766         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
8767
8768 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
8769
8770         * mono/DBusType/Dict.cs: Handle empty dicts
8771         * mono/DBusType/Array.cs: Handle empty arrays
8772         * mono/Arguments.cs: Handle empty arguments
8773
8774 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
8775
8776         * dbus-sharp.pc.in: Modified to include include Libs and Requires
8777         field
8778
8779 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
8780
8781         * test/data/valid-messages/standard-*.message: Update message
8782         test scripts to new header field names.
8783
8784 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
8785
8786         * test/break-loader.c (randomly_do_n_things): tracked down buffer
8787         overflow to times_we_did_each_thing array which would chop off the
8788         first character of the failure_dir string. Increased the size of
8789         the array to 7 to reflect the number of random mutation functions
8790         we have.
8791
8792 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
8793
8794         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
8795         unix_server->watch here, it is unreffed in disconnect.
8796         (_dbus_server_new_for_tcp_socket): convert NULL host to
8797         "localhost" here so we don't append NULL to address.
8798         
8799         * dbus/dbus-server.c (_dbus_server_test): Add test case for
8800         various addresses, including tcp with no explicit host.
8801
8802 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8803
8804         * dbus/dbus-message.c (decode_header_data, decode_string_field):
8805         fix incorrect setting of .name_offset in the HeaderField (it was
8806         off by two bytes, positioned right after the name and typecode)
8807
8808         * bus/bus.c (bus_context_new, bus_context_unref): test before
8809         calling dbus_server_free_data_slot and _dbus_user_database_unref
8810         in case of an error.
8811
8812         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
8813         by libdbus-gtool.
8814
8815 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
8816
8817         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
8818         _dbus_poll() instead of select().
8819
8820 2004-04-15  Jon Trowbridge  <trow@ximian.com>
8821
8822         * bus/main.c (signal_handler): Reload the configuration files
8823         on SIGHUP.
8824         (main): Set up our SIGHUP handler.
8825
8826         * bus/bus.c (struct BusContext): Store the config file, user and
8827         fork flag in the BusContext.
8828         (process_config_first_time_only): Added.  Contains the code
8829         (previously in bus_context_new) for setting up the BusContext from
8830         the BusConfigParser that should only be run the first time the
8831         config files are read.
8832         (process_config_every_time): Added.  Contains the code (previously
8833         in bus_context_new) for setting up the BusContext from the
8834         BusConfigParser that should be run every time the config files are
8835         read.
8836         (load_config): Added.  Builds a BusConfigParser from the config
8837         files and passes the resulting structure off to
8838         process_config_first_time_only (assuming this is the first time)
8839         and process_config_every_time.
8840         (bus_context_new): All of the config-related code has been moved
8841         to process_config_first_time_only and process_config_every_time.
8842         Now this function just does the non-config-related initializations
8843         and calls load_config.
8844         (bus_context_reload_config): Added.
8845
8846 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8847
8848         * bus/driver.c (bus_driver_handle_get_service_owner):
8849         implement a GetServiceOwner method.
8850         * doc/dbus-specification.xml: document it.
8851         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
8852         
8853         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
8854         implement, using the bus GetServiceOwner method.
8855
8856         * test/glib/test-dbus-glib.c:
8857         use dbus_gproxy_new_for_service_owner so that we can receive the
8858         signal. 
8859
8860 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
8861
8862         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8863         dbus/dbus-message.c, dbus/dbus-protocol.h
8864         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
8865
8866         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
8867         dbus/dbus-message.c, dbus/dbus-protocol.h
8868         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
8869
8870         * dbus/dbus-internals.c (_dbus_header_field_to_string):
8871         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
8872         DBUS_HEADER_FIELD_SENDER resolves to "sender"
8873
8874         * doc/dbus-specification.xml (Header Fields Table):
8875         s/SERVICE/DESTINATION
8876         s/SENDER_SERVICE/SENDER
8877
8878
8879 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
8880
8881         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
8882         a few seconds.
8883
8884 2004-04-13  Michael Meeks  <michael@ximian.com>
8885
8886         * glib/dbus-gobject.c (handle_introspect): split out
8887         (introspect_properties): this.
8888         (handle_introspect): implement this.
8889
8890         * test/glib/Makefile.am: use the absolute path so the bus
8891         daemon's chdir ("/") doesn't kill us dead.
8892
8893         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
8894
8895 2004-04-12  Jon Trowbridge  <trow@ximian.com>
8896
8897         * bus/config-parser.c (struct BusConfigParser): Added
8898         included_files field.
8899         (seen_include): Added.  Checks whether or not a file has already
8900         been included by any parent BusConfigParser.
8901         (bus_config_parser_new): Copy the parent's included_files.
8902         (include_file): Track which files have been included, and fail on
8903         circular inclusions.
8904         (process_test_valid_subdir): Changed printf to report if we are
8905         testing valid or invalid conf files.
8906         (all_are_equiv): Changed printf to be a bit clearer about
8907         what we are actually doing.
8908         (bus_config_parser_test): Test invalid configuration files.
8909
8910 2004-04-09  Jon Trowbridge  <trow@ximian.com>
8911
8912         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
8913         argument.  If non-null, the newly-constructed BusConfigParser will
8914         be initialized with the parent's BusLimits instead of the default
8915         values.
8916         (include_file): When including a config file, pass in
8917         the current parser as the parent and then copy the BusLimits
8918         from the included BusConfigParser pack to the current parser.
8919         (process_test_valid_subdir): Renamed from process_test_subdir.
8920         (process_test_equiv_subdir): Added.  Walks through a directory,
8921         descending into each subdirectory and loading the config files
8922         it finds there.  If any subdirectory contains two config files
8923         that don't produce identical BusConfigParser structs, fail.
8924         For now, the BusConfigParser's BusPolicies are not compared.
8925         (bus_config_parser_test): Call both process_test_valid_subdir and
8926         process_test_equiv_subdir.
8927
8928         * bus/config-loader-libxml.c (bus_config_load): Take a parent
8929         argument and pass it along to the call to bus_config_parser_new.
8930         Also made a few small changes to allow this code to compile.
8931
8932         * bus/config-loader-expat.c (bus_config_load): Take a parent
8933         argument and pass it along to the call to bus_config_parser_new.
8934
8935         * bus/bus.c (bus_context_new): Load the config file
8936         with a NULL parent argument.
8937
8938 2004-03-29  Michael Meeks  <michael@ximian.com>
8939
8940         * glib/dbus-gobject.c (introspect_properties): split
8941         out, fix mangled 'while' flow control.
8942         (introspect_signals): implement.
8943         (handle_introspect): update.
8944
8945 2004-03-29  Michael Meeks  <michael@ximian.com>
8946
8947         * glib/dbus-gobject.c (set_object_property): split out / 
8948         re-work, use the property type, and not the message type(!)
8949         (get_object_property): ditto.
8950
8951         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
8952         (dbus_gvalue_marshal): make this code re-usable, needed
8953         for signals too, also on both proxy and server side.
8954         Re-write for more efficiency / readability.
8955
8956 2004-03-29  Michael Meeks  <michael@ximian.com>
8957
8958         * dbus/dbus-message.c
8959         (dbus_message_new_error_printf): impl.
8960
8961         * dbus/dbus-connection.c
8962         (dbus_connection_unregister_object_path): fix warning.
8963
8964         * configure.in: fix no-mono-installed situation.
8965
8966 2004-03-27  Havoc Pennington  <hp@redhat.com>
8967
8968         Patch from Timo Teräs:
8969         
8970         * tools/dbus-send.c (main): if --print-reply, assume type is
8971         method call; support boolean type args
8972         
8973         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
8974         bunch of memleak and logic bugs
8975         
8976 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8977
8978         * mono/Arguments.cs:
8979         * mono/Introspector.cs:
8980         * mono/Handler.cs:
8981         * mono/InterfaceProxy.cs:
8982         * mono/Message.cs
8983         * mono/ProxyBuilder.cs:
8984         * mono/Service.cs:
8985         Added InterfaceProxy class to avoid building proxies for every
8986         object.
8987
8988         * dbus-message.h:
8989         * dbus-message.c (dbus_message_append_args_valist)
8990         (dbus_message_iter_get_object_path)
8991         (dbus_message_iter_get_object_path_array)
8992         (dbus_message_iter_append_object_path)
8993         (dbus_message_iter_append_object_path_array):
8994         Added object_path iter functions to handle OBJECT_PATH arguments
8995         
8996 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
8997
8998         First checkin of mono bindings.
8999         * configure.in:
9000         * Makefile.am:
9001         Build stuff for the bindings
9002         * dbus-sharp.pc.in: Added for pkgconfig
9003         
9004 2004-03-21  Havoc Pennington  <hp@redhat.com>
9005
9006         * test/test-service.c (main): remove debug spew
9007
9008 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9009
9010         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
9011         arrays
9012
9013         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
9014         (dbus_message_iter_init_array_iterator)
9015         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
9016         indicate whether the iterator is empty
9017
9018         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
9019         warnings
9020
9021 2004-03-19  Havoc Pennington  <hp@redhat.com>
9022
9023         * NEWS: 0.21 updates
9024
9025         * configure.in: 0.21
9026
9027         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
9028         
9029         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
9030         you don't need pyrex to make dist
9031
9032         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
9033         sources; run moc
9034         
9035 2004-03-18  Richard Hult  <richard@imendio.com>
9036
9037         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
9038         (dbus_message_set_auto_activation): Add doxygen docs.
9039
9040 2004-03-16  Richard Hult  <richard@imendio.com>
9041
9042         * bus/activation.c: (bus_activation_service_created),
9043         (bus_activation_send_pending_auto_activation_messages),
9044         (bus_activation_activate_service):
9045         * bus/activation.h:
9046         * bus/dispatch.c: (bus_dispatch),
9047         (check_nonexistent_service_auto_activation),
9048         (check_service_auto_activated),
9049         (check_segfault_service_auto_activation),
9050         (check_existent_service_auto_activation), (bus_dispatch_test):
9051         * bus/driver.c: (bus_driver_handle_activate_service):
9052         * bus/services.c: (bus_registry_acquire_service):
9053         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
9054         (dbus_message_get_auto_activation):
9055         * dbus/dbus-message.h:
9056         * dbus/dbus-protocol.h: Implement auto-activation.
9057         
9058         * doc/dbus-specification.xml: Add auto-activation to the spec.
9059
9060 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
9061
9062         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
9063         fix a bug with CUSTOM types.
9064
9065         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
9066         a unit test for this bug (used to fail).
9067
9068 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9069
9070         * bus/activation.c:
9071         (babysitter_watch_callback): notify all pending activations waiting for
9072           the same exec that the activation failed.
9073         (bus_activation_activate_service): shortcut the activation if we 
9074           already waiting for the same executable to start up.
9075
9076 2004-03-12  Mikael Hallendal  <micke@imendio.com>
9077
9078         * bus/activation.c: 
9079         - Added service file reloading. 
9080           Each service files directory is kept in an hash table in 
9081           BusActivation and each BusActivationEntry knows what .service-file it
9082           was read from. So when you try to activate a service the bus will 
9083           check if it's been updated, removed or if new .service-files has 
9084           been installed.
9085         - Test code at the bottom for the service file reloading.
9086         * bus/test-main.c: (main):
9087         * bus/test.h:
9088         - added service reloading test.
9089         * dbus/dbus-sysdeps.c: 
9090         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
9091
9092 2004-03-08  Michael Meeks  <michael@ximian.com>
9093
9094         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
9095         bail immediately if disconnected, to avoid busy loop.
9096
9097         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
9098         cleanup cut/paste/inefficiency.
9099
9100 2004-03-01  David Zeuthen  <david@fubar.dk>
9101
9102         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
9103         bug where args were used twice. This bug resulted in a segfault
9104         on a Debian/PPC system when starting the messagebus daemon. Include
9105         dbus-sysdeps.h for DBUS_VA_COPY
9106
9107         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
9108
9109         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
9110         appropriate va_copy implementation. From GLib
9111         
9112 2004-02-24  Joe Shaw  <joe@ximian.com>
9113
9114         * bus/services.c (bus_registry_acquire_service): We need to pass
9115         in the service name to dbus_set_error() to prevent a crash.
9116
9117 2003-12-26  Anders Carlsson  <andersca@gnome.org>
9118
9119         * AUTHORS: Reveal my True identity.
9120
9121 2003-12-17  Mikael Hallendal  <micke@imendio.com>
9122
9123         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
9124         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
9125
9126 2003-12-13  Mikael Hallendal  <micke@imendio.com>
9127
9128         * doc/TODO: Added not about better error check of configuration files.
9129
9130 2003-12-02  Richard Hult  <richard@imendio.com>
9131
9132         * Update AFL version to 2.0 throughout the source files to reflect
9133         the update that was done a while ago.
9134
9135 2003-12-02  Richard Hult  <richard@imendio.com>
9136
9137         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
9138         wrote_dict_key to FALSE on the iter that the dict is appended to,
9139         just like when appending other types. Fixes a bug where a dict
9140         couldn't be put inside a dict.
9141         (dbus_message_iter_append_dict_key): Fix typo in warning message.
9142         (message_iter_test, _dbus_message_test): Add test case for dict
9143         inside dict.
9144
9145 2003-12-01  David Zeuthen  <david@fubar.dk>
9146
9147         * python/dbus.py: Add the actual message when calling the reciever
9148         of a signal such that parameters can be inspected. Add the method
9149         remove_signal_receiver
9150         
9151 2003-11-26  Mikael Hallendal  <micke@imendio.com>
9152
9153         * bus/*.[ch]:
9154         * dbus/*.[ch]:
9155         * glib/*.[ch]: Made ref functions return the pointer
9156
9157 2003-11-25  Zack Rusin  <zack@kde.org>
9158
9159         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
9160
9161         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
9162         wrappers,
9163
9164         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
9165         the Integrator and to better fit with the server,
9166
9167 2003-11-24  Zack Rusin  <zack@kde.org>
9168
9169         * qt/connection.h, qt/connection.cpp: removing initDbus method since
9170         the integrator handles it now
9171
9172         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
9173         since QTimer wasn't really meant to be used the way DBusTimeout is
9174
9175 2003-11-24  Zack Rusin  <zack@kde.org>
9176
9177         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
9178         Integrator class which integrates D-BUS with the Qt event loop,
9179
9180         * qt/connection.h, qt/connection.cpp: Move all the code which
9181         was dealing with D-BUS integration to the Integrator class,
9182         and start using Integrator,
9183
9184 2003-11-23  Zack Rusin  <zack@kde.org>
9185
9186         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
9187         wrapper
9188
9189         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
9190         switching namespaces to DBusQt, reworking the class,
9191
9192         * Makefile.cvs: switching dependencies so that it matches KDE 
9193         schematics,
9194         
9195         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
9196         the library
9197
9198 2003-11-19  Havoc Pennington  <hp@redhat.com>
9199
9200         * NEWS: update
9201
9202         * configure.in: bump version to 0.20
9203
9204         * configure.in (have_qt): add yet another place to look for qt
9205         (someone hand trolltech a .pc file...)
9206
9207 2003-11-01  Havoc Pennington  <hp@redhat.com>
9208
9209         * doc/dbus-specification.xml: add state machine docs on the auth
9210         protocol; just a first draft, I'm sure it's wrong.      
9211
9212 2003-10-28  David Zeuthen  <david@fubar.dk>
9213
9214         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
9215         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
9216         
9217 2003-10-28  Havoc Pennington  <hp@redhat.com>
9218
9219         * dbus/dbus-message.c (get_next_field): delete unused function
9220
9221 2003-10-28  Havoc Pennington  <hp@redhat.com>
9222
9223         * bus/expirelist.c (do_expiration_with_current_time): detect
9224         failure of the expire_func due to OOM
9225
9226         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
9227
9228         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
9229         NoReply error that's now created by the bus when the service exits
9230
9231 2003-10-28  Havoc Pennington  <hp@redhat.com>
9232
9233         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
9234         tests for set_path, set_interface, set_member, etc.
9235
9236         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
9237
9238         * dbus/dbus-message.c (set_string_field): always just delete and
9239         re-append the field; accept NULL for deletion
9240         (re_align_fields_recurse): reimplement
9241         
9242 2003-10-26  Havoc Pennington  <hp@redhat.com>
9243
9244         * dbus/dbus-connection.c: fix docs to properly describe the
9245         disconnected message
9246         (_dbus_connection_notify_disconnected): remove this function; 
9247         we can't synchronously add the disconnected message, we have to 
9248         do it after we've queued any remaining real messages
9249         (_dbus_connection_get_dispatch_status_unlocked): queue the
9250         disconnect message only if the transport has finished queueing all
9251         its real messages and is disconnected.
9252         (dbus_connection_disconnect): update the dispatch status here
9253
9254 2003-10-22  Havoc Pennington  <hp@redhat.com>
9255
9256         * bus/bus.c (bus_context_check_security_policy): fix up assertion
9257
9258         * bus/connection.c (bus_transaction_send_from_driver): set the
9259         destination to the connection's base service
9260
9261 2003-10-20  Havoc Pennington  <hp@redhat.com>
9262
9263         hmm, make check is currently not passing.
9264         
9265         * doc/dbus-specification.xml: add requirement that custom type
9266         names follow the same rules as interface names.
9267
9268         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
9269         duplication and allow 'c' to be 'custom'; dict is now 'm' for
9270         'map'
9271
9272         * doc/dbus-specification.xml: update type codes to match
9273         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
9274         CUSTOM. Add type OBJECT_PATH to the spec.
9275
9276 2003-10-17  Havoc Pennington  <hp@redhat.com>
9277
9278         * bus/driver.c (create_unique_client_name): use "." as separator
9279         in base service names instead of '-'
9280
9281         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
9282         byte at the end of the string
9283
9284         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
9285         optimization macros since string validation seems to be a slow
9286         point.
9287         
9288         * doc/dbus-specification.xml: restrict valid
9289         service/interface/member/error names. Add test suite code for the
9290         name validation.
9291
9292         * dbus/dbus-string.c: limit service/interface/member/error names 
9293         to [0-9][A-Z][a-z]_
9294
9295         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
9296         format arg to verbose spew
9297
9298         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
9299         memory, return instead of g_error
9300
9301         * test/test-service.c (path_message_func): support emitting a
9302         signal on request
9303
9304         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
9305         activation bus type if DBUS_BUS_ACTIVATION was set; default to
9306         assuming the activation bus was the session bus so that services
9307         started manually will still register.
9308         (init_connections_unlocked): fix so that in OOM situation we get
9309         the same semantics when retrying the function
9310         
9311         * test/test-service.c (main): change to use path registration, to
9312         test those codepaths; register with DBUS_BUS_ACTIVATION rather
9313         than DBUS_BUS_SESSION
9314
9315 2003-10-16  Havoc Pennington  <hp@redhat.com>
9316
9317         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
9318
9319         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
9320         coverage of the tests
9321         (coverage-report.txt): don't move the .da and .bbg files around
9322
9323 2003-10-16  Havoc Pennington  <hp@redhat.com>
9324
9325         * bus/bus.c (struct BusContext): remove struct field I didn't mean
9326         to put there
9327
9328 2003-10-16  Havoc Pennington  <hp@redhat.com>
9329
9330         * bus/connection.c (bus_pending_reply_expired): either cancel or
9331         execute, not both
9332         (bus_connections_check_reply): use unlink, not remove_link, as we
9333         don't want to free the link; fixes double free mess
9334
9335         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
9336         where no reply was received
9337
9338         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
9339         fix a refcount leak
9340
9341         * bus/signals.c (match_rule_matches): add special cases for the
9342         bus driver, so you can match on sender/destination for it.
9343
9344         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
9345         DBUS_PRINT_BACKTRACE is set
9346
9347         * dbus/dbus-internals.c: add pid to assertion failure messages
9348
9349         * dbus/dbus-connection.c: add message type code to the debug spew
9350
9351         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
9352         sender=foo not service=foo
9353
9354         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
9355         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
9356         DBUS_ACTIVATION_ADDRESS instead
9357
9358         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
9359         DBUS_SYSTEM_BUS_ADDRESS if appropriate
9360
9361         * bus/bus.c (bus_context_new): handle OOM copying bus type into
9362         context struct
9363
9364         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
9365         (dbus_message_iter_get_object_path_array): new function (half
9366         finished, disabled for the moment)
9367         
9368         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
9369         DBUS_MESSAGE_TYPE_ERROR
9370
9371         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
9372         avoid redirecting stderr to /dev/null
9373         (babysit): close stdin if not doing the "exit_with_session" thing
9374
9375         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
9376         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
9377         stdout/stdin, so things don't get confused
9378         
9379         * bus/system.conf.in: fix to allow replies, I modified .conf
9380         instead of .conf.in again.
9381
9382 2003-10-14  David Zeuthen  <david@fubar.dk>
9383
9384         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
9385         argtype to arg_type when raising unknown arg type exception.
9386         Changed type list to reflect the changes in dbus-protocol.h so 
9387         the bindings actually work.
9388
9389 2003-10-14  Havoc Pennington  <hp@redhat.com>
9390
9391         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
9392         to have a bug keeping it from outputting the .da files sometimes
9393         (string_get_string): don't append garbage nul bytes to the string.
9394
9395 2003-10-15  Seth Nickell  <seth@gnome.org>
9396
9397         * python/Makefile.am:
9398
9399         Include dbus_h_wrapper.h in the dist tarball.
9400
9401 2003-10-14  Havoc Pennington  <hp@redhat.com>
9402
9403         * bus/bus.c (bus_context_check_security_policy): revamp this to
9404         work more sanely with new policy-based requested reply setup
9405
9406         * bus/connection.c (bus_transaction_send_from_driver): set bus
9407         driver messages as no reply
9408
9409         * bus/policy.c (bus_client_policy_check_can_receive): handle a
9410         requested_reply attribute on allow/deny rules
9411
9412         * bus/system.conf: add <allow requested_reply="true"/>
9413
9414         * bus/driver.c (bus_driver_handle_message): fix check for replies
9415         sent to the bus driver, which was backward. How did this ever work
9416         at all though? I think I'm missing something.
9417
9418         * dbus/dbus-message.c (decode_header_data): require error and
9419         method return messages to have a reply serial field to be valid
9420         (_dbus_message_loader_queue_messages): break up this function;
9421         validate that reply serial and plain serial are nonzero; 
9422         clean up the OOM/error handling.
9423         (get_uint_field): don't return -1 from this
9424         (dbus_message_create_header): fix signed/unsigned bug
9425
9426         * bus/connection.c (bus_connections_expect_reply): save serial of
9427         the incoming message, not reply serial
9428
9429 2003-10-14  Havoc Pennington  <hp@redhat.com>
9430
9431         * bus/connection.c: implement pending reply tracking using
9432         BusExpireList
9433
9434         * bus/bus.c (bus_context_check_security_policy): verify that a
9435         reply is pending in order to allow a reply to be sent. Deny 
9436         messages of unknown type.
9437
9438         * bus/dbus-daemon-1.1.in: update to mention new resource limits
9439
9440         * bus/bus.c (bus_context_get_max_replies_per_connection): new
9441         (bus_context_get_reply_timeout): new
9442
9443 2003-10-13  Seth Nickell  <seth@gnome.org>
9444
9445         * python/Makefile.am:
9446
9447         Pass "make distcheck": remove a couple files from DIST_FILES
9448         that weren't included in the final version.
9449
9450 2003-10-12  Havoc Pennington  <hp@pobox.com>
9451
9452         Added test code that 1) starts an actual bus daemon and 2) uses
9453         DBusGProxy; fixed bugs that were revealed by the test. Lots 
9454         more testing possible, but this is the basic framework.
9455         
9456         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
9457         empty proxy lists from the proxy list hash
9458
9459         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
9460         couple of return_if_fail checks
9461
9462         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
9463         to allocate, so everything is cleared to NULL as it should be.
9464
9465         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
9466         source as data to dbus_connection_set_timeout_functions() as the 
9467         timeout functions expected
9468
9469         * test/glib/run-test.sh: add a little script to start up a message
9470         bus and run tests using it
9471
9472         * tools/dbus-launch.1: updates
9473
9474         * tools/dbus-launch.c (main): add --config-file option
9475
9476         * tools/dbus-launch.c (main): remove confusing else if (runprog)
9477         that could never be reached.
9478
9479         * dbus/dbus-message.c (dbus_message_new_method_return) 
9480         (dbus_message_new_error, dbus_message_new_signal): set the
9481         no-reply-expected flag on all these. Redundant, but may
9482         as well be consistent.
9483
9484 2003-10-11  Havoc Pennington  <hp@pobox.com>
9485
9486         * test/decode-gcov.c (function_solve_graph): make broken block
9487         graph a nonfatal error since it seems to be broken. Need to debug
9488         this.
9489
9490         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
9491         can't just check type > INVALID < LAST anymore
9492
9493         * dbus/dbus-message.c (dbus_message_get_signature): new function
9494         (dbus_message_has_signature): new function
9495         (struct DBusMessage): add signature field (right now it isn't sent
9496         over the wire, just generated on the fly)
9497         (dbus_message_copy): copy the signature, and init strings to
9498         proper length to avoid some reallocs
9499         (dbus_message_iter_init_array_iterator): return void, since it
9500         can't fail
9501         (dbus_message_iter_init_dict_iterator): return void since it can't fail
9502         (_dbus_message_loader_queue_messages): add silly temporary hack to
9503         fill in message->signature on load
9504
9505         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
9506         characters, so they are relatively human-readable.
9507
9508 2003-10-11  Havoc Pennington  <hp@pobox.com>
9509
9510         * dbus/dbus-message.c (_dbus_message_test): add more test
9511         coverage, but #if 0 for now since they uncover a bug 
9512         not fixed yet; I think in re_align_field_recurse()
9513         (re_align_field_recurse): add FIXME about broken assertion
9514
9515         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
9516
9517         * bus/connection.c: share a couple code bits with expirelist.c
9518
9519         * bus/expirelist.h, bus/expirelist.c: implement a generic
9520         expire-items-after-N-seconds facility, was going to share between
9521         expiring connections and replies, decided not to use for expiring
9522         connections for now.
9523
9524         * COPYING: include AFL 2.0 (still need to change all the file headers)
9525
9526 2003-10-09  Havoc Pennington  <hp@redhat.com>
9527
9528         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
9529         gcc 3.3. Not that we do anything about it yet.
9530
9531         * bus/signals.c (bus_match_rule_parse): impose max length on the
9532         match rule text
9533
9534         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
9535
9536 2003-10-09  Havoc Pennington  <hp@redhat.com>
9537
9538         Make matching rules theoretically work (add parser).
9539         
9540         * bus/bus.c (bus_context_check_security_policy): fix up to handle
9541         the case where destination is explicitly specified as bus driver
9542         and someone else is eavesdropping.
9543         
9544         * bus/policy.c (bus_client_policy_check_can_receive): fix up
9545         definition of eavesdropping and assertion
9546
9547         * tools/dbus-send.c (main): use dbus_message_type_from_string
9548
9549         * bus/signals.c (bus_match_rule_parse): implement
9550
9551         * dbus/dbus-message.c (dbus_message_type_from_string): new
9552
9553         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
9554
9555 2003-10-02  Havoc Pennington  <hp@pobox.com>
9556
9557         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
9558         dbus_gproxy_oneway_call
9559
9560         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
9561         (dbus_server_setup_with_g_main): fix to allow calling them more
9562         than once on the same args
9563         (dbus_bus_get_with_g_main): new function
9564
9565 2003-10-02  Havoc Pennington  <hp@redhat.com>
9566
9567         * doc/dbus-tutorial.xml: write some stuff
9568
9569 2003-09-29  Havoc Pennington  <hp@pobox.com>
9570
9571         * configure.in: split checks for Doxygen from XML docs, check for
9572         xmlto
9573
9574         * doc/Makefile.am: XML-ify all the docs, and add a blank
9575         dbus-tutorial.xml
9576
9577 2003-09-29  Havoc Pennington  <hp@pobox.com>
9578
9579         * Merge dbus-object-names branch. To see the entire patch 
9580         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
9581         it's huuuuge though.
9582         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
9583         
9584 2003-09-28  Havoc Pennington  <hp@pobox.com>
9585
9586         * HACKING: update to reflect new server
9587
9588 2003-09-26  Seth Nickell  <seth@gnome.org>
9589
9590         * python/dbus.py:
9591         * python/examples/example-signals.py:
9592
9593         Start implementing some notions of signals. The API
9594         is really terrible, but they sort of work (with the
9595         exception of being able to filter by service, and to
9596         transmit signals *as* a particular service). Need to
9597         figure out how to make messages come from the service
9598         we registered :-(
9599         
9600         * python/dbus_bindings.pyx.in:
9601
9602         Removed duplicate message_handler callbacks.
9603         
9604 2003-09-25  Havoc Pennington  <hp@redhat.com>
9605
9606         * bus/session.conf.in: fix my mess
9607
9608 2003-09-25  Havoc Pennington  <hp@pobox.com>
9609
9610         * bus/session.conf.in: fix security policy, reported by Seth Nickell
9611
9612 2003-09-25  Seth Nickell  <seth@gnome.org>
9613
9614         * python/examples/example-service.py:
9615
9616         Johan notices complete wrong code in example-service, but
9617         completely wrong in a way that works exactly the same (!).
9618         Johan is confused, how could this possibly work? Example
9619         code fails to serve purpose of making things clear.
9620         Seth fixes.
9621
9622 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
9623
9624         * doc/dbus-specification.sgml: don't require header fields
9625         to be 4-byte aligned and specify that fields should be
9626         distinguished from padding by the fact that zero is not
9627         a valid field name.
9628         
9629         * doc/TODO: remove re-alignment item and add item to doc
9630         the OBJECT_PATH type.
9631         
9632         * dbus/dbus-message.c:
9633         (HeaderField): rename the original member to value_offset
9634         and introduce a name_offset member to keep track of where
9635         the field actually begins.
9636         (adjust_field_offsets): remove.
9637         (append_int_field), (append_uint_field),
9638         (append_string_field): don't align the start of the header
9639         field to a 4-byte boundary.
9640         (get_next_field): impl finding the next marhsalled field
9641         after a given field.
9642         (re_align_field_recurse): impl re-aligning a number of
9643         already marshalled fields.
9644         (delete_field): impl deleting a field of any type and
9645         re-aligning any following fields.
9646         (delete_int_or_uint_field), (delete_string_field): remove.
9647         (set_int_field), (set_uint_field): no need to re-check
9648         that we have the correct type for the field.
9649         (set_string_field): ditto and impl re-aligning any
9650         following fields.
9651         (decode_header_data): update to take into account that
9652         the fields aren't 4-byte aligned any more and the new
9653         way to distinguish padding from header fields. Also,
9654         don't exit when there is too much header padding.
9655         (process_test_subdir): print the directory.
9656         (_dbus_message_test): add test to make sure a following
9657         field is re-aligned correctly after field deletion.
9658         
9659         * dbus/dbus-string.[ch]:
9660         (_dbus_string_insert_bytes): rename from insert_byte and
9661         allow the insert of multiple bytes.
9662         (_dbus_string_test): test inserting multiple bytes.
9663
9664         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
9665         warning note to docs about having to re-align any
9666         marshalled values following the string.
9667         
9668         * dbus/dbus-message-builder.c:
9669         (append_string_field), (_dbus_message_data_load):
9670         don't align the header field.
9671         
9672         * dbus/dbus-auth.c: (process_test_subdir): print the
9673         directory.
9674         
9675         * test/break-loader.c: (randomly_add_one_byte): upd. for
9676         insert_byte change.
9677         
9678         * test/data/invalid-messages/bad-header-field-alignment.message:
9679         new test case.
9680         
9681         * test/data/valid-messages/unknown-header-field.message: shove
9682         a dict in the unknown field.
9683
9684 2003-09-25  Seth Nickell  <seth@gnome.org>
9685
9686         * python/dbus.py:
9687         * python/dbus_bindings.pyx.in:
9688
9689         Handle return values.
9690         
9691         * python/examples/example-client.py:
9692         * python/examples/example-service.py:
9693
9694         Pass back return values from the service to the client.
9695         
9696 2003-09-24  Seth Nickell  <seth@gnome.org>
9697
9698         * python/dbus.py:
9699
9700         Connect Object methods (when you are sharing an object) up... pass
9701         in a list of methods to be shared. Sharing all the methods just
9702         worked out too weird. You can now create nice Services over the
9703         DBus in Python. :-)
9704         
9705         * python/dbus_bindings.pyx.in:
9706
9707         Keep references to user_data tuples passed into C functions so 
9708         Python doesn't garbage collect on us.
9709
9710         Implement MethodReturn and Error subclasses of Message for creating
9711         DBusMessage's of those types.
9712         
9713         * python/examples/example-client.py:
9714         * python/examples/example-service.py:
9715
9716         Simple example code showing both how create DBus services and objects,
9717         and how to use them.
9718
9719 2003-09-23  Havoc Pennington  <hp@pobox.com>
9720
9721         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
9722
9723 2003-09-23  Havoc Pennington  <hp@redhat.com>
9724
9725         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
9726         (dbus_gproxy_disconnect_signal): implement
9727         (dbus_gproxy_manager_remove_signal_match): implement
9728         (dbus_gproxy_manager_add_signal_match): implement
9729         (dbus_gproxy_oneway_call): implement
9730
9731 2003-09-23  Havoc Pennington  <hp@pobox.com>
9732
9733         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
9734         subclass. This means dropping the transparent thread safety of the
9735         proxy; you now need a separate proxy per-thread, or your own
9736         locking on the proxy. Probably right anyway.
9737         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
9738
9739 2003-09-22  Havoc Pennington  <hp@redhat.com>
9740
9741         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
9742
9743 2003-09-21  Seth Nickell  <seth@gnome.org>
9744
9745         First checkin of the Python bindings.
9746         
9747         * python/.cvsignore:
9748         * python/Makefile.am:
9749         * python/dbus_bindings.pyx.in:
9750         * python/dbus_h_wrapper.h:
9751
9752         Pieces for Pyrex to operate on, building a dbus_bindings.so
9753         python module for low-level access to the DBus APIs.
9754         
9755         * python/dbus.py:
9756
9757         High-level Python module for accessing DBus objects.
9758
9759         * configure.in:
9760         * Makefile.am:
9761
9762         Build stuff for the python bindings.
9763
9764         * acinclude.m4:
9765
9766         Extra macro needed for finding the Python C header files.
9767
9768 2003-09-21  Havoc Pennington  <hp@pobox.com>
9769
9770         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
9771         implementing the proxy manager, didn't get very far.
9772
9773         * dbus/dbus-bus.c (dbus_bus_add_match): new
9774         (dbus_bus_remove_match): new
9775
9776         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
9777         path_name argument; adjust the other not-yet-implemented 
9778         gproxy constructors to be what I think they should be.
9779
9780 2003-09-21  Havoc Pennington  <hp@pobox.com>
9781
9782         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
9783         by default for message bus connections.
9784
9785         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
9786         exit_on_disconnect flag is set and we process the disconnected
9787         signal.
9788         (dbus_connection_set_exit_on_disconnect): new function
9789
9790 2003-09-21  Havoc Pennington  <hp@pobox.com>
9791
9792         Get matching rules mostly working in the bus; only actually
9793         parsing the rule text remains. However, the client side of
9794         "signal connections" hasn't been started, this patch is only the
9795         bus side.
9796         
9797         * dbus/dispatch.c: fix for the matching rules changes
9798         
9799         * bus/driver.c (bus_driver_handle_remove_match)
9800         (bus_driver_handle_add_match): send an ack reply from these
9801         method calls
9802
9803         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
9804         arguments, reported by Seth Nickell
9805
9806         * bus/config-parser.c (append_rule_from_element): support
9807         eavesdrop=true|false attribute on policies so match rules 
9808         can be prevented from snooping on the system bus.
9809
9810         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
9811         and "destination" in attribute names; fix some docs bugs; 
9812         add eavesdrop=true|false attribute
9813
9814         * bus/driver.c (bus_driver_handle_add_match)
9815         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
9816         messages
9817
9818         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
9819         rid of broadcast service concept, signals are just always broadcast
9820
9821         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
9822         mostly implement matching rules stuff (currently only exposed as signal
9823         connections)
9824
9825 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
9826
9827         * doc/dbus-specification.sgml: Change the header field name
9828         to be an enum and update the rest of the spec to reference
9829         the fields using the conventinal name.
9830
9831         * dbus/dbus-protocol.h: update to reflect the spec.
9832
9833         * doc/TODO: add item to remove the 4 byte alignment requirement.
9834         
9835         * dbus/dbus-message.c: Remove the code to generalise the
9836         header/body length and serial number header fields as named
9837         header fields so we can reference field names using the 
9838         protocol values.
9839         (append_int_field), (append_uint_field), (append_string_field):
9840         Append the field name as a byte rather than four chars.
9841         (delete_int_or_uint_field), (delete_string_field): reflect the
9842         fact that the field name and typecode now occupy 4 bytes instead
9843         of 8.
9844         (decode_string_field), (decode_header_data): update to reflect
9845         protocol changes and move the field specific encoding from
9846         decode_string_field() back into decode_header_data().
9847         
9848         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
9849         Add utility to aid debugging.
9850         
9851         * dbus/dbus-message-builder.c:
9852         (append_string_field), (_dbus_message_data_load): Update to
9853         reflect protocol changes; Change the FIELD_NAME directive
9854         to HEADER_FIELD and allow it to take the field's conventional
9855         name rather than the actual value.
9856         
9857         * test/data/*/*.message: Update to use HEADER_FIELD instead
9858         of FIELD_NAME; Always align the header on an 8 byte boundary
9859         *before* updating the header length.
9860
9861 2003-09-15  Havoc Pennington  <hp@pobox.com>
9862
9863         * dbus/dbus-pending-call.c: add the get/set object data
9864         boilerplate as for DBusConnection, etc. Use generic object data
9865         for the notify callback.
9866
9867         * glib/dbus-gparser.c (parse_node): parse child nodes
9868
9869         * tools/dbus-viewer.c: more hacking on the dbus-viewer
9870         
9871         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
9872         contain functions shared between the convenience lib and the
9873         installed lib
9874
9875         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
9876         -export-symbols-regex to the GLib library
9877
9878         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
9879         fix the locking in here, and add a default handler for
9880         Introspect() that just returns sub-nodes.
9881
9882 2003-09-14  Havoc Pennington  <hp@pobox.com>
9883
9884         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
9885         rather than gfoo consistent
9886
9887         * glib/dbus-gproxy.h: delete for now, move contents to
9888         dbus-glib.h, because the include files don't work right since we
9889         aren't in the dbus/ subdir.
9890         
9891         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
9892         (dbus_gproxy_end_call): finish
9893         (dbus_gproxy_begin_call): finish
9894
9895         * glib/dbus-gmain.c (dbus_set_g_error): new
9896
9897         * glib/dbus-gobject.c (handle_introspect): include information
9898         about child nodes in the introspection
9899
9900         * dbus/dbus-connection.c (dbus_connection_list_registered): new
9901         function to help in implementation of introspection
9902
9903         * dbus/dbus-object-tree.c
9904         (_dbus_object_tree_list_registered_and_unlock): new function
9905
9906 2003-09-12  Havoc Pennington  <hp@pobox.com>
9907
9908         * glib/dbus-gidl.h: add common base class for all the foo_info
9909         types
9910
9911         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
9912         similar to kdcop
9913
9914         * test/Makefile.am: try test srcdir -ef . in addition to test
9915         srcdir = ., one of them should work (yeah lame)
9916         
9917         * glib/Makefile.am: build the "idl" parser stuff as a convenience
9918         library
9919         
9920         * glib/dbus-gparser.h: make description_load routines return
9921         NodeInfo* not Parser*
9922
9923         * Makefile.am (SUBDIRS): build test dir after all library dirs
9924
9925         * configure.in: add GTK+ detection
9926
9927 2003-09-07  Havoc Pennington  <hp@pobox.com>
9928
9929         * Make Doxygen contented.
9930
9931 2003-09-07  Havoc Pennington  <hp@pobox.com>
9932
9933         * doc/dbus-specification.sgml: more updates
9934
9935 2003-09-06  Havoc Pennington  <hp@pobox.com>
9936
9937         * doc/dbus-specification.sgml: partial updates
9938
9939         * bus/dbus-daemon-1.1.in: fix the config file docs for the
9940         zillionth time; hopefully I edited the right file this time.
9941
9942         * bus/config-parser.c (append_rule_from_element): support
9943         send_type, send_path, receive_type, receive_path
9944
9945         * bus/policy.c: add message type and path to the list of things
9946         that can be "firewalled"
9947
9948 2003-09-06  Havoc Pennington  <hp@pobox.com>
9949
9950         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
9951         (dbus_connection_register_object_path): make this not handle
9952         messages to paths below the given path
9953
9954 2003-09-03  Havoc Pennington  <hp@pobox.com>
9955
9956         * test/glib/Makefile.am: add this with random glib-linked test
9957         programs
9958
9959         * glib/Makefile.am: remove the random test programs from here,
9960         leave only the unit tests
9961
9962         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
9963         uscore/javacaps conversion, and fix     
9964         (get_object_property, set_object_property): change to .NET
9965         convention for mapping props to methods, set_FooBar/get_FooBar, 
9966         since one language has such a convention we may as well copy it. 
9967         Plus real methods in either getFooBar or get_foo_bar style won't 
9968         collide with this convention.
9969
9970 2003-09-01  Havoc Pennington  <hp@pobox.com>
9971
9972         * glib/dbus-gparser.c: implement
9973
9974         * glib/dbus-gobject.c: start implementing skeletons support
9975
9976         * configure.in: when disabling checks/assert, also define
9977         G_DISABLE_ASSERT and G_DISABLE_CHECKS
9978
9979 2003-09-01  Havoc Pennington  <hp@pobox.com>
9980
9981         * glib/Makefile.am: rearrange a bunch of files and get "make
9982         check" framework set up
9983
9984 2003-08-31  Havoc Pennington  <hp@pobox.com>
9985
9986         * fix build with --disable-tests
9987
9988 2003-08-30  Havoc Pennington  <hp@pobox.com>
9989
9990         * dbus/dbus-connection.c: purge DBusMessageHandler
9991
9992         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
9993         use callbacks everywhere
9994
9995 2003-08-30  Havoc Pennington  <hp@pobox.com>
9996
9997         * test/data/valid-config-files/system.d/test.conf: change to 
9998         root for the user so warnings don't get printed
9999
10000         * dbus/dbus-message.c: add dbus_message_get_path,
10001         dbus_message_set_path
10002         
10003         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
10004         dispatching to a path
10005
10006         * dbus/dbus-string.c (_dbus_string_validate_path): add
10007
10008         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
10009         (_dbus_marshal_object_path): implement
10010
10011         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
10012         to contain the path to the target object
10013         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
10014         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
10015
10016 2003-08-30  Havoc Pennington  <hp@pobox.com>
10017
10018         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
10019
10020 2003-08-29  Havoc Pennington  <hp@pobox.com>
10021
10022         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
10023         registered
10024         (struct DBusObjectSubtree): shrink this
10025         a lot, since we may have a lot of them
10026         (_dbus_object_tree_free_all_unlocked): implement
10027         (_dbus_object_tree_dispatch_and_unlock): implement
10028
10029 2003-08-29  Havoc Pennington  <hp@pobox.com>
10030
10031         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
10032
10033 2003-08-28  Havoc Pennington  <hp@pobox.com>
10034
10035         purge DBusObjectID
10036         
10037         * dbus/dbus-connection.c: port to no ObjectID, create a
10038         DBusObjectTree, rename ObjectTree to ObjectPath in public API
10039
10040         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
10041         everything except UnregisterFunction and MessageFunction
10042         
10043         * dbus/dbus-marshal.c: port away from DBusObjectID, 
10044         add DBUS_TYPE_OBJECT_PATH
10045         
10046         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
10047         dbus/dbus-objectid.[hc]: remove these, we are moving to 
10048         path-based object IDs
10049
10050 2003-08-25  Havoc Pennington  <hp@pobox.com>
10051
10052         Just noticed that dbus_message_test is hosed, I wonder when I
10053         broke that. I thought make check was passing earlier...
10054         
10055         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
10056         container tree, will replace most of dbus-object-registry
10057
10058         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
10059         screwup
10060
10061 2003-08-19  Havoc Pennington  <hp@pobox.com>
10062
10063         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
10064         (dbus_message_is_error): fix this function
10065
10066         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
10067         match
10068
10069         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
10070         reflect clarified man page
10071         (bus_client_policy_check_can_send): ditto
10072         
10073         * bus/session.conf.in: fixup
10074
10075         * bus/system.conf.in: fixup
10076
10077 2003-08-18  Havoc Pennington  <hp@redhat.com>
10078
10079         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
10080
10081         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
10082         dumb bug created earlier (wrong order of args to
10083         decode_header_data())
10084         
10085         * tools/dbus-send.c: port
10086
10087         * tools/dbus-print-message.c (print_message): port
10088
10089         * test/data/*messages: port all messages over
10090         
10091         * dbus/dbus-message-builder.c: support including 
10092         message type
10093         
10094         * bus/driver.c: port over
10095         
10096         * bus/dispatch.c: port over to new stuff
10097
10098         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10099         rename disconnect signal to "Disconnected"
10100
10101 2003-08-17  Havoc Pennington  <hp@pobox.com>
10102
10103         This doesn't compile yet, but syncing up so I can hack on it from
10104         work. What are branches for if not broken code? ;-)
10105         
10106         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
10107         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
10108         DBUS_HEADER_FIELD_ERROR_NAME
10109         
10110         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
10111         for the interface+member pairs
10112         (string_hash): change to use g_str_hash algorithm
10113         (find_direct_function, find_string_function): refactor these to
10114         share most code.
10115         
10116         * dbus/dbus-message.c: port all of this over to support 
10117         interface/member fields instead of name field
10118
10119         * dbus/dbus-object-registry.c: port over
10120         
10121         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
10122         from _dbus_string_validate_name
10123
10124         * bus/dbus-daemon-1.1: change file format for the 
10125         <deny>/<allow> stuff to match new message naming scheme
10126
10127         * bus/policy.c: port over
10128
10129         * bus/config-parser.c: parse new format
10130         
10131 2003-08-16  Havoc Pennington  <hp@pobox.com>
10132
10133         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
10134         broken assertion
10135
10136         * glib/dbus-gproxy.c: some hacking
10137
10138 2003-08-15  Havoc Pennington  <hp@redhat.com>
10139
10140         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
10141
10142         * dbus/dbus-connection.c
10143         (dbus_connection_send_with_reply_and_block): factor out internals;
10144         change to convert any error replies to DBusError instead of 
10145         returning them as a message
10146
10147 2003-08-15  Havoc Pennington  <hp@pobox.com>
10148
10149         * dbus/dbus-connection.c, 
10150         dbus/dbus-pending-call.c: Finish the pending call stuff
10151
10152 2003-08-14  Havoc Pennington  <hp@redhat.com>
10153
10154         * dbus/dbus-pending-call.c: start on new object that will replace
10155         DBusMessageHandler and ReplyHandlerData for tracking outstanding
10156         replies
10157
10158         * dbus/dbus-gproxy.c: start on proxy object used to communicate
10159         with remote interfaces
10160
10161         * dbus/dbus-gidl.c: do the boring boilerplate in here
10162         
10163 2003-08-12  Havoc Pennington  <hp@pobox.com>
10164
10165         * bus/dispatch.c (bus_dispatch): make this return proper 
10166         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
10167
10168         * dbus/dbus-errors.c (dbus_set_error): use
10169         _dbus_string_append_printf_valist
10170
10171         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
10172         (_dbus_string_append_printf): new
10173
10174         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
10175         UNKNOWN_METHOD
10176
10177         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
10178         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
10179         message is unhandled.
10180
10181 2003-08-11  Havoc Pennington  <hp@pobox.com>
10182
10183         * bus/test.c (client_disconnect_handler): change to return
10184         HANDLED (would have been REMOVE_MESSAGE)
10185
10186         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
10187         HANDLED/NOT_YET_HANDLED instead of
10188         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
10189         should be used.
10190
10191 2003-08-10  Havoc Pennington  <hp@pobox.com>
10192
10193         * tools/dbus-send.c (main): add --type argument, for now
10194         supporting only method_call and signal types.
10195
10196         * tools/dbus-print-message.c: print message type
10197
10198         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10199         init connection->objects
10200
10201         * doc/dbus-specification.sgml: fix sgml
10202
10203         * bus/*.c: port over to object-instance API changes
10204
10205         * test/test-service.c: ditto
10206         
10207         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
10208         name, we will have to fix up the rest of the code to also handle
10209         this
10210         (dbus_message_new): generic message-creation call
10211         (set_string_field): allow appending name field
10212
10213 2003-08-06  Havoc Pennington  <hp@pobox.com>
10214
10215         * dbus/dbus-object-registry.c: implement signal connection 
10216         and dispatch
10217
10218         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
10219
10220         * dbus/dbus-internals.c (_dbus_memdup): new function
10221
10222 2003-08-02  Havoc Pennington  <hp@pobox.com>
10223
10224         * dbus/dbus-message.c (dbus_message_get_no_reply)
10225         (dbus_message_set_no_reply): add these and remove
10226         set_is_error/get_is_error
10227
10228         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
10229         remove the ERROR flag, since there's now an ERROR type
10230
10231 2003-08-01  Havoc Pennington  <hp@pobox.com>
10232
10233         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
10234         implement
10235
10236         * dbus/dbus-message.c (dbus_message_get_type): new function
10237
10238         * doc/dbus-specification.sgml: add "type" byte to messages
10239
10240 2003-08-01  Havoc Pennington  <hp@pobox.com>
10241
10242         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
10243         a message type enum to distinguish kinds of message
10244         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
10245         that need not be replied to
10246
10247 2003-08-01  Havoc Pennington  <hp@pobox.com>
10248
10249         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
10250         (unpack_8_octets): fix no-64-bit-int bug
10251
10252         * dbus/dbus-object-registry.c (validate_id): validate the 
10253         connection ID bits, not just the instance ID.
10254
10255         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
10256         the connection-global 33 bits of the object ID
10257
10258         * dbus/dbus-object-registry.c (info_from_entry): fill in 
10259         object ID in the new way
10260
10261         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
10262         define server/client/instance bits.
10263
10264 2003-07-30  Havoc Pennington  <hp@pobox.com>
10265
10266         * dbus/dbus-connection.c (dbus_connection_register_object): fix
10267         build
10268
10269 2003-07-13  Havoc Pennington  <hp@pobox.com>
10270
10271         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
10272         fields to DBusObjectVTable and DBusObjectInfo
10273
10274 2003-07-12  Havoc Pennington  <hp@pobox.com>
10275
10276         * dbus/dbus-object-registry.c: implement unit test,
10277         fix bugs discovered in process
10278
10279         * dbus/dbus-connection.c: remove handler_table and
10280         register_handler(), add DBusObjectRegistry usage
10281
10282         * dbus/dbus-objectid.c (dbus_object_id_is_null)
10283         (dbus_object_id_set_null): new functions
10284
10285 2003-07-08  Havoc Pennington  <hp@pobox.com>
10286
10287         * dbus/dbus-object.c: implement some of this
10288
10289         * dbus/dbus-object-registry.c
10290         (_dbus_object_registry_add_and_unlock): fill in the object_id out
10291         param
10292         (_dbus_object_registry_new): handle OOM
10293
10294 2003-07-08  Havoc Pennington  <hp@pobox.com>
10295
10296         * dbus/dbus-object.h: sketch out an API for registering objects
10297         with a connection, that allows us to use as little as 24 bytes
10298         per object and lets application code represent an object in 
10299         any conceivable way.
10300
10301         * dbus/dbus-object-registry.c: implement the hard bits of the
10302         DBusConnection aspect of object API. Not yet wired up.
10303         
10304 2003-07-06  Havoc Pennington  <hp@pobox.com>
10305
10306         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
10307         (_dbus_marshal_object_id): new
10308         (_dbus_demarshal_object_id): new
10309         (_dbus_marshal_get_arg_end_pos): support object ID type, and
10310         consolidate identical switch cases. Don't conditionalize handling
10311         of DBUS_TYPE_UINT64, need to handle the type always.
10312         (_dbus_marshal_validate_arg): consolidate identical cases, and
10313         handle DBUS_TYPE_OBJECT_ID
10314
10315         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
10316
10317         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
10318
10319 2003-09-28  Havoc Pennington  <hp@pobox.com>
10320
10321         * real 0.13 release
10322
10323 2003-09-28  Havoc Pennington  <hp@pobox.com>
10324
10325         * doc/Makefile.am (dbus-specification.html): testing a funky hack
10326         to work with Debian db2html
10327
10328 2003-09-28  Havoc Pennington  <hp@pobox.com>
10329
10330         * configure.in: 0.13
10331
10332         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
10333         stylesheet-images for benefit of Debian
10334         
10335         Change back to using filesystem-linked sockets for the system
10336         bus, so only root can create the default system bus address.
10337         
10338         * bus/system.conf.in: change to use
10339         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10340
10341         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
10342         from here.
10343
10344         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
10345         here, and AC_DEFINE DBUS_SYSTEM_PATH
10346
10347 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10348
10349         * doc/TODO:
10350         * doc/busconfig.dtd:
10351         Add busconfig DTD.
10352         
10353 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
10354
10355         * doc/dbus-specification.sgml:
10356         Add activation reply values.
10357         
10358 2003-08-05  Havoc Pennington  <hp@redhat.com>
10359
10360         * configure.in: 0.12
10361
10362 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
10363
10364         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
10365         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
10366         (add_watch), (remove_watch), (create_source):
10367         Refcount fds, fixes some reentrancy issues.
10368         
10369 2003-07-30  Havoc Pennington  <hp@redhat.com>
10370
10371         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
10372         bus address to be abstract if we have abstract sockets
10373
10374         * NEWS: update
10375
10376 2003-07-28  Havoc Pennington  <hp@redhat.com>
10377
10378         * bus/messagebus.in: fix to avoid processname/servicename 
10379         confusion, from Michael Kearey
10380         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
10381         
10382 2003-07-23  Havoc Pennington  <hp@pobox.com>
10383
10384         * dbus/dbus-message.c (dbus_message_iter_get_named): 
10385         fix from Andy Hanton to remove broken "+1"
10386
10387 2003-07-16  Havoc Pennington  <hp@pobox.com>
10388
10389         * tools/dbus-launch.c (babysit): close stdout/stderr in the
10390         babysitter process, as suggested by Thomas Leonard, so 
10391         an "eval `dbus-launch --exit-with-session`" will actually 
10392         return
10393
10394 2003-07-16  Havoc Pennington  <hp@pobox.com>
10395
10396         * configure.in: print out EXPANDED_* variables in the summary at
10397         the end; clean up the code that computes EXPANDED_ variables and
10398         get the ones using exec_prefix right. Should make things work
10399         when you build without --prefix
10400
10401 2003-06-29  Havoc Pennington  <hp@pobox.com>
10402
10403         * mono/Test.cs (class Test): fire up a main loop and run it
10404
10405         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
10406         done once, the app has to do it
10407
10408 2003-06-26  Havoc Pennington  <hp@pobox.com>
10409
10410         * mono/Connection.cs: set up connection with the glib main loop
10411
10412 2003-07-01  Havoc Pennington  <hp@redhat.com>
10413
10414         * doc/dbus-specification.sgml: clarify the format of a type code,
10415         change suggested by Jim Blandy
10416
10417 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
10418
10419         * doc/Makefile.am:
10420         * tools/Makefile.am: Don't assume srcdir == builddir.
10421
10422         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
10423         the allocated block.
10424         (_dbus_memory_test): New function.
10425         * dbus/dbus-test.h: Add _dbus_memory_test ().
10426         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
10427
10428         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
10429         of %c%c%c%c.
10430         (dbus_message_new): Remove obsolete @todo.
10431
10432         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
10433         (_dbus_marshal_set_uint64): Fix comment.
10434
10435         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
10436         hardcode FIELD_REPLY_SERIAL.
10437
10438         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
10439         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
10440
10441         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
10442         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
10443
10444 2003-06-24  Havoc Pennington  <hp@pobox.com>
10445
10446         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
10447
10448 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
10449
10450         * configure.in:
10451         * gcj/.cvsignore:
10452         * gcj/Hello.java:
10453         * gcj/Makefile.am:
10454         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
10455         * gcj/org/.cvsignore:
10456         * gcj/org/Makefile.am:
10457         * gcj/org/freedesktop/.cvsignore:
10458         * gcj/org/freedesktop/Makefile.am:
10459         * gcj/org/freedesktop/dbus/.cvsignore:
10460         * gcj/org/freedesktop/dbus/Makefile.am:
10461         * gcj/org/freedesktop/dbus/Message.java: (Message),
10462         (Message.Message):
10463         * gcj/org/freedesktop/dbus/natMessage.cc:
10464         Fix the build system.
10465
10466 2003-06-22  Havoc Pennington  <hp@pobox.com>
10467
10468         * mono/Connection.cs: add more bindings
10469
10470         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
10471         more than once.
10472
10473 2003-06-22  Havoc Pennington  <hp@pobox.com>
10474
10475         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
10476         Start wrapping more stuff.
10477
10478 2003-06-22  Havoc Pennington  <hp@pobox.com>
10479
10480         * mono/Message.cs: implement Message.Wrap() that ensures we only
10481         have a single C# wrapper per DBusMessage, assuming it works which
10482         it probably doesn't.
10483
10484         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
10485         (dbus_message_free_data_slot): new
10486         (dbus_message_set_data): new
10487         (dbus_message_get_data): new
10488
10489 2003-06-22  Havoc Pennington  <hp@pobox.com>
10490
10491         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
10492         (_dbus_data_slot_allocator_alloc): rework these to keep a
10493         reference count on each slot and automatically manage a global
10494         slot ID variable passed in by address
10495
10496         * bus/bus.c: convert to new dataslot API
10497
10498         * dbus/dbus-bus.c: convert to new dataslot API
10499
10500         * dbus/dbus-connection.c: convert to new dataslot API
10501
10502         * dbus/dbus-server.c: convert to new dataslot API
10503
10504         * glib/dbus-gmain.c: ditto
10505
10506         * bus/test.c: ditto
10507
10508         * bus/connection.c: ditto
10509
10510 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
10511
10512         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
10513         after the gcj checks so that the correct configuration tags
10514         will be added to libtool.
10515
10516         * dbus-glib-1.pc.in: No need to specify any includes since
10517         dbus-1.pc.in has those.
10518
10519 2003-06-22  Havoc Pennington  <hp@pobox.com>
10520
10521         * mono/*, gcj/*, configure.in, Makefile.am:
10522         Check in makefiles and subdirs for mono and gcj bindings.
10523         Neither binding actually exists, just trying to get through
10524         all the build and other boring bits.
10525
10526 2003-06-21  Philip Blundell  <philb@gnu.org>
10527
10528         * tools/dbus-monitor.1: Updated.
10529
10530         * tools/dbus-send.1: Likewise.
10531
10532 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
10533
10534         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
10535         for hangup and error after checking read so we won't discard
10536         pending data if both hangup and read are set.
10537
10538 2003-06-19  Philip Blundell  <philb@gnu.org>
10539
10540         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
10541
10542         * tools/dbus-send.c: Accept both --system and --session.
10543
10544         * tools/dbus-monitor.c: Same here.
10545
10546 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
10547
10548         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
10549         from C++ (Patch by Miloslav Trmac).
10550
10551 2003-06-15  Joe Shaw  <joe@assbarn.com>
10552
10553         * configure.in: Check for socklen_t.
10554
10555         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
10556
10557         * test/test-segfault.c: Add #include <sys/time.h>
10558
10559         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
10560         dbus-launch needs it.
10561
10562 2003-06-09  Havoc Pennington  <hp@redhat.com>
10563
10564         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
10565         SUN_LEN, it breaks abstract socket usage
10566
10567         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
10568         starts of lines.
10569
10570 2003-06-04  Havoc Pennington  <hp@pobox.com>
10571
10572         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
10573         using unix:abstract=/foo, and when listening in a tmpdir
10574         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
10575
10576         * dbus/dbus-transport.c (_dbus_transport_open): support
10577         unix:abstract=/foo
10578
10579         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
10580         support abstract sockets
10581
10582         * dbus/dbus-transport-unix.c
10583         (_dbus_transport_new_for_domain_socket): support abstract sockets
10584
10585         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
10586         toggle as an argument, implement abstract namespace support
10587         (_dbus_listen_unix_socket): ditto
10588
10589         * configure.in: add --enable-abstract-sockets and implement
10590         a configure check for autodetection of the right value.
10591
10592 2003-06-01  Havoc Pennington  <hp@pobox.com>
10593
10594         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
10595         in /tmp (though on Linux this will end up being useless,
10596         when we add abstract namespace support)
10597
10598         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
10599         subst'ing it
10600
10601 2003-05-28  Colin Walters  <walters@verbum.org>
10602
10603         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
10604
10605 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
10606
10607         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
10608
10609 2003-05-17  Colin Walters  <walters@gnu.org>
10610
10611         * tools/dbus-send.c: Don't exit with an error code if --help was
10612         passed.  Default to using the session bus instead of the system
10613         one.
10614
10615         * tools/dbus-launch.c: Ditto.
10616
10617         * tools/dbus-monitor.c: Ditto.
10618
10619         * tools/dbus-send.1: Update with new arguments.
10620
10621         * tools/dbus-launch.c: Emit code to export variables.  New
10622         arguments -s and -c to specify shell syntax, and a bit of code to
10623         autodetect syntax.  Also, allow specifying a program to run.
10624
10625         * tools/dbus-launch.1: Update with new arguments.
10626
10627         * tools/dbus-send.1: Ditto.
10628
10629         * tools/dbus-monitor.1: Ditto.
10630
10631 2003-05-17  Havoc Pennington  <hp@pobox.com>
10632
10633         * bus/config-parser.c (merge_included): merge in policies from
10634         child configuration file.
10635
10636         * bus/policy.c (bus_policy_merge): function to merge two policies
10637         together
10638
10639 2003-05-16  Havoc Pennington  <hp@redhat.com>
10640
10641         * dbus/dbus-connection.c: disable verbose lock spew
10642
10643         * tools/dbus-send.c: add --print-reply command line option
10644
10645         * tools/dbus-print-message.h (print_message): new util function
10646         shared by dbus-send and dbus-monitor
10647
10648         * tools/dbus-monitor.c (handler_func): exit on disconnect
10649
10650         * dbus/dbus-transport-unix.c (do_reading): if the transport is
10651         disconnected, don't try to use the read_watch
10652
10653         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
10654         so we can find this bug more easily
10655
10656 2003-05-16  Havoc Pennington  <hp@redhat.com>
10657
10658         * bus/policy.c (free_rule_list_func): avoid a crash when passed
10659         NULL as DBusHashTable is annoyingly likely to do.
10660
10661 2003-05-16  Colin Walters  <walters@verbum.org>
10662
10663         * tools/dbus-monitor.c: Add --session argument and usage()
10664         function.
10665
10666         * tools/dbus-monitor.1: Update with new --session arg.
10667
10668         * bus/Makefile.am (install-data-hook): Create
10669         $(libdir)/dbus-1.0/services so that the session bus is happy.
10670
10671 2003-05-15  Havoc Pennington  <hp@redhat.com>
10672
10673         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
10674         on non-x86. ifdef's are evil.
10675
10676 2003-05-15  Havoc Pennington  <hp@redhat.com>
10677
10678         * configure.in: 0.11
10679
10680         * NEWS: update
10681
10682         * bus/Makefile.am (initddir): apparently we are supposed to put
10683         init scripts in /etc/rc.d/init.d not /etc/init.d
10684
10685         * bus/Makefile.am: remove the "you must --enable-tests to make
10686         check" as it broke distcheck
10687
10688         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
10689
10690 2003-05-13  James Willcox  <jwillcox@gnome.org>
10691
10692         * configure.in:
10693         * bus/activation.c: (bus_activation_service_created),
10694         (bus_activation_activate_service):
10695         * bus/driver.c: (bus_driver_send_service_deleted),
10696         (bus_driver_send_service_created), (bus_driver_send_service_lost),
10697         (bus_driver_send_service_acquired),
10698         (bus_driver_send_welcome_message),
10699         (bus_driver_handle_list_services):
10700         * bus/session.conf.in:
10701         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
10702         (dbus_bus_service_exists), (dbus_bus_activate_service):
10703         * dbus/dbus-bus.h:
10704
10705         Add some convenience API which lets you activate a service, and did a
10706         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
10707         and dbus_message_get_args()
10708
10709 2003-05-11  Havoc Pennington  <hp@pobox.com>
10710
10711         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
10712         calling _dbus_marshal_validate_arg() for every byte in a byte
10713         array, etc.
10714
10715         * dbus/dbus-message-handler.c: use atomic reference counting to
10716         reduce number of locks slightly; the global lock in here sucks
10717
10718         * dbus/dbus-connection.c
10719         (_dbus_connection_update_dispatch_status_and_unlock): variant of
10720         update_dispatch_status that can be called with lock held; then use
10721         in a couple places to reduce locking/unlocking
10722         (dbus_connection_send): hold the lock over the whole function
10723         instead of acquiring it twice.
10724
10725         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
10726
10727         * bus/connection.c (bus_connections_setup_connection): fix access
10728         to already-freed memory.
10729
10730         * dbus/dbus-connection.c: keep a little cache of linked list
10731         nodes, to avoid using the global linked list alloc lock in the
10732         normal send-message case. Instead we just use the connection lock
10733         that we already have to take.
10734
10735         * dbus/dbus-list.c (_dbus_list_find_last): new function
10736
10737         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
10738         change to use a struct for the atomic type; fix docs,
10739         they return value before increment, not after increment.
10740
10741         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
10742         (_dbus_string_append_8_aligned): new functions to try to
10743         microoptimize this operation.
10744         (reallocate_for_length): break this out of set_length(), to
10745         improve profile info, and also so we can consider inlining the
10746         set_length() part.
10747
10748         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
10749         strings with some preallocation, cuts down on our calls to realloc
10750         a fair bit. Though if we can get the "move entire string to empty
10751         string" optimization below to kick in here, it would be better.
10752
10753         * dbus/dbus-string.c (_dbus_string_move): just call
10754         _dbus_string_move_len
10755         (_dbus_string_move_len): add a special case for moving
10756         an entire string into an empty string; we can just
10757         swap the string data instead of doing any reallocs.
10758         (_dbus_string_init_preallocated): new function
10759
10760 2003-05-11  Havoc Pennington  <hp@pobox.com>
10761
10762         Write a "test-profile" that does echo client-server with threads;
10763         profile reveals lock contention, memcpy/realloc of buffers, and
10764         UTF-8 validation as hot spots. 20% of lock contention eliminated
10765         with dbus_atomic_inc/dec implementation on x86.  Much remaining
10766         contention is global mempool locks for GList and DBusList.
10767
10768         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
10769         x86 implementation
10770
10771         * dbus/dbus-connection.c (struct DBusConnection): use
10772         dbus_atomic_t for the reference count
10773
10774         * dbus/dbus-message.c (struct DBusMessage): declare
10775         dbus_atomic_t values as volatile
10776
10777         * configure.in: code to detect ability to use atomic integer
10778         operations in assembly, from GLib patch
10779
10780         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
10781         time, tired of it being wrong in threads and forked processes
10782
10783         * glib/test-profile.c: a little program to bounce messages back
10784         and forth between threads and eat CPU
10785
10786         * dbus/dbus-connection.c: add debug spew macros for debugging
10787         thread locks; include config.h at top; fix deadlock in
10788         dbus_connection_flush()
10789
10790 2003-05-08  Havoc Pennington  <hp@pobox.com>
10791
10792         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
10793         data from getting written, and there wasn't a good reason to
10794         use _exit really.
10795
10796         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
10797         dbus_verbose lines in test coverage
10798         (main): add list of functions sorted by # of untested blocks
10799         to the coverage report
10800
10801         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
10802
10803         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
10804
10805         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
10806         extend test coverage
10807
10808         * test/data/auth/cancel.auth-script: test canceling an
10809         authentication
10810
10811         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
10812         aren't used. in CVS history if we end up needing them.
10813
10814 2003-05-04  Havoc Pennington  <hp@pobox.com>
10815
10816         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
10817         unit test
10818
10819         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
10820         function, which assumed length was in # of strings, not bytes
10821
10822         * dbus/dbus-message.c (_dbus_message_test): add tests for some
10823         missing coverage
10824
10825         * dbus/dbus-connection.c
10826         (_dbus_connection_queue_received_message): disable function for
10827         now, we are only using it in test mode
10828
10829         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
10830         remove a mistaken FIXME
10831
10832 2003-05-04  Havoc Pennington  <hp@pobox.com>
10833
10834         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
10835         unlock mutex on successful return, patch from Anders Gustafsson
10836
10837 2003-05-04  Havoc Pennington  <hp@pobox.com>
10838
10839         * dbus-glib-1.pc.in (Requires): fix dependencies, from
10840         Anders Gustafsson
10841
10842 2003-05-04  Havoc Pennington  <hp@pobox.com>
10843
10844         * tools/dbus-launch.c: implement
10845
10846         * bus/main.c (main), bus/bus.c (bus_context_new):
10847         implement --print-pid and --fork
10848
10849 2003-05-03  Havoc Pennington  <hp@redhat.com>
10850
10851         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
10852         the address had no value, and add to test suite. Fix and
10853         regression test from Miloslav Trmac
10854
10855 2003-05-03  Havoc Pennington  <hp@pobox.com>
10856
10857         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
10858         watch is invalid when handled
10859
10860         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
10861         dbus-launch utility to launch the bus from a shell script.  Didn't
10862         actually implement dbus-launch yet, it's just a placeholder still.
10863
10864 2003-05-03  Havoc Pennington  <hp@pobox.com>
10865
10866         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
10867         daemon; also documents daemon config file, so replaces
10868         doc/config-file.txt. Corrected some stuff from config-file.txt in
10869         the process of moving it.
10870
10871 2003-05-03  Havoc Pennington  <hp@pobox.com>
10872
10873         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
10874         add some man pages
10875
10876 2003-05-03  Colin Walters  <walters@verbum.org>
10877
10878         * dbus/dbus-sysdeps.c (fill_user_info): Test against
10879         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
10880
10881         * Makefile.am: Update to use new .pc versioning scheme.
10882
10883 2003-05-02  Havoc Pennington  <hp@redhat.com>
10884
10885         * bus/system.conf.in: allow send/receive to/from message bus
10886         service
10887
10888 2003-04-30  Havoc Pennington  <hp@redhat.com>
10889
10890         * configure.in: print a note when building with unit tests and
10891         without assertions
10892
10893 2003-04-30  Havoc Pennington  <hp@redhat.com>
10894
10895         * Makefile.am: add a check-local that complains if you didn't
10896         configure with --enable-tests
10897
10898 2003-04-29  Havoc Pennington  <hp@redhat.com>
10899
10900         * glib/dbus-gmain.c: docs cleanups
10901
10902         * dbus/dbus-types.h: add docs on int64 types
10903
10904         * dbus/dbus-memory.c: fix docs to avoid putting private API in
10905         public API docs section
10906
10907 2003-04-29  Havoc Pennington  <hp@redhat.com>
10908
10909         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
10910         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
10911         parallel install API version, not with the D-BUS package version.
10912
10913         * HACKING: move some of README over here
10914
10915         * README: updates, and document API/ABI policy
10916
10917         * configure.in: reindentation
10918
10919 2003-04-29  Havoc Pennington  <hp@redhat.com>
10920
10921         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
10922         to use this library" to be sure people have the right
10923         expectations.
10924
10925 2003-04-28  Havoc Pennington  <hp@redhat.com>
10926
10927         * configure.in: add --enable-docs which by default is auto yes if
10928         doxygen and db2html found, no otherwise; but can be forced on/off
10929
10930         * doc/Makefile.am: conditionalize whether to build docs on
10931         --enable-docs
10932
10933 2003-04-28  Havoc Pennington  <hp@redhat.com>
10934
10935         * configure.in: 0.10
10936
10937         * NEWS: update
10938
10939         * bus/system.conf.in: add <includedir>system.d</includedir>
10940
10941         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
10942         username was provided but not uid
10943
10944         * bus/config-parser.c (struct BusConfigParser): keep track of
10945         whether the parser is toplevel or was included; change some
10946         of the error handling if it's included.
10947
10948 2003-04-27  Havoc Pennington  <hp@pobox.com>
10949
10950         Unbreak my code...
10951
10952         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
10953         report correct status if we finish processing authentication
10954         inside this function.
10955
10956         * bus/activation.c (try_send_activation_failure): use
10957         bus_transaction_send_error_reply
10958
10959         * bus/connection.c (bus_connection_get_groups): return an error
10960         explaining the problem
10961
10962         * bus/bus.c (bus_context_check_security_policy): implement
10963         restriction here that inactive connections can only send the
10964         hello message. Also, allow bus driver to send anything to
10965         any recipient.
10966
10967         * bus/connection.c (bus_connection_complete): create the
10968         BusClientPolicy here instead of on-demand.
10969         (bus_connection_get_policy): don't return an error
10970
10971         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
10972         sender field in message being replied to
10973
10974         * bus/bus.c (bus_context_check_security_policy): fix silly typo
10975         causing it to return FALSE always
10976
10977         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
10978         we checked sender rather than destination
10979
10980 2003-04-25  Havoc Pennington  <hp@redhat.com>
10981
10982         test suite is slightly hosed at the moment, will fix soon
10983
10984         * bus/connection.c (bus_connections_expire_incomplete): fix to
10985         properly disable the timeout when required
10986         (bus_connection_set_name): check whether we can remove incomplete
10987         connections timeout after we complete each connection.
10988
10989         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
10990         probably still broken.
10991
10992         * bus/services.c (bus_registry_acquire_service): implement max
10993         number of services owned, and honor allow/deny rules on which
10994         services a connection can own.
10995
10996         * bus/connection.c (bus_connection_get_policy): report errors here
10997
10998         * bus/activation.c: implement limit on number of pending
10999         activations
11000
11001 2003-04-25  Havoc Pennington  <hp@redhat.com>
11002
11003         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
11004         where we used >= 0 instead of != DBUS_UID_UNSET.
11005
11006 2003-04-25  Havoc Pennington  <hp@redhat.com>
11007
11008         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
11009         were toggled without add/remove, fix from Anders Gustafsson
11010
11011 2003-04-24  Havoc Pennington  <hp@redhat.com>
11012
11013         * test/data/valid-config-files/basic.conf: add <limit> tags to
11014         this test
11015
11016         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
11017         <limit> tag in configuration file.
11018
11019 2003-04-24  Havoc Pennington  <hp@redhat.com>
11020
11021         * bus/dispatch.c: somehow missed some name_is
11022
11023         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
11024         (_dbus_timeout_set_interval): new
11025
11026         * bus/connection.c (bus_connections_setup_connection): record time
11027         when each connection is first set up, and expire them after the
11028         auth timeout passes.
11029
11030 2003-04-24  Havoc Pennington  <hp@redhat.com>
11031
11032         * dbus/dbus-message.c (dbus_message_name_is): rename
11033         (dbus_message_service_is): rename
11034         (dbus_message_sender_is): rename
11035         (dbus_message_get_service): rename
11036
11037 2003-04-24  Havoc Pennington  <hp@redhat.com>
11038
11039         * configure.in: add --enable-checks
11040
11041         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
11042
11043         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
11044         to use thread locks.
11045         (_dbus_connection_handler_destroyed_locked): move some private
11046         functions into proper docs group
11047
11048         * dbus/dbus-internals.h: add _dbus_return_if_fail,
11049         _dbus_return_val_if_fail
11050
11051         Throughout: use dbus_return_if_fail
11052
11053 2003-04-23  James Willcox  <jwillcox@gnome.org>
11054
11055         * glib/dbus-glib.h:
11056         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
11057         (dbus_connection_setup_with_g_main),
11058         (dbus_server_setup_with_g_main):
11059         * glib/test-dbus-glib.c: (main):
11060         * glib/test-thread-client.c: (main):
11061         * glib/test-thread-server.c: (new_connection_callback), (main):
11062         * tools/dbus-monitor.c: (main):
11063
11064         Added a GMainContext argument to dbus_connection_setup_with_g_main()
11065         and dbus_server_setup_with_g_main().
11066
11067 2003-04-20  Havoc Pennington  <hp@pobox.com>
11068
11069         * doc/dbus-specification.sgml: document the restrictions on
11070         message and service names
11071
11072 2003-04-22  Havoc Pennington  <hp@redhat.com>
11073
11074         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
11075         support, and do some code cleanups to share more code and
11076         speed up array marshal/demarshal.
11077
11078         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
11079
11080         * configure.in: generate dbus-arch-deps.h
11081
11082         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
11083         64-bit typecodes
11084
11085 2003-04-22  Havoc Pennington  <hp@redhat.com>
11086
11087         * test/data/valid-messages/opposite-endian.message: fix test
11088         to use proper type for rply field
11089
11090         * test/data/invalid-messages: add tests for below validation
11091
11092         * dbus/dbus-message.c (decode_header_data): validate field types,
11093         and validate that named fields are valid names
11094         (decode_name_field): consider messages in the
11095         org.freedesktop.Local. namespace to be invalid.
11096
11097         * dbus/dbus-string.c (_dbus_string_validate_name): new
11098
11099 2003-04-19  Havoc Pennington  <hp@pobox.com>
11100
11101         * bus/driver.c (bus_driver_handle_hello): check limits and
11102         return an error if they are exceeded.
11103
11104         * bus/connection.c: maintain separate lists of active and inactive
11105         connections, and a count of each. Maintain count of completed
11106         connections per user. Implement code to check connection limits.
11107
11108         * dbus/dbus-list.c (_dbus_list_unlink): export
11109
11110         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
11111         number of bytes in the message queue for a connection
11112
11113 2003-04-18  Havoc Pennington  <hp@pobox.com>
11114
11115         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
11116
11117         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
11118         memleaks
11119
11120         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
11121         on realloc be sure to update the pointer in the keyring
11122
11123         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
11124         offset to avoid writing to unallocated memory
11125
11126         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
11127         try the next mechanism, so we properly handle OOM
11128
11129         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
11130         on OOM.
11131         (_dbus_keyring_new): fix OOM bug
11132         (_dbus_keyring_new_homedir): always set error; impose a maximum
11133         number of keys we'll load from the file, mostly to speed up the
11134         test suite and make its OOM checks more useful, but also for
11135         general sanity.
11136
11137         * dbus/dbus-auth.c (process_error_server): reject authentication
11138         if we get an error from the client
11139         (process_cancel): on cancel, send REJECTED, per the spec
11140         (process_error_client): send CANCEL if we get an error from the
11141         server.
11142
11143 2003-04-18  Havoc Pennington  <hp@pobox.com>
11144
11145         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
11146         debug spew
11147
11148         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
11149         handling problem
11150
11151         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
11152         about DBUS_TEST_HOMEDIR once
11153
11154         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
11155         the environment
11156
11157         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
11158         config file so we test the right thing
11159
11160         Throughout: assorted docs improvements
11161
11162 2003-04-18  Havoc Pennington  <hp@pobox.com>
11163
11164         * glib/dbus-gmain.c: adapt to watch changes
11165
11166         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
11167
11168         * dbus/dbus-server.h: remove dbus_server_handle_watch
11169
11170         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
11171
11172         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
11173         like DBusTimeout, so we don't need dbus_connection_handle_watch
11174         etc.
11175
11176 2003-04-17  Havoc Pennington  <hp@redhat.com>
11177
11178         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
11179         database usage so it all goes via the DBusUserDatabase cache.
11180
11181 2003-04-17  Havoc Pennington  <hp@redhat.com>
11182
11183         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
11184         there was an OOM watch we skipped, we always return TRUE so we
11185         iterate again to have a look at it again. Fixes test suite hang.
11186         Code rearrangement also lets us lose some memset and only iterate
11187         over callbacks once.
11188
11189         * bus/driver.c (bus_driver_handle_message): sense of test for
11190         reply was backward
11191
11192 2003-04-16  Havoc Pennington  <hp@pobox.com>
11193
11194         * doc/dbus-specification.sgml: make spec say serials are unsigned
11195
11196         * dbus/dbus-message.h: change message serials to unsigned
11197
11198         * dbus/dbus-connection.c: adapt to message serials being unsigned
11199
11200 2003-04-15  Havoc Pennington  <hp@pobox.com>
11201
11202         * bus/bus.c: create and keep around a shared DBusUserDatabase
11203         object.
11204
11205         * bus/connection.c (bus_connection_get_groups): don't cache
11206         groups for user in the connection object, since user database
11207         object now does that.
11208
11209 2003-04-16  Havoc Pennington  <hp@redhat.com>
11210
11211         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
11212         list of size counters
11213         (_dbus_message_loader_putback_message_link): put back a popped link
11214
11215         * dbus/dbus-connection.c
11216         (dbus_connection_set_max_live_messages_size): rename
11217         max_received_size
11218         (dbus_connection_get_outgoing_size): get size of outgoing
11219         queue
11220         (_dbus_connection_set_connection_counter): remove this cruft
11221
11222 2003-04-14  Havoc Pennington  <hp@redhat.com>
11223
11224         * dbus/dbus-userdb.c: user database abstraction, mostly to get
11225         caching, but at some point we might want to be able to use a
11226         different database.
11227
11228         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
11229         SHA1 conf file to test the sha1 auth mechanism, since the regular
11230         test always uses EXTERNAL when available.
11231
11232         * configure.in,
11233         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
11234         add conf file that requires use of sha1 auth
11235
11236 2003-04-13  Havoc Pennington  <hp@pobox.com>
11237
11238         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
11239         from Philip Blundell to send messages and monitor them.
11240
11241 2003-04-13  Havoc Pennington  <hp@pobox.com>
11242
11243         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
11244         callbacks
11245
11246         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
11247         users
11248
11249         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
11250         fix to only recover unused bytes if we're already authenticated
11251         (_dbus_transport_get_is_authenticated): fix to still mark us
11252         authenticated if there are unused bytes.
11253
11254         * bus/dispatch.c: implement security policy checking
11255
11256         * bus/connection.c (bus_transaction_send_from_driver): new
11257
11258         * bus/bus.c (bus_context_check_security_policy): new
11259
11260         * bus/dispatch.c (send_service_nonexistent_error): delete this,
11261         now we just set the DBusError and it gets converted to an error
11262         reply.
11263
11264         * bus/connection.c (allow_user_function): enable code using actual
11265         data from the config file
11266
11267         * bus/policy.c (list_allows_user): handle wildcard rules for
11268         user/group connection perms
11269
11270 2003-04-13  Havoc Pennington  <hp@pobox.com>
11271
11272         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
11273
11274         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
11275
11276         * bus/policy.c (bus_policy_append_mandatory_rule)
11277         (bus_policy_append_default_rule, bus_policy_append_user_rule)
11278         (bus_policy_append_group_rule): new functions
11279
11280 2003-04-12  Havoc Pennington  <hp@pobox.com>
11281
11282         * bus/config-parser.c (bus_config_parser_new): fix a memleak
11283
11284         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
11285         the pid/gid/uid, just for paranoia.
11286
11287         * test/break-loader.c (randomly_do_n_things): find a byte
11288         containing a type code, and randomly change it to a different
11289         type code.
11290
11291 2003-04-12  Havoc Pennington  <hp@pobox.com>
11292
11293         * bus/policy.h: change BusPolicy to be the thing from the config
11294         file, and rename old BusPolicy to BusClientPolicy
11295
11296         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
11297         match change in how policy works
11298
11299         * dbus/dbus-internals.h: mark assert_not_reached as
11300         __attribute((noreturn))__
11301
11302 2003-04-11  Havoc Pennington  <hp@redhat.com>
11303
11304         * doc/dbus-specification.sgml: fix a spot with the wrong name for
11305         the broadcast service. Use boolean return for ServiceExists.
11306
11307 2003-04-11  Havoc Pennington  <hp@redhat.com>
11308
11309         * configure.in: add another directory to look for qt in.
11310
11311 2003-04-11  Havoc Pennington  <hp@redhat.com>
11312
11313         * AUTHORS: add Colin Walters
11314
11315 2003-04-11  Havoc Pennington  <hp@redhat.com>
11316
11317         * NEWS: update
11318
11319         * configure.in: 0.9
11320
11321 2003-04-11  Havoc Pennington  <hp@redhat.com>
11322
11323         * bus/messagebus.in: remove pid file when stopping the
11324         message bus, since the bus won't have privileges to remove it
11325         itself.
11326
11327 2003-04-11  Havoc Pennington  <hp@redhat.com>
11328
11329         * bus/bus.c (bus_context_new): move credentials change after
11330         creating pidfile
11331
11332 2003-04-11  Havoc Pennington  <hp@pobox.com>
11333
11334         * test/decode-gcov.c: add "below average functions" to the
11335         coverage report, and change how some of the code works.
11336
11337         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
11338         not in the coverage stats.
11339
11340         * test/test-service.c (main): use _dbus_verbose not fprintf in a
11341         couple places so running the test suite doesn't result in megaspam.
11342
11343 2003-04-11  Havoc Pennington  <hp@pobox.com>
11344
11345         * bus/dispatch.c (check_existent_service_activation): accept a no
11346         memory error in a place we didn't before
11347
11348         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
11349         in case the first one failed," since the test suite is less
11350         broken now.
11351
11352 2003-04-10  Havoc Pennington  <hp@pobox.com>
11353
11354         * bus/dispatch.c (check_segfault_service_activation): add test
11355         for launching an executable that just crashes.
11356
11357         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
11358         don't leave a million cores. We'll see how portable this is.
11359
11360 2003-04-10  Havoc Pennington  <hp@pobox.com>
11361
11362         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
11363         the possible parent failures before we fork, so that we don't
11364         fail to create a babysitter after creating the child.
11365
11366         * bus/activation.c (bus_activation_activate_service): kill child
11367         if we don't successfully complete the activation.
11368
11369 2003-04-10  Havoc Pennington  <hp@redhat.com>
11370
11371         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
11372         the connection if it's disconnected
11373
11374         * bus/activation.c (bus_activation_service_created): use new
11375         transaction features to roll back removal of pending activation if
11376         we don't successfully create the service after all. Don't remove
11377         pending activation if the function fails.
11378
11379         * dbus/dbus-list.c (_dbus_list_insert_before_link)
11380         (_dbus_list_insert_after_link): new code to facilitate
11381         services.c fixes
11382
11383         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
11384         new functionality, so we can preallocate the ability to insert
11385         into a hash table.
11386
11387         * bus/connection.c (bus_transaction_add_cancel_hook): new function
11388         allowing us to put custom hooks in a transaction to be used for
11389         cancelling said transaction
11390
11391         * doc/dbus-specification.sgml: add some discussion of secondary
11392         service owners, and disallow zero-length service names
11393
11394         * bus/services.c (bus_registry_acquire_service): new function,
11395         splits out part of bus_driver_handle_acquire_service() and fixes
11396         a bug where we didn't remove the service doing the acquiring
11397         from the secondary queue if we failed to remove the current owner
11398         from the front of the queue.
11399
11400 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11401
11402         * doc/dbus-specification.sgml:
11403         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
11404
11405 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11406
11407         * bus/.cvsignore:
11408         * glib/.cvsignore:
11409         * test/.cvsignore:
11410         Added files to cvsignore
11411
11412         * dbus/dbus-message.h:
11413         * dbus/dbus-message.c: (dbus_message_iter_get_named):
11414         Make get_named() take two out argument and return a boolean.
11415         (dbus_message_iter_get_args_valist):
11416         Update usage of get_named().
11417         (dbus_message_iter_append_byte):
11418         Fix typo
11419         (dbus_message_iter_append_named)
11420         Fix typo
11421         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
11422         More tests.
11423
11424 2003-04-10  Alexander Larsson  <alexl@redhat.com>
11425
11426         * dbus/dbus-marshal.[ch]:
11427         Add array_type_pos argument to _dbus_marshal_validate_arg.
11428         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
11429
11430         * dbus/dbus-message.[ch]:
11431         Multi-dimensional arrays have full type specification in the
11432         outermost array. Iter code re-arranged to handle this.
11433         Added some more iter tests.
11434
11435         * doc/dbus-specification.sgml:
11436         Add me to authors.
11437         Remove old FIXME.
11438         Update new array encoding description.
11439         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
11440
11441         * test/data/invalid-messages/array-with-mixed-types.message:
11442         * test/data/valid-messages/array-of-array-of-uint32.message:
11443         Change to the new array format.
11444
11445         * test/data/invalid-messages/too-short-dict.message:
11446         Fix bug in test.
11447
11448         * test/data/valid-messages/recursive-types.message:
11449         Fix up and extend test.
11450
11451 2003-04-10  Havoc Pennington  <hp@pobox.com>
11452
11453         * bus/dispatch.c: lots of fixes
11454
11455         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
11456         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
11457         that was crack, broke the test service.
11458
11459         * dbus/dbus-transport.c (_dbus_transport_open): fix error
11460         handling to avoid piling up errors if we get a failure on the
11461         first address.
11462
11463         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
11464         pid in assertion failures.
11465
11466         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
11467         to some fixed size of file descriptor array. Don't return TRUE
11468         anytime a timeout exists, that led to lots of busy loop silliness
11469         in the tests.
11470
11471 2003-04-09  Havoc Pennington  <hp@redhat.com>
11472
11473         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
11474         I'd checked this in earlier but hadn't.
11475
11476 2003-04-09  Havoc Pennington  <hp@redhat.com>
11477
11478         * bus/dispatch.c (bus_dispatch_test): get a bit further through
11479         the activation test (man this is getting old!)
11480
11481 2003-04-09  Havoc Pennington  <hp@redhat.com>
11482
11483         * test/test-utils.c: use dispatch status function to fix this up
11484
11485         * bus/connection.c (connection_watch_callback): don't dispatch
11486         from here
11487         (connection_timeout_callback): don't dispatch from here
11488         (bus_connections_setup_connection): set the dispatch status function
11489         (bus_connection_disconnected): unset it
11490
11491         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
11492         used to add a connection to be dispatched
11493         (_dbus_loop_iterate): do the dispatching at the end of each
11494         iteration
11495
11496         * dbus/dbus-connection.c
11497         (dbus_connection_set_dispatch_status_function): new function
11498         allowing us to fix up main loop usage
11499         (_dbus_connection_last_unref): free all the various function
11500         user data
11501         (dbus_connection_dispatch): call the DispatchStatusFunction
11502         whenever this function returns
11503         (dbus_connection_handle_watch): call DispatchStatusFunction
11504         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
11505         (reply_handler_timeout): call DispatchStatusFunction
11506         (dbus_connection_flush): call DispatchStatusFunction
11507
11508 2003-04-09  Havoc Pennington  <hp@redhat.com>
11509
11510         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
11511         a memory leak
11512
11513         * bus/dispatch.c (check_service_activated): fix bug in test
11514
11515         * dbus/dbus-mainloop.c (check_timeout): fix this up
11516
11517         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
11518         verbose output so we can sort out output from different processes,
11519         e.g. in the activation case.
11520
11521 2003-04-08  Colin Walters  <walters@gnu.org>
11522
11523         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
11524         the pid file.
11525         (bus_context_new): Set it.
11526         (bus_context_unref): Use it to delete the pid file.
11527
11528 2003-04-08  Havoc Pennington  <hp@redhat.com>
11529
11530         * test/data/invalid-messages/array-with-mixed-types.message:
11531         regression test that fails for the moment
11532
11533         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
11534         tests for convenience
11535
11536         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
11537         array of nil, it broke things.
11538
11539         * test/data/invalid-messages/array-of-nil.message: regression test
11540
11541         * test/data/valid-messages/array-of-array-of-uint32.message:
11542         happened to write this so added it to suite
11543
11544 2003-04-08  Havoc Pennington  <hp@redhat.com>
11545
11546         * bus/driver.c (bus_driver_handle_acquire_service): init
11547         retval/reply before checking name
11548
11549         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
11550         recursion depth argument
11551
11552         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
11553         in the public struct for future extension
11554
11555         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
11556         typo
11557
11558         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
11559         message
11560
11561         * doc/dbus-specification.sgml: fix typo
11562
11563 2003-04-08  Alexander Larsson  <alexl@redhat.com>
11564
11565         Implemented recursive types, named types and new-style iters
11566
11567         * bus/driver.c:
11568         * glib/test-thread-client.c: (thread_func):
11569         * glib/test-thread-server.c: (handle_test_message):
11570         * test/test-service.c: (handle_echo):
11571         Update to new api
11572
11573         * dbus/Makefile.am:
11574         * dbus/dbus-dict.c:
11575         * dbus/dbus-dict.h:
11576         * dbus/dbus.h
11577         Remove DBusDict
11578
11579         * dbus/dbus-internals.c: (_dbus_type_to_string):
11580         Update for new types.
11581
11582         * dbus/dbus-marshal.[ch]:
11583         Implement recursive types and the new marshalling format.
11584         Remove hardcoded dict marshalling.
11585         Marshal named types.
11586
11587         * dbus/dbus-message-builder.c:
11588         Add BYTE_ARRAY.
11589         Remove references to old types
11590
11591         * dbus/dbus-message.[ch]:
11592         New non-refcounted iter API that supports recursive iters.
11593         Use iters for appending, including support for recursive
11594         iters.
11595         Add byte and named type support.
11596         Update everything to new marshalling formats.
11597         Add tests for new API.
11598
11599         * dbus/dbus-protocol.h:
11600         Remove old array types.
11601         Add types: BYTE, ARRAY, DICT, NAMED
11602
11603         * dbus/dbus-string.c:
11604         * dbus/dbus-sysdeps.c:
11605         Make parse_double locale safe.
11606
11607         * dbus/dbus-test-main.c:
11608         Call setlocale.
11609
11610         * dbus/dbus-test.c:
11611         Kill dict test
11612
11613         * doc/dbus-specification.sgml:
11614         Update spec
11615
11616         * test/data/incomplete-messages/missing-body.message:
11617         * test/data/invalid-messages/bad-boolean.message:
11618         * test/data/invalid-messages/bad-boolean-array.message:
11619         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
11620         * test/data/invalid-messages/boolean-has-no-value.message-raw:
11621         * test/data/invalid-messages/too-short-dict.message:
11622         * test/data/valid-messages/dict-simple.message:
11623         * test/data/valid-messages/dict.message:
11624         * test/data/valid-messages/emptiness.message:
11625         * test/data/valid-messages/lots-of-arguments.message:
11626         * test/data/valid-messages/no-padding.message:
11627         * test/data/valid-messages/recursive-types.message:
11628         Add missing NAME fields
11629         Fix up dicts & arrays
11630
11631         * test/data/invalid-messages/dict-with-nil-value.message:
11632         Removed, this is not invalid anymore.
11633
11634         * test/data/valid-messages/recursive-types.message:
11635         Add new test for deeply recursive types.
11636
11637 2003-04-07  Havoc Pennington  <hp@pobox.com>
11638
11639         * bus/driver.c (bus_driver_handle_acquire_service): return an
11640         error if you try to acquire a service that starts with ':'
11641
11642 2003-04-07  Havoc Pennington  <hp@redhat.com>
11643
11644         * doc/dbus-specification.sgml: require that base service names
11645         start with ':' and that the base service is created/deleted
11646         as first and last things a connection does on the bus
11647
11648         * bus/dispatch.c (check_existent_service_activation): lots more
11649         work on the activation test; it doesn't fully pass yet...
11650
11651         * test/test-service.c (main): fix so we don't memleak the
11652         connection to the message bus
11653         (filter_func): accept a message asking us to exit
11654
11655 2003-04-06  Havoc Pennington  <hp@pobox.com>
11656
11657         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
11658         from Colin Walters
11659
11660         * configure.in: fixes to Qt detection from Colin Walters
11661
11662         * doc/Makefile.am: Only remove generated docbook dirs if they
11663         exist, from Colin Walters
11664
11665         * dbus/dbus-bus.c: change how we set well-known connections to
11666         NULL, so that it works if a single connection is stored in
11667         two well-known array slots.
11668
11669         * test/Makefile.am: remove a lot of stuff that isn't immediately
11670         useful, it's in CVS history if we want it.
11671
11672         * test/test-service.c: use dbus-mainloop instead of that
11673         watch.[hc] crack
11674
11675 2003-04-06  Havoc Pennington  <hp@pobox.com>
11676
11677         * dbus/Makefile.am: split lists of sources into stuff that goes in
11678         the library, util functions that go in the lib and are also used
11679         elsewhere, and util functions that are used in tests/daemon but
11680         don't go in the lib.
11681
11682         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
11683         here so it can be used in test binaries also
11684
11685 2003-04-06  Havoc Pennington  <hp@pobox.com>
11686
11687         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
11688         here in the parent process, so we can return an error if it
11689         fails. Also, move some of the code into the child so the parent
11690         is less hosed if we fail midway through.
11691
11692         * bus/bus.c (bus_context_new): move pidfile detection further up
11693         in the function, before we start overwriting sockets and such.
11694
11695         * bus/messagebus.in: adjust this a bit, not sure if it will work.
11696
11697         * configure.in: add --with-system-pid-file and --with-system-socket
11698
11699 2003-04-06  Colin Walters  <walters@verbum.org>
11700
11701         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
11702
11703         * bus/system.conf.in: Declare a pidfile.
11704
11705         * bus/bus.c (bus_context_new): Test for an existing pid file, and
11706         create one (if appropriate).
11707
11708         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
11709         (struct BusConfigParser) [pidfile]: New.
11710         (element_type_to_name, merge_included, start_busconfig_child)
11711         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
11712         (bus_config_parser_unref): Free it.
11713         (bus_config_parser_get_pidfile): New function.
11714
11715         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
11716
11717         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
11718
11719         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
11720
11721         * dbus/dbus-sysdeps.h: Prototype it.
11722
11723 2003-04-06  Havoc Pennington  <hp@pobox.com>
11724
11725         * bus/bus.c (bus_context_new): print the address in here, rather
11726         than in main(), because we need to do it before forking the daemon
11727
11728         * bus/dispatch.c (send_service_nonexistent_error): set the sender
11729         on the service nonexistent error
11730
11731         * bus/driver.c (bus_driver_handle_acquire_service): set the
11732         sender on the AcquireService reply
11733
11734         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
11735         server also listen on a UNIX socket so services can connect to it.
11736
11737 2003-04-06  Havoc Pennington  <hp@pobox.com>
11738
11739         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
11740         so it detects deadlocks and also we actually init threads when
11741         debugging.
11742
11743 2003-04-06  Havoc Pennington  <hp@pobox.com>
11744
11745         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
11746         save the domain socket name, and unlink it when we disconnect the
11747         server. Means that at least when we exit normally, we won't leave
11748         a bunch of junk in /tmp
11749
11750         * dbus/dbus-transport-unix.c
11751         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
11752         memory management). (I was making a real change here but then
11753         didn't)
11754
11755 2003-04-06  Havoc Pennington  <hp@pobox.com>
11756
11757         * bus/bus.c (bus_context_new): fix wrong handling of
11758         server_data_slot_unref() in the error case.
11759
11760         * dbus/dbus-internals.h (_dbus_assert): change so it passes
11761         "(condition) != 0" to _dbus_real_assert so that
11762         "_dbus_assert (pointer)" doesn't cause a warning
11763
11764         * bus/main.c (main): accept --print-address option to print out
11765         the message bus address
11766
11767         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
11768
11769         * dbus/dbus-transport.c (_dbus_transport_open): special error for
11770         "tmpdir" option to unix: address on client side
11771
11772         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
11773         to unix: address
11774
11775         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
11776         we can use to create sockets in the test suite.
11777
11778         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
11779         cleanly. To be used for testing.
11780
11781         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
11782
11783         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
11784
11785         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
11786         handle trying to call this when there's no servers active
11787
11788 2003-04-05  Havoc Pennington  <hp@pobox.com>
11789
11790         * NEWS: update
11791
11792         * configure.in: 0.8
11793
11794 2003-04-05  Havoc Pennington  <hp@pobox.com>
11795
11796         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
11797         crash on startup. Need to get "try starting the daemon"
11798         in the test suite I guess. ;-)
11799
11800         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
11801         tracked the number of open connections; it's better done in
11802         application-specific code as you want it to span all servers etc.
11803
11804 2003-04-05  Havoc Pennington  <hp@pobox.com>
11805
11806         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
11807         patch from Colin Walters
11808
11809 2003-04-05  Havoc Pennington  <hp@pobox.com>
11810
11811         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
11812         reality; in fact multiple mechanisms are allowed.
11813
11814         * dbus/dbus-internals.c (_dbus_real_assert)
11815         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
11816         _dbus_assert_not_reached() into functions, so that they don't show
11817         up in basic block counts for test coverage, and don't use up as
11818         much disk space. Does mean slower execution speed though, so
11819         assumes --disable-asserts is the normal production case.
11820
11821 2003-04-05  Havoc Pennington  <hp@pobox.com>
11822
11823         * test/Makefile.am (dist-hook): also dist *.in files
11824
11825         * NEWS: update
11826
11827         * configure.in: 0.7
11828
11829 2003-04-05  Havoc Pennington  <hp@pobox.com>
11830
11831         * dbus/dbus-string.c: docs warning
11832
11833         * dbus/dbus-spawn.c: missing docs
11834
11835         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
11836
11837 2003-04-05  Havoc Pennington  <hp@pobox.com>
11838
11839         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
11840         magic from GLib
11841
11842         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
11843         to -1 once we've reaped the babysitter
11844         (_dbus_babysitter_handle_watch): do as much work as we can, not
11845         just one go of it
11846
11847         * bus/activation.c: add code using DBusBabysitter so that we
11848         handle it when a service fails to start up properly.
11849         (bus_activation_service_created): don't remove the activation
11850         entries as we go, just let them get removed when we free the pending
11851         activation. Unref reply messages after sending them.
11852
11853 2003-04-05  Havoc Pennington  <hp@pobox.com>
11854
11855         * test/decode-gcov.c (main): print per-directory stats in the report
11856
11857         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
11858
11859 2003-04-05  Havoc Pennington  <hp@pobox.com>
11860
11861         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
11862
11863         * test/decode-gcov.c: hack up a little program to suck data
11864         out of gcov files. Yes this is sort of silly.
11865
11866         * configure.in: define something in config.h and do an
11867         AM_CONDITIONAL when gcov is enabled
11868
11869 2003-04-04  Havoc Pennington  <hp@redhat.com>
11870
11871         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
11872         return a "babysitter" object that is used to monitor the status of
11873         the spawned process and reap it when required.
11874
11875         * test/test-segfault.c, test/test-exit.c,
11876         test/test-sleep-forever.c: binaries that do various lame things,
11877         used in the test suite.
11878
11879         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
11880
11881 2003-04-03  Havoc Pennington  <hp@pobox.com>
11882
11883         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
11884         in preparation for modifying it, dbus-sysdeps is getting
11885         a bit unmanageable.
11886
11887 2003-04-03  Havoc Pennington  <hp@redhat.com>
11888
11889         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
11890         have multiple ones
11891
11892         * bus/*.[hc]: adapt to mainloop change
11893
11894 2003-04-03  Havoc Pennington  <hp@redhat.com>
11895
11896         * bus/activation.c (load_directory): fix up memleaks
11897         (bus_activation_entry_free): free the entry
11898
11899         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
11900         we get one from the message bus; fix memleaks.
11901
11902         * dbus/dbus-message.c (dbus_set_error_from_message): new function
11903
11904 2003-04-03  Havoc Pennington  <hp@pobox.com>
11905
11906         * bus/config-parser.c (bus_config_parser_unref): free
11907         list of mechanisms, bug discovered by test suite enhancements
11908         (putting system.conf and session.conf into suite)
11909
11910         * test/Makefile.am, test/test-service.c: add placeholder for a
11911         test service that we'll activate as part of test suite. Doesn't
11912         do anything yet.
11913
11914         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
11915         setting NULL value, and use system malloc not dbus_malloc()
11916         when we have unavoidable memleakage.
11917
11918         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
11919         didn't work, and support DBUS_BUS_ACTIVATION.
11920
11921         * bus/activation.c (child_setup): pass our well-known bus type to
11922         the child
11923
11924         * bus/config-parser.c: support <type> to specify well-known type
11925
11926         * doc/dbus-specification.sgml: document the env variables to
11927         locate well-known buses and find service activator
11928
11929 2003-04-02  Havoc Pennington  <hp@redhat.com>
11930
11931         * test/Makefile.am (all-local): add a rule to copy tests to
11932         builddir, so we can have generated tests. Use this to remove the
11933         silly hack for testing system.conf and session.conf. Will use this
11934         shortly to generate .service files pointing to test binaries.
11935
11936 2003-04-02  Havoc Pennington  <hp@redhat.com>
11937
11938         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
11939         current alloc and needed new length, not max of the doubled
11940         allocation and needed new length. Also, when building tests,
11941         don't do the double-allocation stuff, just realloc every time.
11942
11943 2003-04-02  Havoc Pennington  <hp@redhat.com>
11944
11945         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
11946         in error messages
11947         (_dbus_string_get_dirname): new
11948         (_dbus_sysdeps_test): new
11949         (_dbus_directory_open): include dirnames in error messages
11950
11951         * bus/config-parser.c: interpret <include> and <includedir> and
11952         <servicedir> relative to config file location if the given
11953         filename is not absolute.
11954
11955         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
11956
11957 2003-04-02  Havoc Pennington  <hp@redhat.com>
11958
11959         * bus/connection.c (bus_transaction_send_error_reply): set sender
11960         service for the error, and unref the reply on success
11961
11962         * bus/activation.c: convert to use BusTransaction so OOM can be
11963         handled correctly
11964         (bus_activation_service_created): set sender of the message
11965
11966 2003-04-01  Havoc Pennington  <hp@redhat.com>
11967
11968         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
11969         <includedir> (at least mostly)
11970
11971         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
11972         first, then the user ID
11973
11974 2003-04-01  Havoc Pennington  <hp@pobox.com>
11975
11976         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
11977         function
11978
11979         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
11980
11981         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
11982
11983         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
11984         socket 0777, and unlink any existing socket.
11985
11986         * bus/bus.c (bus_context_new): change our UID/GID and fork if
11987         the configuration file so specifies; set up auth mechanism
11988         restrictions
11989
11990         * bus/config-parser.c (bus_config_parser_content): add support
11991         for <fork> option and fill in code for <auth>
11992
11993         * bus/system.conf.in: add <fork/> to default configuration,
11994         and limit auth mechanisms to EXTERNAL
11995
11996         * doc/config-file.txt (Elements): add <fork>
11997
11998         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
11999         (_dbus_change_identity): new function
12000
12001 2003-03-31  Havoc Pennington  <hp@redhat.com>
12002
12003         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
12004         (_dbus_listen_unix_socket): fix off-by-one error in null
12005         termination spotted by Nalin
12006
12007 2003-03-31  Havoc Pennington  <hp@redhat.com>
12008
12009         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
12010         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
12011         having a real home directory available.
12012
12013 2003-03-31  Havoc Pennington  <hp@redhat.com>
12014
12015         * bus/Makefile.am (install-data-hook): create /var/run/dbus
12016
12017         * bus/messagebus.in: add init script for Red Hat /etc/init.d
12018
12019         * configure.in: add support for specifying a style of init script
12020         to install
12021
12022 2003-03-31  Havoc Pennington  <hp@redhat.com>
12023
12024         Fix some annoying DBusString API and fix all affected code.
12025
12026         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
12027         max_length argument
12028         (_dbus_string_get_data): change to return string instead of using
12029         an out param
12030         (_dbus_string_get_const_data): ditto
12031         (_dbus_string_get_data_len): ditto
12032         (_dbus_string_get_const_data_len): ditto
12033
12034 2003-03-31  Havoc Pennington  <hp@redhat.com>
12035
12036         * bus/main.c (main): fix up the command line arguments to be nicer
12037
12038 2003-03-31  Havoc Pennington  <hp@redhat.com>
12039
12040         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
12041         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
12042         final location that lands in the config file
12043
12044         * bus/config-loader-expat.c (bus_config_load): fix type of
12045         XML_Parser variable
12046
12047         * doc/TODO: remove TODO item for dbus_bus_get()
12048
12049         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
12050
12051 2003-03-31  Havoc Pennington  <hp@pobox.com>
12052
12053         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
12054         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
12055         argument since they are always client side
12056
12057         * dbus/dbus-server.c (dbus_server_get_address): new function
12058
12059         * bus/main.c (main): take the configuration file as an argument.
12060
12061         * test/data/valid-config-files/debug-allow-all.conf: new file to
12062         use with dispatch.c tests for example
12063
12064         * bus/test-main.c (main): require test data dir
12065
12066         * bus/bus.c (bus_context_new): change this to take a
12067         configuration file name as argument
12068
12069         * doc/config-file.txt (Elements): add <servicedir>
12070
12071         * bus/system.conf, bus/session.conf: new files
12072
12073         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
12074         well-known socket if none set
12075
12076         * configure.in: create system.conf and session.conf
12077
12078 2003-03-30  Havoc Pennington  <hp@pobox.com>
12079
12080         * bus/config-parser.c: hacking
12081
12082         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
12083         to shut down, since it could cause weirdness with the DBusList
12084         lock
12085
12086         * dbus/dbus-list.c (_dbus_list_test): add tests for the
12087         link-oriented stack routines
12088         (alloc_link): free the mempool if the first alloc from it fails
12089
12090         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
12091
12092         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
12093         from GLib
12094         (_dbus_string_skip_white): new
12095
12096         * doc/config-file.txt (Elements): add <includedir>
12097
12098 2003-03-28  Havoc Pennington  <hp@pobox.com>
12099
12100         * dbus/dbus-string.c (_dbus_string_copy_data_len)
12101         (_dbus_string_copy_data): new functions
12102
12103 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
12104
12105         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
12106         * dbus/dbus-bus.h:
12107         Add dbus_bus_get.
12108
12109         * dbus/dbus-memory.c:
12110         Fix a doc comment.
12111
12112 2003-03-28  Havoc Pennington  <hp@pobox.com>
12113
12114         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
12115         I think it may have just been superstition. Not sure.
12116
12117         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
12118         failures that were not being handled.
12119
12120         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
12121
12122         * dbus/dbus-memory.c: add ability to set number of mallocs in a
12123         row that will fail on out-of-memory.
12124
12125         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
12126         function for testing out-of-memory handling.
12127
12128         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
12129         allocation functions, they do map exactly to the expat ones.
12130
12131 2003-03-27  Havoc Pennington  <hp@redhat.com>
12132
12133         * bus/config-loader-libxml.c (bus_config_load): add another error
12134         check
12135
12136 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12137
12138         * doc/TODO:
12139         Add note about automatic service activation.
12140
12141         * doc/dbus-specification.sgml:
12142         Rename the specification and clarify a few things.
12143
12144 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
12145
12146         * Doxyfile.in:
12147         * dbus/dbus-address.c:
12148         * dbus/dbus-dict.c:
12149         * dbus/dbus-marshal.c:
12150         * dbus/dbus-server-debug-pipe.c:
12151         * dbus/dbus-transport-unix.c:
12152         Fix documentation warnings.
12153
12154 2003-03-26  Havoc Pennington  <hp@pobox.com>
12155
12156         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
12157         after every test so it's quick and easy to see which leaked, and
12158         so we test multiple dbus_shutdown() calls
12159
12160         * configure.in: change configure.in XML stuff to also support
12161         expat
12162
12163         * config-loader-libxml.c: some hacking
12164
12165         * config-loader-expat.c: some hacking
12166
12167         * config-parser.c: some hacking, plus tests
12168
12169 2003-03-25  Havoc Pennington  <hp@redhat.com>
12170
12171         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
12172
12173         * configure.in: add --with-xml option to specify XML library,
12174         right now only libxml is supported.
12175
12176         * bus/config-loader-libxml.c, config-parser.c: sync some minor
12177         nonworking code between home and work, still just stubs
12178
12179 2003-03-24  Havoc Pennington  <hp@redhat.com>
12180
12181         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
12182         file
12183
12184         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
12185         NULL argument for "message" if the error is a well-known one,
12186         fill in a generic message in this case.
12187
12188         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
12189         favor of DBusError
12190
12191         * bus/test.c (bus_test_flush_bus): add
12192
12193         * bus/policy.c (bus_policy_test): test code stub
12194
12195 2003-03-24  Havoc Pennington  <hp@pobox.com>
12196
12197         * bus/connection.c (bus_connections_setup_connection): set up
12198         the "can this user connect" function, but it always returns
12199         TRUE until we have a config file parser so we can have a config
12200         file that allows connections.
12201
12202 2003-03-23  Havoc Pennington  <hp@pobox.com>
12203
12204         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
12205         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
12206         the mutex, so we can check for proper memory management
12207         and OOM handling.
12208
12209         * dbus/dbus-dataslot.c: remove the mutex from
12210         DBusDataSlotAllocator and lock it manually when using it,
12211         to simplify fitting it into the global slots framework.
12212
12213         * dbus/dbus-threads.c (init_static_locks): rework how we're
12214         handling global locks so they are easily shut down.
12215
12216         * bus/policy.c (bus_policy_append_rule): fix
12217
12218         * bus/test-main.c (main): check for memleaks
12219
12220         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
12221         test suite check for memleaks
12222
12223         * dbus/dbus-memory.c: add support in test mode for tracking
12224         number of outstanding blocks
12225
12226 2003-03-23  Havoc Pennington  <hp@pobox.com>
12227
12228         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
12229         policies code
12230
12231         * dbus/dbus-hash.h: add ULONG hash keys
12232
12233         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
12234         (_dbus_get_group_id): new function
12235
12236 2003-03-20  Havoc Pennington  <hp@redhat.com>
12237
12238         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
12239         new function
12240         (dbus_connection_get_unix_user): new function
12241
12242 2003-03-20  Havoc Pennington  <hp@pobox.com>
12243
12244         * bus/connection.c (bus_connection_send_oom_error): assert that
12245         message has a sender
12246         (connection_execute_transaction): ditto
12247         (bus_connection_preallocate_oom_error): fix to set the sender, and
12248         set recipient to the destination service, not the bus driver
12249
12250         * bus/policy.c: hacking
12251
12252         * dbus/dbus-message.c (dbus_message_service_is): new function
12253         (dbus_message_sender_is): new
12254
12255 2003-03-19  Havoc Pennington  <hp@redhat.com>
12256
12257         * bus/policy.c: start sketching code for policy restrictions on
12258         what connections can do.
12259
12260 2003-03-18  Havoc Pennington  <hp@redhat.com>
12261
12262         * doc/TODO: some notes on high-level todo items. Little nitpick
12263         stuff is all in @todo, so no need to add it here.
12264
12265         * doc/config-file.txt: some notes on how config file might look
12266
12267 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
12268
12269         * configure.in: 0.6
12270
12271         * NEWS: Update.
12272
12273 2003-03-17  Havoc Pennington  <hp@redhat.com>
12274
12275         * dbus/dbus-internals.h: add gcc attributes so that
12276         our printf-style functions warn on bad arguments to
12277         format
12278
12279         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
12280         format bug
12281
12282         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
12283         printf format bug
12284
12285 2003-03-17  Havoc Pennington  <hp@redhat.com>
12286
12287         * bus/test-main.c (main): make it print something as it runs
12288         so make check doesn't look stuck
12289
12290         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
12291         from CVS, now obsolete
12292
12293 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12294
12295         * bus/dispatch.c: (bus_dispatch):
12296         Refetch the service name since it may have been reallocated
12297         when dbus_message_set_sender was called.
12298
12299         * dbus/dbus-sysdeps.c: (_dbus_accept):
12300         Add address and address length variables and use them to stop
12301         valgrind from complaining.
12302
12303 2003-03-17  Havoc Pennington  <hp@pobox.com>
12304
12305         All tests pass, no memleaks, no valgrind complaints.
12306
12307         * bus/test.c: refcount handler_slot
12308
12309         * bus/connection.c (bus_connections_new): refcount
12310         connection_data_slot
12311
12312         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
12313         bytes so that auth scripts pass.
12314
12315         * bus/dispatch.c: init message_handler_slot so it gets allocated
12316         properly
12317
12318         * bus/dispatch.c (message_handler_slot_ref): fix memleak
12319
12320         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
12321         dealloc server_pipe_hash when no longer used for benefit of
12322         leak checking
12323
12324         * dbus/dbus-auth.c (process_command): memleak fix
12325
12326         * bus/dispatch.c (check_hello_message): memleak fix
12327
12328 2003-03-16  Havoc Pennington  <hp@pobox.com>
12329
12330         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
12331
12332 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
12333
12334         * bus/activation.c (bus_activation_activate_service): Append
12335         the pending activation entry to the list of pending activations.
12336
12337 2003-03-16  Havoc Pennington  <hp@pobox.com>
12338
12339         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
12340         connections
12341
12342         * dbus/dbus-address.c (create_entry): fix OOM handling when
12343         failing to alloc entry->method
12344
12345 2003-03-16  Havoc Pennington  <hp@pobox.com>
12346
12347         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
12348         the watch
12349
12350         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
12351         add some missing dbus_set_result
12352
12353         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
12354         alloc the DBusMessageHandler
12355
12356         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
12357         the transport here, since we call this from the finalizer; it
12358         resulted in a double-finalize.
12359
12360         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
12361         where we tried to use transport->connection that was NULL,
12362         happened when transport was disconnected early on due to OOM
12363
12364         * bus/*.c: adapt to handle OOM for watches/timeouts
12365
12366         * dbus/dbus-transport-unix.c: port to handle OOM during
12367         watch handling
12368
12369         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
12370         reference to unused bytes instead of a copy
12371
12372         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
12373         out of memory
12374
12375         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
12376         FALSE on OOM
12377
12378         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
12379         of memory
12380
12381 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12382
12383         * doc/dbus-specification.sgml:
12384         Document reply message for ActivateService.
12385
12386 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12387
12388         * bus/activation.c: (bus_pending_activation_entry_free),
12389         (bus_pending_activation_free), (bus_activation_new),
12390         (bus_activation_unref), (bus_activation_service_created),
12391         (bus_activation_activate_service):
12392         * bus/activation.h:
12393         * bus/bus.c: (bus_context_new):
12394         * bus/desktop-file.c: (new_section):
12395         * bus/driver.c: (bus_driver_send_service_deleted),
12396         (bus_driver_handle_activate_service):
12397         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
12398         * bus/services.h:
12399         * dbus/dbus-connection.c:
12400         (dbus_connection_send_with_reply_and_block):
12401         * dbus/dbus-message.c: (dbus_message_append_args_valist):
12402         * dbus/dbus-protocol.h:
12403         Make activation work better. Now pending activations will be queued
12404         and the daemon won't try to activate services that are already registered.
12405
12406 2003-03-16  Havoc Pennington  <hp@pobox.com>
12407
12408         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
12409         connection data
12410
12411         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
12412         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
12413
12414 2003-03-16  Havoc Pennington  <hp@pobox.com>
12415
12416         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
12417         this. always run the test suite before commit...
12418
12419         * bus/*: adapt to DBusConnection API changes
12420
12421         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
12422         requires renaming stuff to avoid dbus_connection_dispatch name
12423         conflict.
12424
12425         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
12426         function
12427
12428         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
12429         separate from _dbus_message_loader_return_buffer()
12430
12431         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
12432         this, because it's now always broken to use; the number of
12433         messages in queue vs. the number still buffered by the message
12434         loader is undefined/meaningless. Should use
12435         dbus_connection_get_dispatch_state().
12436         (dbus_connection_dispatch): rename from
12437         dbus_connection_dispatch_message
12438
12439 2003-03-16  Havoc Pennington  <hp@pobox.com>
12440
12441         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
12442         implementation
12443
12444 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
12445
12446         * dbus/dbus-connection.c:
12447         (dbus_connection_send_with_reply_and_block):
12448         Decrease connection->n_incoming when removing an entry
12449         from the list.
12450         * dbus/dbus-dict.c: (dbus_dict_entry_free),
12451         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12452         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12453         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
12454         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
12455         (dbus_dict_get_byte_array):
12456         Handle NULL arrays and strings. Also add support for byte arrays.
12457
12458         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
12459         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
12460         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12461         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12462         (_dbus_demarshal_dict), (demarshal_and_validate_len),
12463         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
12464         * dbus/dbus-marshal.h:
12465         Add support for marshalling and demarshalling empty arrays and strings.
12466
12467         * dbus/dbus-message.c: (dbus_message_append_args_valist),
12468         (dbus_message_append_string_array),
12469         (dbus_message_iter_get_boolean),
12470         (dbus_message_iter_get_boolean_array),
12471         (dbus_message_iter_get_int32_array),
12472         (dbus_message_iter_get_uint32_array),
12473         (dbus_message_iter_get_double_array),
12474         (dbus_message_iter_get_byte_array),
12475         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
12476         (check_message_handling):
12477         Add support for getting empty arrays and dicts.
12478
12479         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
12480         Don't do any validation at all for now, that's better than just checking
12481         for ASCII.
12482
12483         * test/data/valid-messages/emptiness.message:
12484         New test message with lots of empty arrays.
12485
12486 2003-03-16  Havoc Pennington  <hp@pobox.com>
12487
12488         * dbus/dbus-connection.c
12489         (_dbus_connection_queue_received_message_link): new function that
12490         can't fail due to OOM
12491
12492         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
12493         new function pops a message together with a list link
12494         containing it.
12495
12496         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
12497         message queuing functions to avoid needing to alloc memory
12498
12499 2003-03-16  Havoc Pennington  <hp@pobox.com>
12500
12501         Oops - test code was only testing failure of around 30 of the
12502         mallocs in the test path, but it turns out there are 500+
12503         mallocs. I believe this was due to misguided linking setup such
12504         that there was one copy of dbus_malloc etc. in the daemon and one
12505         in the shared lib, and only daemon mallocs were tested. In any
12506         case, the test case now tests all 500+ mallocs, and doesn't pass
12507         yet, though there are lots of fixes in this patch.
12508
12509         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
12510         this so that it doesn't need to allocate memory, since it
12511         has no way of indicating failure due to OOM (and would be
12512         annoying if it did).
12513
12514         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
12515
12516         * bus/Makefile.am: rearrange to create two self-contained
12517         libraries, to avoid having libraries with overlapping symbols.
12518         that was resulting in weirdness, e.g. I'm pretty sure there
12519         were two copies of global static variables.
12520
12521         * dbus/dbus-internals.c: move the malloc debug stuff to
12522         dbus-memory.c
12523
12524         * dbus/dbus-list.c (free_link): free list mempool if it becomes
12525         empty.
12526
12527         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
12528
12529         * dbus/dbus-address.c (dbus_parse_address): free list nodes
12530         on failure.
12531
12532         * bus/dispatch.c (bus_dispatch_add_connection): free
12533         message_handler_slot when no longer using it, so
12534         memory leak checkers are happy for the test suite.
12535
12536         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
12537
12538         * bus/bus.c (new_connection_callback): disconnect in here if
12539         bus_connections_setup_connection fails.
12540
12541         * bus/connection.c (bus_connections_unref): fix to free the
12542         connections
12543         (bus_connections_setup_connection): if this fails, don't
12544         disconnect the connection, just be sure there are no side
12545         effects.
12546
12547         * dbus/dbus-string.c (undo_alignment): unbreak this
12548
12549         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
12550         leaking
12551         (_dbus_auth_new): fix the order in which we free strings
12552         on OOM failure
12553
12554         * bus/connection.c (bus_connection_disconnected): fix to
12555         not send ServiceDeleted multiple times in case of memory
12556         allocation failure
12557
12558         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
12559         get the base service name
12560         (dbus_bus_register_client): don't return base service name,
12561         instead store it on the DBusConnection and have an accessor
12562         function for it.
12563         (dbus_bus_register_client): rename dbus_bus_register()
12564
12565         * bus/dispatch.c (check_hello_message): verify that other
12566         connections on the bus also got the correct results, not
12567         just the one sending hello
12568
12569 2003-03-15  Havoc Pennington  <hp@pobox.com>
12570
12571         Make it pass the Hello handling test including all OOM codepaths.
12572         Now to do other messages...
12573
12574         * bus/services.c (bus_service_remove_owner): fix crash when
12575         removing owner from an empty list of owners
12576         (bus_registry_ensure): don't leave service in the list of
12577         a connection's owned services if we fail to put the service
12578         in the hash table.
12579
12580         * bus/connection.c (bus_connection_preallocate_oom_error): set
12581         error flag on the OOM error.
12582
12583         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
12584         handle _dbus_transport_set_connection failure
12585
12586         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
12587         to create watches up front and simply enable/disable them as
12588         needed.
12589         (unix_connection_set): this can now fail on OOM
12590
12591         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
12592         of enabling/disabling a watch or timeout.
12593
12594         * bus/loop.c (bus_loop_iterate): don't touch disabled
12595         watches/timeouts
12596
12597         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
12598
12599 2003-03-15  Havoc Pennington  <hp@pobox.com>
12600
12601         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
12602         write useful test code, after all that futzing around ;-)
12603
12604         Test does not yet pass because we can't handle OOM in
12605         _dbus_transport_messages_pending (basically,
12606         dbus_connection_preallocate_send() does not prealloc the write
12607         watch). To fix this, I think we need to add new stuff to
12608         set_watch_functions, namely a SetEnabled function so we can alloc
12609         the watch earlier, then enable it later.
12610
12611         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
12612         dbus-memory.c to the convenience lib
12613
12614         * bus/test.c: rename some static functions to keep them clearly
12615         distinct from stuff in connection.c. Handle client disconnection.
12616
12617 2003-03-14  Havoc Pennington  <hp@pobox.com>
12618
12619         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
12620         transport, tests more of the real codepath. Set up clients
12621         with bus_setup_debug_client.
12622
12623         * bus/test.c (bus_setup_debug_client): function to set up debug
12624         "clients" on the main loop
12625
12626         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
12627         support
12628
12629         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
12630         server type
12631
12632         * dbus/dbus-server-debug.c: support a debug server based on pipes
12633
12634         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
12635         (_dbus_close): new function
12636
12637         * configure.in: check for socketpair
12638
12639 2003-03-14  Havoc Pennington  <hp@redhat.com>
12640
12641         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
12642         cheesy hack
12643
12644         * dbus/dbus-transport-debug.c: rework this a good bit to be
12645         less complicated. hopefully still works.
12646
12647         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
12648         manually
12649
12650         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
12651         after running it
12652
12653         * dbus/dbus-message.c (dbus_message_copy): rename from
12654         dbus_message_new_from_message, fix it up to copy
12655         all the message fields, add test case
12656
12657         * bus/dispatch.c (bus_dispatch_test): add some more test code,
12658         not quite passing yet
12659
12660 2003-03-14  Havoc Pennington  <hp@pobox.com>
12661
12662         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
12663         until no work remains" in test code. (the large diff here
12664         is just code movement, no actual changes)
12665
12666         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
12667         1, no point waiting around for test code.
12668         (_dbus_server_debug_accept_transport): unref the timeout
12669         after adding it (right?)
12670
12671         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
12672
12673 2003-03-13  Havoc Pennington  <hp@redhat.com>
12674
12675         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
12676         out of memory
12677
12678         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
12679         of memory
12680
12681         * dbus/dbus-connection.h: Make AddWatchFunction and
12682         AddTimeoutFunction return a bool so they can fail on out-of-memory
12683
12684         * bus/bus.c (bus_context_new): set up timeout handlers
12685
12686         * bus/connection.c (bus_connections_setup_connection): set up
12687         timeout handlers
12688
12689         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
12690         can fail
12691
12692         * bus/bus.c (bus_context_new): adapt to changes
12693
12694         * bus/connection.c: adapt to changes
12695
12696         * test/watch.c: adapt to DBusWatch changes
12697
12698         * bus/dispatch.c (bus_dispatch_test): started adding this but
12699         didn't finish
12700
12701 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
12702
12703         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
12704
12705 2003-03-13  Havoc Pennington  <hp@pobox.com>
12706
12707         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
12708         set up a test framework as for the library
12709
12710 2003-03-12  Havoc Pennington  <hp@pobox.com>
12711
12712         Throughout: purge global variables, introduce BusActivation,
12713         BusConnections, BusRegistry, etc. objects instead.
12714
12715         * bus/bus.h, bus/bus.c: introduce BusContext as a global
12716         message bus object
12717
12718         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
12719         going to redo this a bit differently I think
12720
12721 2003-03-12  Havoc Pennington  <hp@redhat.com>
12722
12723         Mega-patch that gets the message bus daemon initially handling
12724         out-of-memory. Work still needed. Also lots of random
12725         moving stuff to DBusError instead of ResultCode.
12726
12727         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
12728
12729         * dbus/dbus-connection.c
12730         (dbus_connection_send_with_reply_and_block): use DBusError
12731
12732         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
12733         DBusResultCode
12734
12735         * dbus/dbus-connection.c (dbus_connection_send): drop the result
12736         code here, as the only failure possible is OOM.
12737
12738         * bus/connection.c (bus_connection_disconnect):
12739         rename bus_connection_disconnected as it's a notification only
12740
12741         * bus/driver.c (bus_driver_handle_acquire_service): don't free
12742         "name" on get_args failure, should be done by get_args;
12743         don't disconnect client for bad args, just return an error.
12744         (bus_driver_handle_service_exists): ditto
12745
12746         * bus/services.c (bus_services_list): NULL-terminate returned array
12747
12748         * bus/driver.c (bus_driver_send_service_lost)
12749         (bus_driver_send_service_acquired): send messages from driver to a
12750         specific client to the client's unique name, not to the broadcast
12751         service.
12752
12753         * dbus/dbus-message.c (decode_header_data): reject messages that
12754         contain no name field
12755         (_dbus_message_get_client_serial): rename to
12756         dbus_message_get_serial and make public
12757         (_dbus_message_set_serial): rename from set_client_serial
12758         (_dbus_message_set_reply_serial): make public
12759         (_dbus_message_get_reply_serial): make public
12760
12761         * bus/connection.c (bus_connection_foreach): allow stopping
12762         iteration by returning FALSE from foreach function.
12763
12764         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
12765         (dbus_connection_free_preallocated_send)
12766         (dbus_connection_preallocate_send): new API for sending a message
12767         without possibility of malloc failure.
12768         (dbus_connection_send_message): rename to just
12769         dbus_connection_send (and same for whole function family)
12770
12771         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
12772
12773         * dbus/dbus-sysdeps.c (_dbus_exit): new function
12774
12775         * bus/activation.c: handle/return errors
12776
12777         * dbus/dbus-errors.h: add more DBUS_ERROR #define
12778
12779         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
12780         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
12781         (_dbus_result_from_errno): move to this file
12782
12783 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
12784
12785         * dbus/dbus-marshal.c:
12786         (_dbus_marshal_set_string):
12787         Take a length argument so we can marshal the correct string
12788         length.
12789
12790         (_dbus_marshal_dict), (_dbus_demarshal_dict),
12791         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
12792         (_dbus_marshal_test):
12793         * dbus/dbus-marshal.h:
12794         Add support for marshalling and demarshalling dicts.
12795
12796         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
12797         Add support for TYPE DICT.
12798
12799         * dbus/dbus-message.c: (set_string_field):
12800         Adjust header padding.
12801
12802         (dbus_message_append_args_valist), (dbus_message_append_dict),
12803         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
12804         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
12805         (check_message_handling), (check_have_valid_message):
12806         * dbus/dbus-message.h:
12807         Add functions for setting and getting dicts.
12808
12809         * dbus/dbus-protocol.h:
12810         Add DBUS_TYPE_DICT.
12811
12812         * dbus/dbus.h:
12813         Add dbus-dict.h
12814
12815         * doc/dbus-specification.sgml:
12816         Add information about how dicts are marshalled.
12817
12818         * test/data/invalid-messages/dict-with-nil-value.message:
12819         * test/data/invalid-messages/too-short-dict.message:
12820         * test/data/valid-messages/dict-simple.message:
12821         * test/data/valid-messages/dict.message:
12822         Add sample messages containing dicts.
12823
12824 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
12825
12826         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
12827
12828 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12829
12830         * dbus/Makefile.am:
12831         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12832         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
12833         (dbus_dict_set_int32), (dbus_dict_set_uint32),
12834         (dbus_dict_set_double), (dbus_dict_set_string),
12835         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
12836         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
12837         (dbus_dict_set_string_array), (_dbus_dict_test):
12838         * dbus/dbus-dict.h:
12839         Fix according to comments from Havoc.
12840
12841 2003-03-06  Michael Meeks  <michael@server.home>
12842
12843         * configure.in: if we don't have kde-config, disable have_qt.
12844
12845 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
12846
12847         * dbus/Makefile.am:
12848         Add dbus-dict.[ch]
12849
12850         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
12851         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
12852         (dbus_dict_remove), (dbus_dict_get_value_type),
12853         (dbus_dict_get_keys), (dbus_dict_put_boolean),
12854         (dbus_dict_put_int32), (dbus_dict_put_uint32),
12855         (dbus_dict_put_double), (dbus_dict_put_string),
12856         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
12857         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
12858         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
12859         (dbus_dict_get_int32), (dbus_dict_get_uint32),
12860         (dbus_dict_get_double), (dbus_dict_get_string),
12861         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
12862         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
12863         (dbus_dict_get_string_array), (_dbus_dict_test):
12864         * dbus/dbus-dict.h:
12865         Add DBusDict implementation
12866
12867         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
12868         * dbus/dbus-test.h:
12869         Add _dbus_dict_test
12870
12871 2003-03-04  Havoc Pennington  <hp@pobox.com>
12872
12873         * test/data/auth/*: adapt to changes
12874
12875         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
12876         USERID_BASE64 and change USERNAME_BASE64 to put in username not
12877         userid
12878
12879         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
12880         more stuff from being in a context name, to make the protocol
12881         simpler to deal with
12882
12883         * dbus/dbus-errors.c (dbus_error_has_name): new function
12884         (dbus_error_is_set): new function
12885
12886         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
12887         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
12888
12889         * dbus/dbus-connection.c (dbus_connection_flush): also read
12890         messages during a flush operation
12891
12892         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
12893
12894 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12895
12896         * configure.in: Check for gethostbyname on Solaris.
12897
12898         * dbus/dbus-transport.c: (_dbus_transport_open):
12899         Remove duplicate "tcp" entry.
12900
12901         * doc/dbus-specification.sgml:
12902         Clarify some things.
12903
12904 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12905
12906         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
12907         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
12908         (_dbus_keyring_test):
12909         * dbus/dbus-md5.c: (_dbus_md5_compute):
12910         * dbus/dbus-sha.c: (_dbus_sha_compute):
12911         Plug memory leaks.
12912
12913 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
12914
12915         * README: Add some things.
12916
12917 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
12918
12919         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
12920         after case DBUS_TYPE_BOOELAN.
12921
12922 2003-03-02  Havoc Pennington  <hp@pobox.com>
12923
12924         * test/break-loader.c (randomly_set_extreme_ints): add test that
12925         sets really huge and small integers
12926
12927         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
12928         that length of boolean array fits in the string, and that
12929         string has room for boolean value in single-bool case.
12930
12931         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
12932         optional value to "ALIGN" command which is what to fill the
12933         alignment with.
12934
12935         * test/data/valid-messages/no-padding.message: add regression
12936         test for the message padding problem
12937
12938 2003-03-02  Havoc Pennington  <hp@pobox.com>
12939
12940         * dbus/dbus-message.c (decode_header_data): fix to always init
12941         message_padding, from Benjamin Dauvergne
12942
12943 2003-03-02  Havoc Pennington  <hp@pobox.com>
12944
12945         * configure.in: 0.5
12946
12947         * NEWS: Update.
12948
12949 2003-03-01  Joe Shaw  <joe@assbarn.com>
12950
12951         * configure.in: Check for "struct cmsgcred" and try to access its
12952         members for BSD-like unices.
12953
12954         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
12955         _dbus_read_credentials_unix_socket().
12956         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
12957         read() for reading the credential byte off the unix socket.  Use
12958         struct cmsgcred on systems that support it.
12959
12960 2003-02-27  Alexander Larsson  <alexl@redhat.com>
12961
12962         * glib/Makefile.am:
12963         * configure.in:
12964         Make gthreads-2.0 dependency optional. Don't build thread test if
12965         its not found.
12966
12967 2003-02-27  Havoc Pennington  <hp@pobox.com>
12968
12969         * dbus/dbus-connection.c
12970         (dbus_connection_send_message_with_reply_and_block): fix doh!
12971         doh! doh! bug that resulted in never removing a reply from the
12972         queue, no wonder we called get_reply_serial so much ;-)
12973
12974         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
12975         and client serial instead of demarshaling them every time
12976
12977 2003-02-27  Havoc Pennington  <hp@pobox.com>
12978
12979         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
12980         more inlined, using dbus-string-private.h, speeds things up
12981         substantially
12982
12983         * dbus/dbus-string.c (_dbus_string_free): apply align offset
12984         when freeing the string
12985         (_dbus_string_steal_data): fix for align offset
12986         (undo_alignment): new function
12987
12988 2003-02-26  Havoc Pennington  <hp@redhat.com>
12989
12990         All kinds of audit fixes from Owen, plus initial attempt to
12991         handle unaligned memory returned from malloc.
12992
12993         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
12994         leave room for align_offset and nul byte
12995         (fixup_alignment): function to track an align_offset and
12996         ensure real->str is aligned
12997         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
12998         to allow a nul byte plus align offset
12999         (_dbus_string_lock): fix overflow issue
13000         (_dbus_string_init_const_len): add assertions on sanity of len,
13001         assign allocated to be ALLOCATION_PADDING larger than len
13002         (set_length): fixup the overflow handling
13003         (_dbus_string_get_data_len): fix overflow in assertion
13004         (open_gap): detect overflow in size of gap to be opened
13005         (_dbus_string_lengthen): add overflow check
13006         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
13007         (_dbus_string_append): add overflow check
13008         (_dbus_string_append_unichar): overflow
13009         (_dbus_string_delete): fix overflow in assertion
13010         (_dbus_string_copy_len): overflow in assertion
13011         (_dbus_string_replace_len): overflows in assertions
13012         (_dbus_string_find): change to implement in terms of
13013         _dbus_string_find_to
13014         (_dbus_string_find_to): assorted fixage
13015         (_dbus_string_equal_c_str): assert c_str != NULL,
13016         fix logic so the function works
13017         (_dbus_string_ends_with_c_str): fix overflow thingy
13018         (_dbus_string_base64_encode): overflow fix
13019         (_dbus_string_validate_ascii): overflow
13020         (_dbus_string_validate_nul): overflow
13021
13022 2003-02-26  Havoc Pennington  <hp@redhat.com>
13023
13024         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
13025
13026 2003-02-26  Alexander Larsson  <alexl@redhat.com>
13027
13028         * configure.in:
13029         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
13030
13031         * dbus/dbus-connection.c:
13032         * dbus/dbus-connection.h:
13033         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
13034         Add dbus_connection_set_wakeup_main_function and use it when queueing
13035         incoming and outgoing messages.
13036
13037
13038         * dbus/dbus-dataslot.c:
13039         Threadsafe usage of DBusDataSlotAllocator
13040
13041         * dbus/dbus-message.c: (dbus_message_get_args_iter):
13042         dbus_new can fail.
13043
13044         * dbus/dbus-server-unix.c:
13045         Add todo comment
13046
13047         * glib/dbus-gmain.c:
13048         Implement the new wakeup functions for glib.
13049
13050         * glib/Makefile.am:
13051         * glib/test-thread-client.c:
13052         * glib/test-thread-server.c:
13053         * glib/test-thread.h:
13054         Initial cut at some thread test code. Not really done yet.
13055
13056 2003-02-26  Havoc Pennington  <hp@pobox.com>
13057
13058         * dbus/dbus-connection.c
13059         (dbus_connection_send_message_with_reply_and_block): fix crash
13060         where we ref'd the outgoing message instead of the returned reply
13061
13062         * dbus/dbus-transport-unix.c (do_authentication): check read watch
13063         at the end of this function, so if we didn't need to read for
13064         authentication, we reinstall it for receiving messages
13065
13066         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
13067         a NULL sender for peer-to-peer case
13068
13069         * dbus/dbus-transport-unix.c (check_read_watch): handle
13070         !authenticated case correctly
13071
13072         * glib/dbus-gmain.c: add support for DBusServer
13073
13074         * dbus/dbus-server.c: add data slot support
13075
13076         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
13077         return values and handle errors
13078
13079         * dbus/dbus-dataslot.c: factor out the data slot stuff from
13080         DBusConnection
13081
13082         * Doxyfile.in (INPUT): add glib subdir
13083
13084         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
13085         setup_with_g_main instead of hookup_with_g_main; write docs
13086
13087 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13088
13089         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
13090         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13091         * dbus/dbus-message.c: (dbus_message_append_boolean),
13092         (dbus_message_append_boolean_array),
13093         (dbus_message_get_args_valist), (_dbus_message_test):
13094         * dbus/dbus-message.h:
13095         * doc/dbus-specification.sgml:
13096         Various fixes as pointed out by Havoc.
13097
13098         * test/data/invalid-messages/bad-boolean-array.message:
13099         * test/data/invalid-messages/bad-boolean.message:
13100         Add invalid boolean value test cases.
13101
13102 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
13103
13104         * dbus/dbus-internals.c: (_dbus_type_to_string):
13105         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
13106         (_dbus_marshal_validate_arg):
13107         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13108         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13109         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
13110         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
13111         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
13112         (dbus_message_iter_get_double),
13113         (dbus_message_iter_get_boolean_array), (message_iter_test):
13114         * dbus/dbus-message.h:
13115         * dbus/dbus-protocol.h:
13116         * doc/dbus-specification.sgml:
13117         * test/data/valid-messages/lots-of-arguments.message:
13118         Add support for boolean and boolean array types.
13119
13120 2003-02-23  Havoc Pennington  <hp@pobox.com>
13121
13122         * dbus/dbus-keyring.c: finish most of this implementation and
13123         simple unit test
13124
13125         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
13126         these barf if the error isn't cleared to NULL
13127
13128         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
13129         (_dbus_create_directory): new function
13130
13131         * dbus/dbus-errors.c (dbus_set_error): fix warning
13132
13133         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
13134         (_dbus_string_hex_decode): new function
13135         (test_hex_roundtrip): test code
13136
13137         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
13138
13139         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
13140
13141         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
13142         the save-to-temp/rename trick to atomically write the new file
13143         (_dbus_string_parse_uint): new function
13144
13145 2003-02-22  Havoc Pennington  <hp@pobox.com>
13146
13147         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
13148
13149 2003-02-22  Havoc Pennington  <hp@pobox.com>
13150
13151         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
13152         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
13153
13154         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
13155
13156         * dbus/test/data/sha-1: add US government test suite for SHA-1
13157
13158 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13159
13160         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
13161         Make string arrays NULL-terminated.
13162
13163         * dbus/dbus-memory.c: (dbus_free_string_array):
13164         * dbus/dbus-memory.h:
13165         New function for freeing NULL-terminated string arrays.
13166
13167         * dbus/dbus-message-builder.c: (append_quoted_string),
13168         (_dbus_message_data_load):
13169         Add support for array types.
13170
13171         * dbus/dbus-message.c: (check_message_handling):
13172         Add more types as test cases.
13173
13174         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
13175         (_dbus_string_parse_double):
13176         Add the start offset to the end offset.
13177
13178         * test/data/valid-messages/lots-of-arguments.message:
13179         New test message with lots of arguments.
13180
13181 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13182
13183         * dbus/dbus-message.c: (dbus_message_append_nil),
13184         (dbus_message_append_int32), (dbus_message_append_uint32),
13185         (dbus_message_append_double), (dbus_message_append_string),
13186         (dbus_message_append_int32_array),
13187         (dbus_message_append_uint32_array),
13188         (dbus_message_append_double_array),
13189         (dbus_message_append_byte_array),
13190         (dbus_message_append_string_array):
13191         Fix all out-of-memory handling in these functions.
13192
13193 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13194
13195         * dbus/dbus-message.c: (dbus_message_append_nil):
13196         Fix a silly.
13197
13198 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13199
13200         * dbus/dbus-message.c: (dbus_message_append_args_valist),
13201         (dbus_message_append_nil), (dbus_message_append_int32_array),
13202         (dbus_message_append_uint32_array),
13203         (dbus_message_append_double_array),
13204         (dbus_message_append_byte_array),
13205         (dbus_message_append_string_array), (dbus_message_get_args_valist),
13206         (dbus_message_iter_get_int32_array),
13207         (dbus_message_iter_get_uint32_array),
13208         (dbus_message_iter_get_double_array),
13209         (dbus_message_iter_get_byte_array),
13210         (dbus_message_iter_get_string_array):
13211
13212         * dbus/dbus-message.h:
13213         Add functions for appending and getting arrays.
13214
13215 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
13216
13217         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
13218         element size at least 8 bytes, fixes mempool tests on
13219         64-bit machines.
13220
13221 2003-02-20  Alexander Larsson  <alexl@redhat.com>
13222
13223         * dbus/dbus-transport-unix.c (unix_do_iteration):
13224         Unlock the connection mutex during a blocking select call.
13225         Add todo about how we need a way to wake up the select.
13226
13227         * dbus/dbus-connection-internal.h:
13228         * dbus/dbus-connection.c:
13229         Add _dbus_connection_lock and _dbus_connection_unlock.
13230
13231 2003-02-19  Havoc Pennington  <hp@pobox.com>
13232
13233         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
13234         Doxyfile.in, not Doxyfile
13235
13236         * dbus/dbus-keyring.c: do some hacking on this
13237
13238         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
13239
13240         * dbus/dbus-errors.c (dbus_set_error_const): do not call
13241         dbus_error_init
13242         (dbus_set_error): remove dbus_error_init, check for message ==
13243         NULL *before* we sprintf into it, and add @todo about including
13244         system headers in this file
13245
13246         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
13247
13248         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
13249
13250         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
13251         get various bits of user information based on either username
13252         or user ID
13253         (_dbus_homedir_from_username): new function
13254
13255 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
13256
13257         * configure.in:
13258         Add check for nonposix getpwnam_r
13259
13260         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
13261         Align the pool element size to a sizeof (void *) boundary.
13262
13263         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
13264         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
13265         General Solaris fixes.
13266
13267         * test/data/valid-messages/simplest-manual.message:
13268         Explicitly state that we want little-endian packing.
13269
13270 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
13271
13272         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13273
13274         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
13275         Added to create a transport connecting using a tcp/ip socket.
13276
13277         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
13278         to a tcp socket at given host and port.
13279         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
13280         hostname and port.
13281
13282         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
13283
13284         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
13285         Added to create a server listening on a TCP/IP socket.
13286
13287 2003-02-19  Havoc Pennington  <hp@pobox.com>
13288
13289         Throughout: mop up all the Doxygen warnings and undocumented
13290         stuff.
13291
13292         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
13293         to search any paths.
13294
13295         * dbus/dbus-threads.c: move global mutex initializers to
13296         dbus-internals.h, multiple prototypes was confusing doxygen
13297         besides being kind of ugly
13298
13299         * Doxyfile (PREDEFINED): have Doxygen define
13300         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
13301         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
13302         (do not abuse the feature! it's for stuff like the autogenerated
13303         macros in dbus-md5.c, not just for things you don't feel like
13304         documenting...)
13305
13306 2003-02-18  Havoc Pennington  <hp@pobox.com>
13307
13308         * dbus/dbus-string.c (_dbus_string_zero): new function
13309
13310         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
13311         wrap it in some dbus-friendly API
13312
13313         * dbus/dbus-types.h: add 16-bit types
13314
13315 2003-02-18  Joe Shaw  <joe@assbarn.com>
13316
13317         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
13318         credentials from our currently running process.
13319         (get_word): Fix a buglet where we were copying the entire length
13320         instead of relative to our position.
13321
13322         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
13323         keys on the stack... it's 640k of data.
13324
13325         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
13326         read the credentials byte off the socket, even if we don't have
13327         SO_PEERCRED.
13328         (_dbus_poll): Implement poll() using select() for systems which
13329         don't have it.
13330
13331         * glib/test-dbus-glib.c (main): Print out an error if no
13332         parameters are given.
13333
13334         * test/data/auth/fallback.auth-script: Added.  Tests that a client
13335         can fallback to a secondary auth mechanism if the first fails.
13336
13337 2003-02-18  Havoc Pennington  <hp@pobox.com>
13338
13339         * AUTHORS: add Alex
13340
13341 2003-02-17  Havoc Pennington  <hp@pobox.com>
13342
13343         * doc/dbus-specification.sgml: lots of cosmetic
13344         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
13345         env variable to DBUS_BUS_ADDRESS, s/client/application/,
13346         s/server/bus/ (except in authentication section). Add a section
13347         "Message Bus Message Routing"
13348
13349 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
13350
13351         Release 0.4
13352
13353         * NEWS: Update
13354
13355 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13356
13357         * doc/dbus-specification.sgml:
13358         Specification updates.
13359
13360 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13361
13362         * bus/activation.c: (bus_activation_init), (child_setup),
13363         (bus_activation_activate_service):
13364         * bus/activation.h:
13365         * bus/main.c: (main):
13366         Set DBUS_ADDRESS environment variable.
13367
13368         * dbus/dbus-errors.c: (dbus_set_error):
13369         Don't use va_copy since that's a C99 feature.
13370
13371         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
13372         (_dbus_spawn_async):
13373         * dbus/dbus-sysdeps.h:
13374         Add child_setup_func to _dbus_spawn_async.
13375
13376         * doc/dbus-specification.sgml:
13377         Update specification.
13378
13379         * test/spawn-test.c: (setup_func), (main):
13380         Fix test.
13381
13382 2003-02-17  Alexander Larsson  <alexl@redhat.com>
13383
13384         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
13385         Added todo.
13386
13387 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13388
13389         * doc/.cvsignore:
13390         * doc/Makefile.am:
13391         * doc/dbus-test-plan.sgml:
13392         Add test plan document.
13393
13394         * test/Makefile.am:
13395         Fix distcheck.
13396
13397 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
13398
13399         * dbus/dbus-message.c: (decode_header_data),
13400         (_dbus_message_loader_return_buffer):
13401         Set the header padding amount when loading a message.
13402
13403 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13404
13405         * bus/dispatch.c: (send_one_message):
13406         Only send broadcast messages to registered connections.
13407
13408         * dbus/dbus-message.c: (dbus_message_name_is):
13409         * dbus/dbus-message.h:
13410         New convenience function.
13411
13412         * dbus/dbus-transport-debug.c: (do_reading):
13413         Only dispatch one message per run.
13414
13415         * test/Makefile.am:
13416         * test/bus-test.c: (new_connection_callback), (die),
13417         (test_hello_client1_handler), (test_hello_client2_handler),
13418         (test_hello_replies), (main):
13419
13420         * test/bus-test-loop.[ch]:
13421         Add these.
13422
13423 2003-02-16  Havoc Pennington  <hp@pobox.com>
13424
13425         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
13426         backward conditional
13427
13428 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13429
13430         * dbus/dbus-connection.c:
13431         Implement sent_message_with_reply. (with_reply_and block is still
13432         busted).
13433         Made dispatch_message not lose message if OOM.
13434
13435         * dbus/dbus-errors.h:
13436         Add NoReply error (for reply timeouts).
13437
13438 2003-02-16  Alexander Larsson  <alexl@redhat.com>
13439
13440         * dbus/dbus-hash.c (_dbus_hash_table_unref):
13441         Actually free keys and values when destroying hashtable.
13442
13443 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13444
13445         * dbus/dbus-auth.c: (client_try_next_mechanism):
13446         Plug a leak.
13447
13448         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
13449         Return TRUE if there's no thread implementation around.
13450
13451         * glib/dbus-gmain.c: (free_source),
13452         (dbus_connection_hookup_with_g_main):
13453         Make sure to remove the GSource when the connection is finalized.
13454
13455 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13456
13457         * bus/dispatch.c: (bus_dispatch_message_handler):
13458         * dbus/dbus-errors.h:
13459         Return an error if someone tries to send a message to a service
13460         that doesn't exist.
13461
13462 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
13463
13464         * bus/activation.c: (load_directory), (bus_activation_init),
13465         (bus_activation_activate_service):
13466         * bus/activation.h:
13467         * bus/driver.c:
13468         (bus_driver_handle_activate_service), (bus_driver_handle_message):
13469         More work on the activation handling.
13470
13471         * dbus/dbus-errors.h:
13472         Add some error messages
13473
13474         * dbus/dbus-message.c: (dbus_message_new_error_reply):
13475         * dbus/dbus-message.h:
13476         New function that creates an error message.
13477
13478         * dbus/dbus-protocol.h:
13479         Add ACTIVATE_SERVER message.
13480
13481         * dbus/dbus-server-unix.c: (unix_handle_watch),
13482         (_dbus_server_new_for_domain_socket):
13483         Call _dbus_fd_set_close_on_exec.
13484
13485         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
13486         (_dbus_spawn_async), (_dbus_disable_sigpipe),
13487         (_dbus_fd_set_close_on_exec):
13488         * dbus/dbus-sysdeps.h:
13489         Add _dbus_fd_set_close_on exec function. Also add function that checks
13490         that all open fds are set to close-on-exec and warns otherwise.
13491
13492         * dbus/dbus-transport-unix.c:
13493         (_dbus_transport_new_for_domain_socket):
13494         Call _dbus_fd_set_close_on_exec.
13495
13496 2003-02-16  Havoc Pennington  <hp@pobox.com>
13497
13498         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
13499         allow people to avoid setting SIGPIPE to SIG_IGN
13500         (_dbus_connection_new_for_transport): disable SIGPIPE unless
13501         we've been asked not to
13502
13503 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13504
13505         * dbus/dbus-list.c: (_dbus_list_append_link),
13506         (_dbus_list_prepend_link):
13507         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
13508         (dbus_realloc):
13509         Warning fixes.
13510
13511 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13512
13513         * bus/Makefile.am:
13514         * bus/activation.c: (bus_activation_entry_free),
13515         (add_desktop_file_entry), (load_directory), (bus_activation_init):
13516         * bus/activation.h:
13517         * bus/main.c: (main):
13518         Add simple activation support, doesn't work yet though.
13519
13520 2003-02-15   Zack Rusin  <zack@kde.org>
13521
13522         * qt/dbus-qthread.cpp:  small casting fix
13523
13524 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13525
13526         * dbus/dbus-errors.c: (dbus_set_error):
13527         * dbus/dbus-errors.h:
13528         Add a few errors and make dbus_set_error void.
13529
13530         * dbus/dbus-sysdeps.c:
13531         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
13532         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
13533         * dbus/dbus-sysdeps.h:
13534         Add _dbus_spawn_async.
13535
13536         * test/spawn-test.c: (main):
13537         Test for _dbus_spawn_async.
13538
13539 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
13540
13541         * dbus/dbus-internals.h:
13542         Fix build without tests.
13543
13544         * dbus/dbus-list.c: (alloc_link):
13545         Fix a segfault when a malloc fails.
13546
13547         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
13548         (dbus_malloc0), (dbus_realloc):
13549         Add support for malloc debugging.
13550
13551 2003-02-15  Alexander Larsson  <alexl@redhat.com>
13552
13553         * dbus/dbus-threads.c:
13554         * dbus/dbus-threads.h:
13555         Add condvars. Remove static mutext from API.
13556         Implement static mutexes by initializing them from threads_init.
13557
13558         * glib/dbus-gthread.c:
13559         * qt/dbus-qthread.cpp:
13560         Update with the thread api changes.
13561
13562
13563         * dbus/dbus-list.c:
13564         * dbus/dbus-list.h:
13565         Turn StaticMutex into normal mutex + init function.
13566         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
13567         _dbus_list_append_link, _dbus_list_prepend_link
13568
13569
13570         * dbus/dbus-sysdeps.c:
13571         * dbus/dbus-sysdeps.h:
13572         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
13573         _dbus_atomic_dec. Only slow fallback implementation at the moment.
13574
13575         * dbus/dbus-protocol.h:
13576         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
13577
13578         * dbus/dbus-message.c:
13579         Make ref/unref atomic.
13580         Fix some docs.
13581
13582         * dbus/dbus-connection-internal.h:
13583         * dbus/dbus-connection.c:
13584         * dbus/dbus-connection.h:
13585         Make threadsafe.
13586         Change _peek to _borrow,_return & _steal_borrowed.
13587         Change disconnect callback to event.
13588         Make dbus_connection_dispatch_messages reentrant.
13589
13590         * dbus/dbus-transport.c:
13591         Don't ref the connection on calls to the transport
13592         implementation.
13593
13594         * dbus/dbus-message-handler.c:
13595         Make threadsafe.
13596
13597         * glib/dbus-gmain.c:
13598         Don't use peek_message anymore
13599
13600         * test/Makefile.am:
13601         * test/debug-thread.c:
13602         * test/debug-thread.h:
13603         Simple thread implementation that asserts() on deadlocks in
13604         single-threaded code.
13605
13606         * test/bus-test.c:
13607         (main) Call debug_threads_init.
13608
13609         * test/watch.c:
13610         Use disconnect message instead of disconnect callback.
13611
13612         * bus/connection.c:
13613         * bus/connection.h:
13614         Don't call dbus_connection_set_disconnect_function. Instead export
13615         bus_connection_disconnect.
13616
13617         * bus/dispatch.c:
13618         Call bus_connection_disconnect when we get a disconnected message.
13619
13620 2003-02-15  Havoc Pennington  <hp@pobox.com>
13621
13622         * dbus/dbus-message.c (dbus_message_new): fool around with the
13623         docs
13624
13625 2003-02-14  Havoc Pennington  <hp@pobox.com>
13626
13627         * dbus/dbus-mempool.c: fail if the debug functions so indicate
13628
13629         * dbus/dbus-memory.c: fail if the debug functions indicate we
13630         should
13631
13632         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
13633         (_dbus_decrement_fail_alloc_counter): debug functions to
13634         simulate memory allocation failures
13635
13636 2003-02-14  Havoc Pennington  <hp@pobox.com>
13637
13638         * dbus/dbus-errors.h (struct DBusError): add a word of padding
13639         to DBusError
13640
13641 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13642
13643         * bus/driver.c: (bus_driver_handle_hello):
13644         * bus/driver.h:
13645         * bus/services.c: (bus_service_lookup):
13646         Reorder message sending so we get a more sane order.
13647
13648         * test/bus-test.c: (message_handler):
13649         Fix tyop.
13650
13651 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13652
13653         * bus/driver.c: (bus_driver_send_service_deleted),
13654         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13655         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13656         (bus_driver_send_welcome_message),
13657         (bus_driver_handle_list_services),
13658         (bus_driver_handle_acquire_service),
13659         (bus_driver_handle_service_exists):
13660         * dbus/dbus-bus.c: (dbus_bus_register_client),
13661         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13662         * dbus/dbus-errors.c: (dbus_result_to_string):
13663         * dbus/dbus-errors.h:
13664         * dbus/dbus-message.c: (dbus_message_append_args),
13665         (dbus_message_append_args_valist), (dbus_message_get_args),
13666         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
13667         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
13668         (dbus_message_iter_get_byte_array),
13669         (dbus_message_iter_get_string_array), (message_iter_test),
13670         (check_message_handling), (_dbus_message_test):
13671         * dbus/dbus-message.h:
13672         * test/bus-test.c: (main):
13673         Change fields to arguments in messages, so that they won't be
13674         confused with header fields.
13675
13676         * glib/test-dbus-glib.c: (main):
13677         Remove append_fields from hello message.
13678
13679 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13680
13681         * dbus/dbus-errors.c:
13682         * dbus/dbus-message.c:
13683         * dbus/dbus-string.c:
13684         Documentation fixes.
13685
13686 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13687
13688         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
13689         (remove_timeout):
13690         Implement support for timeouts in dbus-glib.
13691
13692 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13693
13694         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
13695         * dbus/dbus-message.c: (process_test_subdir):
13696         * test/break-loader.c: (find_breaks_based_on):
13697         Plug some memory leaks.
13698
13699 2003-02-13  Richard Hult  <rhult@codefactory.se>
13700
13701         * bus/main.c: Fix build.
13702
13703         * dbus/dbus-errors.h:
13704         * dbus/dbus-errors.c: Fix copyright for Anders.
13705
13706 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13707
13708         * bus/Makefile.am:
13709         Add utils.[ch]
13710
13711         * bus/connection.c: (bus_connection_foreach):
13712         Fix a warning.
13713
13714         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
13715         (unescape_string), (new_section), (parse_section_start),
13716         (parse_key_value), (report_error), (bus_desktop_file_load),
13717         (bus_desktop_file_get_string):
13718         * bus/desktop-file.h:
13719         Use DBusError for error reporting.
13720
13721         * bus/dispatch.c: (send_one_message),
13722         (bus_dispatch_message_handler):
13723         * bus/driver.c: (bus_driver_send_service_deleted),
13724         (bus_driver_send_service_created), (bus_driver_send_service_lost),
13725         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
13726         (bus_driver_send_welcome_message),
13727         (bus_driver_handle_list_services),
13728         (bus_driver_handle_acquire_service),
13729         (bus_driver_handle_service_exists):
13730         * bus/loop.c: (bus_loop_run):
13731         * bus/main.c:
13732         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
13733
13734         * bus/utils.c: (bus_wait_for_memory):
13735         * bus/utils.h:
13736         New files with general utility functions.
13737
13738         * dbus/dbus-internals.h:
13739         Remove _DBUS_HANDLE_OOM.
13740
13741 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13742
13743         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
13744         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
13745         * dbus/dbus-errors.h:
13746         Add DBusError structure.
13747
13748 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13749
13750         * test/data/valid-messages/standard-acquire-service.message:
13751         * test/data/valid-messages/standard-hello.message:
13752         * test/data/valid-messages/standard-list-services.message:
13753         * test/data/valid-messages/standard-service-exists.message:
13754         Add some standard messages.
13755
13756 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13757
13758         * bus/driver.c: (bus_driver_send_welcome_message),
13759         (bus_driver_handle_list_services),
13760         (bus_driver_handle_acquire_service),
13761         (bus_driver_handle_service_exists), (bus_driver_handle_message):
13762         Update for API changes in libdbus.
13763
13764         * dbus/dbus-message.c: (dbus_message_new_reply):
13765         * dbus/dbus-message.h:
13766         Remove the name argument. The spec states that replies shouldn't
13767         have a name.
13768
13769 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
13770
13771         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
13772         (report_error), (bus_desktop_file_load), (lookup_section),
13773         (lookup_line), (bus_desktop_file_get_raw),
13774         (bus_desktop_file_get_string):
13775         * bus/desktop-file.h:
13776         Some fixes, and new functions for getting a key value from a section.
13777
13778 2003-02-13  Havoc Pennington  <hp@pobox.com>
13779
13780         * test/data/auth/fail-after-n-attempts.auth-script: new test
13781
13782         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
13783         reject the client.
13784
13785 2003-02-13  Havoc Pennington  <hp@pobox.com>
13786
13787         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
13788         dbus_credentials_match were backward
13789
13790         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
13791         NO_CREDENTIALS and ROOT_CREDENTIALS
13792
13793         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
13794         into here. Never process more commands after we've reached an
13795         end state; store further data as unused bytes.
13796
13797         * test/data/auth/*: add more auth tests
13798
13799         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
13800         command to match exact string and EXPECT_UNUSED to match unused
13801         bytes
13802
13803         * test/Makefile.am (dist-hook): fix to dist all the test stuff
13804
13805 2003-02-12  Havoc Pennington  <hp@pobox.com>
13806
13807         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
13808         \r off of popped lines
13809
13810         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
13811         scripts
13812
13813         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
13814         SEND, append \r\n
13815
13816 2003-02-12  Havoc Pennington  <hp@pobox.com>
13817
13818         * dbus/Makefile.am: remove break-loader from the build, since it
13819         moved.
13820
13821         * configure.in: add --enable-gcov to turn on coverage profiling
13822         flags and disable optimization
13823
13824 2003-02-10  Havoc Pennington  <hp@pobox.com>
13825
13826         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
13827         initial cut at test framework for DBusAuth from laptop.
13828         Doesn't quite work yet but it compiles and I need to get
13829         it off the 266mhz laptop. ;-)
13830
13831         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
13832         fix a memleak in error case
13833
13834 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
13835
13836         * bus/Makefile.am:
13837         * bus/desktop-file.c:
13838         * bus/desktop-file.h:
13839         Add a desktop file parser.
13840
13841 2003-02-11  Zack Rusin  <zack@kde.org>
13842
13843         * qt/message.[h|cpp]: sample implementation
13844         of the KDE wrapper for DBusMessage
13845
13846 2003-02-09  Zack Rusin  <zack@kde.org>
13847
13848         * test/bus-test.c: make_it_compile
13849         * doc/dbus-specification.sgml: minimal semantic fix
13850
13851 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13852
13853         Release 0.3
13854
13855         * NEWS: Update
13856
13857 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
13858
13859         * dbus/Makefile.am:
13860         * dbus/dbus-break-loader.c:
13861         * test/Makefile.am:
13862         * test/break-loader.c:
13863         Move dbus-break-loader to test/ and rename it to break-loader.
13864
13865 2003-02-02  Havoc Pennington  <hp@pobox.com>
13866
13867         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
13868         for code to manage cookies in your home directory
13869
13870         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
13871
13872         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
13873         to authenticate, then disconnect the client.
13874
13875 2003-02-03  Alexander Larsson  <alexl@redhat.com>
13876
13877         * dbus/dbus-message.c (dbus_message_append_fields):
13878         Correct docs.
13879
13880 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13881
13882         * doc/dbus-specification.sgml:
13883         Update address format section.
13884
13885 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13886
13887         * test/Makefile.am:
13888         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
13889         (message_handler), (new_connection_callback), (loop_quit),
13890         (loop_run), (main):
13891         Add bus test.
13892
13893 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13894
13895         * bus/driver.c: (bus_driver_handle_service_exists):
13896         Simplify the code a bit.
13897
13898         * dbus/dbus-bus.c: (dbus_bus_service_exists):
13899         Fix a silly.
13900
13901 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13902
13903         * bus/Makefile.am:
13904         Add libdbus-daemon.la and link to it.
13905
13906 2003-02-01  James Willcox  <jwillcox@gnome.org>
13907
13908         * bus/driver.c: (bus_driver_handle_own_service):
13909         Actually include the service reply code in the message.
13910
13911 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13912
13913         * bus/driver.c: (bus_driver_handle_service_exists):
13914         Don't unref the incoming message.
13915
13916 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13917
13918         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
13919
13920 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
13921
13922         * dbus/dbus-server.c: (dbus_server_listen):
13923         * dbus/dbus-transport.c: (_dbus_transport_open):
13924         ifdef out the calls to the debug transport and server.
13925
13926 2003-02-02  Alexander Larsson  <alexl@redhat.com>
13927
13928         * dbus/dbus-watch.c (dbus_watch_get_flags):
13929         Add note in the docs that ERROR or HANGUP won't be returned
13930         and are assumed always on.
13931
13932         * glib/dbus-gmain.c (add_watch):
13933         Always add IO_ERR | IO_HUP
13934
13935         * dbus/dbus-message.h:
13936         Add semicolon after dbus_message_iter_get_string_array().
13937         Makes qt code build again
13938
13939 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
13940
13941         * bus/driver.c: (create_unique_client_name),
13942         (bus_driver_handle_hello):
13943         Don't take a name, just use a numeric id to identify
13944         each client.
13945
13946         * dbus/Makefile.am:
13947         * dbus/dbus-bus.c: (dbus_bus_register_client),
13948         (dbus_bus_acquire_service), (dbus_bus_service_exists):
13949         * dbus/dbus-bus.h:
13950         Add new convenience functions for communicating with the bus.
13951
13952         * dbus/dbus-message.h:
13953
13954         * dbus/dbus-protocol.h:
13955         Fix a typo.
13956
13957 2003-02-01  Alexander Larsson  <alexl@redhat.com>
13958
13959         * dbus/dbus-message.c (dbus_message_append_fields):
13960         Add some more doc comments.
13961
13962 2003-02-01  Havoc Pennington  <hp@pobox.com>
13963
13964         * dbus/dbus-break-loader.c (randomly_modify_length): change
13965         a 4-byte value in the message as if it were a length
13966
13967         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
13968         execute bit on saved files
13969
13970 2003-02-01  Havoc Pennington  <hp@pobox.com>
13971
13972         * dbus/dbus-break-loader.c (main): new program to find messages
13973         that break the loader.
13974
13975         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
13976         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
13977
13978         * dbus/dbus-string.c (_dbus_string_set_byte): new
13979
13980 2003-01-31  Havoc Pennington  <hp@pobox.com>
13981
13982         * dbus/dbus-message.c: refactor the test code to be more general,
13983         in preparation for writing a "randomly permute test cases to
13984         try to break the loader" program.
13985
13986 2003-01-31  Havoc Pennington  <hp@pobox.com>
13987
13988         * doc/dbus-specification.sgml: work on the specification
13989
13990         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
13991         the protocol version of the message.
13992
13993         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
13994         no longer specifies that.
13995         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
13996         1/2/3/4)
13997
13998         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
13999         "break" for DBUS_TYPE_NIL, remove @todo
14000
14001 2003-01-31  Havoc Pennington  <hp@pobox.com>
14002
14003         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
14004         just set_is_error/get_is_error as this is a commonly-used
14005         function, and write docs.
14006
14007 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
14008
14009         * dbus/dbus-address.c: (dbus_address_entry_free):
14010         Free key and value lists.
14011
14012         * dbus/dbus-internals.c: (_dbus_type_to_string):
14013         Add the types we didn't have.
14014
14015         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
14016         (_dbus_marshal_validate_arg):
14017         Add NIL types.
14018
14019         * dbus/dbus-message.c: (dbus_message_set_sender):
14020         Remove todo about being able to set sender to NULL.
14021
14022         (dbus_message_set_is_error_reply),
14023         (dbus_message_get_is_error_reply):
14024         * dbus/dbus-message.h:
14025         New functions.
14026
14027         * dbus/dbus-protocol.h:
14028         Add error reply flag.
14029
14030         * test/data/valid-messages/opposite-endian.message:
14031         Add NIL type to test.
14032
14033 2003-01-31  Havoc Pennington  <hp@pobox.com>
14034
14035         * doc/dbus-specification.sgml: fully specify the header.  Add
14036         flags and major protocol version, and change header/body len to
14037         unsigned.
14038
14039         * dbus/dbus-message-builder.c (append_saved_length): append length
14040         as uint32
14041
14042         * dbus/dbus-message.c (dbus_message_create_header): change header
14043         length and body length to unsigned. Add the new fields from the
14044         spec
14045         (_dbus_message_loader_return_buffer): unsigned header/body len
14046
14047 2003-01-30  Havoc Pennington  <hp@pobox.com>
14048
14049         * dbus/dbus-auth.c: rework to use only REJECTED, no
14050         MECHANISMS
14051
14052         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
14053         use REJECTED, suggested by Mark McLoughlin
14054
14055 2003-01-30  Havoc Pennington  <hp@pobox.com>
14056
14057         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
14058         a better way to report errors here. e.g.  "unix address lacks
14059         path" or something. also "no such file" when the path doesn't
14060         exist, etc.
14061
14062         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
14063         leaking list nodes
14064         (dbus_parse_address): add @todo about documenting address format,
14065         and allowing , and ; to be escaped
14066
14067 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
14068
14069         * dbus/Makefile.am:
14070         Add dbus-address.[ch]
14071
14072         * dbus/dbus-address.c: (dbus_address_entry_free),
14073         (dbus_address_entries_free), (create_entry),
14074         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
14075         (dbus_parse_address), (_dbus_address_test):
14076         * dbus/dbus-address.h:
14077         New files for dealing with address parsing.
14078
14079         * dbus/dbus-connection.c:
14080         Document timeout functions.
14081
14082         * dbus/dbus-message.c:
14083         Document dbus_message_new_from_message.
14084
14085         * dbus/dbus-server-debug.c:
14086         Document.
14087
14088         * dbus/dbus-server.c: (dbus_server_listen):
14089         Parse address and use correct server implementation.
14090
14091         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
14092         * dbus/dbus-string.h:
14093         New function with test.
14094
14095         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
14096         * dbus/dbus-test.h:
14097         Add address tests.
14098
14099         * dbus/dbus-transport-debug.c:
14100         Document.
14101
14102         * dbus/dbus-transport.c: (_dbus_transport_open):
14103         Parse address and use correct transport implementation.
14104
14105 2003-01-30  Havoc Pennington  <hp@pobox.com>
14106
14107         * dbus/dbus-message.c: use message->byte_order instead of
14108         DBUS_COMPILER_BYTE_ORDER throughout.
14109         (dbus_message_create_header): pad header to align the
14110         start of the body of the message to 8-byte boundary
14111
14112         * dbus/dbus-marshal.h: make all the demarshalers take const
14113         DBusString arguments.
14114
14115         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
14116         validate message args here, so we don't have to do slow validation
14117         later, and so we catch bad messages as they are incoming. Also add
14118         better checks on header_len and body_len. Also fill in
14119         message->byte_order
14120
14121         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
14122         implemented properly)
14123         (_dbus_string_validate_nul): new function to check all-nul
14124
14125         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
14126         get_arg_end_pos and remove all validation
14127         (_dbus_marshal_validate_arg): actually do validation here.
14128
14129 2003-01-29  Havoc Pennington  <hp@pobox.com>
14130
14131         * dbus/dbus-message.c (check_message_handling): fix assertion
14132         failure on set_client_serial
14133
14134 2003-01-28  Havoc Pennington  <hp@pobox.com>
14135
14136         * dbus/dbus-server-debug.c: Add doc section comments
14137
14138         * dbus/dbus-transport-debug.c: add doc section comments
14139
14140 2003-01-28  Havoc Pennington  <hp@redhat.com>
14141
14142         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
14143         the reverse order from how I had it
14144         (_dbus_string_base64_encode): reverse encoding order. I was
14145         basically byteswapping everything during encoding.
14146
14147 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
14148
14149         * dbus/dbus-connection-internal.h:
14150         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
14151         (_dbus_connection_remove_timeout):
14152         Add functions for adding and removing timeouts.
14153
14154         * dbus/dbus-message.c: (dbus_message_new_from_message):
14155         Add new function that takes a message and creates an exact
14156         copy of it, but with the refcount set to 1.
14157         (check_message_handling):
14158         Fix build error.
14159
14160         * dbus/dbus-server-protected.h:
14161         * dbus/dbus-server.c: (_dbus_server_init_base),
14162         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
14163         (dbus_server_set_timeout_functions):
14164         (_dbus_server_remove_timeout):
14165         New functions so that a server can add and remove timeouts.
14166
14167         (dbus_server_listen):
14168         Add commented out call to dbus_server_debug_new.
14169
14170         * dbus/dbus-timeout.c: (_dbus_timeout_new):
14171         Actually set the handler, doh.
14172
14173         * dbus/dbus-transport.c: (_dbus_transport_open):
14174         Add commented out call to dbus_transport_debug_client_new.
14175
14176         * dbus/Makefile.am:
14177         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
14178
14179 2003-01-28  Havoc Pennington  <hp@pobox.com>
14180
14181         * dbus/dbus-message.c (check_message_handling): function to check
14182         on the loaded message, iterates over it etc.
14183
14184 2003-01-28  Havoc Pennington  <hp@pobox.com>
14185
14186         * test/Makefile.am (dist-hook): fix make distdir
14187
14188         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
14189
14190 2003-01-27  Havoc Pennington  <hp@pobox.com>
14191
14192         * dbus/dbus-mempool.c (time_for_size): replace printf with
14193         _dbus_verbose
14194
14195         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
14196         empty lines; fix the SAVE_LENGTH stuff to be
14197         START_LENGTH/END_LENGTH so it actually works; couple other
14198         bugfixes
14199
14200         * test/Makefile.am (dist-hook): add dist-hook for .message files
14201
14202         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
14203         can be constant or locked.
14204         (_dbus_string_free): allow freeing a const string as
14205         documented/intended
14206
14207         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
14208
14209         * dbus/dbus-test-main.c (main): take an argument which is the
14210         directory containing test data
14211
14212         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
14213         argument to this and load all the messages in test/data/
14214         checking that they can be loaded or not loaded as appropriate.
14215
14216 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
14217
14218         * bus/dispatch.c: (bus_dispatch_message_handler):
14219         Dispatch messages sent to services.
14220
14221         * bus/driver.c: (bus_driver_send_service_deleted),
14222         (bus_driver_send_service_created), (bus_driver_send_service_lost),
14223         (bus_driver_send_service_acquired):
14224         Add helper functions for sending service related messages.
14225
14226         (bus_driver_send_welcome_message):
14227         Send HELLO_REPLY instead of WELCOME.
14228
14229         (bus_driver_handle_list_services):
14230         Send LIST_SERVICES_REPLY instead of SERVICES.
14231
14232         (bus_driver_handle_own_service),
14233         (bus_driver_handle_service_exists):
14234         New message handlers.
14235
14236         (bus_driver_handle_message):
14237         Invoke new message handlers.
14238
14239         (bus_driver_remove_connection):
14240         Don't remove any services here since that's done automatically
14241         by bus_service_remove_owner now.
14242
14243         * bus/driver.h:
14244         New function signatures.
14245
14246         * bus/services.c: (bus_service_add_owner):
14247         Send ServiceAcquired message if we're the only primary owner.
14248
14249         (bus_service_remove_owner):
14250         Send ServiceAcquired/ServiceLost messages.
14251
14252         (bus_service_set_prohibit_replacement),
14253         (bus_service_get_prohibit_replacement):
14254         Functions for setting prohibit replacement.
14255
14256         (bus_service_has_owner):
14257         New function that checks if a connection is in the owner queue of
14258         a certain service.
14259
14260         * bus/services.h:
14261         Add new function signatures.
14262
14263         * dbus/dbus-list.c: (_dbus_list_test):
14264         Add tests for _dbus_list_remove_last and traversing the list backwards.
14265
14266         * dbus/dbus-list.h:
14267         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
14268         go any further, so return NULL then.
14269
14270         * dbus/dbus-protocol.h:
14271         Add new messages, service flags and service replies.
14272
14273 2003-01-26  Havoc Pennington  <hp@pobox.com>
14274
14275         * dbus/dbus-message-builder.c: implement, completely untested.
14276
14277         * test/data/*: add data to be used in testing.
14278         ".message" files are our simple loadable text format.
14279         ".message-raw" will be binary dumps of messages.
14280
14281         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
14282
14283 2003-01-26  Havoc Pennington  <hp@pobox.com>
14284
14285         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
14286
14287         * dbus/dbus-errors.c (dbus_result_to_string): add
14288         file errors
14289
14290         * dbus/dbus-message-builder.c: new file, will contain code to load
14291         up messages from files. Not implemented yet.
14292
14293 2003-01-26  Havoc Pennington  <hp@pobox.com>
14294
14295         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
14296         the sender by setting to NULL
14297
14298 2003-01-26  Havoc Pennington  <hp@pobox.com>
14299
14300         The unit tests pass, but otherwise untested.  If it breaks, the
14301         tests should have been better. ;-)
14302
14303         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
14304         the connection.
14305
14306         * dbus/dbus-message.c: redo everything so we maintain
14307         message->header as the only copy of the various fields.
14308         This avoids the possibility of out-of-memory in some cases,
14309         for example dbus_message_lock() can't run out of memory anymore,
14310         and avoids extra copying. Figured I may as well go ahead and do
14311         this since it was busted for dbus_message_lock to not return
14312         failure on OOM, and dbus_message_write_header was totally
14313         unchecked for OOM. Also fixed some random other bugs.
14314
14315         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
14316         that strings are nul-terminated. Also, end_pos can be equal
14317         to string length just not greater than, I think.
14318         (_dbus_marshal_set_int32): new function
14319         (_dbus_marshal_set_uint32): new function
14320         (_dbus_marshal_set_string): new function
14321
14322         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
14323         a warning, init timeout_list to NULL
14324         (dbus_connection_send_message): don't use uninitialized variable
14325         "serial"
14326
14327         * dbus/dbus-string.c (_dbus_string_replace_len): new function
14328
14329 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14330
14331         * bus/driver.c: (bus_driver_handle_hello),
14332         (bus_driver_send_welcome_message):
14333         Plug leaks
14334
14335 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
14336
14337         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
14338         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14339         (dbus_connection_unref):
14340         * dbus/dbus-marshal.c: (_dbus_marshal_test):
14341         * dbus/dbus-message.c: (dbus_message_unref),
14342         Plug memory leaks.
14343
14344         (dbus_message_get_fields):
14345         Remove debugging printout.
14346
14347         (_dbus_message_loader_return_buffer):
14348         Don't store the header string.
14349
14350         (_dbus_message_test):
14351         Plug leaks.
14352
14353 2003-01-26  Richard Hult  <rhult@codefactory.se>
14354
14355         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
14356         the file descriptor list, since it can change under us.
14357
14358 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14359
14360         * glib/dbus-gmain.c: (dbus_connection_prepare),
14361         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
14362         (remove_watch), (dbus_connection_hookup_with_g_main):
14363         Rewrite the glib handling to use its own GSource instead of a
14364         GIOChannel so we can catch messages put in the queue while waiting
14365         for a reply.
14366
14367 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14368
14369         * bus/Makefile.am:
14370         * bus/connection.c: (connection_disconnect_handler),
14371         (connection_watch_callback), (bus_connection_setup):
14372         * bus/dispatch.c: (send_one_message),
14373         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
14374         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
14375         * bus/dispatch.h:
14376         * bus/driver.c: (bus_driver_send_service_deleted),
14377         (bus_driver_send_service_created), (bus_driver_handle_hello),
14378         (bus_driver_send_welcome_message),
14379         (bus_driver_handle_list_services), (bus_driver_remove_connection),
14380         (bus_driver_handle_message):
14381         * bus/driver.h:
14382         Refactor code, put the message dispatching in its own file. Use
14383         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
14384         is disconnected.
14385
14386 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14387
14388         * dbus/dbus-internals.h:
14389         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
14390
14391         * dbus/dbus-message.c: (dbus_message_get_sender):
14392         * dbus/dbus-message.h:
14393         Implement dbus_message_get_sender.
14394
14395         * dbus/dbus-protocol.h:
14396         Add message and service defines.
14397
14398 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14399
14400         * dbus/dbus-connection.c: (dbus_connection_send_message):
14401         * dbus/dbus-message-internal.h:
14402         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
14403         (dbus_message_write_header):
14404         Remove _dbus_messag_unlock and don't set the client serial on a
14405         message if one already exists.
14406
14407 2003-01-24  Havoc Pennington  <hp@pobox.com>
14408
14409         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
14410         list_pool
14411
14412         * bus/driver.c (bus_driver_handle_list_services): fix a leak
14413         on OOM
14414
14415 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14416
14417         * dbus/dbus-list.c: (alloc_link), (free_link):
14418         Use a memory pool for the links.
14419
14420 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14421
14422         * bus/connection.c: (bus_connection_foreach):
14423         * bus/connection.h:
14424         Add new bus_connection_foreach function.
14425
14426         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
14427         Add function that broadcasts a message to all clients.
14428
14429         (bus_driver_send_service_created), (bus_driver_handle_hello),
14430         (bus_driver_send_welcome_message),
14431         (bus_driver_handle_list_services), (bus_driver_message_handler):
14432         Implement functions that take care of listing services, and notifying
14433         clients when new services are created.
14434
14435         * bus/services.c: (bus_services_list):
14436         * bus/services.h:
14437         Add new function that returns an array of strings with the currently
14438         registered services.
14439
14440         * glib/dbus-glib.h:
14441         * glib/dbus-gmain.c:
14442         Update copyright year.
14443
14444 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
14445
14446         * dbus/dbus-connection.c: (dbus_connection_send_message):
14447         Unlock the message in case it was sent earlier.
14448
14449         (dbus_connection_send_message_with_reply_and_block):
14450         Remove the reply message from the list.
14451
14452         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
14453         Set array_len and new_pos correctly.
14454
14455         (_dbus_marshal_test):
14456         Remove debug output.
14457
14458         * dbus/dbus-message-internal.h:
14459         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
14460         New function that returns the reply serial.
14461
14462         (_dbus_message_unlock):
14463         New function that unlocks a message and resets its header.
14464
14465         (dbus_message_append_string_array),
14466         (dbus_message_get_fields_valist),
14467         (dbus_message_iter_get_field_type),
14468         (dbus_message_iter_get_string_array),
14469         (dbus_message_get_fields),
14470         (dbus_message_append_fields_valist):
14471         Handle string arrays.
14472
14473         (dbus_message_set_sender):
14474         Make this function public since the bus daemon needs it.
14475
14476         (decode_header_data):
14477         Set the reply serial to -1 initially.
14478
14479         * dbus/dbus-message.h:
14480         Add dbus_message_set_sender.
14481
14482 2003-01-24  Havoc Pennington  <hp@pobox.com>
14483
14484         * doc/dbus-specification.sgml: add some stuff
14485
14486 2003-01-22  Havoc Pennington  <hp@pobox.com>
14487
14488         * doc/dbus-specification.sgml: Start to document the protocol.
14489
14490 2003-01-22  Havoc Pennington  <hp@pobox.com>
14491
14492         * dbus/dbus-connection.c
14493         (dbus_connection_send_message_with_reply_and_block): add some @todo
14494
14495         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
14496
14497 2003-01-21  Havoc Pennington  <hp@pobox.com>
14498
14499         (patch untested because can't compile)
14500
14501         * bus/driver.c (create_unique_client_name): make this function
14502         never recycle client names. Also, caller should initialize
14503         the DBusString.
14504
14505         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
14506
14507 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14508
14509         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14510         (_dbus_marshal_int32), (_dbus_marshal_uint32),
14511         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
14512         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
14513         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
14514         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
14515         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
14516         * dbus/dbus-marshal.h:
14517         * dbus/dbus-protocol.h:
14518         Add support for marshalling and demarshalling integer, double
14519         and string arrays.
14520
14521 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14522
14523         * bus/Makefile.am:
14524         Add driver.[ch]
14525
14526         * bus/connection.c: (connection_disconnect_handler):
14527         Remove the connection from the bus driver's list.
14528
14529         (connection_watch_callback): Dispatch messages.
14530
14531         (free_connection_data): Free connection name.
14532
14533         (bus_connection_setup): Add connection to the bus driver's list.
14534         (bus_connection_remove_owned_service):
14535         (bus_connection_set_name), (bus_connection_get_name):
14536         Add functions for setting and getting the connection's name.
14537
14538         * bus/connection.h:
14539         Add function headers.
14540
14541         * bus/driver.c: (create_unique_client_name),
14542         (bus_driver_handle_hello_message),
14543         (bus_driver_send_welcome_message), (bus_driver_message_handler),
14544         (bus_driver_add_connection), (bus_driver_remove_connection):
14545         * bus/driver.h:
14546         * bus/main.c:
14547         * bus/services.c: (bus_service_free):
14548         * bus/services.h:
14549         New file that handles communication and registreation with the bus
14550         itself.
14551
14552 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
14553
14554         * dbus/dbus-connection.c: (dbus_connection_send_message):
14555         Add a new client_serial parameter.
14556
14557         (dbus_connection_send_message_with_reply):
14558         Remove a @todo since we've implemented the blocking function.
14559
14560         (dbus_connection_send_message_with_reply_and_block):
14561         New function that sends a message and waits for a reply and
14562         then returns the reply.
14563
14564         * dbus/dbus-connection.h:
14565         Add new functions.
14566
14567         * dbus/dbus-errors.c: (dbus_result_to_string):
14568         * dbus/dbus-errors.h:
14569         Add new DBUS_RESULT.
14570
14571         * dbus/dbus-message-internal.h:
14572         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
14573         (_dbus_message_set_sender), (dbus_message_write_header),
14574         (dbus_message_new_reply), (decode_header_data),
14575         (_dbus_message_loader_return_buffer), (_dbus_message_test):
14576         * dbus/dbus-message.h:
14577         Add new functions that set the reply serial and sender.
14578         Also marshal and demarshal them correctly and add test.
14579
14580         * dbus/dbus-protocol.h:
14581         Add new DBUS_MESSAGE_TYPE_SENDER.
14582
14583         * glib/dbus-glib.h:
14584         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
14585         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
14586         (dbus_connection_hookup_with_g_main):
14587         * glib/test-dbus-glib.c: (main):
14588         Rewrite to use GIOChannel and remove the GSource crack.
14589
14590         * test/echo-client.c: (main):
14591         * test/watch.c: (check_messages):
14592         Update for changed APIs
14593
14594 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14595
14596         * dbus/Makefile.am: Add dbus-timeout.[cħ]
14597
14598         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
14599         Create a DBusTimeoutList.
14600         (dbus_connection_set_timeout_functions): Add new function to
14601         set timeout callbacks
14602
14603         * dbus/dbus-connection.h: Add public DBusTimeout API.
14604
14605         * dbus/dbus-message.c: (dbus_message_get_service):
14606         * dbus/dbus-message.h:  New function.
14607
14608         * dbus/dbus-server.c: Fix small doc typo.
14609
14610         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
14611
14612 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
14613
14614         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
14615         of the string, just as long as specified.
14616
14617 2003-01-19  Havoc Pennington  <hp@pobox.com>
14618
14619         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
14620         new function
14621
14622         * dbus/dbus-server.c (dbus_server_set_max_connections)
14623         (dbus_server_get_max_connections, dbus_server_get_n_connections):
14624         keep track of current number of connections, and add API for
14625         setting a max (but haven't implemented enforcing the max yet)
14626
14627 2003-01-18  Havoc Pennington  <hp@pobox.com>
14628
14629         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
14630         reading/writing if read_watch != NULL or write_watch != NULL.
14631
14632         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
14633         the message loader code to actually load message->header and
14634         message->body into the newly-created message.
14635
14636         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
14637         in OOM case
14638
14639         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
14640         (dbus_connection_get_max_message_size)
14641         (dbus_connection_set_max_live_messages_size)
14642         (dbus_connection_get_max_live_messages_size): implement some
14643         resource limitation functions
14644
14645         * dbus/dbus-resources.c: new file implementing some of the
14646         resource limits stuff
14647
14648         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
14649         missing docs, add @todo to handle OOM etc.
14650
14651         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
14652         docs
14653
14654 2003-01-18  Havoc Pennington  <hp@pobox.com>
14655
14656         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
14657         connection if it hasn't been already.
14658
14659         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
14660         replace with DisconnectFunction.
14661
14662 2003-01-18  Havoc Pennington  <hp@pobox.com>
14663
14664         Building --disable-verbose-mode --disable-asserts --disable-tests
14665         cuts the library from 112K to 45K or so
14666
14667         * configure.in: check for varargs macro support,
14668         add --enable-verbose-mode, --enable-asserts.
14669
14670         * dbus/dbus-internals.h (_dbus_assert): support
14671         DBUS_DISABLE_ASSERT
14672         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
14673
14674 2003-01-18  Havoc Pennington  <hp@pobox.com>
14675
14676         * dbus/dbus-test.c: include config.h so that tests actually run
14677
14678         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
14679         so the failure mode when that assumption fails will be plenty
14680         obvious.
14681
14682 2003-01-18  Havoc Pennington  <hp@pobox.com>
14683
14684         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
14685
14686         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
14687         the distribution
14688
14689         * test/Makefile.am: don't use special variable "TESTS" for echo-*
14690         since we don't want to use those in make check
14691
14692 2003-01-15  Havoc Pennington  <hp@redhat.com>
14693
14694         Release 0.2
14695
14696         * NEWS: update
14697
14698 2003-01-15  Havoc Pennington  <hp@redhat.com>
14699
14700         * test/Makefile.am: fix so that test source code ends up in the
14701         distribution on make distcheck
14702
14703 2003-01-15  Havoc Pennington  <hp@redhat.com>
14704
14705         Release 0.1.
14706
14707         * NEWS: update
14708
14709 2003-01-15  Havoc Pennington  <hp@redhat.com>
14710
14711         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
14712         fix build when --disable-tests
14713
14714         * Makefile.am (EXTRA_DIST): put HACKING in here
14715
14716         * HACKING: document procedure for making a tarball release.
14717
14718 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
14719
14720         * bus/connection.c: (connection_error_handler),
14721         (bus_connection_setup):
14722         * bus/main.c: (main):
14723         Make sure that the DBusConnectionData struct is NULLed
14724         out to prevent a segfault.
14725
14726         * dbus/dbus-errors.c: (dbus_result_to_string):
14727         * dbus/dbus-errors.h:
14728         * dbus/dbus-message.c: (dbus_message_get_fields),
14729         (dbus_message_get_fields_valist), (_dbus_message_test):
14730         * dbus/dbus-message.h:
14731         Make dbus_message_get_fields return a result code so we can
14732         track invalid fields as well as oom.
14733
14734 2003-01-11  Havoc Pennington  <hp@pobox.com>
14735
14736         * configure.in: change --enable-test/--enable-ansi action-if-given
14737         to enable_foo=$enableval instead of enable_foo=yes
14738
14739 2003-01-08  Havoc Pennington  <hp@pobox.com>
14740
14741         * dbus/dbus-string.c (_dbus_string_align_length): new function
14742
14743         * dbus/dbus-test-main.c: move main() for test app here
14744         * dbus/dbus-test.c
14745         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
14746         symbol to run tests, because dbus-test isn't in the main
14747         library
14748
14749         Code review nitpicks.
14750
14751         * dbus/dbus-message.c (dbus_message_write_header): add newlines
14752         for people with narrow emacs ;-). Assert client_serial was filled
14753         in. Assert message->name != NULL.
14754         (dbus_message_append_fields): have "first_field_type" arg separate
14755         from va list, needed for C++ binding that also uses varargs IIRC
14756         and helps with type safety
14757         (dbus_message_new): add @todo about using DBusString to store
14758         service/name internally
14759         (dbus_message_new): don't leak ->service and ->name on OOM later
14760         in the function
14761         (dbus_message_unref): free the service name
14762         (dbus_message_get_fields): same change to varargs
14763         i.e. first_field_type
14764         (_dbus_message_loader_return_buffer): assert that the message data
14765         is aligned (if not it's a bug in our code). Put in verbose griping
14766         about why we set corrupted = TRUE.
14767         (decode_header_data): add FIXME that char* is evil.  Was going to
14768         add FIXME about evil locale-specific string.h strncmp, but just
14769         switched to wacky string-as-uint32 optimization. Move check for
14770         "no room for field name" above get_const_data_len() to avoid
14771         assertion failure in get_const_data_len if we have trailing 2
14772         bytes or the like. Check for service and name fields being
14773         provided twice. Don't leak service/name on error. Require field
14774         names to be aligned to 4 bytes.
14775
14776         * dbus/dbus-marshal.c: move byte swap stuff to header
14777         (_dbus_pack_int32): uscore-prefix
14778         (_dbus_unpack_int32): uscore-prefix
14779         (_dbus_unpack_uint32): export
14780         (_dbus_demarshal_string): add @todo complaining about use of
14781         memcpy()
14782         (_dbus_marshal_get_field_end_pos): add @todo about bad error
14783         handling allowing corrupt data to go unchecked
14784
14785 2003-01-08  Havoc Pennington  <hp@redhat.com>
14786
14787         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
14788         to the select() as needed for authentication. (should be using
14789         _dbus_poll() not select, but for another day)
14790
14791         * dbus/dbus.h: include dbus/dbus-protocol.h
14792
14793 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14794
14795         * dbus/Makefile.am (dbusinclude_HEADERS): Install
14796         dbus-connection.h
14797
14798 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
14799
14800         * dbus/dbus-internals.c: (_dbus_type_to_string):
14801         New function that returns a string describing a type.
14802
14803         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
14804         * dbus/dbus-marshal.h:
14805         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
14806         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
14807         (dbus_message_iter_get_byte_array):
14808         * dbus/dbus-message.h:
14809         Add new convenience functions for appending and getting message fields.
14810         Also add demarshalling routines for byte arrays.
14811
14812 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14813
14814         * dbus/dbus-connection-internal.h:
14815         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
14816         (_dbus_connection_get_next_client_serial),
14817         (dbus_connection_send_message):
14818         * dbus/dbus-internals.h:
14819         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
14820         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
14821         (_dbus_marshal_uint32), (_dbus_demarshal_double),
14822         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
14823         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
14824         (_dbus_verbose_bytes), (_dbus_marshal_test):
14825         * dbus/dbus-marshal.h:
14826         * dbus/dbus-message-internal.h:
14827         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
14828         (dbus_message_write_header), (_dbus_message_lock),
14829         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
14830         (dbus_message_get_name), (dbus_message_append_int32),
14831         (dbus_message_append_uint32), (dbus_message_append_double),
14832         (dbus_message_append_string), (dbus_message_append_byte_array),
14833         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
14834         (dbus_message_iter_unref), (dbus_message_iter_has_next),
14835         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
14836         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
14837         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
14838         (decode_header_data), (_dbus_message_loader_return_buffer),
14839         (message_iter_test), (_dbus_message_test):
14840         * dbus/dbus-message.h:
14841         * dbus/dbus-protocol.h:
14842         * dbus/dbus-test.c: (main):
14843         * dbus/dbus-test.h:
14844         * glib/test-dbus-glib.c: (message_handler), (main):
14845         * test/echo-client.c: (main):
14846         * test/watch.c: (check_messages):
14847         Make messages sendable and receivable for real.
14848
14849 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14850
14851         * dbus/dbus-marshal.c: (_dbus_marshal_double),
14852         (_dbus_marshal_string), (_dbus_marshal_byte_array):
14853         * dbus/dbus-message.c: (dbus_message_append_int32),
14854         (dbus_message_append_uint32), (dbus_message_append_double),
14855         (dbus_message_append_string), (dbus_message_append_byte_array):
14856         Handle OOM restoration.
14857
14858 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
14859
14860         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14861         (_dbus_demarshal_string), (_dbus_marshal_test):
14862         * dbus/dbus-marshal.h:
14863         * dbus/dbus-message.c: (dbus_message_get_name),
14864         Document these functions.
14865
14866         (dbus_message_append_int32), (dbus_message_append_uint32),
14867         (dbus_message_append_double), (dbus_message_append_string),
14868         (dbus_message_append_byte_array):
14869         * dbus/dbus-message.h:
14870         Add functions for adding message fields of different types.
14871
14872         * dbus/dbus-protocol.h:
14873         Add the different types.
14874
14875 2003-01-05  Havoc Pennington  <hp@pobox.com>
14876
14877         * bus/connection.c: implement routines for handling connections,
14878         first thing is keeping a list of owned services on each connection
14879         and setting up watches etc.
14880
14881         * bus/services.c: implement a mapping from service names to lists
14882         of connections
14883
14884         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
14885
14886         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
14887         to use static mutexes for global data
14888
14889         * dbus/dbus-connection.c (dbus_connection_set_data): add new
14890         collection of functions to set/get application-specific data
14891         on the DBusConnection.
14892
14893 2003-01-04  Havoc Pennington  <hp@pobox.com>
14894
14895         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
14896         (_dbus_poll): new function
14897
14898         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
14899         copied from GLib
14900
14901         * bus/loop.c: initial code for the daemon main loop
14902
14903 2003-01-04  Havoc Pennington  <hp@pobox.com>
14904
14905         * test/watch.c (error_handler): make it safe if the error handler
14906         is called multiple times (if we s/error handler/disconnect
14907         handler/ we should just guarantee it's called only once)
14908
14909         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
14910         error handler on disconnect (it's quite possible we should
14911         just change the error handler to a "disconnect handler," I'm
14912         not sure we have any other meaningful errors)
14913
14914         * configure.in: check for getpwnam_r
14915
14916         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
14917         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
14918         mechanism as in SASL spec, using socket credentials
14919
14920         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
14921         (_dbus_send_credentials_unix_socket): new function
14922
14923         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
14924         dbus_accept()
14925         (_dbus_write): only check errno if <0 returned
14926         (_dbus_write_two): ditto
14927
14928 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
14929
14930         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
14931         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
14932         (_dbus_marshal_test):
14933         * dbus/dbus-marshal.h:
14934         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
14935         to _dbus_marshal_utf8_string. Also fix some tests.
14936
14937 2002-12-28  Harri Porten  <porten@kde.org>
14938
14939         * configure.in: added check for C++ compiler and a very cheesy
14940         check for the Qt integration
14941
14942         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
14943
14944         * qt/Makefile.am: added
14945
14946         * qt/.cvsignore: added
14947
14948         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
14949         latter, added #ifdef QT_THREAD_SUPPORT guard.
14950
14951         * dbus/Makefile.am: added missing headers for make dist
14952
14953 2002-12-28  Kristian Rietveld  <kris@gtk.org>
14954
14955         * dbus/Makefile.am: fixup export-symbols-regex.
14956
14957 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14958
14959         * acinclude.m4: Add this file and put the
14960         PKG_CHECK_MODULE macro in it.
14961
14962 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
14963
14964         * dbus/dbus-marshal.c: (_dbus_marshal_string),
14965         (_dbus_demarshal_double), (_dbus_demarshal_int32),
14966         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
14967         (_dbus_marshal_test):
14968         Make the demarshalling routines align the pos argument.
14969         Add string marshalling tests and fix the obvious bugs
14970         discovered.
14971
14972 2002-12-26  Havoc Pennington  <hp@pobox.com>
14973
14974         * dbus/dbus-auth.c: fixes fixes fixes
14975
14976         * dbus/dbus-transport-unix.c: wire up support for
14977         encoding/decoding data on the wire
14978
14979         * dbus/dbus-auth.c (_dbus_auth_encode_data)
14980         (_dbus_auth_decode_data): append to target string
14981         instead of nuking it.
14982
14983 2002-12-26  Havoc Pennington  <hp@pobox.com>
14984
14985         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
14986         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
14987         doh
14988
14989         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
14990         avoid swap_bytes() overhead (ignoring possible assembly stuff for
14991         now). Main point is because I wanted unpack_uint32 to implement
14992         _dbus_verbose_bytes
14993         (_dbus_verbose_bytes): new function
14994
14995         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
14996
14997         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
14998         mechanism to handle a corrupt message stream
14999         (_dbus_message_loader_new): fix preallocation to only prealloc,
15000         not prelengthen
15001
15002         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
15003         (_dbus_string_test): enhance tests for copy/move and fix the
15004         functions
15005
15006         * dbus/dbus-transport-unix.c: Hold references in more places to
15007         avoid reentrancy problems
15008
15009         * dbus/dbus-transport.c: ditto
15010
15011         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
15012         leak reference count in no-message case
15013
15014         * test/watch.c (do_mainloop): handle adding/removing watches
15015         during iteration over the watches. Also, ref the connection/server
15016         stored on a watch, so we don't try to mangle a destroyed one.
15017
15018         * dbus/dbus-transport-unix.c (do_authentication): perform
15019         authentication
15020
15021         * dbus/dbus-auth.c (get_state): add a state
15022         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
15023         (_dbus_auth_get_unused_bytes): append the unused bytes
15024         to the passed in string, rather than prepend
15025
15026         * dbus/dbus-transport.c (_dbus_transport_init_base): create
15027         the auth conversation DBusAuth
15028
15029         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
15030         (_dbus_transport_new_for_domain_socket): when creating a
15031         transport, pass in whether it's a client-side or server-side
15032         transport so we know which DBusAuth to create
15033
15034 2002-12-03  Havoc Pennington  <hp@pobox.com>
15035
15036         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
15037         _after_ finalizing the derived members
15038         (unix_connection_set): unref watch if we fail to add it
15039
15040         * dbus/dbus-connection.c (dbus_connection_unref): delete the
15041         transport first, so that the connection owned by the
15042         transport will be valid as the transport finalizes.
15043
15044         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
15045         if necessary, and remove watches from the connection.
15046
15047         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
15048
15049 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
15050
15051         * dbus/dbus-marshal.c: (_dbus_marshal_string),
15052         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15053         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
15054         (_dbus_marshal_test):
15055         * dbus/dbus-marshal.h:
15056         Add string marshal functions and have the demarshal functions
15057         return the new position.
15058
15059 2002-12-25  Havoc Pennington  <hp@pobox.com>
15060
15061         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
15062         it is a simple protocol that just maps directly to SASL.
15063
15064         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
15065         initial implementation, not actually used yet.
15066
15067         * dbus/dbus-string.c (_dbus_string_find): new function
15068         (_dbus_string_equal): new function
15069         (_dbus_string_base64_encode): new function
15070         (_dbus_string_base64_decode): new function
15071
15072 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
15073
15074         * dbus/Makefile.am:
15075         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
15076         (_dbus_marshal_int32), (_dbus_marshal_uint32),
15077         (_dbus_demarshal_double), (_dbus_demarshal_int32),
15078         (_dbus_demarshal_uint32), (_dbus_marshal_test):
15079         * dbus/dbus-marshal.h:
15080         * dbus/dbus-protocol.h:
15081         * dbus/dbus-test.c: (main):
15082         * dbus/dbus-test.h:
15083         Add un-optimized marshalling/demarshalling routines.
15084
15085 2002-12-25  Harri Porten  <porten@kde.org>
15086
15087         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
15088
15089 2002-12-24  Zack Rusin  <zack@kde.org>
15090
15091         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
15092         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
15093         main loop stuff
15094
15095 2002-12-24  Havoc Pennington  <hp@pobox.com>
15096
15097         * glib/dbus-gthread.c: fix include
15098
15099         * glib/dbus-glib.h: rename DBusMessageHandler for now.
15100         I think glib API needs to change, though, as you don't
15101         want to use DBusMessageFunction, you want to use the
15102         DBusMessageHandler object. Probably
15103         dbus_connection_open_with_g_main_loop()
15104         and dbus_connection_setup_g_main_loop() or something like that
15105         (but think of better names...) that just create a connection
15106         that has watch/timeout functions etc. already set up.
15107
15108         * dbus/dbus-connection.c
15109         (dbus_connection_send_message_with_reply): new function just to
15110         show how the message handler helps us deal with replies.
15111
15112         * dbus/dbus-list.c (_dbus_list_remove_last): new function
15113
15114         * dbus/dbus-string.c (_dbus_string_test): free a string that
15115         wasn't
15116
15117         * dbus/dbus-hash.c: use memory pools for the hash entries
15118         (rebuild_table): be more paranoid about overflow, and
15119         shrink table when we can
15120         (_dbus_hash_test): reduce number of sprintfs and write
15121         valid C89. Add tests for case where we grow and then
15122         shrink the hash table.
15123
15124         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
15125
15126         * dbus/dbus-connection.c (dbus_connection_register_handler)
15127         (dbus_connection_unregister_handler): new functions
15128
15129         * dbus/dbus-message.c (dbus_message_get_name): new
15130
15131         * dbus/dbus-list.c: fix docs typo
15132
15133         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
15134         an object representing a handler for messages.
15135
15136 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15137
15138         * glib/dbus-glib.h:
15139         * glib/dbus-gthread.c: (dbus_gthread_init):
15140         Don't use the gdbus prefix for public functions.
15141
15142 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
15143
15144         * Makefile.am:
15145         * configure.in:
15146         Add GLib checks and fixup .pc files
15147
15148         * glib/Makefile.am:
15149         * glib/dbus-glib.h:
15150         * glib/dbus-gmain.c: (gdbus_connection_prepare),
15151         (gdbus_connection_check), (gdbus_connection_dispatch),
15152         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
15153         (dbus_connection_gsource_new):
15154         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
15155         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
15156         * glib/test-dbus-glib.c: (message_handler), (main):
15157         Add GLib support.
15158
15159 2002-12-15  Harri Porten  <porten@kde.org>
15160
15161         * autogen.sh: check for libtoolize before attempting to use it
15162
15163         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
15164         struct.
15165
15166         * .cvsignore: ignore more stamp files
15167
15168         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
15169
15170         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
15171         without make install.
15172
15173 2002-12-15  Havoc Pennington  <hp@pobox.com>
15174
15175         * dbus/dbus-threads.c: add thread stubs that a higher library
15176         layer can fill in. e.g. the GLib wrapper might fill them in with
15177         GThread stuff. We still need to use this thread API to
15178         thread-safe-ize the library.
15179
15180 2002-12-12  Havoc Pennington  <hp@pobox.com>
15181
15182         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
15183         below new interfaces and include fewer system headers.
15184
15185         * dbus/dbus-sysdeps.c (_dbus_read): new function
15186         (_dbus_write): new function
15187         (_dbus_write_two): new function
15188         (_dbus_connect_unix_socket): new function
15189         (_dbus_listen_unix_socket): new function
15190
15191         * dbus/dbus-message-internal.h: change interfaces to use
15192         DBusString
15193
15194 2002-12-11  Havoc Pennington  <hp@pobox.com>
15195
15196         * dbus/dbus-types.h: add dbus_unichar
15197
15198         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
15199
15200         * dbus/dbus-connection.c (dbus_connection_send_message): return
15201         TRUE on success
15202
15203         * dbus/dbus-transport.c: include dbus-watch.h
15204
15205         * dbus/dbus-connection.c: include dbus-message-internal.h
15206
15207         * HACKING: add file with coding guidelines stuff.
15208
15209         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
15210         handling here, for security purposes (as in vsftpd). Not actually
15211         using this class yet.
15212
15213         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
15214         system/libc usage here, as in vsftpd, for ease of auditing (and
15215         should also simplify portability). Haven't actually moved all the
15216         system/libc usage into here yet.
15217
15218 2002-11-25  Havoc Pennington  <hp@pobox.com>
15219
15220         * dbus/dbus-internals.c (_dbus_verbose): fix to not
15221         always print the first verbose message.
15222
15223 2002-11-24  Havoc Pennington  <hp@pobox.com>
15224
15225         * test/echo-client.c, test/echo-server.c: cheesy test
15226         clients.
15227
15228         * configure.in (AC_CHECK_FUNCS): check for writev
15229
15230         * dbus/dbus-message.c (_dbus_message_get_network_data): new
15231         function
15232
15233         * dbus/dbus-list.c (_dbus_list_foreach): new function
15234
15235         * dbus/dbus-internals.c (_dbus_verbose): new function
15236
15237         * dbus/dbus-server.c, dbus/dbus-server.h: public object
15238         representing a server that listens for connections.
15239
15240         * dbus/.cvsignore: create
15241
15242         * dbus/dbus-errors.h, dbus/dbus-errors.c:
15243         public API for reporting errors
15244
15245         * dbus/dbus-connection.h, dbus/dbus-connection.c:
15246         public object representing a connection that
15247         sends/receives messages. (Same object used for
15248         both client and server.)
15249
15250         * dbus/dbus-transport.h, dbus/dbus-transport.c:
15251         Basic abstraction for different kinds of stream
15252         that we might read/write messages from.
15253
15254 2002-11-23  Havoc Pennington  <hp@pobox.com>
15255
15256         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
15257         _DBUS_INT_MAX
15258
15259         * dbus/dbus-test.c (main): add list test, and include
15260         dbus-test.h as intended
15261
15262         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
15263         (_dbus_hash_table_remove_int): return value indicates
15264         whether the entry existed to remove
15265
15266         * dbus/dbus-list.c: add linked list utility class,
15267         with docs and tests
15268
15269         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
15270         array sometimes.
15271
15272 2002-11-23  Havoc Pennington  <hp@pobox.com>
15273
15274         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
15275         DBUS_END_DECLS to nothing, that should fix this once and for all
15276
15277         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
15278
15279         * dbus/dbus-message.c, dbus/dbus-hash.c:
15280         add some missing @brief
15281
15282 2002-11-23  Havoc Pennington  <hp@pobox.com>
15283
15284         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
15285         to avoid confusing Doxygen
15286
15287         * dbus/dbus-hash.c: @} not }@
15288
15289         * dbus/dbus-message.c (struct DBusMessage): split out
15290         internals docs
15291
15292 2002-11-23  Havoc Pennington  <hp@pobox.com>
15293
15294         * configure.in: pile on more warning flags if using gcc
15295
15296         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
15297         to document static functions
15298
15299         * configure.in: add summary to end of configure so it
15300         looks nice and attractive
15301
15302         * dbus/dbus-hash.c: finish implementation and write unit
15303         tests and docs
15304
15305         * configure.in: add --enable-tests to enable unit tests
15306
15307         * dbus/dbus-test.c: test program to run unit tests
15308         for all files in dbus/*, initially runs a test for
15309         dbus-hash.c
15310
15311         * dbus/dbus-internals.h: file to hold some internal utility stuff
15312
15313 2002-11-22  Havoc Pennington  <hp@redhat.com>
15314
15315         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
15316         "ported" away from Tcl
15317
15318         * dbus/dbus-types.h: header for types such as dbus_bool_t
15319
15320 2002-11-22  Havoc Pennington  <hp@redhat.com>
15321
15322         * dbus/dbus.h: fixups for doc warnings
15323
15324         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
15325         macros
15326         (QUIET): make it quiet so we can see warnings
15327
15328         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
15329
15330 2002-11-22  Havoc Pennington  <hp@redhat.com>
15331
15332         * Makefile.am: include "Doxyfile" target in all-local
15333
15334         * configure.in: generate the Doxyfile
15335
15336         * Doxyfile.in: move Doxyfile here, so we can use
15337         configure to generate a Doxyfile with the right
15338         version number etc.
15339
15340 2002-11-22  Havoc Pennington  <hp@redhat.com>
15341
15342         * dbus/dbus-message.c: move inline docs into .c file
15343
15344         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
15345         so all docs are under doc/
15346         (MAN_EXTENSION): generate man pages. Use extension
15347         ".3dbus" which matches ".3qt" on my system,
15348         I guess this is OK, I don't know really.
15349         (FILE_PATTERNS): look for .c files not .h, makes sense
15350         for plain C I think
15351
15352 2002-11-22  Havoc Pennington  <hp@pobox.com>
15353
15354         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
15355         because any app can be a server, and any app can be a client,
15356         the bus is a special kind of server.
15357
15358 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
15359
15360         * Doxyfile : adding. Still needs Makefile rules to be generated
15361         automatically (just run "doxygen" in the toplevel dir for now to
15362         generate docs)
15363
15364         * dbus/dbus-message.h : Adding sample docs (javadoc since
15365         resembles gtk-doc a little more)
15366
15367         * dbus/dbus.h : Adding sample docs
15368
15369 2002-11-21  Havoc Pennington  <hp@redhat.com>
15370
15371         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
15372         so we can allow ourselves to include files directly,
15373         instead of having to use dbus.h
15374
15375         * dbus/dbus.h: fill in
15376
15377         * dbus/dbus-message.h: sketch out a sample header file.
15378         Include griping if you include it directly instead of
15379         via dbus.h
15380
15381         * dbus/dbus-macros.h: new file with macros for extern "C",
15382         TRUE/FALSE, NULL, etc.
15383
15384         * doc/file-boilerplate.c: put include guards in here
15385
15386 2002-11-21  Havoc Pennington  <hp@redhat.com>
15387
15388         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
15389
15390         * COPYING: include the GPL as well, and license code
15391         under both AFL and GPL.
15392
15393 2002-11-21  Havoc Pennington  <hp@redhat.com>
15394
15395         * acconfig.h: get rid of this
15396
15397         * autogen.sh (run_configure): add --no-configure option
15398
15399         * configure.in: remove AC_ARG_PROGRAM to make
15400         autoconf complain less. add AC_PREREQ.
15401         add AC_DEFINE third arg.
15402
15403 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
15404
15405         * doc/Makefile.am:
15406         Fix references so we can distcheck.
15407
15408 2002-11-21  Havoc Pennington  <hp@redhat.com>
15409
15410         * Initial module creation
15411